The odata-mcp server has been thoroughly tested and is fully compliant with the MCP (Model Context Protocol) specification v2024-11-05.
All standard MCP protocol tests pass:
- JSON-RPC 2.0 validation
- Proper error handling with correct error codes
- ID preservation (numbers, strings, null)
- Notification handling (no response for notifications)
- All required methods implemented
| Method | Status | Notes |
|---|---|---|
| initialize | ✅ Pass | Returns proper capabilities and server info |
| initialized | ✅ Pass | Handled as notification (no response) |
| tools/list | ✅ Pass | Returns array of tool definitions |
| resources/list | ✅ Pass | Returns empty array (no resources) |
| prompts/list | ✅ Pass | Returns empty array (no prompts) |
| tools/call | ✅ Pass | Executes tools and returns proper content format |
| ping | ✅ Pass | Returns empty result object |
All responses match the expected MCP schema:
- Tools have required fields:
name,description,inputSchema - InputSchema is properly structured with
type: "object"andproperties - Tool responses include
contentarray withtypeandtextfields - Error responses include proper error codes
The server correctly handles:
- Missing JSON-RPC version → Error -32600
- Invalid JSON-RPC version → Error -32600
- Unknown methods → Error -32601
- Null/missing parameters
- Various ID types (number, string, null)
- Malformed requests
- Custom Compliance Tests: Created comprehensive test suites
- MCP Inspector: Official tool recommendation
- Trace Logging: Implemented detailed trace logging for debugging
The trace logs show:
- Clean request/response flow
- Proper JSON-RPC message structure
- No errors during normal operation
- All messages properly formatted
Despite being fully MCP compliant, Claude Desktop may show validation errors due to:
- Client-side schema validation that's stricter than the MCP spec
- Undocumented requirements specific to Claude Desktop
- Version mismatches between client and server expectations
To debug Claude Desktop issues:
-
Enable trace logging:
./odata-mcp --trace-mcp
-
Check trace file:
cat /tmp/mcp_trace_*.log | python3 -m json.tool
-
Use MCP Inspector:
npx @modelcontextprotocol/inspector ./odata-mcp
The odata-mcp server is fully MCP compliant. Any validation errors seen in Claude Desktop appear to be client-specific and not due to protocol violations.