Summary
I'm trying to connect Claude's MCP (Model Context Protocol) client to Xano's MCP server, but the connection fails immediately after starting. The logs show that the SSE endpoint is returning HTML content instead of the expected Server-Sent Events stream.
Configuration
I've configured Claude's claude_desktop_config.json
with the Xano MCP server:
{
"mcpServers": {
"xano": {
"command": "/path/to/mcp-remote",
"args": [
"https://xr0a-7rd9-w938.n7d.xano.io/x2/mcp/meta/mcp/sse",
"--header",
"Authorization: Bearer ${AUTH_TOKEN}"
],
"env": {
"AUTH_TOKEN": "[my-auth-token]"
}
}
}
}
What I've Tried
Installed mcp-remote globally:
npm install -g mcp-remote
Updated configuration to use direct path to mcp-remote binary
Verified the endpoint is accessible using curl - it returns HTTP 200 OK
Checked Claude logs which revealed the root cause
The Problem
When testing the SSE endpoint directly:
curl -D - "https://xr0a-7rd9-w938.n7d.xano.io/x2/mcp/meta/mcp/sse" \
-H "Authorization: Bearer [token]"
The response headers show:
HTTP/2 200
content-type: text/html
However, for Server-Sent Events (SSE) to work properly, the endpoint should return:
content-type: text/event-stream
Error Messages from Claude Logs
- "SSE error: Invalid content type, expected 'text/event-stream'"
- "Error POSTing to endpoint (HTTP 405): 405 Not Allowed"
- "Server transport closed unexpectedly"
- "MCP error -32001: Request timed out"
The MCP client expects an SSE stream but receives an HTML page instead, causing the connection to fail.
Questions
Is the
/x2/mcp/meta/mcp/sse
endpoint the correct URL for MCP connections?Should this endpoint be returning
content-type: text/event-stream
for SSE connections?Are there additional headers or authentication requirements needed for the MCP server?
Is the Xano MCP server implementation fully deployed and ready for use?
Thanks for the help Xano team 🫶
My Environment Details
Claude Desktop with MCP support
mcp-remote version: 0.1.16
Node.js: v22.16.0
OS: macOS