Hacktoberfest 2026:メンテナが10月に向けて印を付けた、オープンで初心者向けの issue。 Hacktoberfest の issue を見る

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

オープン 初心者向け
#2,981 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

メンテナーはふだん 1 日以内に返信

@kjgggggg がすでに取り組んでいます。

2026年10月28日 から。

  • #2986 @kjgggggg による — オープン

評価

難易度
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 を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。

はじめの一歩

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

colbymchenry/codegraph のほかの issue

colbymchenry/codegraph の issue をすべて見る

似ている issue

C の issue をもっと見る

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

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