🔧 Critical Hotfix
Fixed HTTP MCP transport JSON-RPC 2.0 specification violation that prevented Claude Code/Desktop from communicating via HTTP MCP protocol.
🐛 Bug Fix
HTTP MCP Transport: JSON-RPC 2.0 Compliance (PR #249, fixes #236)
Problem
FastAPI ignored Pydantic's ConfigDict(exclude_none=True) when directly returning models, causing responses to include null fields:
- Success responses:
"error": null - Error responses:
"result": null
This violated JSON-RPC 2.0 spec and caused Claude Code/Desktop to reject all HTTP MCP communications.
Solution
Wrapped all MCPResponse returns in JSONResponse with explicit .model_dump(exclude_none=True) serialization.
Verification
✅ Success responses now contain ONLY: jsonrpc, id, result
✅ Error responses now contain ONLY: jsonrpc, id, error
Testing
Validated with curl commands against all 5 MCP endpoint response paths on live server.
👏 Credits
@timkjr (Tim Knauff) for identifying the root cause and implementing the proper fix.
📦 Installation
# PyPI (recommended)
pip install --upgrade mcp-memory-service
# Docker
docker pull ghcr.io/doobidoo/mcp-memory-service:8.38.1
docker pull ghcr.io/doobidoo/mcp-memory-service:latest
# uvx (one-liner)
uvx mcp-memory-service🔗 Related Issues
Full Changelog: v8.38.0...v8.38.1