Token导航 LogoToken导航

MCP Server · 数据服务

MCP Server Sqlserver

SqlAugur是一个为AI助手提供安全只读访问SQL Server数据库的服务,通过AST级查询验证、速率限制和DBA诊断工具确保数据安全与效率。

stdio官方级别未说明来源级核验工具 30
C#Claude数据分析

快速开始

作者 / 组织
mbentham
提供方
mbentham
运行时
Docker

工具数量

30

来源目录标注

资源数量

0

来源目录标注

提示词数量

0

来源目录标注

GitHub Star

3

仓库热度

收录来源

1 个

MCP World

选型结论

MCP Server Sqlserver 属于数据服务类 MCP Server,公开资料标注 30 个工具,通过stdio 本地进程接入,适配 Claude,有可以直接复制的安装命令;接入前先确认权限范围。

分类

数据服务

传输方式

stdio

认证方式

无需认证

部署方式

公开资料未说明

安装与配置

安装命令

docker run -i --rm \

公开命令不是通用的启动方式,拼不出可靠配置示例;请在客户端 MCP 配置里按官方文档填写 command 和 args。

上手步骤

  1. 1

    准备运行环境

    stdio 服务在本地起进程,需要先装好 Docker,再按安装命令拉取依赖。

  2. 2

    安装服务

    复制下面的安装命令执行;命令里带占位符的位置换成自己的密钥或路径。

  3. 3

    写入客户端配置

    在客户端的 MCP 配置里填启动命令和参数,保存后完全退出客户端再打开,让新配置生效。

  4. 4

    验证是否可用

    连接成功后客户端会列出 30 个工具,随便调一个只读工具确认能返回结果。

接入前确认

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

详细介绍

SqlAugur

一个MCP服务器,为AI助手提供对SQL server数据库的安全、只读访问。每个查询都使用微软官方的T-SQL解析器(而不是正则表达式)解析为完整的AST,因此在语法级别阻止了注释注入、字符串文字技巧和编码旁路。

┌──────────────┐          ┌───────────────────────────────────────────┐        ┌──────────────┐
│              │  stdio   │  SqlAugur                                 │        │              │
│  AI Client   │◄────────►│                                           │───────►│  SQL Server  │
│              │          │  ┌────────────┐  ┌──────────────────────┐ │        │              │
└──────────────┘          │  │  Query     │  │  Schema / Diagram /  │ │        └──────────────┘
                          │  │  Validator │  │  DBA Services        │ │
                          │  └────────────┘  └──────────────────────┘ │
                          │  ┌────────────────────────────────────┐   │
                          │  │  Rate Limiter                      │   │
                          │  └────────────────────────────────────┘   │
                          └───────────────────────────────────────────┘

快速开始

对所有安装方法使用此顺序:

  1. 安装SqlAugur
  2. 保存 appsettings.json 在正确的位置
  3. 将SqlAugur添加到MCP客户端配置中
  4. 请您的助理致电进行验证 list_servers

从...开始 安装 获取精确的命令和文件路径。

为什么采用这种方法

  • AST级查询验证 --大多数MCP数据库服务器使用关键字阻止或根本不进行验证。该项目使用微软官方网站将每个查询解析为完整的语法树 TSql180Parser注释注入、字符串文字技巧和编码旁路在语法级别被阻止,而不是在脆弱的正则表达式模式中。
  • 速率限制 --令牌桶吞吐量限制和并发控制可防止失控的AI查询循环压倒生产SQL Server。没有其他MCP数据库服务器提供此功能。
  • DBA诊断工具 --集成了对First Responder Kit、DarlingData和sp_WhoIsActive的支持,并具有阻止写入操作的参数阻止功能。这是一个全新的MCP能力类别。
  • 响应大小优化 --DBA工具默认情况下会排除详细列(XML查询计划、死锁图、度量分解)并截断长字符串,从而将响应大小减少90-99%。使用 verbose 和 includeQueryPlans 参数,以便在需要时获得完整的未截断输出。
  • 渐进式发现 --最多29个工具被组织成按需加载的工具集。最初只公开了6个核心工具,使AI的上下文窗口保持较小,并减少了令牌的使用。根据需要发现并启用其他工具集。

