github / github/copilot-cli

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

Open
#4,370 3 comments 3 reactions 0 assignees View on GitHub
area:mcp
Dominant language
Shell
Stars
11.2k
Forks
1.9k
Avg merge
14h 16m
Merged PRs (30d)
6

Description

### 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:

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

## More Details

Another MCP implementation returns:

```text
Method 'server/discover' is not available.
```

Copilot tolerates that response and continues initialization.

Contributor guide

Open the contributing guide

Research direction

Start by tracing the MCP initialization flow that sends the server/discover request, then compare handling of the -32602 response with the tolerated “Method not found” response described here. Done means an unsupported probe no longer aborts initialization and the FastMCP configuration can complete the standard initialize lifecycle.

Written by the indexing model from the issue text.

Assessment

Tech stack
shell
Domain
cli
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
65/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.