SQL Server数据库工具

为Microsoft SQL Server提供数据库操作、数据分析和可视化生成工具的服务。

  • by SerenaHangSinclair
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 serenahangsinclair/mcp-mssql-server

使用说明

MCP MS SQL Server

Microsoft SQL server的模型上下文协议(MCP)服务器,为数据库操作、数据分析和可视化生成提供工具。

目录

特性

8强大的数据库工具 -查询执行、模式探索和数据分析
交互式可视化 -条形图、散点图、热图等
Jupyter笔记本生成 -自动分析代码创建
Power BI集成 -以Power BI兼容格式导出数据
安全控制 -写入操作的精细权限
连接池 -通过可配置的池优化性能

快速开始

  1. 安装软件包

    pip install mcp-mssql-server
    
  2. 创建配置

    # 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
    
  3. 运行服务器

    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 -配置文件

添加新工具:

  1. Create方法 在……里面 MSSQLTools 类
  2. 添加工具定义 在……里面 list_tools()
  3. 添加处理程序 在……里面 call_tool()

输出文件

这些工具在您的工作目录中生成各种输出文件:

  • Jupyter笔记本: .ipynb 带有分析代码的文件
  • 可视化: .html 带有交互式图表的文件
  • Power BI数据: .csv 和 .json 要导入的文件

许可证

MIT许可证-请参阅 许可证 文件以获取详细信息。