mcp: a non-object tools/call arguments crashes the handler and is reported as an internal error to retry

Cerrado Apto para principiantes
#2,981 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 1 día

Ya se ha fusionado un pull request relacionado.

  • #2986 de @kjgggggg — cerrado sin fusionar
  • #3071 de @colbymchenry — fusionado

Evaluación

Dificultad
2/5
Tiempo estimado
1-3 horas
Aptitud para principiantes
82/100
Tipo de issue
Error
Claridad
Bien especificado
Estado de actividad
Activo
Stack tecnológico
typescript
Área
api

Línea de trabajo

Empieza en src/mcp/session.ts alrededor de L297, donde se toma params.arguments || {}, y lee la comprobación adyacente de nombre de herramienta faltante que ya devuelve JSON-RPC -32602: replica su forma. Luego mira src/mcp/tools.ts alrededor de L3074 para ver dónde EXPLORE_SESSION_VIEW_ARG in args falla con una cadena. Hecho significa que una arguments de tipo cadena, número o array produce un error de invalid-params mientras que null sigue recurriendo a {}; reproduce con la solicitud stdio serve --mcp del informe.

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

Descripción

A tools/call whose arguments is not an object (a string, number or array) crashes inside the tool handler. It comes back as isError: true with "This is an internal codegraph error — retry the call once", where a client bug should get a JSON-RPC invalid-params error.

{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"codegraph_explore","arguments":"alpha"}}

→

{"isError":true,"text":"Error: Tool execution failed: Cannot use 'in' operator to search for '_cgExploreSession' in alpha. This is an internal codegraph error — retry the call once; …"}

Cause. mcp/session.ts#L297 takes params.arguments || {} without checking it is a plain object, and mcp/tools.ts#L3074 then runs EXPLORE_SESSION_VIEW_ARG in args on a string. arguments: null works (falls back to {}).

Reproduced on main at 77ee3484 (serve --mcp over stdio, Linux/WSL2, Node 22.23.2).

Expected. Reject a non-object arguments with JSON-RPC -32602 ("arguments must be an object"), as the missing-tool-name check next to it does. Per AGENTS.md ("Errors teach abandonment"), an "internal error, retry" for a caller mistake is the response most likely to make an agent give up on codegraph.

Lenguaje dominante
C
Estrellas
73.2k
Forks
4.7k
Merge medio
3 h 37 min
PR fusionados (30 d)
533

Preparar el entorno

Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.

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.

Más de colbymchenry/codegraph

Todos los issues de colbymchenry/codegraph

Issues similares

Más issues de C

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.