Token导航 LogoToken导航TokenDH.com
Mssql Tools MCP logo
数据服务stdio官方级别未说明来源级核验

Mssql Tools MCP

MCP Server

tsc

一个专业级的模型上下文协议(MCP)服务器,封装了SQL Server命令行工具(sqlcmd和bcp),使LLM能够与企业级功能的Microsoft SQL Server数据库交互。

工具数

10

提示词数

0

GitHub Stars

0

资源数

0
数据库工具命令行工具TypeScriptClaudeClaude DesktopClaudeCline

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

joncooper

提供方

joncooper

最后核验

2026/5/17 20:21

运行时

Node.js

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

npx tsc --noEmit

详细介绍

MSSQL工具MCP服务器

封装SQL server命令行实用程序的专业级模型上下文协议(MCP)服务器(sqlcmdbcp),使LLM能够与具有企业级功能的Microsoft SQL Server数据库进行交互。

📚 文档

✨ 特性

核心能力

  • 🔍 结构化查询执行 -执行SQL查询,结果以JSON或格式化文本返回
  • 📊 模式探索 -列出具有详细元数据的数据库、表、视图、存储过程
  • ⚡ 连接池 -智能连接重用,实现最佳性能
  • 🔐 安全凭据管理 -环境变量、连接配置文件和密钥管理器集成
  • 📦 批量操作 -使用BCP进行高性能数据导入/导出
  • 📑 分页 -内置对大型结果集分页的支持
  • 🔄 批量查询 -按顺序执行多个查询
  • 📋 查询模板 -针对常见任务的预构建诊断查询
  • 🎯 设置文件格式 -为复杂的数据映射生成和使用BCP格式文件
  • 📝 综合录井 -具有详细执行日志的调试模式
  • 🔌 连接测试 -操作前验证连接和凭据

建筑亮点

  • 模块化设计 -为每个职责提供专门的模块,实现关注点的清晰分离
  • 类型安全 -具有全面类型定义的完整TypeScript实现
  • 错误处理 -具有可操作反馈的智能错误解析
  • 资源管理 -用于发现可用连接的MCP资源
  • 提示模板 -MCP提示进行数据库健康检查和诊断

⚡ 快速开始

新使用此MCP服务器? 请参阅 快速入门指南 5分钟设置!

先决条件

  • Node.js 18.0.0或更高
  • SQL Server 实例(本地或远程)
  • mssql工具 (sqlcmdbcp 命令)
  • 其中之一:Claude Desktop、VSCode(Cline)、Claude Code CLI、GitHub Copilot或Gemini CLI

安装

# 1. Install mssql-tools (macOS example - see INSTALLATION.md for other platforms)
brew tap microsoft/mssql-release https://github.com/Microsoft/homebrew-mssql-release
brew install mssql-tools18

# 2. Clone and build
git clone 
cd mssql-tools-mcp
npm install
npm run build

# 3. Configure your client (example for Claude Desktop)
# Edit: ~/Library/Application Support/Claude/claude_desktop_config.json

安装.md 详细的平台特定设置:

  • 克劳德桌面
  • VSCode(Cline/Claude Dev扩展)
  • 克劳德代码CLI
  • GitHub Copilot
  • Gemini CLI

基本配置

克劳德桌面示例:

{
  "mcpServers": {
    "mssql-tools": {
      "command": "node",
      "args": ["/absolute/path/to/mssql-tools-mcp/dist/index.js"],
      "env": {
        "MSSQL_SERVER": "localhost",
        "MSSQL_USERNAME": "sa",
        "MSSQL_PASSWORD": "YourPassword123",
        "LOG_LEVEL": "info"
      }
    }
  }
}

配置.md 用于:

  • 连接配置文件
  • 安全凭据存储(AWS密钥管理器、Azure密钥库、1Password)
  • 环境变量引用
  • 连接池设置

测试您的安装

配置后,在LLM客户端中使用这些查询进行测试:

1. "Test the connection to my SQL Server"
2. "List all databases"
3. "Show me tables in the master database"
4. "Run the database health check prompt"

安装.md 用于完整的测试程序和故障排除。

🛠️ 可用工具

查询执行

execute_query

使用结构化JSON结果、分页和多种输出格式执行SQL查询。

