web
You’re offline. This is a read only version of the page.
close
Skip to main content

Announcements

News and Announcements icon
Community site session details

Community site session details

Session Id :
Power Platform Community / Forums / Copilot Studio / Microsoft Copilot Stud...
Copilot Studio
Suggested Answer

Microsoft Copilot Studio - MCP Server Tool Discovery Issue

(3) ShareShare
ReportReport
Posted on by 11
Copilot Studio successfully authenticates with our MCP (Model Context Protocol) server using API Key authentication, completes the MCP handshake, but fails to make a follow up call for 'tools/list' which results in no tools being discovered in Copilot.
 
  Current Behavior
  1. ✅ Copilot Studio successfully authenticates
  2. ✅ MCP handshake completes normally
  3. ❌ No tools are discovered or available in Copilot Studio
  4. ❌ No follow-up tools/list requests are made
 
Complete Request/Response Flow
 
  Request 1: Initialize
  Copilot Studio → MCP Server
  {
    "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": {}
    }
  }
 
 MCP Server → Copilot Studio
  {
    "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"
      }
    }
  }
  Request 2: Notifications/Initialized
  Copilot Studio → MCP Server
  Copilot Studio → MCP Server
  {
    "jsonrpc": "2.0",
    "method": "notifications/initialized"
  }
MCP Server → Copilot Studio
  null
 
Questions for the community:
  1. Tool Discovery Protocol: Does Copilot Studio expect tools to be:
    - A) Embedded directly in the initialize response, OR
    - B) Discovered via separate tools/list requests after handshake?
  2. Required Tool Format: What is the exact JSON schema/format Copilot Studio expects for tool definitions?
  3. Debugging: Are there any Copilot Studio logs or debugging options to see why tools aren't being recognized?
  4. MCP Compatibility: Does Copilot Studio fully support the MCP 2024-11-05 specification, or are there Copilot-specific requirements?
 
What We've Tried
  - ✅ API Key authentication (working)
  - ✅ Standard MCP protocol handshake (working)
  - ✅ Proper JSON-RPC 2.0 format (working)
  - ✅ MCP protocol version 2024-11-05 (working)
  - ❌ Tool discovery (not working)
 
Expected Behavior
 
After the MCP handshake completes, Copilot Studio should either:

  1. Display the tools that were embedded in the initialize response, OR
  2. Send a tools/list request to discover available tools
 
  Additional Context
  - The same MCP server works perfectly with direct API calls
  - All 6 tools are properly registered and functional
  - Authentication and basic MCP communication work flawlessly
  - The issue is specifically with tool discovery/recognition
 
 Any guidance on the correct tool discovery protocol for Copilot Studio would be greatly appreciated!
 
 
I have the same question (12)
  • Suggested answer
    DAnny3211 Profile Picture
    138 on at
    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.*

Under review

Thank you for your reply! To ensure a great experience for everyone, your content is awaiting approval by our Community Managers. Please check back later.

Helpful resources

Quick Links

Season of Sharing Community Challenge Launch!

Jump in, show your community spirit, and win prizes!

Kudos to our 2025 Community Spotlight Honorees

Expanding mentorship, skilling, and AI innovation

Congratulations to the May Top 10 Community Leaders!

These are the community rock stars!

Leaderboard > Copilot Studio

#1
Valantis Profile Picture

Valantis 256

#2
Romain The Low-Code Bearded Bear Profile Picture

Romain The Low-Code... 208 Super User 2026 Season 1

#3
Vish WR Profile Picture

Vish WR 198

Last 30 days Overall leaderboard