MCP URL/SSE transport: tool calls fail with "Expecting value: line 1 column 1" while proxy works from curl

Where does the bug appear (feature/product)?

Cursor IDE

Describe the Bug

Environment: macOS; Cursor (full license). MCP servers are URL-based using mcp-proxy (SSE) on localhost port 7071 and 7072.

What happens: Confluence and Jira MCP servers are configured in mcp.json with url pointing to localhost:7071/sse and localhost:7072/sse (no command/args). A separate process runs mcp-proxy which spawns the real MCP backends (Docker) and exposes them over SSE. From terminal, the proxy works: curl to the sse endpoint shows valid SSE. In Cursor, any MCP tool call (e.g. confluence_get_current_user) fails with: Expecting value: line 1 column 1 (char 0). No MCP error in Settings; servers appear connected.

Possible cause: The error suggests Cursor’s MCP client receives empty or non-JSON when reading the response from the URL/SSE transport—likely a client-side bug in how Cursor handles URL/SSE MCP responses.

Steps to Reproduce

  1. Configure MCP servers in mcp.json with url set to localhost:7071/sse and localhost:7072/sse.
  2. Start the SSE proxy (e.g. mcp-proxy) so it listens on 7071 and 7072 and bridges to stdio MCP backends.
  3. In Cursor, reload MCP or restart Cursor.
  4. Invoke any tool from either server (e.g. get current user).
  5. Observe: Expecting value: line 1 column 1 (char 0) while curl to the same sse endpoint shows valid SSE.

Expected Behavior

Tool calls to the URL/SSE MCP servers should succeed when the proxy is running and responds correctly to curl.

Operating System

MacOS

Version Information

Cursor IDE (latest). Issue reproduced after Reload Window and full restart.

Does this stop you from using Cursor

No - Cursor works, but with this issue

Hey Jackie!

I spent some time trying to reproduce this, but couldn’t get it to fail. I set up mcp-proxy bridging to a Docker MCP server (mcp/everything image) on localhost, pointed Cursor at the SSE endpoint, and tool calls all worked fine.

Worth noting that the error (Expecting value: line 1 column 1 (char 0)) is actually a Python JSON parse error coming from mcp-proxy, not from Cursor. It probably means the stdio backend (your Docker container) is returning an empty response or an invalid JSON response to the proxy.

Could you share your full mcp.json config and the exact mcp-proxy command you’re using to launch the Confluence/Jira backends? Also worth trying: call one of the tools outside of Cursor (e.g. via MCP Inspector) to see if the error still happens, which would narrow down whether it’s the proxy/backend chain or something Cursor-specific.