Copilot ACP MCP Server Loading Issue
This is a standalone reproduction of an issue where MCP servers passed via the ACP newSession request are not being loaded by copilot --acp.
Issue Summary
When using copilot --acp as an ACP agent, MCP servers specified in the newSession request's mcpServers field are not loaded. The agent does not have access to tools provided by these MCP servers.
Expected Behavior
When an ACP client sends a newSession request with MCP servers configured:
{
"cwd": "/path/to/project",
"mcpServers": [
{
"name": "time",
"command": "uvx",
"args": ["mcp-server-time"],
"env": []
}
]
}The agent should:
- Start the specified MCP servers
- Make their tools available for the session
- Be able to use tools like
get_current_timefrom themcp-server-timeserver
Actual Behavior
The MCP servers are not loaded. When asked "What time is it?", Copilot does not use the MCP time server's tools.
Reproduction Steps
Prerequisites
- Install GitHub Copilot CLI:
brew install copilot-cli- Install uv (for running MCP servers):
curl -LsSf https://astral.sh/uv/install.sh | sh- Install dependencies:
npm installRun the reproduction
# Run with MCP config - should use time server but doesn't
npm run test-mcpOr manually:
npx tsx client.ts --mcp-config=mcp-config.json --prompt="What time is it?" copilot --acpWhat you'll see
The client will:
- Load the MCP config with the
timeserver - Start
copilot --acp - Send a
newSessionrequest with the MCP servers - Ask "What time is it?"
Expected: Copilot uses the get_current_time tool from mcp-server-time Actual: Copilot responds without using the MCP time server
Files
- client.ts - ACP client that connects to
copilot --acpand passes MCP servers - mcp-config.json - MCP server configuration (compatible with Claude Desktop format)
MCP Config Format
The mcp-config.json uses the same format as Claude Desktop:
{
"mcpServers": {
"time": {
"command": "uvx",
"args": ["mcp-server-time"]
}
}
}ACP Protocol Reference
Per the ACP specification, the newSession request includes:
interface NewSessionRequest {
cwd?: string;
mcpServers?: McpServer[];
// ...
}
interface McpServer {
name: string;
command: string;
args?: string[];
env?: EnvVariable[];
}Environment
- macOS
- copilot-cli version: (run
copilot --version) - @agentclientprotocol/sdk: 0.13.1
