Add an MCP server contrib exposing the graph as native agent tools
まだ誰も着手していません。
評価
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 初心者へのやさしさ
- 68/100
- issue の種類
- 機能追加
- 明瞭さ
- おおむね明確
- 活発さ
- 静か
- 技術スタック
- typescript
調査の方向性
まず src/query/graph_query.ts と src/agent/agent_tools.ts を読み、次に contribs/web_visualisation のレイアウトと比較します。contribs/mcp_server にその package、stdio MCP アダプター、一致する6つのツール、README の設定例が含まれ、core GraphQuery や抽出コードに変更が加えられていなければ、作業は完了です。
索引モデルが issue の本文から書いたものです。
説明
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
- 主要言語
- TypeScript
- スター
- 7
- フォーク
- 0
- PR マージ指標
- 30日以内にマージされた PR はありません
環境構築
このプロジェクトには開発コンテナ、Dockerfile、コントリビューションガイドがありません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
jeromeetienne/codespine のほかの issue
-
enhancement vision
難易度 5/5 1週間以上 初心者へのやさしさ 25/100
jeromeetienne/codespine#234 · コメント 1 件 ·
-
難易度 5/5 1週間以上 初心者へのやさしさ 25/100
jeromeetienne/codespine#233 ·
-
難易度 4/5 3〜5日 初心者へのやさしさ 45/100
jeromeetienne/codespine#232 ·
-
難易度 5/5 1週間以上 初心者へのやさしさ 25/100
jeromeetienne/codespine#223 ·
-
難易度 4/5 3〜5日 初心者へのやさしさ 35/100
jeromeetienne/codespine#220 · コメント 1 件 ·
jeromeetienne/codespine の issue をすべて見る
似ている issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
home-assistant/frontend#55841 ·
メンテナーはふだん 1 日以内に返信
-
community first-timers-only good first issue hacktoberfest help wanted low hanging fruit up-for-grabs
難易度 1/5 1時間未満 初心者へのやさしさ 76/100
lingdojo/kana-dojo#33905 · コメント 1 件 · リアクション 5 件 ·
メンテナーはふだん 1 日以内に返信
-
bug(semester-planning): the edit application dialog cannot save with an empty «Annet fra bedriften»オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
メンテナーはふだん 1 日以内に返信
-
blocklist removal
難易度 2/5 1〜3時間 初心者へのやさしさ 66/100
MetaMask/eth-phishing-detect#311215 ·
メンテナーはふだん 1 日以内に返信
-
Explore filter: multi-select value list with allowNewOptions stops accepting values and drops earlier ones対応中かも @isaac-jaynes-imperva が今日担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
apache/superset#46146 · コメント 1 件 ·
メンテナーはふだん 2 日以内に返信