Conversation
… backends are ready Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
|
📰 BREAKING: Smoke Copilot is now investigating this pull request. Sources say the story is developing... |
|
🎬 THE END — Smoke Claude MISSION: ACCOMPLISHED! The hero saves the day! ✨ |
|
✨ The prophecy is fulfilled... Smoke Codex has completed its mystical journey. The stars align. 🌟 |
There was a problem hiding this comment.
Pull request overview
This PR fixes a critical issue where the MCP gateway readiness check was incorrectly passing before backend containers were fully ready. The ping method was being handled by the gateway proxy layer without forwarding to backends, causing the Copilot CLI to start too early and fail to access tools from slow-starting servers like Serena (which takes ~22s to start).
Changes:
- Replace
pingwithtools/listas the readiness probe method incheck_mcp_servers.sh - Update test assertions in
check_mcp_servers_test.shto verify the newtools/listprobe method - Add explanatory comments documenting why
tools/listis used instead ofping
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 1 comment.
| File | Description |
|---|---|
| actions/setup/sh/check_mcp_servers.sh | Changes the JSON-RPC method from ping to tools/list in the payload, updates comments to explain the rationale, ensuring the gateway waits for backend containers to be truly ready |
| actions/setup/sh/check_mcp_servers_test.sh | Updates test validation to check for tools/list method instead of ping in the script logic |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
🤖 Smoke test results for
Overall:
|
There was a problem hiding this comment.
PR switches MCP health check from ping to tools/list — a smart fix ensuring the backend container is truly ready (not just the gateway proxy). Changes are clean, comments are clear, and the test is properly updated.
📰 BREAKING: Report filed by Smoke Copilot
|
📰 VERDICT: Smoke Copilot has concluded. All systems operational. This is a developing story. 🎤 |
|
PRs: #17435 Increase scout timeout for deep research
|
|
Debug this run that was missing Serena https://github.com/github/gh-aw/actions/runs/22255965556/job/64386874977 MCP has a protocol and you need to call initialize first before tools/list . Also maintain the session id. |
Smoke Test Results — Run §22255965551
Overall: PARTIAL (16 pass, 1 skipped, 0 fail)
|
There was a problem hiding this comment.
💥 Automated smoke test review - all systems nominal!
💥 [THE END] — Illustrated by Smoke Claude
|
@copilot Debug this run that was missing Serena https://github.com/github/gh-aw/actions/runs/22255965556/job/64386874977 MCP has a protocol and you need to call initialize first before tools/list . Also maintain the session id. |
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Fixed in e73f270. The script now follows the full MCP protocol:
The curl args are built in an array to avoid duplication, so the session ID is conditionally appended cleanly. |
|
@copilot make sure to ping first |
…ze → tools/list) Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Done in 88da7ae. The script now follows the full sequence: ping → initialize → tools/list. Ping is step 1 (basic connectivity), initialize is step 2 (establishes session + captures |
|
✨ The prophecy is fulfilled... Smoke Codex has completed its mystical journey. The stars align. 🌟 |
|
🎬 THE END — Smoke Claude MISSION: ACCOMPLISHED! The hero saves the day! ✨ |
|
📰 BREAKING: Smoke Copilot is now investigating this pull request. Sources say the story is developing... |
|
PR titles:
|
|
🤖 Smoke test §22256569880 results for
Overall: ❌ FAIL (Serena MCP not available)
|
There was a problem hiding this comment.
Smoke test review of PR #17419. The full MCP handshake implementation (ping → initialize → tools/list with session ID) is correct and well-structured. Two minor observations: hardcoded protocol version and test ordering assertions. Overall this is a solid fix for the Serena readiness timing issue.
📰 BREAKING: Report filed by Smoke Copilot
|
📰 VERDICT: Smoke Copilot has concluded. All systems operational. This is a developing story. 🎤 |
Smoke Test Results — Run §22256569852Overall: PARTIAL (17 tests, 16 ✅, 1
|
There was a problem hiding this comment.
💥 Automated smoke test review - all systems nominal!
💥 [THE END] — Illustrated by Smoke Claude
The MCP gateway handles
pingrequests directly at the proxy layer without forwarding to backend containers, causingcheck_mcp_servers.shto pass in ~6s even when slow-starting backends (Serena takes ~22s) aren't ready. Additionally, sendingtools/listdirectly without the required MCPinitializehandshake violates the MCP protocol — the gateway requiresinitializeto establish a session before accepting subsequent requests, and theMcp-Session-Idreturned must be passed totools/list.Changes
check_mcp_servers.sh: Implement the full MCP protocol sequence for each server check:pingto verify basic connectivityinitialize(withprotocolVersion,clientInfo, andcapabilities) to establish a sessionMcp-Session-Idfrom theinitializeresponse headerstools/listwith theMcp-Session-Idheader when presentSince
tools/listmust be forwarded to the backend container (unlikeping, which the gateway handles itself), this also ensures the backend is truly ready before the check passes. Curl arguments are built in an array to avoid duplication across requests.check_mcp_servers_test.sh: Add assertions that verifyping,initialize, andMcp-Session-Idhandling exist in the script.The gateway startup step will now correctly wait until all backends (including Serena) are ready and have completed the full MCP handshake before the agent starts.
Warning
Custom agent used: agentic-workflows
GitHub Agentic Workflows (gh-aw) - Create, debug, and upgrade AI-powered workflows with intelligent prompt routing
Original prompt
💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.
Changeset
check_mcp_servers.shusestools/listinstead ofpingso the MCP readiness probe truly waits for backend containers to respond.✨ PR Review Safe Output Test - Run 22255965551
(www.google.com/redacted)
✨ PR Review Safe Output Test - Run 22256569852