modelcontextprotocol / modelcontextprotocol/csharp-sdk
Dictionary<string, JsonElement> overload for CallToolAsync
Nadie ha tomado este issue todavía.
- 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
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- 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