参数:

  • query (必需)-要执行的SQL查询
  • server, database, username, password -连接详细信息(如果使用环境变量或配置文件,则可选)
  • connectionProfile -使用命名的连接配置文件
  • maxRows -要返回的最大行数(分页)
  • offset -分页时的行偏移量
  • outputFormat -“json”(默认)或“text”
  • timeout -查询超时(秒)

例子:

{
  "connectionProfile": "production",
  "query": "SELECT TOP 100 * FROM Users WHERE CreatedDate > '2024-01-01'",
  "maxRows": 50,
  "offset": 0,
  "outputFormat": "json"
}

execute_batch

按顺序执行多个SQL查询。

参数:

  • queries (必填)-SQL查询数组
  • 连接参数(与execute_query相同)

例子:

{
  "connectionProfile": "dev",
  "queries": [
    "CREATE TABLE TempData (ID INT, Name NVARCHAR(100))",
    "INSERT INTO TempData VALUES (1, 'Test')",
    "SELECT * FROM TempData"
  ]
}

连接管理

test_connection

测试连接并验证凭据。

退货: 服务器版本和成功状态

pool_stats

获取连接池统计信息。

退货: 总连接数、使用中连接数和空闲连接数

clear_pool

清除所有池连接。

模式探索

list_databases

列出SQL Server实例上的所有数据库。

list_tables

列出数据库中包含架构信息的所有表。

describe_table

获取表的详细架构信息,包括列、类型、键和约束。

参数:

  • database (必填)
  • table (必需)-表名(有或没有架构)

例子:

{
  "connectionProfile": "production",
  "database": "SalesDB",
  "table": "dbo.Orders"
}

list_stored_procedures

列出数据库中的所有存储过程。

list_views

列出数据库中的所有视图。

批量操作(BCP)

export_table

使用BCP将表数据导出到文件。

参数:

  • database, table, outputFile (必填)
  • format -“本地”、“字符”、“宽”或“unicode”
  • fieldTerminator -字段分隔符(例如,“,”,“\\t”)
  • rowTerminator -行分隔符
  • formatFile -BCP格式文件的路径

例子:

{
  "connectionProfile": "production",
  "database": "SalesDB",
  "table": "dbo.Orders",
  "outputFile": "/tmp/orders.csv",
  "format": "character",
  "fieldTerminator": ",",
  "rowTerminator": "\n"
}

import_table

使用BCP将数据从文件导入表。

附加参数:

  • batchSize -每批提交的行数
  • errorFile -错误日志文件的路径
  • maxErrors -中止前的最大错误数

export_query

将SQL查询的结果导出到文件。

generate_format_file

为表格生成BCP格式文件。

📚 MCP提示

预构建的诊断查询模板:

  • database-health-check -检查数据库大小、增长和指标
  • find-slow-queries -识别运行缓慢的查询
  • find-missing-indexes -发现绩效改进机会
  • table-space-usage -分析表大小和行数
  • active-connections -显示当前活动的连接
  • index-fragmentation -检查索引碎片级别
  • backup-history -查看最近的备份历史记录
  • deadlock-analysis -分析最近的死锁事件

Claude中的用法: 只需询问:“为我的数据库运行数据库健康检查提示”

🔐 安全功能

环境变量

安全地存储默认凭据:

export MSSQL_SERVER="localhost"
export MSSQL_USERNAME="sa"
export MSSQL_PASSWORD="YourSecurePassword"

连接配置文件

通过环境变量定义命名连接配置文件:

export MSSQL_PROFILE_PROD_SERVER="prod-db.example.com"
export MSSQL_PROFILE_PROD_DATABASE="MainDB"
export MSSQL_PROFILE_PROD_USERNAME="app_user"

然后使用: "connectionProfile": "prod"

秘密管理器集成

与AWS Secrets Manager、Azure密钥库或1Password CLI集成。看 配置.md 了解详情。

身份验证

使用可信身份验证(无需密码):

{
  "server": "localhost",
  "query": "SELECT @@VERSION"
}

🔍 日志记录

启用调试日志以进行故障排除:

{
  "env": {
    "LOG_LEVEL": "debug"
  }
}

日志显示在Claude Desktop的开发人员控制台中(帮助>开发人员工具)。

🏗️ 建筑

服务器采用模块化、团队主导的质量架构:

