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
Требуемый 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.
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/dhipskind253/mssql-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server
