nxmes

nxmes 内容与运维记录

mssql-mcp-servers

MS SQL MCP 服务器 1.1

一个易于使用的桥梁,可让 Claude 等 AI 助手直接查询和探索 Microsoft SQL Server 数据库。无需编码经验!

1. 这个工具有什么作用?

2. 示例用例

mcp_SQL_mcp_discover_database()
mcp_SQL_mcp_table_details({ tableName: "Customers" })
mcp_SQL_mcp_execute_query({ sql: "SELECT TOP 10 * FROM Customers", returnResults: true })
mcp_SQL_mcp_discover_tables({ namePattern: "%user%" })
// First page
mcp_SQL_mcp_execute_query({ 
  sql: "SELECT * FROM Users ORDER BY Username OFFSET 0 ROWS FETCH NEXT 10 ROWS ONLY", 
  returnResults: true 
})

// Next page
mcp_SQL_mcp_execute_query({ 
  sql: "SELECT * FROM Users ORDER BY Username OFFSET 10 ROWS FETCH NEXT 10 ROWS ONLY", 
  returnResults: true 
})
// First page
mcp_SQL_mcp_execute_query({ 
  sql: "SELECT TOP 10 * FROM Users ORDER BY Username", 
  returnResults: true 
})

// Next page using the last value as cursor
mcp_SQL_mcp_execute_query({ 
  sql: "SELECT TOP 10 * FROM Users WHERE Username > 'last_username' ORDER BY Username", 
  returnResults: true 
})
"Show me the top 5 customers with the most orders in the last month"

3. 实际应用

销售绩效分析: “显示过去一年的月度销售趋势,并按地区确定我们表现最好的产品。” 客户细分: “按购买频率、平均订单价值和地理位置分析我们的客户群。” 财务报告: “创建季度损益报告,将今年与去年进行比较。

架构优化:“通过检查查询性能数据,帮助我识别缺少索引的表。 数据质量审计:“查找信息不完整或值无效的所有客户记录。 Usage Analysis:“告诉我哪些表访问最频繁,哪些查询最耗费资源。

API 探索:“我正在构建一个 API - 帮助我分析数据库架构以设计适当的终端节点。 查询优化:“查看此复杂查询并建议性能改进。 数据库文档:“创建数据库结构的综合文档,并解释关系。

4. 交互式客户端功能

5. 基本工具调用格式

例如:

基本命令和语法

// 分析数据库结构
mcp_SQL_mcp_discover_database()

// 获取特定表的详细信息
mcp_SQL_mcp_table_details({ tableName: "YourTableName" })

// 执行查询并返回结果
mcp_SQL_mcp_execute_query({ 
  sql: "SELECT * FROM YourTable WHERE Condition", 
  returnResults: true 
})

// 按模糊模式查找表
mcp_SQL_mcp_discover_tables({ namePattern: "%pattern%" })

// 访问保存的查询结果(对于大型结果集)
mcp_SQL_mcp_get_query_results({ uuid: "provided-uuid-here" })

何时使用每个工具:

6. 有效的提示模式(分步流程)

对于复杂任务,请指导 AI 完成一系列步骤:

7. SQL Server 语法说明

提醒 AI 有关 SQL Server 的特定语法:

请使用 SQL Server 语法进行分页:

更正工具使用

