使用说明
MCP SQL Server
MCP服务器(模型上下文协议),允许Claude AI以安全和只读的方式连接和查询任何SQL Server数据库。
特征
- 动态连接 -从与Claude的对话中连接到任何SQLServer
- 9种可用工具 -从列出数据库到查看存储过程的代码
- 只读 --不允许插入、更新和删除;单独领事选择/与
- 灵活认证 --soporta Windows身份验证和SQL Server身份验证
- 自选连接 -配置环境变量以在打开Claude Desktop时自动连接
- 安全验证 -针对SQL注入验证的连接参数
可用的工具
Conexion的管理
| 工具 | 描述 |
|---|---|
conectar |
连接到SQL Server(Windows或SQL Auth) |
estado_conexion |
显示当前连接的状态 |
desconectar |
断开活动会话 |
数据查询(只读)
| 工具 | 描述 |
|---|---|
list_databases |
列出服务器上的所有数据库 |
list_tables |
列出表和视图,并按架构选择筛选器 |
describe_table |
显示表的列、类型、无效性、默认值和PKS |
query |
执行SELECT/WITH查询(最多500行) |
search_column |
搜索按名称显示列的表 |
get_sp_definition |
显示存储过程的源代码 |
先决条件
瞬间。
1.克隆存储库
git clone https://github.com/Juan-Valenzuela3/MCP-SqlServer.git
cd mcp-sqlserver
2.安装依赖项
pip install mcp pyodbc anyio
克劳德桌面上的设置
基本设置
打开克劳德桌面,转到 设置>开发人员>编辑配置 并在中添加以下内容 claude_desktop_config.json:
{
"mcpServers": {
"mcp-sqlserver": {
"command": "python",
"args": ["C:/ruta/completa/a/sqlserver-mcp/server.py"]
}
}
}
用实际位置替换路径
server.py那就去吧。
具有自动连接的配置(可选)
如果您希望克劳德在启动时自动连接到数据库:
{
"mcpServers": {
"mcp-sqlserver": {
"command": "python",
"args": ["C:/ruta/completa/a/sqlserver-mcp/server.py"],
"env": {
"DB_SERVER": "mi-servidor\\Instancia",
"DB_NAME": "MiBaseDeDatos",
"DB_AUTH_TYPE": "windows"
}
}
}
}
帕拉 使用用户名和密码,他还补充说:
"DB_USER": "mi_usuario",
"DB_PASSWORD": "mi_password"
保存后, reinicia克劳德桌面 这是我的梦想。
使用
一旦配置好,它将在Claude Desktop上打开一个对话,并键入以下指示:
Conectame al servidor mi-servidor\Instancia, base de datos MiDB
Muestra las tablas del esquema dbo
Ejecuta: SELECT TOP 10 * FROM dbo.Clientes
Muestrame el codigo del Stored Procedure GetDataToSend
Busca en que tablas aparece la columna "Price"
克劳德将自动使用MCP工具做出回应。
CLI工具:列资源管理器
El脚本 buscar_campos.py 允许从终端浏览任何SQLServer数据库的列。
基本用途
# Listar todas las columnas de una base de datos
python sqlserver-mcp/buscar_campos.py --server "mi-servidor\Instancia" --database "MiDB"
# Filtrar columnas por nombre
python sqlserver-mcp/buscar_campos.py --server "mi-servidor\Instancia" --database "MiDB" --search "Price"
# Exportar resultados a archivo
python sqlserver-mcp/buscar_campos.py --server "mi-servidor\Instancia" --database "MiDB" --output resultado.txt
# Usar SQL Server Authentication
python sqlserver-mcp/buscar_campos.py --server "mi-servidor\Instancia" --database "MiDB" --auth sql --user sa --password 1234
安全
- 只读:服务器只允许查询
SELECTyWITH(CTES)。无法执行INSERT,UPDATE,DELETE或其他DML命令。 - 参数验证:连接参数经过验证,以防止注入危险字符(
;,{,}). - 没有硬编码的凭据:凭据通过对话或本地环境变量传递。
项目结构
mcp-sqlserver/
├── sqlserver-mcp/
│ ├── server.py # Servidor MCP principal
│ └── buscar_campos.py # CLI para explorar columnas
├── CLAUDE.md # Instrucciones para Claude Code
└── README.md
许可证
麻省理工学院