github / github/copilot-cli

Copilot CLI 1.0.79-1 fails MCP initialization when `server/discover` returns `-32602`

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

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

area:mcp
主要言語
Shell
スター
11.2k
フォーク
1.9k
平均マージ
14時間 16分
マージ済み PR(30日)
6

説明

Describe the bug

Copilot CLI 1.0.79-1 cannot connect to an MCP server built with FastMCP.

Before MCP initialization completes, the CLI sends a server/discover request. FastMCP does not implement this method and returns -32602 Invalid request parameters. Copilot treats that response as a fatal lifecycle negotiation error and aborts initialization.

The same server and configuration work without issue in Copilot CLI 1.0.78.

Affected version

1.0.79-1

Steps to reproduce the behavior
  1. Configure the MCP server as shown in "Additional Context".
  2. Start Copilot CLI 1.0.79-1.
  3. Observe the CLI sending server/discover.
  4. FastMCP rejects the unsupported request.
  5. Copilot aborts MCP lifecycle negotiation before initialize completes.
Expected behavior

An unsupported optional server/discover request should not block normal MCP initialization.

If the server returns an error for the probe, Copilot should continue with the standard initialize lifecycle rather than treating the response as fatal.

In particular, this should not depend on the server returning exactly -32601 Method not found. FastMCP currently returns -32602 because the request does not match any supported ClientRequest schema.

Additional context

MCP configuration

Values have been redacted:

{
  "mcpServers": {
    "fabric-rti-mcp": {
      "command": "uvx",
      "args": ["microsoft-fabric-rti-mcp"],
      "env": {
        "KUSTO_SERVICE_URI": "<redacted>",
        "KUSTO_SERVICE_DEFAULT_DB": "<redacted>",
        "FABRIC_API_BASE": "<redacted>"
      }
    }
  }
}

More Details

Another MCP implementation returns:

Method 'server/discover' is not available.

Copilot tolerates that response and continues initialization.

コントリビューションガイド

コントリビューションガイドを開く

はじめの一歩

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

調査の方向性

まず、server/discoverリクエストを送信するMCP初期化フローを追跡し、次に、ここで説明されている許容される「Method not found」応答と、-32602応答の処理を比較します。サポートされていないプローブによって初期化が中断されなくなり、FastMCP設定が標準のinitializeライフサイクルを完了できれば完了です。

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

評価

技術スタック
shell
領域
cli
issue の種類
バグ
難易度
3/5
見積もり時間
1〜2日
活発さ
活発
明瞭さ
おおむね明確
初心者へのやさしさ
65/100

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

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