MsSqlMcpDotNet
Microsoft SQL Server MCP服务器
MsSqlMcpDotNet 是一个 模型上下文协议(MCP)服务器 这使得能够与Microsoft SQL Server数据库进行安全交互。 它允许 AI助手--例如 GitHub复制代理--以受控和安全的方式生成和执行SQL查询。
特性
- 实现一个 MCP服务器 对于Microsoft SQL Server。
- SQL注入保护 通过参数化查询。
- 与GitHub Copilot代理兼容.
- 检索服务器级元数据:
- 数据库
- 检索详细的架构和数据库元数据:
- 表格 - 视图 - 列 - 密钥(主键/外键)
- 存储数据库 安全连接字符串 使用 Windows DPAPI (数据保护API)。
- 完全地 异步数据库操作 使用
async/await.
- 结构化日志记录 随着 Serilog.
先决条件
- .NET 9.0 SDK 或者稍后构建和运行项目。
SQL Server安全配置
提供了一个SQL脚本来创建专用 安全登录 在SQL Server中,供MCP服务器使用。 MCP登录被授予 最小只读权限 在目标数据库上。
⚠️ 重要: MCP用户被明确限制在数据库或SQL Server实例中写入或修改数据。这确保了MCP服务器能够 仅读取数据 并且不能以任何方式更改数据库。
/* ----------------------------------------------------------------------------------------------
Use this script to create a login for the MCP user in SQL Server.
Replace with the desired password for the login.
---------------------------------------------------------------------------------------------- */
USE [master]
GO
CREATE LOGIN [mcpUser]
WITH
PASSWORD = N'',
DEFAULT_DATABASE = [master],
CHECK_EXPIRATION = OFF,
CHECK_POLICY = OFF
GO
GRANT CONNECT ANY DATABASE TO [mcpUser]
GO
GRANT CONNECT SQL TO [mcpUser]
GO
GRANT VIEW ANY DATABASE TO [mcpUser]
GO
GRANT VIEW ANY DEFINITION TO [mcpUser]
GO
GRANT VIEW ANY ERROR LOG TO [mcpUser]
GO
GRANT VIEW ANY PERFORMANCE DEFINITION TO [mcpUser]
GO
GRANT VIEW SERVER STATE TO [mcpUser]
GO
-- Read permission in the specific database
USE []
GO
CREATE USER [mcpUser] FOR LOGIN [mcpUser]
GO
ALTER ROLE [db_datareader] ADD MEMBER [mcpUser]
GOMCP服务器配置
要设置连接字符串并配置MCP服务器,只需运行 MSSqlMcpDotNet.exe. 程序将提示:
- SQL Server实例名称
- 可信连接选项
- 用户凭据(如果需要)
此过程将生成 sqlserver.secured.json 包含以下内容的文件 使用DPAPI加密的连接字符串.
如果您想更改访问凭据,只需删除现有的 sqlserver.secured.json 归档并重复配置过程。
Visual Studio代码配置
编辑您的 App.Settings 文件并在下添加MCP服务器配置 mcp 部分。 在从Visual Studio Code使用服务器之前,请记住启动它。
"mcp": {
"servers": {
"MSSqlMcpDotNet": {
"type": "stdio",
"command": "C:\\bin\\mcp\\MSSqlMcpDotNet\\MSSqlMcpDotNet.exe",
"args": []
}
}
}mcp.json
此文件用于 Visual Studio 2022 或在任何 MCP客户端应用程序.
这 mcp.json 文件定义了MCP服务器配置。
{
"servers": {
"MSSqlMcpDotNet": {
"type": "stdio",
"command": "C:\\bin\\mcp\\MSSqlMcpDotNet\\MSSqlMcpDotNet.exe",
"args": []
}
}
}许可证
该项目根据 MIT许可证. 请参阅 许可证 文件以获取更多详细信息。
