使用说明
MCP MS SQL Server
Microsoft SQL server的模型上下文协议(MCP)服务器,为数据库操作、数据分析和可视化生成提供工具。
目录
特性
8强大的数据库工具 -查询执行、模式探索和数据分析
交互式可视化 -条形图、散点图、热图等
Jupyter笔记本生成 -自动分析代码创建
Power BI集成 -以Power BI兼容格式导出数据
安全控制 -写入操作的精细权限
连接池 -通过可配置的池优化性能
快速开始
-
安装软件包
pip install mcp-mssql-server -
创建配置
# Create .env file DB_TYPE=mssql MSSQL_SERVER=tcp:your-server.database.windows.net MSSQL_USER=your-username MSSQL_PASSWORD=your-password MSSQL_DATABASE=your-database -
运行服务器
uv run python mssql.py or uv run python main.py
安装
选项1:使用pip
pip install mcp-mssql-server
选项2:使用紫外线
uv pip install mcp-mssql-server
选项3:来源
git clone https://github.com/SerenaHangSinclair/mcp-mssql-server.git
cd mcp-mssql-server
pip install -e .
配置
创建一个 .env 在项目根目录中使用基本必需设置的文件:
# Database Connection (Required)
DB_TYPE=mssql
MSSQL_SERVER=tcp:your-server.database.windows.net
MSSQL_PORT=1433
MSSQL_USER=your-username
MSSQL_PASSWORD=your-password
MSSQL_DATABASE=your-database
# Security (Recommended)
ALLOW_WRITE_OPERATIONS=false
View complete configuration options
# Database Type (mssql)
DB_TYPE=mssql
# SQL Server Configuration
MSSQL_SERVER=tcp:your-server.database.windows.net
MSSQL_PORT=1433
MSSQL_USER=your-username
MSSQL_PASSWORD=your-password
MSSQL_DATABASE=your-database
MSSQL_ENCRYPT=true
MSSQL_TRUST_SERVER_CERTIFICATE=true
# Security Settings
ALLOW_WRITE_OPERATIONS=false
ALLOW_INSERT_OPERATION=false
ALLOW_UPDATE_OPERATION=false
ALLOW_DELETE_OPERATION=false
# Performance Settings
CONNECTION_POOL_MIN=1
CONNECTION_POOL_MAX=10
QUERY_TIMEOUT=30000
用法
运行MCP服务器
建议使用uv为MCP构建创建一个独立的虚拟环境。记得安装uv/:
视窗
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
MacOS/Linux
curl -LsSf https://astral.sh/uv/install.sh | sh
uv venv
运行MCP服务器
基本用法:
uv run python main.py or uv run python mssql.py
启用日志记录后:
uv run python main.py --log
与Claude Desktop一起使用
将此配置添加到您的Claude Desktop设置中:
{
"mcp-mssql-server": {
"command": "uv",
"args": ["run", "python", "/path/to/mcp-mssql-server/main.py"]
}
}
工具概述
| 工具 | 目的 | 输出 |
|---|---|---|
| sqlquery | 使用权限控制执行SQL查询 | 查询结果 |
| get_database_info | 获取服务器和数据库信息 | 服务器详细信息 |
| show_tables | 列出数据库中的所有表 | 表列表 |
| describe_table | 获取详细的表结构信息 | 列详细信息 |
| show_indexes | 显示表索引 | 索引信息 |
| 生成分析笔记本 | 创建用于数据分析的Jupyter笔记本 | .ipynb 文件 |
| 生成可视化 | 创建交互式可视化 | .html 文件 |
| generate_powerbi可视化 | 生成与Power BI兼容的导出 | .csv/.json 文件 |
View detailed tool examples
sqlquery
在数据库上执行任何SQL查询:
{
"query": "SELECT TOP 10 * FROM users WHERE status = 'active'"
}
show_tables
列出表,可选择按架构筛选:
{
"schema": "dbo"
}
describe_table
获取详细的表格结构:
{
"table_name": "users",
"schema": "dbo"
}
生成可视化
根据查询结果创建交互式图表:
{
"query": "SELECT category, SUM(amount) as total FROM sales GROUP BY category",
"viz_type": "bar",
"title": "Sales by Category"
}
支持的可视化类型: auto, bar, scatter, pie, line, heatmap, table
生成分析笔记本
使用自动分析创建Jupyter笔记本:
{
"query": "SELECT * FROM sales_data WHERE date >= '2024-01-01'",
"output_file": "sales_analysis.ipynb"
}
安全
内置安全功能:
- 默认情况下禁用写入操作 -所有INSERT、UPDATE、DELETE操作都被阻止
- 精细权限 -通过环境变量启用特定操作
- 加密连接 -默认情况下使用TLS加密
- 凭证保护 -存储在中的数据库凭据
.env文件(从git中排除)
要启用写入操作,请执行以下操作:
# Enable specific operations as needed
ALLOW_INSERT_OPERATION=true
ALLOW_UPDATE_OPERATION=true
ALLOW_DELETE_OPERATION=true
故障排除
连接问题
问题: 无法连接到SQL Server
# Check server address format
MSSQL_SERVER=tcp:your-server.database.windows.net # For Azure SQL
# Verify firewall settings allow your IP
# Ensure SQL Server authentication is enabled
# Double-check credentials in .env file
权限错误
问题: 拒绝访问或不允许操作
# Check security settings
ALLOW_WRITE_OPERATIONS=true # If you need write access
# Verify database user permissions
# Ensure user has appropriate SQL Server roles
可视化错误
问题: 图表生成不正确
- 确保查询返回适合可视化类型的数据
- 条形图/饼图需要分类列
- 散点图/折线图需要数字列
- 检查查询是否至少返回一行
常见错误消息
Click to view common errors and solutions
错误:“用户登录失败”
- 在中检查用户名和密码
.env - 验证是否启用了SQL Server身份验证
错误:“无法打开数据库”
- 验证数据库名称是否正确
- 检查用户是否有权访问指定的数据库
错误:“连接超时”
- 增加
QUERY_TIMEOUT在……里面.env - 检查与SQL Server的网络连接
发展
扩展服务器
文件结构:
mssql.py-数据库工具实施main.py-MCP服务器接口.env-配置文件
添加新工具:
- Create方法 在……里面
MSSQLTools类 - 添加工具定义 在……里面
list_tools() - 添加处理程序 在……里面
call_tool()
输出文件
这些工具在您的工作目录中生成各种输出文件:
- Jupyter笔记本:
.ipynb带有分析代码的文件 - 可视化:
.html带有交互式图表的文件 - Power BI数据:
.csv和.json要导入的文件
许可证
MIT许可证-请参阅 许可证 文件以获取详细信息。