特性

安全

  • 按设计只读——只允许SELECT和CTE查询
  • 基于AST的查询验证使用 ScriptDom (不是正则表达式)
  • 所有诊断存储过程上的参数阻止,以防止写入
  • 并发和吞吐率限制

数据库工具

  • 多服务器支持——与多个SQL server实例的命名连接
  • 模式概述——带有PK、FK、约束和默认值的简明Markdown模式映射
  • 表文档——列、索引、外键和约束的Markdown描述
  • ER图生成——具有智能基数检测的PlantUML和Mermaid图
  • 模式探索——列出可编程对象、视图定义、扩展属性、依赖关系图
  • 查询计划分析——估计或实际的XML执行计划
  • 渐进式发现——动态工具集模式通过按需公开工具来减少初始上下文窗口的使用

安装

所有方法都产生相同的MCP服务器。按照以下顺序操作:安装、保存配置、连接客户端、验证。

NuGet全局工具(推荐)

1.安装 (前提条件: .NET 10.0运行时)

dotnet tool install -g SqlAugur

2.保存配置文件

# Linux/macOS
mkdir -p ~/.config/sqlaugur
# Edit ~/.config/sqlaugur/appsettings.json with your server connections

# Windows (PowerShell)
mkdir "$env:APPDATA\sqlaugur" -Force
# Edit %APPDATA%\sqlaugur\appsettings.json with your server connections

示例 appsettings.json 要在该位置保存:

{
  "SqlAugur": {
    "Servers": {
      "production": {
        "ConnectionString": "Server=myserver;Database=master;Integrated Security=True;TrustServerCertificate=False;Encrypt=True;"
      }
    }
  }
}

3.添加到MCP客户端

{
  "mcpServers": {
    "sqlaugur": {
      "command": "sqlaugur"
    }
  }
}

要更新,请执行以下操作: dotnet tool update -g SqlAugur

Docker/Podman

1.运行SqlAugur容器

# Volume-mount a config file
docker run -i --rm \
  -v /path/to/appsettings.json:/app/appsettings.json:ro,Z \
  ghcr.io/mbentham/sqlaugur:latest

# Or use environment variables (no config file needed)
docker run -i --rm \
  -e SqlAugur__Servers__production__ConnectionString="Server=host.docker.internal;Database=master;..." \
  ghcr.io/mbentham/sqlaugur:latest
注: 要访问主机上的SQL Server,请使用 host.docker.internal (Docker桌面)或 --network=host (Linux)。替换 docker 随着 podman --所有命令都是相同的。这 :Z 启用SELinux的系统(Fedora、RHEL)需要卷装载上的标记;macOS/Windows上的Docker Desktop用户可以省略它。

如果挂载配置文件,请将其另存为 /path/to/appsettings.json 并将其安装到 /app/appsettings.json.

2.添加到MCP客户端

{
  "mcpServers": {
    "sqlaugur": {
      "command": "docker",
      "args": ["run", "-i", "--rm",
        "-v", "/path/to/appsettings.json:/app/appsettings.json:ro,Z",
        "ghcr.io/mbentham/sqlaugur:latest"]
    }
  }
}

Docker Compose

services:
  sqlaugur:
    image: ghcr.io/mbentham/sqlaugur:latest
    stdin_open: true
    volumes:
      - ./appsettings.json:/app/appsettings.json:ro,Z

MCP客户端配置:

{
  "mcpServers": {
    "sqlaugur": {
      "command": "docker",
      "args": ["compose", "run", "-i", "--rm", "sqlaugur"]
    }
  }
}

从源代码构建

1.建造 (前提条件: .NET 10.0 SDK)

git clone git@github.com:mbentham/SqlAugur.git
cd SqlAugur
dotnet publish SqlAugur -c Release -o SqlAugur/publish

2.保存配置文件

