Запись архива

Datasette MCP 0.2: Simon Willison выпустил стабильный MCP-плагин для работы с базами данных через LLM

Саймон Уиллисон представил первую стабильную версию плагина datasette-mcp 0.2, который позволяет языковым моделям напрямую выполнять SQL-запросы к базам данных Datasette через протокол MCP. Ключевое изменение — маппинг результатов запроса в массив объектов вместо массива массивов.

Интерфейс плагина Datasette MCP 0.2 с SQL-запросом и результатом в виде объектов
Интерфейс плагина Datasette MCP 0.2 с SQL-запросом и результатом в виде объектов
3028-Santiago de Mens en Malpica de Bergantiños (Coruña) | by jl.cernadas | openverse | by

Саймон Уиллисон, создатель Datasette и LLM, выпустил первую стабильную версию плагина datasette-mcp 0.2. Это расширение подключает базы данных Datasette к языковым моделям через протокол MCP (Model Context Protocol), позволяя LLM выполнять произвольные SQL-запросы и получать структурированные результаты.

Релиз опубликован 1 сентября 2026 года. Предыдущие версии (0.1a) были альфа-релизами. Уиллисон отмечает, что использует плагин в повседневной работе и уверен в его стабильности.

Что изменилось в datasette-mcp 0.2

Главное изменение — формат возвращаемых данных. В предыдущих версиях команда execute_sql возвращала результат в виде массива массивов: каждая строка таблицы представляла собой массив значений, и модель должна была самостоятельно отслеживать, какой элемент массива соответствует какой колонке. Это создавало проблемы для менее мощных LLM, которые теряли контекст при маппинге позиций.

В версии 0.2 rows — это массив объектов. Каждый объект содержит имена колонок в качестве ключей и соответствующие значения. Такой формат снижает когнитивную нагрузку на модель: LLM может обращаться к данным по именам полей, а не по индексам.

Дополнительно плагин теперь зависит от mcp>=2.1.1, что обеспечивает совместимость с актуальной версией протокола MCP.

Как работает datasette-mcp

Плагин реализует один основной инструмент MCP — execute_sql. Через него LLM может:

  • Выполнять SELECT-запросы к любой таблице в подключенной базе данных Datasette
  • Использовать JOIN, GROUP BY, агрегатные функции
  • Фильтровать и сортировать данные
  • Получать метаданные схемы таблиц через SQLite-специфичные запросы

Типичный сценарий: пользователь задает вопрос на естественном языке, LLM формирует SQL-запрос, отправляет его через MCP к Datasette, получает структурированный ответ и формулирует ответ пользователю.

Важно: плагин не ограничивает модель в типах запросов. LLM может выполнять любые SQL-операторы, включая INSERT, UPDATE, DELETE, если база данных настроена на запись. Это делает плагин мощным, но требует осторожности при настройке прав доступа.

Почему это важно для разработчиков

Для разработчиков, работающих с Datasette, datasette-mcp открывает прямой канал между LLM и данными. Вместо того чтобы вручную писать SQL-запросы или использовать отдельные интерфейсы, можно делегировать эту работу модели.

Это особенно полезно в сценариях:

  • Аналитики, которые хотят быстро исследовать данные без написания SQL
  • Разработчики, интегрирующие LLM в свои приложения для ответов на вопросы по данным
  • Прототипирование: модель может сама исследовать структуру базы данных и строить запросы

Уиллисон использует datasette-mcp в связке с Claude и ChatGPT, которые поддерживают MCP. Плагин работает как локальный MCP-сервер, подключаемый к любому MCP-совместимому клиенту.

Технические детали и контекст

MCP (Model Context Protocol) — это открытый протокол, предложенный Anthropic в 2024 году. Он стандартизирует способ подключения внешних инструментов и источников данных к языковым моделям. Datasette MCP — один из примеров реализации серверной части протокола.

Плагин написан на Python и устанавливается через pip:

pip install datasette-mcp

После установки запускается как MCP-сервер, который подключается к существующей инсталляции Datasette.

Уиллисон ведет блог, где публикует заметки о разработке LLM-инструментов. Он также предлагает платную подписку ($10/месяц) с ежемесячным дайджестом ключевых событий в области LLM.

Ограничения и что стоит проверить

Плагин не ограничивает LLM в типах SQL-запросов. Если база данных открыта на запись, модель может изменять данные. Разработчикам следует настраивать права доступа на уровне базы данных, а не полагаться на ограничения плагина.

Производительность зависит от размера базы данных и сложности запросов. Для больших наборов данных рекомендуется использовать индексы и ограничивать количество возвращаемых строк.

Поддержка MCP в LLM-клиентах все еще развивается. Не все модели корректно обрабатывают структурированные ответы от инструментов. Уиллисон отмечает, что формат объектов (а не массивов) улучшает работу с менее мощными моделями, но полностью проблемы совместимости не решает.

Для тех, кто хочет попробовать

Установите datasette-mcp через pip, настройте MCP-клиент (Claude Desktop, ChatGPT с поддержкой MCP или другой совместимый инструмент) и укажите путь к плагину. После подключения можно задавать вопросы по данным на естественном языке — модель автоматически сформирует и выполнит SQL-запрос.

Репозиторий плагина доступен на GitHub в аккаунте simonw. Документация по MCP — на сайте modelcontextprotocol.io.

Источники