Skip to content

MCP SDK 1.17.4 StreamableHttp auto-detection breaks SSE-based MCP server connections in agent framework #93

@raycoderhk

Description

@raycoderhk

Discovered a break for examples/simple-prompt-agent
where pnpm dev gives error: Failed to create URL MCP client for "todo-list"

Behavior: Agent generates text responses instead of using MCP tools
Error pattern: StreamableHTTPEdgeClientTransport trying to POST to /sse

🔍 Key Evidence from Terminal Logs:

  1. MCP SDK Version: @modelcontextprotocol/sdk@1.17.4 (line 1021 from earlier logs)
  2. Transport Auto-Detection Issue: SDK chooses StreamableHTTPEdgeClientTransport for HTTP URLs
  3. Protocol Mismatch: StreamableHttp POSTs to /sse, but SSE servers expect GET /sse then POST /sse/message
  4. Inspector Works: MCP Inspector successfully uses SSE protocol with same server
  5. Agent Framework Fails: Cannot connect using URL-based configuration

🔧 Affected Components:

  • File: packages/agent/src/client/mcp-client-manager.ts
  • Method: connectUrl() - relies on external SDK transport auto-detection
  • Issue: No way to force SSE transport for HTTP URLs
  • Impact: All SSE-based MCP servers cannot be used with agent framework

Detailed error in terminal:

[0]     _name: 'agent-toolbox',
[0]     _version: '1.0.0',
[0]     mcpConnections: {},
[0]     _callbackUrls: [],
[0]     enhancedConnections: Map(0) {}
[0]   },
[0]   mcpConfig: { mcpServers: { 'todo-list': [Object] } }
[0] }
[0] 🔧 Using static MCP configuration (imported mcp.json)
[0] 🔍 Found 0 Fetcher service bindings to test: 
[0] 🔧 Toolbox Service: Initializing with 1 configured servers and 0 Fetcher bindings to test
[0] 🔗 Initializing URL MCP client for "todo-list" at http://localhost:8788/sse
[0] ▲ [WARNING] No authProvider provided in the transport options. This client will only support unauthenticated remote MCP Servers
[0] 
[0] 
[0] ✘ [ERROR] ❌ Failed to create URL MCP client for "todo-list": Error: Network connection lost.
[0] 
[0]       at async StreamableHTTPEdgeClientTransport.send (file:///Users/raymond/Documents/GitHub/typescript-agent-framework/node_modules/.pnpm/@modelcontextprotocol+sdk@1.17.4/node_modules/@modelcontextprotocol/sdk/src/client/streamableHttp.ts:430:24) {
[0]     remote: true,
[0]     retryable: true
[0]   }
[0] 
[0] 
[0] 
[0] 🎯 Toolbox Service Initialization Summary:
[0] 📈 Total servers/bindings processed: 1
[0] ✅ Successfully connected: 0
[0] ❌ Failed to connect: 1
[0] ⏭️  Skipped: 0
[0] 
[0] 🔗 Active connections: 0
[0] 🛠️  Total tools available: 0 (0 unique)
[0] 
[0] 🚀 Toolbox Service ready! Configured + Auto-discovery enabled.
[0] 
[0] ℹ️  No tools detected from MCP servers```

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions