Skip to main content
Glama
Microsoft SQL Server MCP

Microsoft SQL Server MCP

by AdrianCY

@adriancy/mcp-mssql

用于 Microsoft SQL Server 的 MCP 服务器 (stdio)。它公开了相关工具,以便 Cursor(或任何 MCP 客户端)可以列出表、描述列并运行以读取为主的 T-SQL。

在 Cursor 中使用

  1. 打开 Cursor Settings → MCP(或编辑您的 MCP JSON)。

  2. 添加一个服务器块。将 env 设置为您的数据库配置(请参阅 .env.example)。

从 npm 安装(包发布后):

{
  "mcpServers": {
    "mssql": {
      "command": "npx",
      "args": ["-y", "@adriancy/mcp-mssql"],
      "env": {
        "MSSQL_SERVER": "localhost",
        "MSSQL_USER": "your_user",
        "MSSQL_PASSWORD": "your_password",
        "MSSQL_DATABASE": "your_database",
        "MSSQL_TRUST_SERVER_CERTIFICATE": "true"
      }
    }
  }
}

从本地克隆安装(先运行 pnpm install && pnpm build):

{
  "mcpServers": {
    "mssql": {
      "command": "node",
      "args": ["/absolute/path/to/mssql-mcp/dist/index.js"],
      "env": {
        "MSSQL_SERVER": "localhost",
        "MSSQL_USER": "your_user",
        "MSSQL_PASSWORD": "your_password",
        "MSSQL_DATABASE": "your_database",
        "MSSQL_TRUST_SERVER_CERTIFICATE": "true"
      }
    }
  }
}

本地文件请使用 node。避免将 pnpm 用作 MCP command — stdout 上的额外输出可能会破坏协议。

确认安装名称与 npm 一致:npm view @adriancy/mcp-mssql version。

Related MCP server: MSSQL Database MCP Server

环境变量

所有变量均从 MCP 进程环境(例如 Cursor env)中读取。布尔值将 1、true、yes、on(不区分大小写)视为 true,将 0、false、no、off 视为 false。无效的布尔值和整数值会导致启动验证失败。

变量

必需

默认值

含义

MSSQL_SERVER

是

—

SQL Server 的主机名或 IP

MSSQL_USER

是†

—

登录用户(SQL 身份验证、NTLM、Azure AD 密码);不用于 azure-active-directory-access-token 或仅服务主体流程

MSSQL_PASSWORD

是*†

—

登录密码(*某些设置下可为空)

MSSQL_DATABASE

是

—

初始数据库

MSSQL_PORT

否

1433

TCP 端口;使用 MSSQL_INSTANCE_NAME 时省略(驱动程序使用实例 + SQL Browser)

MSSQL_ENCRYPT

否

true

TLS encrypt:true、false 或 strict (TDS 8.0 / tedious)

MSSQL_TRUST_SERVER_CERTIFICATE

否

false

信任自签名证书 / 跳过证书验证(仅限开发环境)

MSSQL_TLS_SERVER_NAME

否

—

当 TLS 验证的主机名与 MSSQL_SERVER 不同时(例如通过 IP 连接)使用

MSSQL_TLS_CA_FILE

否

—

CA PEM 文件路径;通过 cryptoCredentialsDetails.ca 传递

MSSQL_TLS_CERT_FILE

否

—

可选的客户端证书 PEM(双向 TLS)

MSSQL_TLS_KEY_FILE

否

—

可选的客户端私钥 PEM

MSSQL_TLS_KEY_PASSPHRASE

否

—

加密客户端密钥的密码短语

MSSQL_CONNECTION_TIMEOUT_MS

否

(驱动默认)

连接池 connectionTimeout (ms)。0 → 未设置

MSSQL_DOMAIN

否

—

域登录(SQL 身份验证的 config.domain;MSSQL_AUTH_TYPE=ntlm 时必需)

MSSQL_INSTANCE_NAME

否

—

命名实例 (options.instanceName);设置此项时不要依赖 MSSQL_PORT

MSSQL_MULTI_SUBNET_FAILOVER

否

false

可用性组风格的故障转移提示

MSSQL_READ_ONLY_INTENT

否

false

AG 从节点的只读路由

MSSQL_MAX_RETRIES_ON_TRANSIENT_ERRORS

否

—

Tedious maxRetriesOnTransientErrors;0 → 未设置

MSSQL_CONNECTION_RETRY_INTERVAL_MS

否

—

Tedious connectionRetryInterval;0 → 未设置

MSSQL_POOL_MAX

否

10

连接池最大连接数

MSSQL_POOL_MIN

否

0

连接池最小连接数

MSSQL_POOL_IDLE_TIMEOUT_MS

否

30000

pool.idleTimeoutMillis

MSSQL_APP_NAME

否

—

options.appName(服务器跟踪)

MSSQL_USE_UTC

否

true

设置时的 options.useUTC

MSSQL_TDS_VERSION

否

—

7_1、7_2、7_3_A、7_3_B 或 7_4

MSSQL_AUTH_TYPE

否

—

ntlm、azure-active-directory-password、azure-active-directory-access-token、azure-active-directory-service-principal-secret,或未设置/default(SQL 登录)

MSSQL_AZURE_CLIENT_ID

否‡

—

需要时的 Azure AD 应用 (客户端) ID

MSSQL_AZURE_TENANT_ID

否‡

—

租户 ID(密码验证可选,默认为 common;服务主体必需)

MSSQL_AZURE_CLIENT_SECRET

否‡

—

服务主体密钥

MSSQL_AZURE_ACCESS_TOKEN

否‡

—

用于访问令牌验证的预获取令牌

MSSQL_ALLOW_WRITES

否

false

如果为 false/未设置,则在 mssql_query 中阻止常见的写/DDL/exec 模式(仅启发式)

MSSQL_QUERY_TIMEOUT_MS

否

(驱动默认)

驱动程序的请求超时(毫秒)。0 → 未设置

† SQL 身份验证以及使用交互式用户登录的身份验证类型必需。 ‡ 根据 MSSQL_AUTH_TYPE 必需;请参阅 .env.example。Node 17+ 上的 NTLM 可能需要 --openssl-legacy-provider(请参阅 tedious 常见问题解答)。

另请参阅 .env.example。

工具

工具

用途

mssql_query

运行 T-SQL;返回行和 rowsAffected

mssql_list_tables

INFORMATION_SCHEMA 中的表

mssql_describe_table

列元数据

当 MSSQL_ALLOW_WRITES 未设置/为 false 时,明显的写/DDL 模式会被阻止(仅启发式;请使用数据库权限以实现真正的安全)。

开发

pnpm install
pnpm check
pnpm test
pnpm build && pnpm start
pnpm dev

使用 pnpm format 应用 Biome 格式化修复,使用 pnpm lint 运行 lint 规则而不进行格式化。

日常使用请使用只读或最小权限的 SQL 登录账号。

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    C
    maintenance
    Enables AI assistants to interact with Microsoft SQL Server databases through query execution, schema discovery, CRUD operations, stored procedures, and data export with built-in safety controls.
    18
    42 PyPI
    Apache 2.0
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI assistants to securely interact with Microsoft SQL Server databases to query data, inspect schemas, and retrieve metadata with read-only operations by default and optional write capabilities.
    1
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables interaction with Microsoft SQL Server databases using both SQL Server and Windows Authentication. It supports flexible connection configurations, including read-only modes and encrypted communication for secure data management.
    3,082 npm
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    Enables AI assistants to interact with Microsoft SQL Server databases via introspection and query tools. Supports single or multiple databases with read-only mode by default and an optional write capability.
    299 npm
    5
    MIT