modelcontextprotocol / modelcontextprotocol/java-sdk
set loggingConsumer after client initialization
Personne n'a encore pris cette issue.
- Langage dominant
- Java
- Étoiles
- 3.7k
- Forks
- 1.1k
- Merge moyen
- 1 j 15 h
- PR mergées (30 j)
- 9
Description
Expected Behavior
We should be able to set a loggingConsumer on McpClient after querying its capabilities.
var capabilities = client.getServerCapabilities();
if (capabilities.logging() != null) {
client.setLoggingLevel(McpSchema.LoggingLevel.INFO);
client.setLoggingConsumer(consumer);
}
Current Behavior
Currently, we can set a loggingConsumer with McpClientTransport before client initialization. For example,
McpClient.sync(server.transport())
.loggingConsumer(consumer)
.build();
Context
However, many MCP servers' logging capabilities are not enabled. But we cannot query if the server has this capability before client initialization. Such a poor design makes it impossible to register a logging consumer safely.
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.
Piste de recherche
Commencez par lire l’initialisation de McpClient et le flux d’interrogation des capacités, puis comparez-les à la configuration de loggingConsumer de McpClientTransport. Vérifiez le comportement de setLoggingLevel et setLoggingConsumer avant l’initialisation. C’est terminé lorsqu’un consumer peut être enregistré après que getServerCapabilities() a confirmé la prise en charge de la journalisation, sans casser l’utilisation existante du builder avant l’initialisation.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- java
- Domaine
- api, backend-api-design
- Type d'issue
- Fonctionnalité
- Difficulté
- 3/5
- Temps estimé
- 1-2 jours
- Activité
- Calme
- Clarté
- Plutôt claire
- Accessibilité débutants
- 58/100