使用说明
MSSQL MCP服务器
一个最小的纯读服务器 模型上下文协议 (MCP) 通过 STDIO 或可选的 HTTP 提供。该项目提供了一小组工具,用于从Microsoft SQL Server数据库查询数据,而不允许写访问。
特性
- 纯读访问 -只有
SELECT声明是允许的;DDL/DML/EXEC 被阻止。 - 白名单和黑名单 – 表格或图表可以共享或封锁;可以禁用列和Regex模式。
- 资源限制 行限制(
ROW_LIMIT)和查询超时,以防止过大/昂贵的查询。 - JSON 输出 – 结果是JSON序列化,二进制数据可以作为占位符,Base64或十六进制编码。
- 工具 -你。 a.
tables,columns,query,sample,paginate,stats,columns_with_examples和explain.
安装
git clone https://github.com/DominikWoh/mssql_mcp_server
cd mssql_mcp_server
./scripts/install.sh # legt venv an und installiert Abhängigkeiten
cp .env.example .env # Zugangsdaten & Limits anpassen
source .venv/bin/activate # virtuelle Umgebung aktivieren
pip install --upgrade pip setuptools wheel
pip install -r requirements.txt 2>/dev/null || true
pip install fastapi 'uvicorn[standard]'
配置
连接和安全规则通过环境变量在 .env 控制 :
| 变量 | 描述 |
|---|---|
MSSQL_SERVER |
主机和港口,z。 B. 192.168.0.55,1433 |
MSSQL_DATABASE 目标数据库 |
|
MSSQL_USER / MSSQL_PASSWORD |
访问数据 |
MSSQL_ENCRYPT / MSSQL_TRUST_SERVER_CERTIFICATE TLS 选项 pymssql |
|
ALLOW_TABLES |
逗号对齐的完整表名白名单 |
ALLOW_SCHEMAS 允许的方案(例如。 dbo) |
|
DENY_COLUMNS 禁止的列名称(schema.table.col, *.col 或者只是 col) |
|
DENY_PATTERNS 查询中锁定的 Regex 模式 |
|
ROW_LIMIT |
每个结果的最大行数(默认值:500) |
QUERY_TIMEOUT |
超时秒数(默认值:10) |
BINARY_MODE 二进制数据处理: placeholder, base64 或 hex |
|
BINARY_MAX 在二进制数据中编码的最大字节。 |
|
LOG_LEVEL |
INFO 或 DEBUG |
启动服务器
标准输入输出
printf '{"action":"ping"}\n' | mssql-mcp
进程读取JSON行 stdin 并给出答案 stdout 出来。
超文本传输协议
uvicorn mssql_mcp_server.http:app --host 0.0.0.0 --port 8000
请求作为 POST /mcp 使用与 STDIO 相同的形状的 JSON 主体。
支持的动作
| 操作 | 参数 | 描述 |
|---|---|---|
ping |
– | 健康检查 |
tools |
– | 提供所有工具的概述 |
tables |
– | 共享表列表 |
columns |
table |
表格的列元数据 |
columns_with_examples |
table, n (可选) |
元数据加示例值 |
query |
sql 执行一个安全的 SELECT |
|
sample |
table, n (可选) |
SELECT TOP n * FROM table |
paginate |
sql, offset, fetch |
查询页面 |
stats |
table, sample_n (可选) |
行数 + 样本 |
explain |
sql 一个Query的启发式分析 |
系统集成
对于永久服务,可提供示例单元:
sudo cp scripts/mssql-mcp.service /etc/systemd/system/
sudo systemctl enable --now mssql-mcp
该服务将等待代码和虚拟环境在 /opt/mssql-mcp.
肺炎球菌
该项目利用 pymssql, 媒染剂 和 python dotenv米特 pip install -e . 安装所有依赖关系。