# Linux/macOS
cp SqlAugur/appsettings.example.json SqlAugur/publish/appsettings.json
# Edit SqlAugur/publish/appsettings.json with your server connections

# Windows (PowerShell)
Copy-Item SqlAugur\appsettings.example.json SqlAugur\publish\appsettings.json
# Edit SqlAugur\publish\appsettings.json with your server connections

3.添加到MCP客户端

{
  "mcpServers": {
    "sqlaugur": {
      "command": "dotnet",
      "args": ["/absolute/path/to/SqlAugur/publish/SqlAugur.dll"]
    }
  }
}

验证MCP连接(首先是LLM)

重启MCP客户端后,询问助手:

  • Call list_servers
  • Call list_databases for server "production"

预期结果:

  • list_servers 返回您配置的服务器名称(例如 production)
  • list_databases 返回JSON数据库数组,而不是连接或身份验证错误

如果验证失败:

  1. 确认MCP配置运行预期命令(sqlaugur, docker run ...,或 dotnet /path/to/SqlAugur.dll)
  2. 确认 appsettings.json 保存在安装方法所需的位置:

- 本地工具: ~/.config/sqlaugur/appsettings.json (Linux/macOS)或 %APPDATA%\sqlaugur\appsettings.json (Windows) - 容器:安装到 /app/appsettings.json - 源代码构建:在已发布的DLL旁边(SqlAugur/publish/appsettings.json)

  1. 确认工具调用使用配置的服务器密钥(例如 production)
  2. 确认连接字符串中的SQL连接和身份验证

配置

服务器从多个源加载配置。较高优先级的源会覆盖较低优先级的源:

  1. 命令行参数
  2. 环境变量 --使用 __ 作为区段定界符(例如。, SqlAugur__Servers__production__ConnectionString=...)
  3. 当前工作目录 — appsettings.json 在您运行命令的目录中
  4. 用户配置目录 — ~/.config/sqlaugur/appsettings.json 在Linux上, %APPDATA%\sqlaugur\appsettings.json 在Windows上
  5. Azure密钥库 --何时 AzureKeyVaultUri 已设置(见下文)
  6. 应用程序目录 — appsettings.json DLL旁边

示例配置(建议使用Windows身份验证):

