MCP SQL Server
MCP MSSQL Сервер
Это сервер Model Context Protocol (MCP) для взаимодействия с SQL Server. Он позволяет моделям больших языков (LLM) выполнять запросы SQL, запускать хранимые процедуры и исследовать схемы баз данных с повышенной безопасностью и надежностью.
Функции
Безопасное выполнение SQL-запросов : выполнение запросов
SELECTв базах данных SQL Server. Все запросы анализируются и проверяются, чтобы гарантировать выполнение только операторовSELECT.Поддержка хранимых процедур : выполнение хранимых процедур с параметризованными входными данными.
Исследование схемы : просмотр определений таблиц и столбцов базы данных с кэшированием результатов для повышения производительности.
Надежное управление соединениями : использует глобальный пул соединений для эффективного повторного использования соединений с базой данных с настраиваемой логикой повторных попыток и тайм-аутами.
Повышенная безопасность :
Анализ SQL-запросов и белый список только
SELECT.Переменная среды
SQL_ALLOWED_DATABASESдля внесения в белый список доступных баз данных.Защита от распространенных шаблонов SQL-инъекций для переключения контекста базы данных.
Блокирует выполнение потенциально вредоносных системных процедур или команд в прямых запросах.
Настраиваемое кэширование : информация о схеме базы данных кэшируется с настраиваемым временем жизни (TTL).
Структурированное ведение журнала : интегрированный регистратор
pinoдля подробных и структурированных журналов приложений.Готовность к Docker : простое развертывание с помощью Docker.
Related MCP server: MSSQL MCP Server
Быстрый старт
Использование Docker (рекомендуется)
# Clone the repository (if you haven't already)
git clone https://github.com/JubinSaniei/mcp-mssql
# cd mcp-mssql
# Copy example configuration and edit with your settings
cp .env.example .env
nano .env # Edit with your SQL Server details and other configurations
# Start the Docker container
docker-compose up -dПолные инструкции по настройке Docker см. в файле README Docker .
Конфигурация
Сервер настроен с использованием переменных окружения. Создайте файл .env в корневом каталоге (можно скопировать .env.example ), чтобы задать эти значения.
Подробное руководство по всем параметрам конфигурации и их настройке см. в разделе CONFIG .
Категория | Переменная | Описание | По умолчанию (из config.js) |
Связь |
| Имя хоста или IP-адрес SQL-сервера |
|
| Порт SQL-сервера |
| |
| Имя пользователя SQL-сервера |
| |
| Пароль SQL-сервера | Необходимый | |
| Имя базы данных по умолчанию для подключения |
| |
Безопасность |
| Включить шифрование (установите значение |
|
| Сертификат сервера доверия (установите значение |
| |
| Список баз данных, разделенных запятыми, к которым серверу разрешен доступ. Если пусто, доступ менее ограничен (зависит от разрешений пользователя БД). |
| |
Тайм-ауты и повторные попытки |
| Время ожидания соединения (мс) |
|
| Время ожидания запроса (мс) |
| |
| Максимальное количество повторных попыток первоначального подключения |
| |
| Начальная задержка (мс) перед повторной попыткой неудачного соединения |
| |
| Максимальная задержка (мс) для повторных попыток подключения (использует экспоненциальную задержку) |
| |
Пул соединений |
| Макс. количество подключений в пуле |
|
| Мин. подключений в пуле |
| |
| Время ожидания простоя для соединений в пуле (мс) |
| |
Кэширование |
| Время жизни кэша схемы (мс) |
|
MCP-сервер |
| Имя MCP-сервера |
|
| Версия сервера MCP |
| |
Ведение журнала |
| Уровень журнала для pino logger (например, |
|
Использование с Клодом
Чтобы добавить этот MCP-сервер в Claude CLI:
# Add the MCP server using the config file
claude mcp add-json mssql-mcp "$(cat claude-mcp-config.json)"
# To add it globally
claude mcp add-json -s user mssql-mcp "$(cat claude-mcp-config.json)"
# Start a conversation with Claude using this MCP
claude mcp mssql-mcpВ разговоре с Клодом вы можете:
Выполнить запросы
SELECT:<mcp:execute_query database="YourDatabaseName"> SELECT TOP 10 * FROM YourTable </mcp:execute_query>(Атрибут
databaseявляется необязательным, если используетсяSQL_DATABASEпо умолчанию или еслиSQL_ALLOWED_DATABASESподразумевает единственный выбор.)Выполнение хранимых процедур:
<mcp:execute_StoredProcedure database="YourDatabaseName"> { "procedure": "YourSchema.YourProcedureName", "parameters": [ {"name": "Param1", "type": "NVarChar", "value": "SomeValue"}, {"name": "Param2", "type": "Int", "value": 123} ] } </mcp:execute_StoredProcedure>Изучите схему базы данных:
<mcp:schema> YourDatabaseName </mcp:schema>(Если
YourDatabaseNameне указано, по умолчанию используетсяSQL_DATABASE, указанная в переменных среды.)
Обработка соединения
Этот сервер MCP использует глобальный, надежный пул соединений (встроенный пул библиотеки mssql ), управляемый DatabaseService .
Эффективность : соединения используются повторно, что снижает накладные расходы на установление нового соединения для каждого запроса.
Устойчивость : реализует логику повторных попыток с экспоненциальной задержкой для первоначального установления соединения.
Нет состояния сеанса между вызовами : в отличие от модели сеанса на пользователя, этот сервер не гарантирует, что последующие вызовы MCP (например, два отдельных вызова
execute_query) из LLM будут использовать то же самое базовое соединение с базой данных. Поэтому специфичное для сеанса состояние, такое как временные таблицы или переменные сеанса, созданные в одном вызове, могут быть недоступны в другом. Каждый вызов следует считать атомарным с точки зрения состояния сеанса. КомандаUSE [database]выдается в каждой операции, если целевая база данных отличается от базы данных по умолчанию пула, обеспечивая контекст для этой конкретной операции.
Разработка
Настройка локального развития
# Install dependencies
npm install
# Create and configure your .env file
cp .env.example .env
nano .env
# Run the server directly (requires environment variables to be set)
npm start
# Run with TypeScript compiler watching for changes
npm run devЗаметки о безопасности
Только
SELECT: сервер строго следит за тем, чтобы через инструментexecute_queryможно было выполнять только запросыSELECTс использованием анализа SQL. Операторы DML (INSERT, UPDATE, DELETE) и DDL блокируются.Выполнение хранимых процедур : хотя хранимые процедуры могут выполнять любые действия, разрешенные их разрешениями, их выполнение управляется отдельно.
Белый список баз данных : используйте переменную среды
SQL_ALLOWED_DATABASES, чтобы ограничить, с какими базами данных сервер может взаимодействовать. Подробное объяснение этой функции и того, как она взаимодействует сSQL_DATABASE, см.DATABASE_WHITELISTING.md.Блокировка системных процедур : прямое выполнение общих системных процедур (например,
sp_,xp_) и команд типаRECONFIGUREилиWAITFOR DELAYчерезexecute_queryблокируется. Для законных системных взаимодействий следует использовать хранимые процедуры.Проверка ввода : Имена баз данных для переключения контекста и имена хранимых процедур проходят проверку формата. Анализ SQL обеспечивает дополнительный уровень проверки для запросов.
Параметризованные входные данные : параметры хранимых процедур обрабатываются библиотекой
mssql, которая обычно параметризует их для предотвращения SQL-инъекций.
Поиск неисправностей
Если у вас возникли проблемы:
Проверьте логи контейнера:
docker logs mssql-mcp(если используется Docker).Проверьте вывод консоли сервера на наличие журналов pino, если он запущен локально.
Проверьте, что все необходимые переменные среды в файле
.envустановлены правильно, особенноSQL_PASSWORD,SQL_SERVER,SQL_USERиSQL_DATABASE.Если вы установили эту переменную, убедитесь, что базы данных, к которым вы пытаетесь получить доступ, указаны в
SQL_ALLOWED_DATABASES.Подтвердите сетевое подключение к экземпляру SQL Server, на котором запущен сервер MCP.
Тестовые скрипты (
test-mcp.sh,test-session-persistence.sh) могут нуждаться в проверке/обновлении.
Подробную информацию об устранении неполадок Docker см. в файле README Docker .
This server cannot be installed
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Appeared in Searches
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/JubinSaniei/mcp-mssql'
If you have feedback or need assistance with the MCP directory API, please join our Discord server