Skip to content

Restore SSE legacy + update tests + docs after PR #83#85

Merged
atc964 merged 5 commits intomainfrom
fix/mcp-sse-fallback-and-tests
Apr 27, 2026
Merged

Restore SSE legacy + update tests + docs after PR #83#85
atc964 merged 5 commits intomainfrom
fix/mcp-sse-fallback-and-tests

Conversation

@atc964
Copy link
Copy Markdown
Collaborator

@atc964 atc964 commented Apr 27, 2026

Summary

Follow-up to #83 which added Streamable HTTP transport at /mcp and removed SSE entirely. Three small follow-ups:

  • Restore SSE endpoint as a legacy fallback at /mcp-sse/sse so older clients aren't broken (mirrors seller's pattern)
  • Update 3 stale tests that encoded the old SSE-only design (TestSSEMountingTestMCPMounting, CORS default test)
  • Add Streamable HTTP smoke test (route presence + in-process ASGI initialize handshake)
  • Update buyer MCP docs to point at /mcp as canonical (with /mcp-sse/sse documented as legacy fallback)
  • Fix ar-u3ox: 3 stale /mcp/sse/mcp-sse/sse corrections in deployment-ops-guide.md (seller's outbound endpoint references)

What's in

Bead Description
ar-5xcx SSE fallback + test fixes + smoke test + doc updates
ar-u3ox Buyer→seller doc path correction in deployment-ops-guide

Test posture

  • Full buyer suite: 3088 passed, 41 skipped, 0 failures
  • Live smoke: POST /mcp/ negotiates protocol (returns protocolVersion, serverInfo, capabilities); GET /mcp-sse/sse opens SSE event stream — both transports confirmed working
  • mkdocs build --strict: clean

Test plan

  • Pull, run pytest, expect green
  • Connect Claude Desktop using /mcp (Streamable HTTP) — should work
  • Connect a legacy MCP client using /mcp-sse/sse — should work
  • mkdocs build --strict clean

🤖 Generated with Claude Code

atc964 and others added 5 commits April 27, 2026 15:38
Mount legacy SSE transport at /mcp-sse alongside the Streamable HTTP
transport at /mcp. Mirrors the seller's pattern; keeps older MCP clients
working without breaking the current standard endpoint.

bead: ar-5xcx

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Rename TestSSEMounting → TestMCPMounting
- test_mount_mcp_adds_route: assert both /mcp and /mcp-sse present
- test_buyer_api_app_has_mcp_mounted: same dual-transport assertions
- test_settings_default_cors_origins: accept wildcard (correct for MCP server)
- test_app_cors_middleware_uses_settings: allow wildcard, check credentials=False

bead: ar-5xcx

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
New tests/unit/test_mcp_streamable_http.py:
- TestMCPRoutePresence: verifies both /mcp and /mcp-sse are mounted
- test_streamable_http_initialize_handshake: POSTs initialize payload
  to /mcp via ASGI in-process transport, asserts 200 + MCP fields

bead: ar-5xcx

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
All buyer-inbound doc URLs updated from /mcp/sse/sse → /mcp (Streamable HTTP).
Legacy SSE fallback noted as /mcp-sse/sse for older clients.

Files changed:
- docs/claude-desktop-setup.md
- docs/multi-client-setup.md
- docs/architecture/mcp-server.md (mounting section + diagram)
- docs/ai-assistant/developer-setup.md

bead: ar-5xcx

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Three seller-outbound endpoint references corrected:
- Buyer→seller MCP connectivity description: /mcp/sse → /mcp-sse/sse (line 708)
- MCP SSE troubleshooting check 4: /mcp/sse → /mcp-sse/sse (line 974)
- MCP client troubleshooting check 2: /mcp/sse → /mcp-sse/sse (line 1022)

Also updates buyer-inbound MCP doc URLs in the same file:
- Overview endpoint: /mcp/sse/sse → /mcp (Streamable HTTP)
- Claude Desktop config: /mcp/sse/sse → /mcp
- Streamable HTTP client example: /mcp/sse/sse → /mcp

bead: ar-u3ox

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@atc964 atc964 merged commit 10627e3 into main Apr 27, 2026
0 of 3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant