picomcp ориентирован на MCP 2025-11-25 и при согласовании поддерживает 2025-06-18, 2025-03-26 и 2024-11-05. Каждая поддерживаемая возможность покрыта тестами, включая сквозные тесты с клиентом официального TypeScript SDK.
Поддерживается#
| Область | Возможность |
|---|---|
| Жизненный цикл | initialize с согласованием версии, notifications/initialized, ping |
| Инструменты | tools/list, tools/call, проверка входных данных, outputSchema и structuredContent, аннотации, заголовки |
| Содержимое | текст, изображения, аудио, ссылки на ресурсы, встроенные ресурсы |
| Ресурсы | resources/list, resources/templates/list, resources/read, текстовое и двоичное содержимое |
| Промпты | prompts/list, prompts/get, аргументы из схем |
| Утилиты | notifications/cancelled с AbortSignal |
| JSON-RPC | Пакеты, коды ошибок, ответы клиента игнорируются |
| stdio | JSON, разделённый переводами строк, stdout защищён от случайных логов |
| Streamable HTTP | JSON-ответы без состояния, 202 для уведомлений, 405 для GET, CORS, проверка Origin и MCP-Protocol-Version |
Пока не поддерживается#
| Возможность | Почему |
|---|---|
| Sampling, elicitation, roots | Для них сервер должен отправлять запросы клиенту. Архитектура picomcp без состояния пока не держит для этого открытый канал. |
Уведомления о логах, прогрессе и list_changed | По той же причине: это сообщения от сервера к клиенту. |
| Подписки на ресурсы | По той же причине. |
| Автодополнение | Запланировано. |
| Курсоры пагинации | Списки возвращаются целиком. Этого достаточно для серверов с сотнями записей. |
Сессии (Mcp-Session-Id) и потоки SSE | Не нужны в режиме без состояния. |
| Tasks | В спецификации пока экспериментальные. |
Нужна одна из этих возможностей? Создайте issue и опишите свой сценарий. Новые возможности появляются, когда их можно добавить, не раздувая picomcp.