mcpField
M
Mssql Mcp Server

Mssql Mcp Server

本地服务
github.com/stilllovee数据库046 周前更新

关于 Mssql Mcp Server

Mssql Mcp Server 让 AI Agent 和其他 MCP 客户端操作 Microsoft SQL Server。它支持通过 stdio 或 Streamable HTTP 执行查询和存储过程,并提供可配置的身份验证与会话管理。

主要功能

  1. 01执行 SQL 查询
  2. 02运行存储过程
  3. 03获取数据库连接信息
  4. 04支持 Windows 和 SQL Server 身份验证
  5. 05支持 stdio 和 Streamable HTTP 传输
  6. 06支持多个 HTTP 会话

适用场景

  1. 01从 MCP 客户端查询 SQL Server
  2. 02通过 Agent 调用存储过程
  3. 03通过 HTTP 连接 Web 应用
  4. 04按 API 密钥区分数据库连接

MCP 相关

它将 SQL Server 操作作为 MCP 工具提供,包括执行查询、存储过程和获取连接信息。客户端可通过 stdio 或 Streamable HTTP 连接。

配置

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

mcp.json · 通用配置
{
"mcpServers": {
"mssql-mcp-server-stilllovee": {
"command": "npx",
"args": [
"-y",
"github:stilllovee/mssql-mcp-server"
],
"env": {
"DB_SERVER": "<DB_SERVER>",
"DB_DATABASE": "<DB_DATABASE>",
"DB_USER": "<DB_USER>",
"DB_PASSWORD": "<DB_PASSWORD>",
"DB_TRUST_SERVER_CERTIFICATE": "<DB_TRUST_SERVER_CERTIFICATE>",
"DB_ENCRYPT": "<DB_ENCRYPT>"
}
}
}
}
启动命令npx -y github:stilllovee/mssql-mcp-server
需要配置的环境变量
DB_SERVER
DB_DATABASE
DB_USER
DB_PASSWORD密钥
DB_TRUST_SERVER_CERTIFICATE
DB_ENCRYPT

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

安装包
npmgithub:stilllovee/mssql-mcp-server

工具

还没有获取到工具列表

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

详细介绍

MSSQL MCP 服务

用于 Microsoft SQL Server 数据库操作的模型上下文协议(MCP)服务。

功能

  • 对 SQL Server 执行 SQL 查询
  • 执行存储过程
  • 获取数据库连接信息
  • 支持 Windows 身份验证和 SQL Server 身份验证
  • 通过环境变量灵活配置
  • 可流式 HTTP 传输,适用于 Web 应用和远程连接
  • 支持多个同时进行的会话

用法

该服务支持两种传输模式:

1. Stdio 传输(默认)

适用于 Claude Desktop 和其他基于 stdio 的 MCP 客户端。

添加到 Claude Desktop 配置中:

{
    "mcpServers": {
        "mssql": {
            "command": "npx",
            "args": [
                "github:stilllovee/mssql-mcp-server"
            ],
            "env": {
                "DB_SERVER": "servername",
                "DB_DATABASE": "dbname",
                "DB_USER": "username", //optional
                "DB_PASSWORD": "password",  //optional
                "DB_TRUST_SERVER_CERTIFICATE": "true",  //optional
                "DB_ENCRYPT": "true"  //optional
            }
        }
    }
}

或者在自己的 PC 上安装

npm install
{
    "mcpServers": {
        "mssql": {
            "command": "node",
            "args": ["/path/to/folder"],
            "env": {
                "DB_SERVER": "servername",
                "DB_DATABASE": "dbname",
                "DB_USER": "username", //optional
                "DB_PASSWORD": "password",  //optional
                "DB_TRUST_SERVER_CERTIFICATE": "true",  //optional
                "DB_ENCRYPT": "true"  //optional
            }
        }
    }
}

或者使用连接字符串:

{
    "mcpServers": {
        "mssql": {
            "command": "node",
            "args": ["/path/to/folder"],
            "env": {
                "DB_CONNECTION_STRING": "Server=localhost;Database=ecommerce;Trusted_Connection=yes;TrustServerCertificate=yes"
            }
        }
    }
}
2. 可流式 HTTP 传输

