SQL只读查询服务器

一个基于MCP协议的Microsoft SQL Server只读查询服务器,提供安全的数据库只读访问和模式浏览功能。

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

使用说明

MSSQL MCP服务器

用于只读Microsoft SQL server交互的模型上下文协议(MCP)服务器。此服务器通过MCP协议提供对MSSQL数据库的安全只读访问。

特性

  • 只读操作:只允许SELECT、DECLARE和SET(用于局部变量)查询
  • 模式探索:浏览数据库、表、列和索引
  • 安全查询:SQL注入保护和查询验证
  • 连接管理:通过适当的清理确保连接处理安全

安装

  1. 克隆此存储库:
git clone <repository-url>
cd mssql-mcp
  1. 安装依赖项:
pip install -e .
  1. 设置环境变量:
cp .env.example .env
# Edit .env with your database connection details

重要提示: 服务器自动从 .env 当前目录中的文件。请确保使用您的数据库连接详细信息创建此文件。

配置

创建一个 .env 包含MSSQL连接详细信息的文件:

MSSQL_SERVER=localhost
MSSQL_DATABASE=your_database
MSSQL_USERNAME=your_username
MSSQL_PASSWORD=your_password
MSSQL_PORT=1433
MSSQL_TIMEOUT=30
MSSQL_CHARSET=UTF-8
MSSQL_AUTOCOMMIT=true

用法

发展模式

mcp dev src/mssql_mcp/server.py

Claude桌面集成

mcp install src/mssql_mcp/server.py --name "MSSQL Server"

直接执行

python -m mssql_mcp.server

可用资源

  • db://schemas -列出当前数据库中的所有架构
  • db://tables/{database} -列出当前数据库中的所有表
  • db://schema_tables/{schema_name} -列出特定架构中的表
  • db://columns/{schema_name}/{table_name} -获取表的列信息
  • db://indexes/{database}/{schema_name}/{table_name} -获取表的索引信息

可用工具

  • list_databases -列出所有可访问的数据库
  • list_tables -列出当前数据库中的表

安全

此服务器实施了多种安全措施:

  • 只允许使用SELECT、DECLARE和SET(用于局部变量)语句
  • SQL解析和验证
  • 尽可能进行参数化查询
  • 连接字符串安全
  • 不允许执行DDL或DML操作

需求

  • Python 3.9+
  • 访问Microsoft SQL Server实例
  • pymssql库(随依赖项自动安装)

许可证

MIT许可证