Add an MCP server contrib exposing the graph as native agent tools

オープン
#12 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

評価

難易度
4/5
見積もり時間
3〜5日
初心者へのやさしさ
68/100
issue の種類
機能追加
明瞭さ
おおむね明確
活発さ
静か
技術スタック
typescript
領域
api, tooling

調査の方向性

まず src/query/graph_query.ts と src/agent/agent_tools.ts を読み、次に contribs/web_visualisation のレイアウトと比較します。contribs/mcp_server にその package、stdio MCP アダプター、一致する6つのツール、README の設定例が含まれ、core GraphQuery や抽出コードに変更が加えられていなければ、作業は完了です。

索引モデルが issue の本文から書いたものです。

説明

enhancement

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 own package.json, following the web_visualisation contrib layout).
  • Stdio MCP server (@modelcontextprotocol/sdk) that opens the graph database and adapts GraphQuery to MCP tool calls.
  • Reuse the existing tool names/descriptions from agent_tools.ts so behavior matches the in-process agent.
  • README with install snippet and the mcpServers config block for Claude Code / Cursor.

Out of scope

  • The Skill (step 1 of #10) and the PreToolUse always-on hook (deferred in #10).
  • Any change to core GraphQuery / extraction code — the adapter should be additive.

References

主要言語
TypeScript
スター
7
フォーク
0
PR マージ指標
30日以内にマージされた PR はありません

環境構築

このプロジェクトには開発コンテナ、Dockerfile、コントリビューションガイドがありません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

jeromeetienne/codespine のほかの issue

jeromeetienne/codespine の issue をすべて見る

似ている issue

TypeScript の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。