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

Alyio MCP Mssql

MCP Server

@modelcontextprotocol/inspector

一个针对Microsoft SQL Server的只读查询工具,支持元数据发现、参数化查询和查询分析,通过配置文件进行管理并严格禁止DML/DDL操作。

工具数

6

提示词数

0

GitHub Stars

5

资源数

0
C#数据分析API集成

安装说明

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

作者 / 组织

alyiox

提供方

alyiox

最后核验

2026/5/17 20:22

运行时

Node.js

快速接入

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

命令预览

npx -y @modelcontextprotocol/inspector dotnet dnx Alyio.McpMssql --prerelease

详细介绍

MCP SQL Server工具

![Build Status](https://github.com/alyiox/mcp-mssql/actions/workflows/ci.yml) ](https://www.nuget.org/packages/Alyio.McpMssql)

只读 模型上下文协议(MCP) 用于Microsoft SQL server的服务器,支持元数据发现、参数化查询和查询分析,具有基于配置文件的配置和严格的无DML/DDL强制。

要求: .NET 10.0 SDK、SQL Server和连接字符串。

快速启动

MCPMSSQL_CONNECTION_STRING 并以以下方式之一运行服务器:

# Option 1: Run from NuGet package (e.g. with MCP Inspector)
export MCPMSSQL_CONNECTION_STRING="Server=127.0.0.1;User ID=sa;Password=;Encrypt=True;TrustServerCertificate=True;"
npx -y @modelcontextprotocol/inspector dotnet dnx Alyio.McpMssql --prerelease
# Option 2: Install and run as a global tool
dotnet tool install --global Alyio.McpMssql --prerelease
export MCPMSSQL_CONNECTION_STRING="Server=127.0.0.1;User ID=sa;Password=;Encrypt=True;TrustServerCertificate=True;"
npx -y @modelcontextprotocol/inspector mcp-mssql
# Option 3: Run from source (clone repo, then)
export MCPMSSQL_CONNECTION_STRING="Server=127.0.0.1;User ID=sa;Password=;Encrypt=True;TrustServerCertificate=True;"
npx -y @modelcontextprotocol/inspector dotnet run --project src/Alyio.McpMssql

使用 --prerelease 对于预发布版本。

配置

所有设置都使用 MCPMSSQL 前缀。 平坦的 环境变量(例如。 MCPMSSQL_CONNECTION_STRING)是配置的直接方法 默认 当您只有一个连接时,请使用配置文件。对于多个配置文件,用户范围 appsettings.json 文件是推荐的。

单连接: 通过环境变量进行配置。

# Connection string (required).
export MCPMSSQL_CONNECTION_STRING="Server=127.0.0.1;User ID=sa;Password=;Encrypt=True;TrustServerCertificate=True;"

# Optional description for the default profile (tooling/AI discovery).
export MCPMSSQL_DESCRIPTION="Primary connection"

# Optional max rows per interactive query (default `500`; hard ceiling `1000`).
export MCPMSSQL_QUERY_MAX_ROWS="500"

# Optional query timeout in seconds (default `30`).
export MCPMSSQL_QUERY_COMMAND_TIMEOUT_SECONDS="60"

# Optional max rows for snapshot queries (default `10000`; hard ceiling `50000`).
export MCPMSSQL_QUERY_SNAPSHOT_MAX_ROWS="10000"

# Optional snapshot query timeout in seconds (default `120`).
export MCPMSSQL_QUERY_SNAPSHOT_COMMAND_TIMEOUT_SECONDS="120"

# Optional analyze timeout in seconds (default `300`).
export MCPMSSQL_ANALYZE_COMMAND_TIMEOUT_SECONDS="300"

多个连接: 使用用户范围 appsettings.json 文件(推荐)。Env-vars也通过工作。NET主机约定(MCPMSSQL__PROFILES____CONNECTIONSTRING等等)。

  • 类Unix: ~/.config/mcp-mssql/appsettings.json
  • 窗户: %USERPROFILE%\.config\mcp-mssql\appsettings.json

示例(appsettings.json):

{
  "McpMssql": {
    "Profiles": {
      "default": {
        "ConnectionString": "Server=...;User ID=...;Password=...;",
        "Description": "Primary connection",
        "Query": {
          "MaxRows": 500,
          "CommandTimeoutSeconds": 60,
          "SnapshotMaxRows": 10000,
          "SnapshotCommandTimeoutSeconds": 120
        },
        "Analyze": {
          "CommandTimeoutSeconds": 300
        }
      },
      "warehouse": {
        "ConnectionString": "Server=warehouse.example.com;...",
        "Description": "Warehouse read-only"
      }
    }
  }
}

地方发展: 将连接字符串存储在用户机密中,然后使用运行 DOTNET_ENVIRONMENT=Development 所以秘密负载。

dotnet user-secrets set "MCPMSSQL_CONNECTION_STRING" "..." --project src/Alyio.McpMssql
npx -y @modelcontextprotocol/inspector -e DOTNET_ENVIRONMENT=Development dotnet run --project src/Alyio.McpMssql

工具和资源

所有工具都接受可选 profile;如果省略,则使用默认配置文件。

工具

工具描述关键参数
list_profiles列出已配置的连接配置文件。选择非默认配置文件时,请先致电。
get_server_properties获取服务器属性和执行限制(超时、行上限、护栏)。profile
list_objects列出目录元数据。 kind=catalog:数据库; schema:模式; relation:表格/视图; routine:程序/功能。 catalog 省略→ 活动目录(忽略 kind=catalog). schema 遗漏取决于种类。kind, profile, catalog, schema
get_object获取一个关系或例程的元数据。使用 list_objects 解析名称。如果满足以下条件,则返回空的详细信息有效载荷 includes 为空。kind, name, profile, catalog, schema, includes
run_query执行只读T-SQL SELECT;只允许使用SELECT(不允许使用DML/DDL)。以CSV格式返回结果 data 字段(内联)或快照资源URI snapshot=true.内联限制:500行(硬天花板1000行)。快照限制:10000行。更喜欢 analyze_query 用于计划调整。sql, profile, catalog, parameters, snapshot
analyze_query分析只读SELECT的执行计划。返回紧凑的JSON摘要(成本、运算符、基数、警告、索引、等待、统计数据)。从以下位置获取完整XML plan_uri;不返回结果行。sql, profile, catalog, parameters, estimated
  • kindcatalog, schema, relation,或 routine.为 get_object,仅 relationroutine.
  • includes --细节部分数组: columns, indexes, constraints (仅关系), definition (仅限例行程序)。

资源

URI模板描述
mssql://profiles列出已配置的连接配置文件。数据与 list_profiles.
mssql://server-properties?{profile}获取服务器属性和执行限制。数据与 get_server_properties.
mssql://objects?{kind,profile,catalog,schema}列出目录元数据。模式省略行为匹配 list_objects.
mssql://objects/{kind}/{name}{?profile,catalog,schema,includes}获取一个关系或例程的元数据。 includes 是必需的。
mssql://plans/{id}按ID检索完整的XML执行计划 analyze_query;参赛作品将在7天后过期。
mssql://snapshots/{id}按ID检索CSV格式的完整查询结果 run_query (快照=真);条目将在1天后过期。

资源镜像其相应的工具并返回JSON(除了 mssql://plans/{id} 它返回XML和 mssql://snapshots/{id} 返回CSV)。

安全

只读(SELECT 仅);参数化的 @paramName.对连接字符串使用环境变量或用户机密——永远不要提交机密。

MCP主机示例

常见MCP客户端的代码段。用您自己的连接字符串替换;确保 dotnet 在你的路径上。这 env 如果连接字符串已通过以下方式设置,则不需要块 appsettings.json 或环境变量。

光标

{
  "mcpServers": {
    "mssql": {
      "command": "dotnet",
      "args": ["dnx", "Alyio.McpMssql", "--prerelease", "--yes"],
      "env": {
        "MCPMSSQL_CONNECTION_STRING": "Server=127.0.0.1;User ID=sa;Password=;Encrypt=True;TrustServerCertificate=True;"
      }
    }
  }
}

双子座

{
  "mcpServers": {
    "mssql": {
      "command": "dotnet",
      "args": ["dnx", "Alyio.McpMssql", "--prerelease", "--yes"],
      "env": {
        "MCPMSSQL_CONNECTION_STRING": "Server=127.0.0.1;User ID=sa;Password=;Encrypt=True;TrustServerCertificate=True;"
      }
    }
  }
}

法典

[mcp_servers.mssql]
command = "dotnet"
args = ["dnx", "Alyio.McpMssql", "--prerelease", "--yes"]
[mcp_servers.mssql.env]
MCPMSSQL_CONNECTION_STRING = "Server=127.0.0.1;User ID=sa;Password=;Encrypt=True;TrustServerCertificate=True;"

开放代码

{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "mssql": {
      "type": "local",
      "enabled": true,
      "command": ["dotnet", "dnx", "Alyio.McpMssql", "--prerelease", "--yes"],
      "environment": {
        "MCPMSSQL_CONNECTION_STRING": "Server=127.0.0.1;User ID=sa;Password=;Encrypt=True;TrustServerCertificate=True;"
      }
    }
  }
}

克劳德代码

{
  "mcpServers": {
    "mssql": {
      "command": "dotnet",
      "args": ["dnx", "Alyio.McpMssql", "--prerelease", "--yes"],
      "env": {
        "MCPMSSQL_CONNECTION_STRING": "Server=127.0.0.1;User ID=sa;Password=;Encrypt=True;TrustServerCertificate=True;"
      }
    }
  }
}

GitHub Copilot

{
  "inputs": [],
  "servers": {
    "mssql": {
      "type": "stdio",
      "command": "dotnet",
      "args": ["dnx", "Alyio.McpMssql", "--prerelease", "--yes"],
      "env": {
        "MCPMSSQL_CONNECTION_STRING": "Server=127.0.0.1;User ID=sa;Password=;Encrypt=True;TrustServerCertificate=True;"
      }
    }
  }
}

集成测试

测试使用真实的SQL Server和 default 个人资料(MCPMSSQL_CONNECTION_STRING 来自环境变量或用户秘密)。该套件需要一个名为的数据库 McpMssqlTest:连接字符串必须包括 Initial Catalog=McpMssqlTest测试基础架构创建、种子和删除此数据库。设置测试项目的秘密:

dotnet user-secrets set "MCPMSSQL_CONNECTION_STRING" \
  "Server=localhost,1433;User ID=sa;Password=...;TrustServerCertificate=True;Encrypt=True;Initial Catalog=McpMssqlTest;" \
  --project test/Alyio.McpMssql.Tests

为什么不使用数据API生成器?

Data API Builder(DAB)是一个完整的REST/GraphQL API,包含CRUD和auth。此项目是一个用于代理的小型只读MCP服务器:stdio,仅参数化SELECT,最小表面。为代理工作流和低运营开销选择此选项;为CRUD、REST/GraphQL和丰富策略选择DAB。

贡献

未决问题或PR;遵循现有样式,并在适当的地方添加测试。

许可证

MIT。看 许可证.

目录标签

目录标签

C#数据分析API集成SQLServer本地部署只读查询元数据发现参数化查询查询分析

接入字段

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

stdio

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

none

运行时(runtime,运行环境)

Node.js

来源包(packageName,安装包名)

@modelcontextprotocol/inspector

工具数量(toolCount,工具数)

6

资源数量(resourceCount,资源数)

0

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

0

权限和风险

stdionone部署方式未说明

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

安装前确认

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

来源信息

继续浏览同类 MCP