Microsoft SQL Server
mcpotherio.github.alyiox/mcp-mssql · v1.7.0
MCP server for SQL Server metadata, parameterized queries, plan analysis, and writes opt-in.
run it
on your own machines, one way per deploy methodgenerated from the record, not tested yet
#!/usr/bin/env bash # mssql (io.github.alyiox/mcp-mssql), recipe baremetal (generated). # Generated by Hub for toolset "my-agent"; started by mcp-my-agent-mssql.service. set -euo pipefail export HOST=127.0.0.1 PORT=8101 exec uvx mcp-proxy --host 127.0.0.1 --port 8101 --pass-environment -- dnx [email protected] --yes [Unit] Description=MCP server mssql (toolset my-agent), generated by Hub After=network-online.target Wants=network-online.target [Service] Type=simple User=mcp Group=mcp EnvironmentFile=/etc/mcp/my-agent.env Environment=HOME=/var/lib/mcp/mssql WorkingDirectory=/var/lib/mcp/mssql ExecStart=/opt/mcp/my-agent/bin/mssql.sh Restart=on-failure RestartSec=5 NoNewPrivileges=true ProtectSystem=strict ProtectHome=true PrivateTmp=true ReadWritePaths=/var/lib/mcp/mssql [Install] WantedBy=multi-user.target
connect to it
copy what your client needsdnx [email protected] --yes # env: MCPMSSQL_CONNECTION_STRING, MCPMSSQL_DESCRIPTION, MCPMSSQL_QUERY_MAX_ROWS, MCPMSSQL_QUERY_COMMAND_TIMEOUT_SECONDS, MCPMSSQL_QUERY_SNAPSHOT_MAX_ROWS, MCPMSSQL_QUERY_SNAPSHOT_COMMAND_TIMEOUT_SECONDS, MCPMSSQL_ANALYZE_COMMAND_TIMEOUT_SECONDS, MCPMSSQL_ALLOW_WRITE, MCPMSSQL_WRITE_COMMAND_TIMEOUT_SECONDS, DOTNET_ENVIRONMENT
{
"mcpServers": {
"mssql": {
"command": "dnx",
"args": [
"[email protected]",
"--yes"
],
"env": {
"MCPMSSQL_CONNECTION_STRING": "${MCPMSSQL_CONNECTION_STRING}",
"MCPMSSQL_DESCRIPTION": "${MCPMSSQL_DESCRIPTION}",
"MCPMSSQL_QUERY_MAX_ROWS": "${MCPMSSQL_QUERY_MAX_ROWS}",
"MCPMSSQL_QUERY_COMMAND_TIMEOUT_SECONDS": "${MCPMSSQL_QUERY_COMMAND_TIMEOUT_SECONDS}",
"MCPMSSQL_QUERY_SNAPSHOT_MAX_ROWS": "${MCPMSSQL_QUERY_SNAPSHOT_MAX_ROWS}",
"MCPMSSQL_QUERY_SNAPSHOT_COMMAND_TIMEOUT_SECONDS": "${MCPMSSQL_QUERY_SNAPSHOT_COMMAND_TIMEOUT_SECONDS}",
"MCPMSSQL_ANALYZE_COMMAND_TIMEOUT_SECONDS": "${MCPMSSQL_ANALYZE_COMMAND_TIMEOUT_SECONDS}",
"MCPMSSQL_ALLOW_WRITE": "${MCPMSSQL_ALLOW_WRITE}",
"MCPMSSQL_WRITE_COMMAND_TIMEOUT_SECONDS": "${MCPMSSQL_WRITE_COMMAND_TIMEOUT_SECONDS}",
"DOTNET_ENVIRONMENT": "${DOTNET_ENVIRONMENT}"
}
}
}
}
#!/usr/bin/env bash
# Registers every server with Claude Code (run once; `claude mcp list` to check).
set -euo pipefail
set -a; [ -f .env ] && source .env; set +a
claude mcp add mssql -e "MCPMSSQL_CONNECTION_STRING=${MCPMSSQL_CONNECTION_STRING}" -e "MCPMSSQL_DESCRIPTION=${MCPMSSQL_DESCRIPTION}" -e "MCPMSSQL_QUERY_MAX_ROWS=${MCPMSSQL_QUERY_MAX_ROWS}" -e "MCPMSSQL_QUERY_COMMAND_TIMEOUT_SECONDS=${MCPMSSQL_QUERY_COMMAND_TIMEOUT_SECONDS}" -e "MCPMSSQL_QUERY_SNAPSHOT_MAX_ROWS=${MCPMSSQL_QUERY_SNAPSHOT_MAX_ROWS}" -e "MCPMSSQL_QUERY_SNAPSHOT_COMMAND_TIMEOUT_SECONDS=${MCPMSSQL_QUERY_SNAPSHOT_COMMAND_TIMEOUT_SECONDS}" -e "MCPMSSQL_ANALYZE_COMMAND_TIMEOUT_SECONDS=${MCPMSSQL_ANALYZE_COMMAND_TIMEOUT_SECONDS}" -e "MCPMSSQL_ALLOW_WRITE=${MCPMSSQL_ALLOW_WRITE}" -e "MCPMSSQL_WRITE_COMMAND_TIMEOUT_SECONDS=${MCPMSSQL_WRITE_COMMAND_TIMEOUT_SECONDS}" -e "DOTNET_ENVIRONMENT=${DOTNET_ENVIRONMENT}" -- dnx [email protected] --yes
{
"mcpServers": {
"mssql": {
"command": "dnx",
"args": [
"[email protected]",
"--yes"
],
"env": {
"MCPMSSQL_CONNECTION_STRING": "${MCPMSSQL_CONNECTION_STRING}",
"MCPMSSQL_DESCRIPTION": "${MCPMSSQL_DESCRIPTION}",
"MCPMSSQL_QUERY_MAX_ROWS": "${MCPMSSQL_QUERY_MAX_ROWS}",
"MCPMSSQL_QUERY_COMMAND_TIMEOUT_SECONDS": "${MCPMSSQL_QUERY_COMMAND_TIMEOUT_SECONDS}",
"MCPMSSQL_QUERY_SNAPSHOT_MAX_ROWS": "${MCPMSSQL_QUERY_SNAPSHOT_MAX_ROWS}",
"MCPMSSQL_QUERY_SNAPSHOT_COMMAND_TIMEOUT_SECONDS": "${MCPMSSQL_QUERY_SNAPSHOT_COMMAND_TIMEOUT_SECONDS}",
"MCPMSSQL_ANALYZE_COMMAND_TIMEOUT_SECONDS": "${MCPMSSQL_ANALYZE_COMMAND_TIMEOUT_SECONDS}",
"MCPMSSQL_ALLOW_WRITE": "${MCPMSSQL_ALLOW_WRITE}",
"MCPMSSQL_WRITE_COMMAND_TIMEOUT_SECONDS": "${MCPMSSQL_WRITE_COMMAND_TIMEOUT_SECONDS}",
"DOTNET_ENVIRONMENT": "${DOTNET_ENVIRONMENT}"
}
}
}
}
{
"servers": {
"mssql": {
"type": "stdio",
"command": "dnx",
"args": [
"[email protected]",
"--yes"
],
"env": {
"MCPMSSQL_CONNECTION_STRING": "${MCPMSSQL_CONNECTION_STRING}",
"MCPMSSQL_DESCRIPTION": "${MCPMSSQL_DESCRIPTION}",
"MCPMSSQL_QUERY_MAX_ROWS": "${MCPMSSQL_QUERY_MAX_ROWS}",
"MCPMSSQL_QUERY_COMMAND_TIMEOUT_SECONDS": "${MCPMSSQL_QUERY_COMMAND_TIMEOUT_SECONDS}",
"MCPMSSQL_QUERY_SNAPSHOT_MAX_ROWS": "${MCPMSSQL_QUERY_SNAPSHOT_MAX_ROWS}",
"MCPMSSQL_QUERY_SNAPSHOT_COMMAND_TIMEOUT_SECONDS": "${MCPMSSQL_QUERY_SNAPSHOT_COMMAND_TIMEOUT_SECONDS}",
"MCPMSSQL_ANALYZE_COMMAND_TIMEOUT_SECONDS": "${MCPMSSQL_ANALYZE_COMMAND_TIMEOUT_SECONDS}",
"MCPMSSQL_ALLOW_WRITE": "${MCPMSSQL_ALLOW_WRITE}",
"MCPMSSQL_WRITE_COMMAND_TIMEOUT_SECONDS": "${MCPMSSQL_WRITE_COMMAND_TIMEOUT_SECONDS}",
"DOTNET_ENVIRONMENT": "${DOTNET_ENVIRONMENT}"
}
}
}
}
name: my-agent target: local servers: - hub: io.github.alyiox/mcp-mssql
- not probed yet: tools unpinned, ingest lists them
tools
Not probed yetThe tools appear once the hub or its worker has listed this entry. Running it still works: your client lists them on first start.