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

Notifications

Announcements

Community site session details

Community site session details

Session Id :
Power Platform Community / Forums / Copilot Studio / MCP Server tools/list ...
Copilot Studio
Unanswered

MCP Server tools/list never called after successful initialize handshake

(0) ShareShare
ReportReport
Posted on by
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)
  • FG-17121246-0 Profile Picture
    2 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

Forum hierarchy changes are complete!

In our never-ending quest to improve we are simplifying the forum hierarchy…

Ajay Kumar Gannamaneni – Community Spotlight

We are honored to recognize Ajay Kumar Gannamaneni as our Community Spotlight for December…

Leaderboard > Copilot Studio

#1
Michael E. Gernaey Profile Picture

Michael E. Gernaey 261 Super User 2025 Season 2

#2
Romain The Low-Code Bearded Bear Profile Picture

Romain The Low-Code... 198 Super User 2025 Season 2

#3
S-Venkadesh Profile Picture

S-Venkadesh 93 Moderator

Last 30 days Overall leaderboard