What's New
Streamable HTTP transport with OAuth 2.1 + PKCE (#518) — Enable Claude.ai remote MCP server connectivity by adding Streamable HTTP as a new transport mode alongside the existing SSE transport.
Added
--streamable-httpCLI flag andrun_streamable_http()method. Configure viaMCP_STREAMABLE_HTTP_HOST(default0.0.0.0) /MCP_STREAMABLE_HTTP_PORT(default9000)- Bearer token / API key auth middleware on
/mcpendpoint (HTTP 401 for unauthenticated requests) - API key-gated HTML authorization page —
/authorizenow requiresMCP_API_KEYinstead of auto-approving - JavaScript redirect for Claude.ai OAuth popup compatibility
- PKCE (S256) support across all OAuth storage backends (memory + SQLite) with automatic schema migration
- RFC 9728 OAuth Protected Resource Metadata endpoint (
/.well-known/oauth-protected-resource) refresh_tokengrant type accepted in DCR for Claude.ai compatibilitystreamable-httpmode in Docker unified entrypoint
Key Design Decisions
- Separate method, not modified
run_sse— SSE users are completely unaffected - Auth at the transport boundary — ASGI app validates Bearer tokens before MCP protocol handling
- API key gate on
/authorize— prevents unauthorized OAuth token issuance - JS redirect after authorize — Claude.ai's popup doesn't reliably follow HTTP 302 from form POST
Upgrade
pip install --upgrade mcp-memory-service
# or
uvx --upgrade mcp-memory-serviceFull Changelog: https://github.com/doobidoo/mcp-memory-service/blob/main/CHANGELOG.md