MCP: инструменты Markdown-библиотеки
Двенадцать уроков собственного локального MCP-сервера: обнаружение, поиск, чтение ресурсов, границы доступа, подтверждение черновика и повтор запроса.
Сквозной проект — собственный локальный MCP-сервер авторской Markdown-библиотеки. Профиль: 2026-07-28, modern-only stdio, Python 3.13 и stdlib. Нет legacy initialize/session, HTTP, OAuth, SSE, subscriptions, sampling или AI-вызовов. Клиент синхронный, reader-only, не универсальный SDK.
Reader читает public; editor определяется доверенной конфигурацией процесса. Запись требует отдельного операторского одобрения точного содержимого, срока и транзакции. Черновики лежат в SQLite и не публикуются. Для реальной изоляции operator.py, его база и окружение должны быть недоступны агенту; учебная папка не создаёт границу ОС.
Нужны основы Python, JSON, функций, файлов и Markdown. Примеры не выполнялись, тесты и деплой отсутствуют; ожидаемые эффекты не выдаются за наблюдения. Полные папки lesson-NN выбираются целиком.
Последовательность результатов
| Урок | Результат |
|---|---|
| 1. Данные и обязанности MCP-сервера | Подготовить собственный корпус и разделить клиента, сервер и библиотеку. |
| 2. MCP: JSON-RPC и обнаружение сервера | Ответить на server/discover по протоколу 2026-07-28. |
| 3. MCP: описание инструментов и проверка аргументов | Опубликовать узкие schemas и проверять фактические аргументы. |
| 4. MCP: поиск по разрешённым Markdown-документам | Вернуть ограниченный набор источников в устойчивом порядке. |
| 5. MCP: чтение документа по идентификатору | Прочитать полный публичный документ без произвольного пути. |
| 6. MCP: ошибки протокола и ошибки инструмента | Различать некорректный запрос, отсутствие источника и ошибку выполнения. |
| 7. MCP: ресурсы и устойчивые URI | Добавить resources/list и resources/read для тех же источников. |
| 8. MCP: роль сервера и доступ до поиска | Применить доверенную роль процесса перед чтением и ранжированием. |
| 9. MCP: черновик только после серверного подтверждения | Проверить одноразовое подтверждение точного содержимого перед записью. |
| 10. MCP: повтор запроса и идемпотентная запись | Повторить одну операцию без второго черновика и отвергнуть иной payload. |
| 11. MCP: клиент, который проверяет ответ сервера | Связать id запроса с ответом, ограничить ожидание и завершить процесс. |
| 12. Передача MCP-инструментов в сопровождение | Описать совместимость, ограничения, данные и порядок обновления. |
Скачать полные состояния. Источники и границы указаны в каждом уроке; runtime/model calls остаются not_run.