如果 AI 使用了不正确的语法,您可以通过以下方式帮助它: 这完全不正确。请使用这种格式调用工具: mcp_SQL_mcp_execute_query({ sql:“SELECT * FROM Customers WHERE Region = ‘West’"、 returnResults: true })

8. 高级查询功能

MCP 服务器提供了用于探索数据库结构的强大工具:

mcp_SQL_mcp_execute_query({ 
  sql: "SELECT TABLE_SCHEMA, COUNT(*) AS TableCount FROM INFORMATION_SCHEMA.TABLES GROUP BY TABLE_SCHEMA" 
})

分页技术

  1. Offset/Fetch 分页:使用 OFFSET 和 FETCH 的标准 SQL 分页
mcp_SQL_mcp_execute_query({ 
  sql: "SELECT * FROM Users ORDER BY Username OFFSET 0 ROWS FETCH NEXT 10 ROWS ONLY" 
})
  1. 基于游标的分页:对大型数据集更高效
// Get first page
mcp_SQL_mcp_execute_query({ 
  sql: "SELECT TOP 10 * FROM Users ORDER BY Username" 
})

// Get next page using last value as cursor
mcp_SQL_mcp_execute_query({ 
  sql: "SELECT TOP 10 * FROM Users WHERE Username > 'last_username' ORDER BY Username" 
})
  1. Count with Data:检索总计数以及分页数据
mcp_SQL_mcp_execute_query({ 
  sql: "WITH TotalCount AS (SELECT COUNT(*) AS Total FROM Users) SELECT TOP 10 u.*, t.Total FROM Users u CROSS JOIN TotalCount t ORDER BY Username" 
})

复杂的连接和关系

mcp_SQL_mcp_execute_query({ 
  sql: "SELECT u.Username, u.Email, r.RoleName FROM Users u JOIN UserRoles ur ON u.Username = ur.Username JOIN Roles r ON ur.RoleId = r.RoleId ORDER BY u.Username"
})

分析查询

mcp_SQL_mcp_execute_query({ 
  sql: "SELECT UserType, COUNT(*) AS UserCount, SUM(CASE WHEN IsActive = 1 THEN 1 ELSE 0 END) AS ActiveUsers FROM Users GROUP BY UserType"
})

9. 集成选项

{
    "mcpServers": {
        "mssql": {
            "command": "node",
            "args": [
                "/FULL/PATH/TO/mssql-mcp-server/server.mjs"  //替换为克隆此存储库的实际路径/FULL/PATH/TO/
            ]
        }
    }
}
  1. 安装相关依赖
  2. 启动服务端命令:npm run start:sse 或 创建bat脚本
 @echo off
  echo 正在启动 MSSQL-MCP 服务器...
  cd /d D:\wwwroot\ClaudeMCP\mcp\mssql-mcp
  npm run start:sse 
  1. 浏览器打开:localhost:3333/sse ,查看有无输出错误
{
  "mcpServers": {
    "context7": {
      "command": "node",
      "args": [
        "D:/wwwroot/ClaudeMCP/mcp/context7/dist/index.js",
        "--stdio"
      ]
    },
    "mssql-sse": {
      "url": "http://localhost:3333/sse"
    }
  }
}

连接后,您可以直接在 Cursor 的 AI 聊天中使用 MCP 命令:

  1. 显示一下数据库中有哪些表
  2. 查询客户表中的10条记录
  3. 查找上个月的所有订单,价值超1000的客户

输出方法说明

9. 架构和核心模块

核心模块

  1. 收到工具调用后,MCP 服务器会将其路由到tools.mjs
  2. 工具处理程序验证参数并构建数据库查询
  3. 查询通过 中的函数执行,可能从database.mjspagination.mjs
  4. 结果将被格式化并返回给客户端
  5. 任何错误都会被捕获并处理errors.mjs
  6. 所有作都通过logger.mjs

环境配置说明

该文件控制 MS SQL MCP 服务器如何连接到您的数据库并运行。以下是每个设置的详细说明:.env

# Database Connection Settings
DB_USER=your_username           # SQL Server username
DB_PASSWORD=your_password       # SQL Server password
DB_SERVER=your_server_name      # Server hostname or IP address (example: localhost, 10.0.0.1, myserver.database.windows.net)
DB_DATABASE=your_database_name  # Name of the database to connect to

# Server Configuration
PORT=3333                       # Port for the HTTP/SSE server to listen on
TRANSPORT=stdio                 # Connection method: 'stdio' (for Claude Desktop) or 'sse' (for network connections)
SERVER_URL=http://localhost:3333 # Base URL when using SSE transport (must match your PORT setting)

# Advanced Settings
DEBUG=false                     # Set to 'true' for detailed logging (helpful for troubleshooting)
QUERY_RESULTS_PATH=/path/to/query_results  # Directory where query results will be saved as JSON files

连接类型说明

stdio 运输

HTTP/SSE 传输

开源地址:https://github.com/dperussina/mssql-mcp-server