mcp_kit currently supports the following MCP server surface:
| Area | Status | Notes |
|---|---|---|
Streamable HTTP transport (POST) | ✅ | Supported |
SSE session stream (GET) | ✅ | Supported for active sessions |
Session termination (DELETE) | ✅ | Supported |
Lifecycle (initialize, ping, notifications/initialized) | ✅ | Supported |
Tools (tools/list, tools/call) | ✅ | Supported |
Prompts (prompts/list, prompts/get) | ✅ | Supported |
Resources (resources/list, resources/read, resources/templates/list) | ✅ | Supported |
Utilities (completion/complete, notifications/cancelled) | ✅ | Supported |
| Request-time policy enforcement | ✅ | Via MCPKit.Policy |
| Resource subscriptions | ❌ | Not implemented |
| Resource update notifications | ❌ | Not implemented |
| Logging capability | ❌ | Not implemented |
| Progress notifications | ❌ | Not implemented |
| List-changed notifications | ❌ | Not implemented |
| Public host API for runtime-initiated client requests | ❌ | Internal plumbing exists, but no public host API yet |
Positioning
Today mcp_kit is best described as a Phoenix-oriented MCP server runtime with:
- tools
- prompts
- resources
- completions
- request-time policy enforcement
It is not yet a full bidirectional public runtime for host applications.