适用于 Web 应用、远程连接以及首选 HTTP 的环境。

启动 HTTP 服务

使用数据库配置设置 .env 文件:

DB_SERVER=localhost
DB_DATABASE=ecommerce
DB_USE_WINDOWS_AUTH=true
# Or use a full connection string
# DB_CONNECTION_STRING=Server=localhost;Database=ecommerce;Trusted_Connection=yes;TrustServerCertificate=yes

运行服务:

# Using default port 8123
node index-http.js

# Or specify a custom port
node index-http.js --port=3000

服务将在 http://localhost:8123/mcp(或自定义端口)上提供。

HTTP 传输功能
  • 会话管理:支持多个具有唯一会话 ID 的客户端同时连接
  • 服务器发送事件(SSE):通过 GET 端点实时发送通知
  • 有状态连接:在多个请求之间保持会话状态
  • 标准 HTTP:适用于任何 HTTP 客户端或代理
  • 基于 API 密钥的连接映射:将不同的 API 密钥映射到不同的数据库连接(见下文)
基于 API 密钥的多数据库支持

HTTP 传输支持使用 Azure Table Storage 进行基于 API 密钥的连接映射,使不同客户端能够使用唯一的 API 密钥连接到不同的数据库。

启用 API 密钥映射:

# Set environment variables
USE_API_KEY_MAPPING=true
AZURE_STORAGE_CONNECTION_STRING=your_azure_connection_string

# Start the server
node index-http.js

在 Claude Desktop 中配置:

"mssql": {
    "type": "http",
    "url": "http://localhost:8123/mcp",
    "headers": {
        "x-api-key": "your-api-key"
    }
},

使用 API 密钥发送请求:

curl -X POST http://localhost:8123/mcp \
  -H "Content-Type: application/json" \
  -H "x-api-key: your-api-key" \
  -d '{"jsonrpc":"2.0","id":1,"method":"initialize",...}'

管理 API 密钥:

# List all API keys
node scripts/manage-api-keys.js list

# Add a new API key
node scripts/manage-api-keys.js add my-api-key

# Delete an API key
node scripts/manage-api-keys.js delete my-api-key

有关 Azure Table Storage 设置、API 密钥管理和安全最佳实践的详细信息,请参阅 Azure Table Storage 文档。

HTTP 端点
  • POST /mcp - 发送 MCP 请求并接收响应
  • GET /mcp - 建立用于接收通知的 SSE 连接(需要 mcp-session-id 标头)
可用环境变量
变量描述默认值
DB_CONNECTION_STRING完整连接字符串(会覆盖所有其他设置)-
DB_SERVERSQL Server 主机名或 IP 地址localhost
DB_DATABASE数据库名称ecommerce
DB_USERSQL Server 身份验证的用户名-
DB_PASSWORDSQL Server 身份验证的密码-
DB_USE_WINDOWS_AUTH使用 Windows 身份验证true(未设置用户名/密码时)
DB_DRIVERODBC 驱动程序名称ODBC Driver 17 for SQL Server
DB_ENCRYPT启用连接加密false
DB_TRUST_SERVER_CERTIFICATE信任服务器证书true
USE_API_KEY_MAPPING启用基于 API 密钥的连接映射false
AZURE_STORAGE_CONNECTION_STRINGAzure Table Storage 连接字符串(API 密钥映射必需)-
AZURE_TABLE_NAME用于 API 密钥映射的 Azure 表名称ApiKeyMappings
可用工具
  1. sql_execute_query - 执行 SQL 查询

    • 参数:query(字符串)、params(对象,可选)
  2. sql_execute_procedure - 执行存储过程

    • 参数:procedure_name(字符串)、params(对象,可选)
  3. sql_get_database_info - 获取数据库连接信息

    • 无需参数
  4. 还有更多……

要求

  • Node.js 14 或更高版本
  • 安装了 ODBC 驱动程序的 SQL Server
  • 使用 Windows 身份验证时:在 Windows 上运行并具备适当权限

评论

支持 Markdown

第一次接触 MCP?

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

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