src/
├── types.ts              # TypeScript type definitions
├── logger.ts             # Logging infrastructure
├── errors.ts             # Custom error classes and error handling
├── config.ts             # Configuration management
├── connection-pool.ts    # Connection pooling system
├── sqlcmd-executor.ts    # SQL command execution
├── bcp-executor.ts       # Bulk copy program execution
├── output-parser.ts      # Query result parsing
├── resources.ts          # MCP resource management
├── prompts.ts            # MCP prompt templates
└── index.ts              # Main server and tool handlers

关键设计原则

  • 单一责任 -每个模块都有一个明确的目的
  • 依赖注入 -共享资源的Singleton实例
  • 错误透明度 -详细的错误消息和可操作的指导
  • 类型安全 -全面的TypeScript类型
  • 可测试性 -模块化设计使测试变得容易

📖 示例

执行简单查询

{
  "tool": "execute_query",
  "arguments": {
    "server": "localhost",
    "database": "AdventureWorks",
    "query": "SELECT TOP 10 * FROM Person.Person"
  }
}

使用连接配置文件

{
  "tool": "execute_query",
  "arguments": {
    "connectionProfile": "production",
    "query": "SELECT COUNT(*) FROM Users WHERE Active = 1"
  }
}

将数据导出到CSV

{
  "tool": "export_table",
  "arguments": {
    "connectionProfile": "production",
    "database": "SalesDB",
    "table": "dbo.Orders",
    "outputFile": "/tmp/orders.csv",
    "format": "character",
    "fieldTerminator": ",",
    "rowTerminator": "\n"
  }
}

分页结果

{
  "tool": "execute_query",
  "arguments": {
    "connectionProfile": "production",
    "query": "SELECT * FROM LargeTable ORDER BY ID",
    "maxRows": 100,
    "offset": 0
  }
}

批量操作

{
  "tool": "execute_batch",
  "arguments": {
    "connectionProfile": "dev",
    "queries": [
      "BEGIN TRANSACTION",
      "UPDATE Users SET Status = 'Active' WHERE LastLogin > DATEADD(day, -30, GETDATE())",
      "UPDATE Users SET Status = 'Inactive' WHERE LastLogin <= DATEADD(day, -30, GETDATE())",
      "COMMIT TRANSACTION"
    ]
  }
}

🐛 故障排除

命令未找到

如果出现“找不到命令”错误:

  1. 验证安装: which sqlcmdwhich bcp
  2. 检查PATH是否包含mssql工具bin目录
  3. 通过环境变量设置显式路径:
   {
     "env": {
       "SQLCMD_PATH": "/opt/mssql-tools18/bin/sqlcmd",
       "BCP_PATH": "/opt/mssql-tools18/bin/bcp"
     }
   }

连接问题

  • 验证SQL Server是否正在运行且可访问
  • 检查防火墙设置是否允许TCP/IP连接
  • 如果使用SQL身份验证,请确保启用SQL Server身份验证
  • 验证凭据是否正确
  • 使用 test_connection 诊断工具

权限错误

  • 验证用户是否具有所需的数据库权限
  • 对于文件操作(bcp),请检查文件系统权限
  • 确保输出目录存在

陈旧的连接

  • 使用 pool_stats 检查连接状态
  • 使用 clear_pool 重置连接
  • 重新启动Claude Desktop以完全重置

🤝 贡献

欢迎投稿!代码库的设计遵循干净的架构原则和全面的类型安全。

发展

# Watch mode for development
npm run watch

# Build
npm run build

# Check types
npx tsc --noEmit

📄 许可证

麻省理工学院

🙏 致谢

  • 建立在 模型上下文协议
  • 使用Microsoft SQL Server命令行实用程序
  • 设计时考虑了企业数据库操作

📞 支持

有关问题、疑问或贡献,请访问GitHub存储库。

______________________________________________________________________

版本2.0 -具有连接池、结构化输出和企业功能的专业级MCP服务器。

目录标签

目录标签

数据库工具命令行工具TypeScriptClaude本地部署SQLServerLLM集成企业级功能

支持客户端

Claude DesktopClaudeCline

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

none

运行时(runtime,运行环境)

Node.js

来源包(packageName,安装包名)

tsc

工具数量(toolCount,工具数)

10

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdionone部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP