Expose API to inspect and remove inactive server sessions
Mantenedores costumam responder em até 3 dias
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 5/5
- Tempo estimado
- Mais de uma semana
- Facilidade para iniciantes
- 35/100
- Tipo de issue
- Funcionalidade
- Clareza
- Razoavelmente clara
- Status de atividade
- Ativa
- Stack de tecnologia
- java
- Domínio
- backend-api-design
Direção de pesquisa
Comece com HttpServletStreamableServerTransportProvider e seu mapa privado de sessões contendo instâncias de McpStreamableServerSession. Leia a discussão sobre o ciclo de vida das sessões na issue #274 e determine a API ou abstração de gerenciamento de sessões necessária para inspecionar e remover sessões abandonadas. A tarefa estará concluída quando as aplicações do servidor puderem inspecionar e limpar sessões programaticamente, sem depender apenas de solicitações HTTP DELETE dos clientes.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
While integrating the Java MCP SDK 2.0, we noticed that HttpServletStreamableServerTransportProvider stores McpStreamableServerSession instances in an internal private HashMap, but currently does not expose a public API to inspect or remove server sessions.
Currently, the SDK does not expose any API to inspect, invalidate, or remove these sessions programmatically. The only supported way to remove a session appears to be an explicit HTTP DELETE request from the client.
This becomes problematic if a client terminates unexpectedly (application crash, network failure, process termination ...) and never sends the DELETE request. In this case, the server application has no possibility to clean up abandoned sessions, even if it can determine (e.g.: via an idle timeout) that a session has not been used for hours or days.
From our understanding, this means that the internal session map may continue to grow over time, as applications cannot implement their own session cleanup strategy.
We searched the existing issues and found discussions around session lifecycle management and pluggable session stores (e.g.: issue #274). However, we could not find an issue addressing the missing API to inspect and remove abandoned sessions managed by HttpServletStreamableServerTransportProvider.
Would it be possible to expose a public server-side session management API (e.g.: removeSession(), getSessions(), or a pluggable SessionStore/SessionManager) to allow applications to implement idle timeout and cleanup strategies for stateful Streamable HTTP servers?
- Linguagem predominante
- Java
- Estrelas
- 3.7k
- Forks
- 1.1k
- Merge médio
- 2d 5h
- PRs com merge (30d)
- 4
Preparar o ambiente
- Sem Dockerfile nem arquivo Docker Compose
- Sem modelo de pull request
- Ler o guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de modelcontextprotocol/java-sdk
-
HttpServletStreamableServerTransportProvider: GET stream sends no status or headers until the first eventTalvez já em andamento @karthiksenv assumiu há 2 dias. Aberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 86/100
modelcontextprotocol/java-sdk#1155 ·
Mantenedores costumam responder em até 3 dias
-
Client request handlers that complete empty send no JSON-RPC responseTalvez já em andamento @1fanwang assumiu há 31 dias. Abertaarea/client bug P2
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 84/100
modelcontextprotocol/java-sdk#1124 · 5 comentários ·
Mantenedores costumam responder em até 3 dias
-
ServerCapabilities.logging is added unconditionally, overriding the caller's explicit capabilitiesTalvez já em andamento @1yuxiangJ assumiu há 47 dias. Abertabug P2 ready for work
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 68/100
modelcontextprotocol/java-sdk#1086 · 1 comentário ·
Mantenedores costumam responder em até 3 dias
-
Reject listRoots if not supported by client, without sending any requestTalvez já em andamento @nikita-kibitkin assumiu há 70 dias. Abertaenhancement good first issue P3
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 82/100
modelcontextprotocol/java-sdk#1067 · 1 comentário ·
Mantenedores costumam responder em até 3 dias
-
StdioClientTransport missing explicit UTF-8 charset in InputStreamReader (same issue as #295, but on client side)Talvez já em andamento @suryateja-g13 assumiu há 141 dias. Abertabug P2 ready for work
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 74/100
modelcontextprotocol/java-sdk#898 · 1 comentário ·
Mantenedores costumam responder em até 3 dias
Todas as issues de modelcontextprotocol/java-sdk
Issues semelhantes
-
new feature
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 67/100
Mantenedores costumam responder em até 1 dia
-
[C#]:主页联网更新的提示投稿横幅指向错误Aberta
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 86/100
PCL-Community/PCL-CE#3652 ·
Mantenedores costumam responder em até 1 dia
-
TaskSecret.vue: replace explicit `any` with real typesTalvez já em andamento @prayas-bit assumiu hoje. Abertaarea/frontend good first issue kind/cooldown
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 74/100
kestra-io/kestra#20352 · 1 comentário ·
Mantenedores costumam responder em até 1 dia