MCP 2.0 избавился от сессий: Уиллисон за неделю собрал на нём три инструмента

Во вторник вышла новая спецификация Model Context Protocol от 28 июля 2026 года, автор называет её MCP 2.0 или «stateless MCP» и считает самым значительным изменением протокола с момента его запуска. MCP был представлен Anthropic в ноябре 2024 года, пережил всплеск интереса в течение 2025 года, а затем оказался в тени Skills (ещё одной разработки Anthropic), когда выяснилось, что агент с доступом к терминалу и curl способен делать почти то же самое более гибко.
Автор объясняет, почему вновь заинтересовался MCP: давать агенту доступ к shell-окружению и интернету рискованно и требует мощной модели, способной безопасно им управлять, тогда как инструменты MCP проще проверять и контролировать, с ними справляются даже небольшие модели, работающие на ноутбуке.
Ключевое отличие новой спецификации: старый («legacy») MCP требовал двух HTTP-запросов, сначала инициализация сессии с получением идентификатора Mcp-Session-Id, затем отдельный вызов инструмента с этим идентификатором. Новая версия укладывает вызов в один HTTP-запрос с заголовками MCP-Protocol-Version, Mcp-Method и Mcp-Name, без хранения состояния сессии на сервере. Это упрощает и клиентскую, и серверную реализацию и лучше подходит для масштабируемых веб-приложений, потому что не нужно привязывать сессию к конкретной серверной машине.
За неделю автор построил на новом протоколе три проекта. Первый, mcp-explorer, CLI-инструмент на Python для интерактивного изучения MCP-серверов, написанный с помощью Codex; он запускается без установки через uvx (пример: uvx mcp-explorer list на демо-сервере agentic-mermaid.dev, созданном Аде Ошиние). Инструмент умеет выводить список доступных функций сервера, показывать JSON-схему конкретной функции (inspect) и вызывать её с аргументами (call).
Второй проект, datasette-mcp, плагин для Datasette, добавляющий эндпоинт /-/mcp. Это уже четвёртая попытка автора построить такой плагин, но только новая stateless-спецификация дала версию, которую он счёл готовой к релизу. Плагин предоставляет три функции: list_databases(), get_database_schema(database_name) и execute_sql(database_name, sql); execute_sql пока доступен только для чтения. Автор подключил плагин к Datasette-версии собственного блога и к ChatGPT и Claude. В приведённом примере Claude, отвечая на вопрос о том, что Саймон недавно писал про MCP, выполнил через плагин 7 отдельных SQL-запросов.
Третий проект, llm-mcp-client, альфа-версия плагина для авторской утилиты LLM, добавляющая официальную интеграцию с MCP. В примере запрос через LLM версии 0.32rc2 к тому же Datasette-серверу блога с просьбой посчитать заметки вернул ответ «151 заметка». Автор рассматривает возможность перенести эту функциональность в ядро LLM.
Автор называет MCP более безопасным способом строить приложения на агентах: ранее он писал о проблемах prompt injection в MCP, когда ответственность за атаки с утечкой данных перекладывается на самих пользователей, комбинирующих инструменты. Но по сравнению с агентами, которым дают произвольный доступ к shell и curl, MCP, по его словам, гораздо проще анализировать на предмет того, что может пойти не так. Он планирует активнее полагаться на MCP при создании чувствительных приложений поверх LLM.
Ключевые факты
- Вышла спецификация MCP 2.0 от 28 июля 2026 года, вместо двух HTTP-запросов с сессией (Mcp-Session-Id) теперь один запрос без хранения состояния на сервере.
- Саймон Уиллисон за неделю построил на новом протоколе три инструмента: mcp-explorer, datasette-mcp и llm-mcp-client.
- datasette-mcp, уже четвёртая попытка автора; плагин даёт три функции (list_databases, get_database_schema, execute_sql), execute_sql пока только для чтения.
- В демонстрации с Claude через datasette-mcp модель выполнила 7 отдельных SQL-запросов; llm-mcp-client через LLM 0.32rc2 на том же сервере насчитал 151 заметку.
- Автор считает MCP более безопасным путём для агентных приложений, чем произвольный доступ к shell и curl, и планирует использовать его активнее.
Почему это важно
MCP 2.0 убирает необходимость держать состояние сессии на сервере: вызов инструмента укладывается в один HTTP-запрос вместо двух. Это упрощает реализацию и клиентов, и серверов и снимает проблему привязки сессии к конкретной backend-машине, важное условие для масштабируемых веб-сервисов. Именно эта простота вернула автору личный интерес к протоколу, который последний год был в тени более гибкого подхода через shell-доступ и Skills.
Кому это важно
Разработчикам, которые строят MCP-серверы и клиентов, авторам инфраструктурных инструментов вроде Datasette, а также тем, кто хочет дать LLM-агенту доступ к данным или сервисам, не открывая ему произвольный shell и интернет. Пример: подключение датасета к ChatGPT и Claude через один и тот же MCP-эндпоинт.
Как это применить
Изучить произвольный MCP-сервер интерактивно можно через uvx mcp-explorer (list, inspect, call) без установки. Для Datasette, поставить плагин datasette-mcp, который добавляет эндпоинт /-/mcp с тремя функциями: list_databases, get_database_schema и execute_sql (пока read-only). Для утилиты LLM, поставить альфа-плагин через llm install llm-mcp-client и обращаться к любому MCP-серверу флагом -T "MCP(url)".
Можно ли доверять
Источник, личный блог Саймона Уиллисона, известного разработчика инструментов Datasette и LLM, из первых рук описывающего собственные три проекта и собственный опыт использования новой спецификации. Цифры (7 SQL-запросов, 151 заметка, LLM 0.32rc2) взяты из его же демонстраций, а не из независимой проверки. Оценка полезности MCP 2.0, личное мнение автора, а не консенсус индустрии; кто именно утверждал финальную спецификацию 2026-07-28, в тексте не уточняется.
Риски и подводные камни
execute_sql в datasette-mcp пока ограничен только чтением, запись не поддерживается. llm-mcp-client остаётся альфа-версией и ещё не встроен в ядро LLM, решение об этом не принято. Автор напоминает и о более раннем риске: при работе с MCP ответственность за небезопасные комбинации инструментов и связанные с этим утечки данных (prompt injection) ложится на самих пользователей, по его словам, эта проблема легче поддаётся анализу, чем при агентах с произвольным shell-доступом, но полностью не снята.
«Я планирую гораздо активнее опираться на MCP, когда буду строить чувствительные приложения поверх LLM.»
— Саймон Уиллисон