Should McpTransportContextExtractor contain default methods for protocol version, lastEventId and sessionId
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 3/5
- Temps estimé
- 1-2 jours
- Accessibilité débutants
- 45/100
- Type d'issue
- Fonctionnalité
- Clarté
- Plutôt claire
- Activité
- À l'abandon
- Stack technique
- java
- Domaine
- api, backend-api-design
Piste de recherche
Localisez McpTransportContextExtractor et examinez ses implémentations existantes ainsi que l’utilisation de McpTransportContext. Vérifiez si les accesseurs par défaut pour la version du protocole, l’ID de session et l’ID du dernier événement correspondent à l’API actuelle et aux concepts du protocole ; le travail est terminé lorsque l’interface expose une API cohérente et compatible.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
I am defining my McpTransportContextExtractor implementation as:
@Internal
@Singleton
class DefaultMcpTransportContextExtractor implements McpTransportContextExtractor<HttpRequest<?>> {
public static final String HTTP_HEADER_MCP_PROTOCOL_VERSION = "MCP-Protocol-Version";
public static final String DEFAULT_PROTOCOL_VERSION = "2025-03-26";
public static final String HTTP_HEADER_MCP_SESSION_ID = "Mcp-Session-Id";
public static final String HTTP_HEADER_DEFAULT_LAST_EVENT_ID = "Last-Event-ID";
@Override
public McpTransportContext extract(HttpRequest<?> request, McpTransportContext transportContext) {
transportContext.put(HTTP_HEADER_MCP_PROTOCOL_VERSION,
request.getHeaders().get(HTTP_HEADER_MCP_PROTOCOL_VERSION, String.class)
.orElse(DEFAULT_PROTOCOL_VERSION));
request.getHeaders().get(HTTP_HEADER_MCP_SESSION_ID, String.class)
.ifPresent(v -> transportContext.put(HTTP_HEADER_MCP_SESSION_ID, v));
request.getHeaders().get(HTTP_HEADER_DEFAULT_LAST_EVENT_ID, String.class)
.ifPresent(v -> transportContext.put(HTTP_HEADER_DEFAULT_LAST_EVENT_ID, v));
return transportContext;
}
}
But given that the specification defines session id, last event and protocol version. I think it would be good if the McpTransportContextExtractor contained default methods:
default String getSessionId() {
return null;
}
default String getLastEventId() {
return null;
}
default String getProtocolVersion() {
return "2025-03-26";
}
I can submit a PR if you think it is a good idea. With this change the TransportContext will have a clear API for those spec defined concepts.
- Langage dominant
- Java
- Étoiles
- 3.7k
- Forks
- 1.1k
- Merge moyen
- 1 j 15 h
- PR mergées (30 j)
- 9
Guide de contribution
Ouvrir le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de modelcontextprotocol/java-sdk
-
area/transport bug P2
Difficulté 2/5 1-3 heures Accessibilité débutants 88/100
modelcontextprotocol/java-sdk#1136 ·
-
area/client bug P2
Difficulté 2/5 1-3 heures Accessibilité débutants 84/100
modelcontextprotocol/java-sdk#1124 · 1 commentaire ·
-
ServerCapabilities.logging is added unconditionally, overriding the caller's explicit capabilities Ouvertebug P2 ready for work
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
modelcontextprotocol/java-sdk#1086 · 1 commentaire ·
-
enhancement good first issue P3
Difficulté 2/5 1-3 heures Accessibilité débutants 82/100
modelcontextprotocol/java-sdk#1067 ·
-
bug P2 ready for work
Difficulté 2/5 1-3 heures Accessibilité débutants 74/100
modelcontextprotocol/java-sdk#898 · 1 commentaire ·
Toutes les issues de modelcontextprotocol/java-sdk
Issues similaires
-
Difficulté 2/5 1-3 heures Accessibilité débutants 75/100
elastic/gradle-plugins#157 ·
-
enhancement Tools
Difficulté 1/5 Moins d'une heure Accessibilité débutants 75/100
-
Difficulté 2/5 1-3 heures Accessibilité débutants 70/100
apache/rocketmq-dashboard#5008 ·
-
bug
Difficulté 2/5 1-3 heures Accessibilité débutants 75/100
-
DETECT_PARAMETER_NAMES=false silently disables @ConstructorProperties-based Creator detection too Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 70/100
FasterXML/jackson-databind#6229 ·