Description
The Remote (SSE/OAuth) source type does not implement the legacy two-step SSE handshake used by older MCP servers. Instead it POSTs directly to the configured URL, which produces a 405 Method Not Allowed response from any server that follows the original SSE transport spec.
Expected behavior
For servers using the old-spec SSE transport, the client should:
GET /sse — server returns a session-scoped messages endpoint URL in the stream
POST to that session endpoint for subsequent messages
Actual behavior
Arc Relay POSTs directly to the configured root URL. Against an old-spec SSE server this yields 405, and following the redirect/error chain then yields 404.
Steps to reproduce
- Add a Remote (SSE/OAuth) server pointed at an MCP server that uses the legacy two-step SSE handshake (e.g.
seynurmammad0v/obsidian-mcp)
- Attempt any tool call
- Observe
405 on the configured URL, then 404 chasing the session endpoint
Notes
This is a real gap in remote SSE support — the source type name implies SSE compatibility, but the implementation does not match the handshake. Streamable HTTP (the newer transport) does not have this issue.
Arc Relay version: v0.1.1
Description
The Remote (SSE/OAuth) source type does not implement the legacy two-step SSE handshake used by older MCP servers. Instead it POSTs directly to the configured URL, which produces a
405 Method Not Allowedresponse from any server that follows the original SSE transport spec.Expected behavior
For servers using the old-spec SSE transport, the client should:
GET /sse— server returns a session-scopedmessagesendpoint URL in the streamPOSTto that session endpoint for subsequent messagesActual behavior
Arc Relay POSTs directly to the configured root URL. Against an old-spec SSE server this yields
405, and following the redirect/error chain then yields404.Steps to reproduce
seynurmammad0v/obsidian-mcp)405on the configured URL, then404chasing the session endpointNotes
This is a real gap in remote SSE support — the source type name implies SSE compatibility, but the implementation does not match the handshake. Streamable HTTP (the newer transport) does not have this issue.
Arc Relay version: v0.1.1