Switch Serena MCP server from Docker to uvx with HTTP transport#9788
Switch Serena MCP server from Docker to uvx with HTTP transport#9788
Conversation
- Modified MCP config rendering to use HTTP URL (http://localhost:9121) - Added runtime dependency detection for Serena languages - Created language-to-runtime mapping for supported languages - Added uvx startup step with HTTP server - Updated tests to reflect HTTP-based configuration - All Serena tests passing Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
|
🎉 Yo ho ho! Changeset Generator found the treasure and completed successfully! ⚓💰 |
|
💫 TO BE CONTINUED... Smoke Claude failed! Our hero faces unexpected challenges... |
|
📰 VERDICT: Smoke Copilot has concluded. All systems operational. This is a developing story. 🎤 |
|
🌑 The shadows whisper... Smoke Codex failed. The oracle requires further meditation... |
|
Update the script that generates the serena configuration for the MCP gateway https://github.com/githubnext/gh-aw/actions/runs/20943158610/job/60180699502#step:25:1 |
|
@copilot merge main, format, lint |
|
@copilot Update the script that generates the serena configuration for the MCP gateway https://github.com/githubnext/gh-aw/actions/runs/20943158610/job/60180699502#step:25:1 |
The converter script now properly converts type: "stdio" to type: "local" for Copilot CLI compatibility. HTTP servers remain unchanged as type: "http". This fixes the Serena configuration for Copilot where Serena MCP server runs with HTTP transport and should keep type: "http" in the output. Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
…rver-configuration-again # Conflicts: # .github/workflows/cloclo.lock.yml # .github/workflows/mcp-inspector.lock.yml # .github/workflows/q.lock.yml # actions/setup/sh/convert_gateway_config_copilot.sh
- Merged main branch with conflict resolution - Combined stdio-to-local conversion with URL rewriting in converter - Recompiled all 119 workflows successfully Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
|
💫 TO BE CONTINUED... Smoke Claude failed! Our hero faces unexpected challenges... |
|
🌑 The shadows whisper... Smoke Codex failed. The oracle requires further meditation... |
|
🎉 Yo ho ho! Changeset Generator found the treasure and completed successfully! ⚓💰 |
|
📰 VERDICT: Smoke Copilot has concluded. All systems operational. This is a developing story. 🎤 |
Smoke Test Results (Run #20947684282)Last 2 Merged PRs:
Test Results:
Overall Status: PARTIAL PASS (4/5 tests passed, serena-go unavailable) cc @pelikhan
|
Updated all three MCP gateway converters (Copilot, Claude, Codex) to properly handle direct HTTP servers like Serena: - Copilot: Added clearer comments about URL rewriting logic - Claude: Added comments clarifying gateway-proxied vs direct HTTP servers - Codex: Fixed URL construction to preserve original URL for direct HTTP servers (previously always rewrote URLs to gateway format) The regex pattern ^http://[^/]+/mcp/ only matches gateway-proxied URLs, so Serena's http://localhost:9121 passes through unchanged. Codex converter now uses conditional logic instead of always constructing gateway URLs. Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Fixed all three gateway converter scripts (Copilot, Claude, Codex) to properly preserve Serena's direct HTTP URL ( The key fix was in the Codex converter which was always rewriting URLs to the gateway format. Now all converters only rewrite URLs with Changes in commit a332056. |
|
💫 TO BE CONTINUED... Smoke Claude failed! Our hero faces unexpected challenges... |
|
🌑 The shadows whisper... Smoke Codex failed. The oracle requires further meditation... |
|
📰 DEVELOPING STORY: Smoke Copilot reports failed. Our correspondents are investigating the incident... |
|
🎉 Yo ho ho! Changeset Generator found the treasure and completed successfully! ⚓💰 |
|
📰 VERDICT: Smoke Copilot has concluded. All systems operational. This is a developing story. 🎤 |
|
💫 TO BE CONTINUED... Smoke Claude failed! Our hero faces unexpected challenges... |
|
🌑 The shadows whisper... Smoke Codex failed. The oracle requires further meditation... |
|
🎉 Yo ho ho! Changeset Generator found the treasure and completed successfully! ⚓💰 |
|
Smoke Test Results for Copilot Engine Recent PRs:
Test Results: Overall: PASS cc @pelikhan
|
Serena now runs as an HTTP MCP server started via
uvxin the agent job, replacing the previous Docker container approach. This enables language runtimes to be installed on the host system where Serena's language servers can access them.Changes
MCP Configuration
http://localhost:9121stdiotohttpin Copilot formatRuntime Detection
go,typescript→node,python,java,ruby,haskell,elixir,rust["go", "typescript"]) and long syntax with versionsuvruntime when Serena is presentServer Startup
uvx --from git+https://github.com/oraios/serena serena start-mcp-server --transport streamable-http --port 9121--verbose)/healthendpointMCP Gateway Converter Scripts (all three engines)
stdio→localtype for containerized servers, preserveshttptype for HTTP-based servers/mcp/prefix (gateway-proxied servers)http://localhost:9121) pass through unchanged in all enginesExample
Before (Docker):
Generated container config with language servers bundled inside Docker image.
After (uvx + HTTP):
Generates:
uvx --from git+https://github.com/oraios/serena serena start-mcp-server --transport streamable-http --port 9121{"serena": {"type": "http", "url": "http://localhost:9121"}}Original prompt
💬 We'd love your input! Share your thoughts on Copilot coding agent in our 2 minute survey.
Changeset
httptransport, add automatic runtime detection for Serena-selected languages, and start the MCP HTTP server viauvxwith a health check.