{
  "SqlAugur": {
    "Servers": {
      "production": {
        "ConnectionString": "Server=myserver;Database=master;Integrated Security=True;TrustServerCertificate=False;Encrypt=True;"
      }
    },
    "MaxRows": 1000,
    "CommandTimeoutSeconds": 30,
    "MaxConcurrentQueries": 5,
    "MaxQueriesPerMinute": 60,
    "EnableFirstResponderKit": false,
    "EnableDarlingData": false,
    "EnableWhoIsActive": false,
    "EnableDynamicToolsets": false
  }
}
选项默认值描述
Servers--命名SQL Server连接(名称→ 连接字符串)
MaxRows1000每次查询返回的最大行数
CommandTimeoutSeconds30所有查询和过程的SQL命令超时
MaxConcurrentQueries5可以并发执行的SQL查询的最大数量
MaxQueriesPerMinute60每分钟允许的最大查询数(令牌桶速率限制)
EnableFirstResponderKitfalse启用第一响应程序工具包诊断工具(sp_Blitz、sp_BlitzFirst、sp_BlitsCache、sp_Blitz Index、sp_BlitchWho、sp_BlizzLock)
EnableDarlingDatafalse启用DarlingData诊断工具(sp_PressureDetector、sp_QuickieStore、sp_HealthParser、sp_LogHunter、sp_HumanEventsBlockViewer、sp_IndexCleanup、sp_QueryReproBuilder)
EnableWhoIsActivefalse启用sp_WhoIsActive会话监视
EnableDynamicToolsetsfalse启用渐进式工具发现——DBA工具通过3个元工具按需加载,而不是在启动时加载。减少初始上下文窗口的使用。这 Enable* 标志仍然控制着允许使用哪些工具集。
AzureKeyVaultUri--天蓝键保险库类型(例如。, https://myvault.vault.azure.net/).设置后,使用以下命令将vault中的机密添加为配置源 DefaultAzureCredential.密钥库秘密名称的使用 -- 作为部分分隔符(例如,名为 SqlAugur--Servers--prod--ConnectionString 地图到 SqlAugur:Servers:prod:ConnectionString).
安全说明: appsettings.json 被忽略以防止意外的凭据提交。看 安全.md 有关推荐的身份验证方法,包括Windows身份验证、Azure托管身份和安全凭据存储选项。

工具

服务器提供30个工具,这些工具被组织成工具集。六个核心工具始终可用。启动时(静态模式)或按需(动态模式)加载其他工具集。

核心工具

工具说明
list_servers列出在中配置的可用SQL Server实例 appsettings.json.
list_databases列出命名服务器上的所有数据库,包括名称、ID、状态和创建日期。
read_data执行只读SQL SELECT查询。仅 SELECT 和 WITH (CTE)查询是允许的。结果以JSON格式返回,具有可配置的行限制。
get_query_plan返回SELECT查询的估计或实际XML执行计划。
get_schema_overview简明的Markdown模式概述:表、列、PK、FK、唯一/检查约束、默认值。支持 compact 模式、模式和表过滤
describe_tableMarkdown中的综合表元数据:列、数据类型、可空性、默认值、标识、计算表达式、索引、FK、约束。

Schema Exploration (4 tools)

工具说明
list_programmable_objects列出视图、存储过程、函数和触发器。可按类型和架构进行筛选。
get_object_definition返回可编程对象的源定义(CREATE语句)。
get_extended_properties读取表、列和其他对象的扩展属性(描述、元数据)。
get_object_dependencies显示对象引用的内容和引用它的内容——上游和下游依赖关系图。

Diagrams (2 tools)

工具说明
get_plantuml_diagram生成包含表、列、PK和FK关系的PlantUML ER图。保存到 .puml 文件。支持 compact 模式、模式/表过滤和可配置的表限制(最大200)。
get_mermaid_diagram生成包含表、列、PK和FK关系的Mermaid ER图。保存到 .mmd 文件。支持 compact 模式、模式/表过滤和可配置的表限制(最大200)。

DBA诊断工具

每个工具包都是通过配置标志独立启用的,并且需要在目标SQL Server上安装相应的存储过程。

默认情况下,所有DBA工具都会应用响应大小优化——XML查询计划列被排除在外,长字符串值被截断,以将响应保持在AI上下文窗口限制内。每个工具都支持这些可选参数:

参数说明
verbose返回所有列,不截断。
includeQueryPlans在输出中包含XML执行计划列。
maxRows每个结果集返回的最大行数。在具有可变长度输出的工具上可用:BlitzIndex、BlitzLock、HealthParser、LogHunter(默认值200)、IndexCleanup、QueryReproBuilder。

某些工具具有附加参数: includeXmlReports (BlitzLock、HealthParser、HumanEventsBlockViewer), compact (sp_WhoIsActive), verboseMetrics (QuickieStore)。

First Responder Kit (7 tools) — requires EnableFirstResponderKit: true

从以下位置安装:

工具说明
sp_blitzSQL Server整体运行状况检查——对性能、配置和安全性进行优先级检查。
sp_blitz_first实时性能诊断——在一定时间间隔内对DMV进行采样,以检测等待时间、文件延迟和性能计数器。
sp_blitz_cache计划缓存分析——按CPU、读取、持续时间、执行或内存授予进行顶部查询。
sp_blitz_index索引分析——具有使用模式的缺失、未使用和重复索引。
sp_blitz_who主动查询监视器——正在运行的内容、阻塞信息、tempdb使用情况、查询计划。
sp_blitz_lock僵局分析 system_health 延长活动时间。
sp_blitz_plan_compare跨服务器查询计划比较--在不使用链接服务器的情况下,在一台服务器上捕获计划快照,并将其与第二台服务器上的缓存计划进行比较。需要 恶魔之门分店 直到合并到main。

DarlingData (7 tools) — requires EnableDarlingData: true

从以下位置安装:

工具说明
sp_pressure_detector诊断CPU和内存压力——资源瓶颈、高CPU查询、内存授予、磁盘延迟。
sp_quickie_store查询存储分析——顶级资源消耗查询、计划回归、等待统计。
sp_health_parser解析 system_health 用于历史等待、磁盘延迟、CPU、内存和锁定的扩展事件会话。
sp_log_hunter在SQL Server错误日志中搜索错误、警告和自定义消息。
sp_human_events_block_viewer分析来自的阻塞事件 sp_HumanEvents 会话——阻塞链、锁定细节、等待。
sp_index_cleanup查找可删除的未使用和重复索引。
sp_query_repro_builder为带有参数值的查询存储查询生成复制脚本。

sp_WhoIsActive (1 tool) — requires EnableWhoIsActive: true

从以下位置安装: whoisactive.com

工具说明
sp_whoisactive监控活动会话和查询——等待信息、阻塞详细信息、tempdb使用情况、资源消耗。

渐进式发现

当 EnableDynamicToolsets 确实如此,启动时只加载核心工具。三个元工具让人工智能根据需要发现和启用其他工具集,减少初始上下文窗口的使用:

工具说明
list_toolsets列出可用的工具集及其状态(可用、启用、未配置)和工具计数。
get_toolset_tools在启用特定工具集之前,返回其详细的工具和参数信息
enable_toolset启用工具集,使其工具可用。仅当管理员通过相应的工具启用了工具集时才有效 Enable* 配置标志。

示例流程:

  1. AI呼叫 list_toolsets --看到 first_responder_kit “可用”(已配置但尚未启用)
  2. AI呼叫 get_toolset_tools("first_responder_kit") --回顾6个工具及其参数
  3. AI呼叫 enable_toolset("first_responder_kit") --这6个工具现在已注册并可用
  4. AI呼叫 sp_blitz --正常运行健康检查

在静态模式下(EnableDynamicToolsets: false),所有启用的工具集在启动时加载,发现工具未注册。无论模式如何,模式探索和图表工具集始终会被加载。

已知限制: 渐进式发现依赖于MCP notifications/tools/list_changed 通知客户端新工具已注册。Claude Code当前不处理此通知(人类学/克劳德编码#4118),因此动态启用的工具集将不会出现。使用静态模式(EnableDynamicToolsets: false)使用Claude Code时。

安全

查询验证

每个查询都被解析为 抽象语法树 (AST)使用微软官方 TSql180Parser 并且必须通过这些规则:

  • 仅限单一声明 --多个语句被拒绝
  • 仅选择 --INSERT、UPDATE、DELETE、DROP、EXEC、CREATE、ALTER和所有其他语句类型都被阻止
  • 没有选择进入 --阻止通过SELECT创建表
  • 无外部数据访问 --OPENROWSET(包括BULK、Cosmos DB和internal在内的所有变体)、OPENQUERY、OPENDATASOURCE、OPENXML被阻止
  • 无链接服务器 --四个零件名称引用被拒绝
  • 没有MAXRECURSION提示 --防止覆盖默认递归限制
  • 允许跨数据库查询 --三部分名称设计作品;安全边界是服务器,而不是数据库。若要限制为单个数据库,请限制登录名的权限。

因为验证是在解析的AST上进行的,所以它正确地处理了击败基于字符串的方法的边缘情况:注释中的关键字、字符串文字、嵌套块注释和编码技巧。

参数阻塞

诊断存储过程通过白名单中的过程名称执行,这些过程名称具有阻止写入的阻止参数:

  • 第一响应者工具包 --全部 @Output* 参数被阻止(阻止将结果写入服务器表)
  • 亲爱的数据 --日志记录和输出参数被阻止(阻止表创建和数据保留)
  • sp_WhoIsActive — @destination_table, @return_schema, @schema, @help 阻塞

速率限制

所有工具执行都受到并发限制(MaxConcurrentQueries,默认值5)和吞吐量限制(MaxQueriesPerMinute,默认值为60)。多余的请求将被拒绝,并显示重试消息。

连接安全性

尽可能使用Windows身份验证或Azure托管身份,以避免将凭据存储在配置文件中。当需要SQL身份验证时,使用环境变量重写在运行时注入凭据。看 安全.md 以获取包括凭证存储和连接字符串加密在内的详细指导。

已知风险

  • 该项目依赖于微软官方 MCP C#SDK (ModelContextProtocol NuGet包,版本1.2.0)。由于MCP框架处理所有协议I/O,其中的任何漏洞都会直接影响此应用程序的安全边界。在发布新版本时,监控软件包的更新和升级。
  • SQL Server查询返回的数据可能包括针对AI的恶意提示注入。这是所有人工智能使用的风险,无法通过这个项目来缓解。确保您遵循人工智能安全的最佳实践,并且只连接到受信任的数据源。

贡献

欢迎捐款。看 贡献.md 有关架构细节、开发设置、测试说明和添加新工具的指南。

许可证

麻省理工学院

工具与能力

工具数量

30

资源数量

0

提示词数量

0

能力标签

SQL安全C#本地部署数据库访问控制AI助手支持查询验证DBA工具

支持客户端

Claude

数量来自来源目录的标注,具体工具清单以官方文档为准。

典型使用场景

用自然语言查库

不用手写 SQL,直接问数据,让模型组织查询语句。

数据巡检

定期拉指标、做对比,把异常项整理成一段说明。

打通业务数据

把数据库、数仓和接口接进同一个上下文,减少导出再上传。

选择建议

值得选的地方

  • 工具数量 30 个,一次接入能覆盖的操作比单点工具更全。
  • 有现成的安装命令,不用自己找入口,照着跑就能起服务。
  • 公开说明写得比较完整,接入前能看清能力边界。

先想清楚的地方

  • stdio 方式要求本地装好 Docker,换机器要重新装一遍。
  • 第三方目录整理,版本更新和行为细节以官方仓库为准。

更适合

  • 需要在数据服务场景里让模型直接调用外部能力的人。
  • 已经在用 Claude 的用户,接入路径最短。
  • 想先快速试一下、能接受在本地跑服务的人。

不太适合

  • 完全不想在本地装环境的人。
  • 需要厂商级 SLA 和技术支持的生产环境。

同类对比

5 个同类
MCP Server工具数传输方式安装命令收录来源最后核验
MCP Server Sqlserver

MCP World · 本页

30stdio有1 个2026-05-17
Memory 9d25f64e

MCP World

9未说明未标注1 个2026-05-17
Prisma MCP Server

MCP World

0stdio有3 个2026-05-17
Astr Bot

MCP World

0stdio有1 个2026-05-17
Getzep MCP

MCP World

9stdio有1 个2026-05-17

按同分类和工具数量挑出最接近的几条,字段以各自详情页为准。

常见问题

5 条

MCP Server Sqlserver 怎么安装?

公开资料给出的安装命令是 docker run -i --rm \,运行环境为 Docker。装完后按客户端要求写进 MCP 配置,重启客户端生效。

MCP Server Sqlserver 怎么在 Claude Desktop、Cursor 里配置?

它是stdio 本地进程,客户端配置里要写启动命令和参数,运行环境是 Docker;保存后完全退出客户端再打开,配置才会生效。

MCP Server Sqlserver 收费吗?

本站只整理公开资料,不代收费用,也没有标注具体价格。是否收费取决于服务本身和背后的接口额度,正式使用前按官方说明确认。

MCP Server Sqlserver 需要 API Key 吗?

公开资料标注为无需认证,装好就能连;如果实际调用时报鉴权错误,按官方文档补上凭据。

MCP Server Sqlserver 支持哪些客户端?

公开资料标注支持 Claude;其他客户端只要能配置 MCP Server,也能用同样的命令或地址接入。

来源信息

继续浏览同类 MCP