mcpField
M
Mcp Sqlserver

Mcp Sqlserver

本地服务
github.com/bilims数据库4530 周前更新

关于 Mcp Sqlserver

Mcp Sqlserver 是面向 AI Agent 的只读 MCP 服务,用于检查和查询 Microsoft SQL Server 数据库,提供结构发现及带安全验证和结果限制的查询。

主要功能

  1. 01发现数据库、表和视图
  2. 02查看表结构与外键
  3. 03执行经过验证的只读查询
  4. 04设置行数限制和超时
  5. 05使用加密的 SQL Server 连接

适用场景

  1. 01通过 AI 客户端探索数据库结构
  2. 02查看表之间的关系
  3. 03获取受限的数据样本或查询结果

MCP 相关

它向 MCP 客户端提供 SQL Server 元数据和只读查询工具,可与 Claude Desktop、Claude Code CLI 及 VSCode MCP 扩展配合。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"sqlserver": {
"command": "npx",
"args": [
"-y",
"@bilims/mcp-sqlserver"
],
"env": {
"SQLSERVER_HOST": "<SQLSERVER_HOST>",
"SQLSERVER_DATABASE": "<SQLSERVER_DATABASE>",
"SQLSERVER_USERNAME": "<SQLSERVER_USERNAME>",
"SQLSERVER_PASSWORD": "<SQLSERVER_PASSWORD>"
}
}
}
}
启动命令npx -y @bilims/mcp-sqlserver
需要配置的环境变量
SQLSERVER_HOST
SQLSERVER_DATABASE
SQLSERVER_USERNAME
SQLSERVER_PASSWORD密钥

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npm@bilims/mcp-sqlserver

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

MCP SQL Server

一个只读的 Model Context Protocol(MCP)服务,适用于 Microsoft SQL Server,可让 AI Agent 安全地探索和查询 SQL Server 数据库。

快速开始

第 1 步:安装软件包
# Global installation (recommended)
npm install -g @bilims/mcp-sqlserver

# Verify installation
mcp-sqlserver --version
第 2 步:配置 SQL Server 连接

选择你的 SQL Server 类型,并按照相应说明进行配置:

Azure SQL Database
export SQLSERVER_HOST="your-server.database.windows.net"
export SQLSERVER_USER="your-username"
export SQLSERVER_PASSWORD="your-password"
export SQLSERVER_DATABASE="your-database"
export SQLSERVER_ENCRYPT="true"
export SQLSERVER_TRUST_CERT="false"
本地部署的 SQL Server
export SQLSERVER_HOST="your-sql-server.company.com"
export SQLSERVER_USER="your-username"
export SQLSERVER_PASSWORD="your-password"
export SQLSERVER_DATABASE="your-database"
export SQLSERVER_ENCRYPT="true"
export SQLSERVER_TRUST_CERT="true"  # For self-signed certificates
本地 SQL Server Express
export SQLSERVER_HOST="localhost\\SQLEXPRESS"
export SQLSERVER_USER="sa"
export SQLSERVER_PASSWORD="your-password"
export SQLSERVER_DATABASE="master"
export SQLSERVER_ENCRYPT="false"
export SQLSERVER_TRUST_CERT="true"
第 3 步:测试连接
# Test your configuration
mcp-sqlserver --help

# Quick connection test (press Ctrl+C to exit)
mcp-sqlserver
第 4 步:添加到 Claude Desktop
  1. 找到 Claude Desktop 配置文件:

    • macOS:~/Library/Application Support/Claude/claude_desktop_config.json
    • Windows:%APPDATA%\Claude\claude_desktop_config.json
  2. 添加 MCP 服务配置:

{
  "mcpServers": {
    "sqlserver": {
      "command": "mcp-sqlserver",
      "env": {
        "SQLSERVER_HOST": "your-server.database.windows.net",
        "SQLSERVER_USER": "your-username",
        "SQLSERVER_PASSWORD": "your-password",
        "SQLSERVER_DATABASE": "your-database",
        "SQLSERVER_ENCRYPT": "true",
        "SQLSERVER_TRUST_CERT": "false"
      }
    }
  }
}
  1. 重启 Claude Desktop
第 5 步:开始探索!

在 Claude Desktop 中尝试以下命令:

  • "测试 SQL Server 连接"
  • "列出服务器上的所有数据库"
  • "显示 [database name] 中的表"
  • "描述 Users 表的结构"
  • "显示外键关系"

功能特性

  • 🔒 只读操作:仅允许 SELECT 查询,并进行全面的安全验证
  • 🗄️ 架构发现:探索数据库、表、视图、关系和元数据
  • 📊 数据探索:执行安全查询,并内置行数限制和超时设置
  • 🔐 面向企业环境:通过证书信任建立加密连接,适用于生产环境
  • 🛡️ 安全优先:查询验证、SQL 注入防护和访问控制

可用工具

架构发现
  • list_databases - 列出 SQL Server 实例上的所有数据库
  • list_tables - 列出数据库或架构中的表
  • list_views - 列出数据库或架构中的视图
  • describe_table - 获取详细的表架构,包括列、数据类型和约束
关系分析
  • get_foreign_keys - 获取表的外键关系
  • get_table_stats - 获取表统计信息,包括行数和大小信息
数据探索
  • execute_query - 执行经过安全验证的只读 SELECT 查询
  • get_server_info - 获取 SQL Server 版本、版本类型和配置信息

Claude Desktop 常用命令

配置好 MCP 服务后,可以尝试使用以下自然语言命令:

入门命令
"Test the SQL Server connection"
"Show me server information"
"List all databases on this server"
"What tables are in the [database name] database?"
数据库探索
"Describe the structure of the Users table"
"Show me foreign key relationships in this database"
"What are the largest tables by row count?"
"Give me a sample of data from the Orders table"
高级分析
"Help me understand the relationship between Orders and Customers"
"Show me all lookup tables in this database"
"What columns contain date/time information?"
"Find tables that might contain user authentication data"
自定义查询
"Run this query: SELECT TOP 10 * FROM Products WHERE Price > 100"
"Show me all customers created in the last 30 days"
"What are the different product categories in the database?"

安装

npm install
npm run build

配置

此服务使用环境变量进行配置:

必需项
  • SQLSERVER_USER - SQL Server 用户名
  • SQLSERVER_PASSWORD - SQL Server 密码
可选项
  • SQLSERVER_HOST - 服务器主机名(默认值:localhost)
  • SQLSERVER_DATABASE - 默认数据库名称
  • SQLSERVER_PORT - 端口号(默认值:1433)
  • SQLSERVER_ENCRYPT - 启用加密(默认值:true)
  • SQLSERVER_TRUST_CERT - 信任服务器证书(默认值:true)
  • SQLSERVER_CONNECTION_TIMEOUT - 连接超时时间,单位为毫秒(默认值:30000)
  • SQLSERVER_REQUEST_TIMEOUT - 请求超时时间,单位为毫秒(默认值:60000)
  • SQLSERVER_MAX_ROWS - 每个查询的最大行数(默认值:1000)

用法

环境变量
export SQLSERVER_HOST="your-server.database.windows.net"
export SQLSERVER_USER="your-username"
export SQLSERVER_PASSWORD="your-password"
export SQLSERVER_DATABASE="your-database"
export SQLSERVER_ENCRYPT="true"
export SQLSERVER_TRUST_CERT="true"
运行服务
npm start

安装选项

选项 1:全局安装(推荐)
npm install -g @bilims/mcp-sqlserver
选项 2:本地安装
npm install @bilims/mcp-sqlserver
npx mcp-sqlserver
选项 3:通过 npx 运行(无需安装)
npx @bilims/mcp-sqlserver

集成示例

Claude Desktop

将以下内容添加到 Claude Desktop 配置文件(claude_desktop_config.json)中:

{
  "mcpServers": {
    "sqlserver": {
      "command": "mcp-sqlserver",
      "env": {
        "SQLSERVER_HOST": "your-server.database.windows.net",
        "SQLSERVER_USER": "your-username",
        "SQLSERVER_PASSWORD": "your-password",
        "SQLSERVER_DATABASE": "your-database"
      }
    }
  }
}
Claude Code CLI
# Set environment variables
export SQLSERVER_HOST="your-server"
export SQLSERVER_USER="your-username"
export SQLSERVER_PASSWORD="your-password"

# Use with Claude Code
claude mcp add sqlserver mcp-sqlserver
搭配 MCP Extension 使用 VSCode

为 VSCode 安装 MCP Extension,并添加服务配置。

安全功能

查询验证
  • 仅允许 SELECT、WITH、SHOW、DESCRIBE 和 EXPLAIN 语句
  • 全面禁止危险关键字(INSERT、UPDATE、DELETE、DROP 等)
  • 检测 SQL 注入模式
  • 自动清理查询
连接安全
  • 默认启用 TLS/SSL 加密
  • 为企业环境提供服务器证书信任选项
  • 支持连接池和超时控制
  • 可配置请求超时
结果限制
  • 可配置每次查询的最大行数
  • 自动为 SELECT 查询注入 TOP 子句
  • 跟踪查询执行时间
  • 内存使用保护

示例查询

连接后,你可以通过 MCP 客户端使用这些工具:

// List all databases
await callTool("list_databases", {});

// List tables in a specific schema
await callTool("list_tables", { schema: "dbo" });

// Get table schema details
await callTool("describe_table", { 
  table_name: "Users", 
  schema: "dbo" 
});

// Execute a read-only query
await callTool("execute_query", { 
  query: "SELECT TOP 10 * FROM Users WHERE active = 1",
  limit: 10
});

// Get foreign key relationships
await callTool("get_foreign_keys", { 
  table_name: "Orders" 
});

开发

# Install dependencies
npm install

# Build the project
npm run build

# Run in development mode
npm run dev

# Run linting
npm run lint

# Run tests
npm test

故障排除

连接问题
  1. 验证服务器主机名和端口
  2. 检查加密/证书设置是否与 SQL Server 配置匹配
  3. 确保用户拥有适当的读取权限
  4. 先使用 SQL Server Management Studio 测试连接
权限问题

用户帐户至少需要:

  • 数据库的 CONNECT 权限
  • 对要查询的表/视图拥有 SELECT 权限
  • 访问系统视图以查询元数据
常见 SQL Server 配置
Azure SQL Database
export SQLSERVER_HOST="your-server.database.windows.net"
export SQLSERVER_ENCRYPT="true"
export SQLSERVER_TRUST_CERT="false"
使用自签名证书的本地 SQL Server
export SQLSERVER_HOST="sql-server.company.com"
export SQLSERVER_ENCRYPT="true" 
export SQLSERVER_TRUST_CERT="true"

许可证

MIT

参与贡献

  1. Fork 此仓库
  2. 创建功能分支
  3. 进行更改
  4. 在适用时添加测试
  5. 提交拉取请求

支持

如有问题和疑问:

  • 查看上方的故障排除部分
  • 查阅 SQL Server 连接文档
  • 确保 MCP 客户端兼容

基于 Model Context Protocol SDK 构建,实现无缝 AI 集成。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。