Add an MCP server contrib exposing the graph as native agent tools
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 68/100
- Tipo de issue
- Nueva funcionalidad
- Claridad
- Bastante claro
- Estado de actividad
- Tranquilo
- Stack tecnológico
- typescript
Línea de trabajo
Comienza leyendo src/query/graph_query.ts y src/agent/agent_tools.ts; después, compara el diseño de contribs/web_visualisation. El trabajo estará terminado cuando contribs/mcp_server contenga su paquete, un adaptador MCP stdio, seis herramientas equivalentes y ejemplos de configuración en README, sin cambios en core GraphQuery ni en el código de extracción.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Goal
Ship an MCP server under ./contribs/mcp_server that exposes the knowledge graph as native, callable agent tools — the "MCP server" row of the integration table in #10. This is step 2 of that issue's proposed plan (after the Skill), giving tool-native, cross-agent access (Claude Code, Cursor, etc.) with no Bash shell-out.
Tracks #10.
Why we are well positioned
The query layer is already "JSON in, JSON out" and the tool surface is effectively designed:
GraphQuery(src/query/graph_query.ts) exposes instance methods that map one-to-one onto tools:whoCalls,references,blastRadius,deadExports,neighborhood.- src/agent/agent_tools.ts already declares these as OpenAI-format function tools (
find_symbol,who_calls,references,blast_radius,dead_exports,neighborhood). The MCP server is a thin re-expression of the same schema over the MCP protocol.
The hard part (a clean, machine-readable query surface) is done; this is plumbing.
Proposed tools
| MCP tool | Backing call | Purpose |
|---|---|---|
find_symbol |
name → candidate ids | Resolve a symbol name to node ids. Entry point — never invent ids. |
who_calls |
GraphQuery.whoCalls(id) |
Direct callers of a function/method. |
references |
GraphQuery.references(id) |
Everything referencing a symbol/type (calls, type usage, heritage, reads). |
blast_radius |
GraphQuery.blastRadius(id, depth) |
Transitive impact of changing a node. |
dead_exports |
GraphQuery.deadExports() |
Exports with no references. |
neighborhood |
GraphQuery.neighborhood(id) |
Incoming/outgoing edges around a node. |
Scope
- New self-contained contrib package in
./contribs/mcp_server(its ownpackage.json, following theweb_visualisationcontrib layout). - Stdio MCP server (
@modelcontextprotocol/sdk) that opens the graph database and adaptsGraphQueryto MCP tool calls. - Reuse the existing tool names/descriptions from
agent_tools.tsso behavior matches the in-process agent. - README with install snippet and the
mcpServersconfig block for Claude Code / Cursor.
Out of scope
- The Skill (step 1 of #10) and the
PreToolUsealways-on hook (deferred in #10). - Any change to core
GraphQuery/ extraction code — the adapter should be additive.
References
- Parent issue: #10
GraphQuery: src/query/graph_query.ts- Existing tool schemas: src/agent/agent_tools.ts
- Graphify MCP roadmap (their issue #146): https://github.com/safishamsi/graphify
- Lenguaje dominante
- TypeScript
- Estrellas
- 7
- Forks
- 0
- Métricas de merge de PR
- Sin PR fusionados en 30 d
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
- 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.
Más de jeromeetienne/codespine
-
enhancement vision
Dificultad 5/5 Más de una semana Aptitud para principiantes 25/100
jeromeetienne/codespine#234 · 1 comentario ·
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 25/100
jeromeetienne/codespine#233 ·
-
Dificultad 4/5 3-5 días Aptitud para principiantes 45/100
jeromeetienne/codespine#232 ·
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 25/100
jeromeetienne/codespine#223 ·
-
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
jeromeetienne/codespine#220 · 1 comentario ·
Todos los issues de jeromeetienne/codespine
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
home-assistant/frontend#55841 ·
Los mantenedores suelen responder en 1 día
-
community first-timers-only good first issue hacktoberfest help wanted low hanging fruit up-for-grabs
Dificultad 1/5 Menos de una hora Aptitud para principiantes 76/100
lingdojo/kana-dojo#33905 · 1 comentario · 5 reacciones ·
Los mantenedores suelen responder en 1 día
-
bug(semester-planning): the edit application dialog cannot save with an empty «Annet fra bedriften»Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Los mantenedores suelen responder en 1 día
-
blocklist removal
Dificultad 2/5 1-3 horas Aptitud para principiantes 66/100
MetaMask/eth-phishing-detect#311215 ·
Los mantenedores suelen responder en 1 día
-
Explore filter: multi-select value list with allowNewOptions stops accepting values and drops earlier onesPosiblemente ocupada @isaac-jaynes-imperva la tomó hoy. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
apache/superset#46146 · 1 comentario ·
Los mantenedores suelen responder en 2 días