LINQ to DB CLI MCP
Консольная утилита linq2db с MCP-сервером: агент смотрит схему любой из поддерживаемых баз и запускает один SELECT за раз.
- 3 334 ★ репозитория
- Последний коммит
Расширенный доступ
Почему такой уровень
- Агент читает данные базы с правами профиля, а при включенном `linq2db_execute` способен менять их.
Установка
- Работает в
Ручная установка
dotnet tool install -g linq2db.cliПервая команда установки из README, нужен .NET 10 SDK.
Доступ и проверки
Как мы проверяемРасширенный доступИнструмент запускает код или ходит в сеть, а внешние данные только читает.
- Агент читает данные базы с правами профиля, а при включенном `linq2db_execute` способен менять их.
Это чужой код. Посмотрите файлы в репозитории перед установкой.
Что делает
`dotnet linq2db mcp` запускает MCP-сервер по stdio поверх базы данных, к которой подключены профили из локального JSON-конфига. Агент сначала вызывает `linq2db_info`, чтобы узнать профили, провайдеры, диалекты SQL и правила безопасности. Затем `linq2db_schema` отдает таблицы, представления, колонки, ключи и связи, а `linq2db_query` выполняет один готовый SQL-запрос только на чтение. Инструмент `linq2db_skill` возвращает подробное руководство по работе. Записывающий инструмент `linq2db_execute` выключен по умолчанию. Для него нужны флаг `--enable-execute-tool` при запуске сервера и параметр `enableExecute: true` в выбранном профиле. Ответы запросов ограничены 8 МиБ, лишние строки обрезаются с предупреждением.
Для кого. Разработчикам на .NET, которые хотят, чтобы агент видел реальную схему и данные базы при работе над запросами и маппингами.
Подходит, если
- Агент ищет причину медленного запроса и сверяет код с реальным распределением данных.
- Перед правкой маппинга надо понять, какие колонки допускают NULL и какие связи есть между таблицами.
- Аналитик задает вопрос по данным, а агент читает код приложения и сразу проверяет ответ в базе.
- Для регрессионного теста по багу нужен образец реальных записей.
Не подходит, если
- На рабочей базе с персональными данными нет отдельного профиля с ограниченными правами.
- Нужен инструмент для миграций и DDL: `query` рассчитан на чтение результатов.
- Рядом стоит старый .NET SDK, и версия 10 недоступна.
Пример запроса к агенту
Подключись к профилю dev, покажи схему таблиц заказов и выведи десять самых больших заказов за последний месяц.MCP
- Транспорт
- stdio
- Авторизация
- не нужна
Ограничения
Для установки нужен .NET 10 SDK, для запуска хватает .NET 8 или новее. Строка подключения лежит в профиле конфига: лучше брать ее из переменной окружения через `--connection-string-env`, а файл с учетными данными исключить из git. Для Windows есть шифрованное хранилище `credentials`. Агент может читать любые таблицы, доступные пользователю базы, поэтому права профиля задают границы доступа. Для старых Access и Informix встречаются требования к разрядности драйвера.
Как отключить. Удалите MCP-подключение из клиента и выполните `dotnet tool uninstall -g linq2db.cli`. Файлы конфигурации с профилями удалите отдельно, особенно если в них записана строка подключения.
Частые вопросы
Как включить запись в базу?
Запустите сервер с `--enable-execute-tool` и задайте `enableExecute: true` в нужном профиле. Без обоих условий `linq2db_execute` не регистрируется. Агенту разрешайте запись только после явного подтверждения.
Какие базы поддерживаются?
Те, что знает linq2db: SQL Server, PostgreSQL, MySQL, Oracle, SQLite, ClickHouse, DB2, Firebird, SAP HANA и другие. Провайдер указывается в профиле, а `linq2db_info` показывает доступные.
Можно ли подключить несколько проектов?
Да. Зарегистрируйте тот же исполняемый файл несколько раз с разными `--config`. В каждом конфиге раздел `mcp` задает название и инструкции для своего набора баз.
Что делать, если MCP-клиент недоступен?
Используйте `dotnet linq2db query --sql "..."` напрямую: команда читает те же профили и печатает результат в `json`, `json-table` или `csv`.
Где хранить строку подключения?
Передавайте ее через `--connection-string-env`: литеральная строка попадет в JSON-профиль и вызовет предупреждение в `stderr`. Файл с учетными данными исключите из git. На Linux и macOS создаваемые файлы получают права только для владельца.
Обсуждение
Вопросов и отзывов пока нет.
Похожие
MCP-серверыТерминальный клиент баз данных на Rust с MCP и JSON CLI: агент читает схему и запускает запросы с правами профиля.
Один MCP-сервер для SQLite, SQL Server, PostgreSQL и MySQL: агент читает и меняет данные, правит схему и выгружает CSV и JSON
MCP-сервер и скилл dbcode-cli: агент запускает SQL через подключения, которые уже сохранены в расширении DBCode для редактора.
Десктопное рабочее место для SQL с встроенным MCP-сервером: агент читает схему и выполняет запросы в том же клиенте, где работаете вы
MySQL MCP Server Pro
mysql_mcp_server_pro
MCP-сервер для MySQL: выполняет SQL с ролями доступа, ищет таблицы по комментариям и разбирает блокировки, индексы и планы запросов
Легкое рабочее место для баз данных с MCP-сервером: агент читает схему, выполняет запросы и разбирает данные в PostgreSQL, MySQL и других
Сравнение с похожими
Карточки с тем же главным запросом: чем они отличаются.
| Инструмент | Официальный | Авторизация | Звезды репозитория | Главное отличие |
|---|---|---|---|---|
| LINQ to DB CLI (эта карточка) | да | не нужна | 3 334 | |
| MCP Database Server | нет | API-ключ | 391 | одним сервером объединяет SQLite, SQL Server, PostgreSQL и MySQL и умеет менять данные; здесь запись выключена и провайдеров больше |
| MCP Toolbox for Databases | да | не нужна | 16 847 | сервер Google с инструментами из tools.yaml; здесь инструменты фиксированы, а профили описывают базы |
Коротко о README
Утилита ставится как глобальный dotnet tool. Кроме MCP, она генерирует модели базы данных и читает метаданные схемы, а профили конфигурации общие для всех команд.