# Supported MCP Surface

`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.
