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 / MCP Server tools/list ...
Copilot Studio
Answered

MCP Server tools/list never called after successful initialize handshake

(2) ShareShare
ReportReport
Posted on by 6
Issue Summary
Copilot Studio successfully connects to my MCP server and completes the OAuth flow and initialize handshake, but never calls `tools/list` to discover available tools. The Tools section in Copilot Studio shows "No tools available."
 
Environment
  - Copilot Studio (Preview - https://copilotstudio.preview.microsoft.com)
  - MCP Protocol Version: 2024-11-05
  - MCP Server: AWS Lambda (Python) with OAuth 2.0 Dynamic Discovery

Steps to Reproduce
  1. Create an MCP server that supports OAuth 2.0 with Dynamic Client Registration
  2. Add MCP connector in Copilot Studio using "Dynamic discovery" authentication
  3. Complete Google OAuth flow successfully
  4. Observe that Tools section shows empty

Expected Behaviour
After `notifications/initialized`, Copilot Studio should call `tools/list` to discover available tools.

Actual Behaviour
  Copilot Studio sends:
  1. `initialize` (id: "1") → Server responds correctly
  2. `notifications/initialized` → Server acknowledges
  3. **Never sends `tools/list`**

Server Response Evidence
The initialize response looks correct:
​​​​​

  {
    "jsonrpc": "2.0",
    "result": {
      "protocolVersion": "2024-11-05",
      "capabilities": {"tools": {"listChanged": true}},
      "serverInfo": {"name": "expert-mcp", "version": "1.0.0"}
    },
    "id": "1"
  }

 
 Verification
  - Direct curl to tools/list returns the tools successfully
  - OAuth flow completes without errors
  - Connection shows green checkmark in Copilot Studio
  - Same issue with listChanged: true and listChanged: false
 
 Browser Network Tab
 When clicking refresh in Copilot Studio, it calls Microsoft's internal API:
  /powervirtualagents/bots/.../modelcontextprotocol/listtools which returns {"tools": [], "resources": [], "errors": []}
 
This suggests Copilot Studio caches tool discovery but never populates it from the MCP server.

Any ideas on what is happening?
I have the same question (0)
  • Verified answer
    FG-17121246-0 Profile Picture
    7 on at
    Are you handling "notifications/initialized" correctly? For me that was the cause, I was not returning an empty body. This works for me:
    MCP request: {"jsonrpc" => "2.0", "method" => "notifications/initialized"}
    MCP response: {"jsonrpc" => "2.0"}

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

Introducing the 2026 Season 1 community Super Users

Congratulations to our 2026 Super Users!

Kudos to our 2025 Community Spotlight Honorees

Congratulations to our 2025 community superstars!

Congratulations to the March Top 10 Community Leaders!

These are the community rock stars!

Leaderboard > Copilot Studio

#1
Valantis Profile Picture

Valantis 612

#2
chiaraalina Profile Picture

chiaraalina 170 Super User 2026 Season 1

#3
deepakmehta13a Profile Picture

deepakmehta13a 116

Last 30 days Overall leaderboard