fastmcp-sqltools

fastmcp-sqltools

atarkowskaAGPL-3.0
1 звёзд
FastMCP SQL Tools — это MCP-сервер для SQL-запросов и управления схемами баз данных через AI-ассистента. Он поддерживает три СУБД: PostgreSQL, MySQL и SQLite. Тип базы определяется автоматически из строки подключения DATABASE_URL, настройки не требуются. Сервер пригодится разработчикам и администраторам. Через него можно просматривать таблицы, изучать их структуру, выполнять запросы на чтение и запись, создавать и изменять объекты базы. Всё это — без переключения между инструментами, прямо в чате. Сервер написан на Python с использованием asyncpg, aiomysql, aiosqlite и работает по протоколу MCP (транспорт stdio).

Установка

uvx fastmcp-sqltools

Характеристики

Общее

  • СтатусСообщество
  • Разработчикatarkowska
  • ЛицензияAGPL-3.0

Технологии

  • Языки
    Python
  • Транспорт
    stdio

Описание

Возможности

  • Получение списка всех таблиц в подключённой базе
  • Детальная информация о схеме таблицы: имена колонок, типы, ограничения (PRIMARY KEY, FOREIGN KEY, NOT NULL, UNIQUE), индексы
  • Выполнение любых SQL-запросов — INSERT, UPDATE, DELETE, CREATE, ALTER, DROP
  • Безопасное выполнение запросов только на чтение (SELECT) с дополнительной проверкой
  • Поддержка PostgreSQL (asyncpg), MySQL (aiomysql) и SQLite (aiosqlite)
  • Автоматический выбор драйвера по строке подключения
  • Поддержка удалённых и локальных баз, в том числе через URL с аутентификацией
  • Интеграция с любыми MCP-клиентами через stdin/stdout

Как подключить

  1. Установите uv (если не установлен) и выполните команду:
    uvx fastmcp-sqltools
  2. Настройте MCP-клиент. Для Claude Desktop откройте файл claude_desktop_config.json и добавьте:
    { "mcpServers": { "sql-mcp-tools": { "command": "uvx", "args": ["fastmcp-sqltools"], "env": { "DATABASE_URL": "postgresql://user:password@host:port/database" } } } }
    Используйте подходящий формат DATABASE_URL:
    • PostgreSQL: postgresql://user:pass@host:port/db или postgres://user:pass@host:port/db
    • MySQL: mysql://user:pass@host:port/db
    • SQLite: sqlite:///path/to/database.db (три слеша)
  3. Перезапустите клиент. Сервер готов к работе.

Примеры запросов

  • «Покажи список всех таблиц в базе данных»
  • «Выведи подробную схему таблицы orders: все колонки, типы, индексы и внешние ключи»
  • «Добавь в таблицу users колонку phone типа VARCHAR(20) с ограничением UNIQUE»
  • «Найди всех клиентов с суммой покупок > 5000, сгруппированных по месяцам, используя безопасный SELECT»

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

  • Язык: Python
  • Библиотеки: asyncpg, aiomysql, aiosqlite, FastMCP
  • Транспорт: stdio
  • Лицензия: GNU Affero General Public License v3.0 (AGPL-3.0)
  • Совместимость: Claude Desktop и любые MCP-клиенты, работающие через stdio
  • Разработчик: atarkowska

Поделиться