
{
"jsonrpc": "2.0",
"id": "1",
"method": "initialize",
"params": {
"capabilities": {},
"clientInfo": {
"agentName": "Sales Assistant",
"appId": "redacted",
"cdsBotId": "redacted",
"channelId": "pva-studio",
"name": "mcs",
"version": "1.0.0"
},
"protocolVersion": "2024-11-05",
"sessionContext": {}
}
}
{
"jsonrpc": "2.0",
"id": "1",
"result": {
"protocolVersion": "2024-11-05",
"capabilities": {
"tools": {
"listChanged": true
},
"resources": {
"listChanged": true
},
"prompts": {
"listChanged": true
}
},
"serverInfo": {
"name": "smcp-server",
"version": "1.0.0",
"description": "MCP server for database operations"
}
}
}
Copilot Studio → MCP Server
{
"jsonrpc": "2.0",
"method": "notifications/initialized"
}
Hi,
Based on the behavior you've described, it seems that Copilot Studio expects tool discovery to occur via a **separate `tools/list` request** after the MCP handshake, not embedded directly in the `initialize` response. This aligns with the MCP 2024-11-05 specification, where `listChanged: true` flags the client to initiate follow-up discovery calls.
A few things to verify:
- **Request ID format**: Ensure the `"id"` field in your JSON-RPC responses is a **string**, not a number. Some clients strictly enforce this.
- **Tool schema**: Each tool should be defined with a clear `name`, `description`, and a valid `inputSchema`. Here's a minimal example:
```json
{
"name": "get_weather",
"description": "Returns weather data for a location",
"inputSchema": {
"type": "object",
"properties": {
"location": {
"type": "string"
}
},
"required": ["location"]
}
}
```
- **Logging**: If you're using VS Code, you can inspect the MCP server logs via `List Servers > [your server] > Show Output`. Also, make sure your server logs to `stderr` rather than `stdout`, as stdout is reserved for protocol communication.
If the `tools/list` call is not being triggered, it may be due to a subtle incompatibility in the `initialize` response or a missing capability flag. You might also want to cross-check with the [official MCP documentation](https://modelcontextprotocol.io/specification/2024-11-05/server/tools) and Copilot Studio integration guide for any Copilot-specific nuances.
Please let me know if this resolves your issue by marking the response as helpful.
Thanks and best regards,
Daniele
*Note: This response was prepared with support from Copilot to ensure clarity and completeness.*