mssql-mcp
mssql-mcp
MCP-сервер для Microsoft SQL Server с правами только на чтение, использующий данные для подключения из AWS Secrets Manager во время вызова инструмента — с диска или из переменных окружения не считывается ничего, кроме самой ссылки на секрет.
Кроссплатформенность: это MCP-сервер на чистом JavaScript (без нативных зависимостей или ODBC), поэтому он работает одинаково в macOS, Linux и Windows через npx.
Настройка в .claude.json
{
"mcpServers": {
"my-db": {
"command": "npx",
"args": ["-y", "@dhipskind253/mssql-mcp"],
"env": {
"AWS_ACCOUNT_ID": "123456789012",
"SECRET_NAME": "my-aws-secret",
"AWS_REGION": "us-east-1",
"TRUST_SERVER_CERTIFICATE": "false"
}
}
}
}Переменная окружения | Обязательно | По умолчанию | Описание |
| да | — | Аккаунт AWS, в котором находится секрет. Объединяется с именем и регионом в полный ARN. |
| да | — | Имя секрета в Secrets Manager (суффикс ARN не требуется). |
| да | — | Регион AWS, в котором находится секрет (например, |
| нет |
| Пропуск проверки TLS-сертификата SQL Server. Принимает |
Стандартные переменные окружения AWS SDK (AWS_PROFILE, AWS_ACCESS_KEY_ID и т. д.) учитываются через стандартную цепочку провайдеров учетных данных. Большинству пользователей достаточно выполнить aws sso login.
Related MCP server: MSSQL MCP Python Server
Требуемый JSON секрета
Значение секрета должно быть JSON-документом как минимум со следующими полями:
{
"host": "myserver.database.windows.net",
"port": 1433,
"database": "mydb",
"username": "ro_user",
"password": "..."
}database также может быть указано как dbname — это имя поля, которое AWS использует в своем встроенном шаблоне секретов для учетных данных RDS. Если присутствуют оба, приоритет у database.
Необязательные поля (указаны значения по умолчанию):
Поле | По умолчанию | Примечания |
|
| |
|
| TLS к серверу. |
Доверие к TLS-сертификату не считывается из секрета — вместо этого установите
TRUST_SERVER_CERTIFICATEв блокеenvMCP-сервера. Любое полеtrustServerCertificateв JSON секрета игнорируется.
Разработано с правами только на чтение
Этот сервер не может вставлять, обновлять или удалять данные. Это обеспечивается двумя уровнями защиты:
Инструмент
run_selectлексически отклоняет все, что не является одиночным операторомSELECTилиWITH(CTE) — включаяINSERT,UPDATE,DELETE,EXEC,MERGE,DROP,ALTER,SELECT INTOи т. д.Ни один другой инструмент не выполняет SQL-запросы на запись.
get_procedure_definitionвозвращает исходный код процедуры — он не выполняет процедуры.
Примечание: рассматривайте лексическую проверку как UX, а не как границу безопасности. В качестве любезности к самому себе в будущем, настройте учетные данные, которые вы помещаете в Secrets Manager, как логин базы данных только для чтения — только с правами
SELECTиVIEW DEFINITION. Таким образом, случайная запись (или будущая ошибка здесь) будет отклонена самим SQL Server.
Обновление учетных данных AWS без перезапуска
Поскольку сервер использует стандартную цепочку учетных данных AWS, истекший сеанс SSO можно восстановить без перезапуска Claude или MCP-сервера:
Выполните
aws sso loginв любом терминале.Попросите Claude вызвать инструмент
refresh_secret.Продолжайте работу.
Если вызов инструмента завершится ошибкой из-за аутентификации AWS, сообщение об ошибке точно укажет на это и предложит выполнить те же действия. Ошибки помечены стабильными префиксами:
Префикс | Значение |
| Сеанс SSO истек или учетные данные недоступны. |
| У субъекта нет прав |
| Несоответствие имени секрета / аккаунта / региона. |
| JSON секрета содержит ошибки или пропущены поля. |
| Не удалось связаться с экземпляром SQL Server. |
| SQL Server вернул ошибку при выполнении запроса. |
| Отправленный запрос нарушил правила «только чтение». |
Инструменты
Инструмент | Назначение |
| Пользовательские схемы в базе данных. |
| Таблицы, опционально отфильтрованные по схеме. |
| Столбцы, типы, возможность NULL, identity, PK, значения по умолчанию. |
| Индексы таблицы (одна строка на индекс/столбец). |
| Исходящие внешние ключи таблицы. |
| Представления, опционально отфильтрованные по схеме. |
| SQL-код представления. |
| Хранимые процедуры, опционально отфильтрованные по схеме. |
| SQL-код процедуры (не выполняет ее). |
|
|
| Одиночный SELECT/CTE, ограниченный |
| Повторное получение секрета и переподключение. |
Локальная разработка
npm install
npm run build
# point your .claude.json command at the local build:
# "command": "node",
# "args": ["/absolute/path/to/mssql-mcp/dist/index.js"]Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceRead-only SQL Server MCP server enabling safe database queries, table listing, and schema inspection with built-in security protections.MIT
- AlicenseNot gradedqualityAmaintenanceMCP server for safely exposing SQL Server database capabilities to LLM clients, with read-only mode, security features, and observability.28MIT
- AlicenseNot gradedqualityCmaintenanceMCP server for Microsoft SQL Server enabling safe read-only queries, schema discovery, and natural-language query via LangChain.MIT
- AlicenseNot gradedqualityAmaintenanceSecurity-first, read-only MCP server for Microsoft SQL Server, enabling safe natural-language querying of databases.17MIT
Related MCP Connectors
Official Microsoft MCP Server to query Microsoft Entra data using natural language
Read-only MCP server for ClassQuill, a tutoring-business-management platform.
GibsonAI MCP server: manage your databases with natural language
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/dhipskind253/mssql-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server