mcp: a non-object tools/call arguments crashes the handler and is reported as an internal error to retry
メンテナーはふだん 1 日以内に返信
評価
- 難易度
- 2/5
- 見積もり時間
- 1〜3時間
- 初心者へのやさしさ
- 82/100
- issue の種類
- バグ
- 明瞭さ
- 明確に書かれている
- 活発さ
- 活発
- 技術スタック
- typescript
- 領域
- api
調査の方向性
src/mcp/session.ts の L297 付近で params.arguments || {} が取得されている箇所から始め、すでに JSON-RPC -32602 を返している隣接するツール名欠落チェックを読んで、その形を踏襲する。次に src/mcp/tools.ts の L3074 付近を見て、EXPLORE_SESSION_VIEW_ARG in args が文字列で壊れる箇所を確認する。完了条件は、文字列、数値、配列の arguments が invalid-params エラーになり、null は引き続き {} にフォールバックすること。レポートにある serve --mcp の stdio リクエストで再現する。
索引モデルが issue の本文から書いたものです。
説明
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.
- 主要言語
- C
- スター
- 73.2k
- フォーク
- 4.7k
- 平均マージ
- 3時間 13分
- マージ済み PR(30日)
- 579
環境構築
このプロジェクトには開発コンテナ、Dockerfile、コントリビューションガイドがありません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
colbymchenry/codegraph のほかの issue
-
mcp: a projectPath naming a file inside a project returns isError ("Path is not a directory")対応中かも @maxmilian が今日担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
colbymchenry/codegraph#2982 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
colbymchenry/codegraph#2974 ·
メンテナーはふだん 1 日以内に返信
-
search: FTS special characters are deleted, not separated, so leaf(entry) matches nothing対応中かも @kjgggggg が 1 日前に担当しました。 オープン
難易度 1/5 1時間未満 初心者へのやさしさ 88/100
colbymchenry/codegraph#2971 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 66/100
colbymchenry/codegraph#2959 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
TypeScript: an import resolves to a same-named method of an exported object literal instead of the exported function対応中かも @inth3shadows が 1 日前に担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
colbymchenry/codegraph#2945 ·
メンテナーはふだん 1 日以内に返信
colbymchenry/codegraph の issue をすべて見る
似ている issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
libsdl-org/SDL#16607 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
PowerShell/Win32-OpenSSH#2482 · リアクション 1 件 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 66/100
メンテナーはふだん 2 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
-
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
zephyrproject-rtos/zephyr#123881 ·
メンテナーはふだん 2 日以内に返信