modelcontextprotocol / modelcontextprotocol/csharp-sdk
ToolResult always returns as "Text" with without be decoded
Nessuno ha ancora preso questa issue.
- Lingua principale
- C#
- Stelle
- 4.5k
- Fork
- 814
- Merge medio
- 9g 19h
- PR unite (30g)
- 4
Descrizione
Is your feature request related to a problem? Please describe.
I've created a tool using the McpServerTool attribute that returns a list of DTOs.
I'm using this tool through a MCP Client inside a chat, everything works fine but I noticed that the result of the tool is a JSON serialized with the result of the tool like this:
{"content":[{"type":"text","text":"[\r\n {\r\n \u0022id\u0022: \u00224309-76-LQ21\u0022,\r\n \u0022procuringEntityName\u0022: \u0022HOSPITAL GUILLERMO GRANT BENAVENTE DE CO\u0022\r\n },\r\n {\r\n \u0022id\u0022: \u00221380-4-LQ21\u0022,\r\n \u0022procuringEntityName\u0022: \u0022Hospital Doctor Hern\\u00E1n Henr\\u00EDquez Aravena\u0022\r\n },\r\n {\r\n \u0022id\u0022: \u00221058095-30-LE21\u0022,\r\n \u0022procuringEntityName\u0022: \u0022COMPLEJO ASISTENCIAL DR. SOTERO DEL RIO\u0022\r\n },\r\n {\r\n \u0022id\u0022: \u00221058095-34-LE21\u0022,\r\n \u0022procuringEntityName\u0022: \u0022COMPLEJO ASISTENCIAL DR. SOTERO DEL RIO\u0022\r\n },\r\n {\r\n \u0022id\u0022: \u0022359-30-LP21\u0022,\r\n \u0022procuringEntityName\u0022: \u0022Instituto Nacional del Cancer\u0022\r\n }\r\n]"}]}
That content contains a lot of extra characters that causes that the token consumption be more than the expected.
Describe the solution you'd like
Is there any chance to modify the standard result to avoid this behavior?
Describe alternatives you've considered
I went deep into the codebase looking for any option that help me to accomplish that but I found nothing.
Additional context
Guida per i contributori
Apri la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Direzione di ricerca
L’issue non indica file sorgente, test o punti di ingresso; inizia tracciando come uno strumento MCP che restituisce liste di DTO diventa il contenuto testuale standard di ToolResult. Confronta il risultato serializzato con la rappresentazione richiesta e definisci il comportamento atteso con i maintainer. Il lavoro è completato quando il risultato evita la codifica non necessaria e i test coprono il caso delle liste di DTO.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- csharp
- Ambito
- api
- Tipo di issue
- Funzionalità
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Stato di attività
- Tranquilla
- Chiarezza
- Abbastanza chiara
- Idoneità per principianti
- 45/100