modelcontextprotocol / modelcontextprotocol/csharp-sdk

Dictionary<string, JsonElement> overload for CallToolAsync

Abierto
#640 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

enhancement needs confirmation
Lenguaje dominante
C#
Estrellas
4.5k
Forks
814
Merge medio
9 d 19 h
PR fusionados (30 d)
4

Descripción

Currently, if a caller has a Dictionary<string, JsonElement>, they must convert each JsonElement to object to use the CallToolAsync API since it requires Dictionary<string, object?>. But given internally CallToolAsync already special handles JsonElement and underlying SendRequestAsync supports JsonElement, would it make sense to add an overload that accepts Dictionary<string, JsonElement>? This would avoid requiring callers to perform to-object conversion or rely on implementation details by casting.

We encountered this in Azure MCP Server, and due to the Dictionary<string, object?> constraint, it requires unnecessary conversions or serialization and deserialization operations within hot path

Guía de contribución

Abrir la guía de contribución

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Línea de trabajo

Comienza en src/ModelContextProtocol.Core/Client/McpClientExtensions.cs, alrededor de la implementación de CallToolAsync y el procesamiento relacionado en la línea 1088. Comprueba cómo SendRequestAsync acepta JsonElement y, a continuación, verifica que la API admite un Dictionary<string, JsonElement> sin conversión ni sobrecoste de serialización por parte del llamador.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
csharp
Área
api
Tipo de issue
Nueva funcionalidad
Dificultad
2/5
Tiempo estimado
1-3 horas
Estado de actividad
Estancado
Claridad
Bien especificado
Aptitud para principiantes
48/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.