Token导航 LogoToken导航TokenDH.com
MCP SQL DB logo
运维云端未说明官方级别未说明来源级核验

MCP SQL DB

MCP Server

企业级Azure解决方案,提供与Azure SQL数据库的只读访问,集成GitHub Enterprise CI/CD,支持AI助手通过自然语言查询构建和测试分析数据。

工具数

0

提示词数

0

GitHub Stars

0

资源数

0
Bicep只读访问ClaudeClaudeVS Code

安装说明

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

作者 / 组织

dahousemon

提供方

dahousemon

最后核验

2026/5/17 20:21

快速接入

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

详细介绍

SQL MCP服务器-企业Azure解决方案

用于Azure SQL数据库的生产就绪模型上下文协议(MCP)服务器,与GitHub Enterprise CI/CD集成。

![License: MIT](LICENSE) ![Azure](https://portal.azure.com) ](https://github.com/features/actions)

概述

这是一个完整的企业级解决方案,用于部署提供对Azure SQL数据库只读访问的MCP服务器。它使GitHub Copilot、ChatGPT和Claude等AI助手能够使用自然语言查询构建和测试分析数据。

主要特点

生产就绪MCP服务器 (Node.js/TypeScript)

  • 具有全面安全性的只读SQL访问
  • 查询验证和清理
  • 30秒超时保护
  • 全面的审计日志记录

企业Azure基础架构 (二头肌)

  • 用于无服务器托管的Azure容器应用程序
  • 具有私有终结点的Azure SQL数据库
  • 用于秘密管理的Azure密钥库
  • 具有NSG保护的虚拟网络
  • 用于集中监控的日志分析

GitHub企业版CI/CD (OIDC)

  • 自动化测试和剥皮
  • 安全扫描(Snyk、Trivy)
  • 集装箱形象建设与推广
  • 使用二头肌进行基础设施部署
  • 通过OIDC进行零秘密身份验证

地方发展支持

  • Docker Compose用于本地SQL+MCP服务器
  • VS代码开发容器
  • 调试配置
  • AI客户端的MCP配置示例

综合文档

  • 架构图
  • 安装指南
  • 安全模型文档
  • SQL查询示例

可选事件驱动摄入

  • 用于自动数据摄取的Azure功能
  • 用于CI/CD集成的HTTP端点
  • 事务处理

快速开始

地方发展(5分钟)

# Clone repository
git clone https://github.com/your-org/MCP_SQL_DB.git
cd MCP_SQL_DB

# Start local environment
cd local-dev
docker-compose up -d

# MCP server is now running with sample data!

Azure部署(15分钟)

# Login to Azure
az login

# Deploy infrastructure
cd iac
az deployment group create \
  --resource-group rg-sqlmcp-dev \
  --template-file main.bicep \
  --parameters environment=dev \
               sqlAdminLogin=sqladmin \
               sqlAdminPassword='YourPassword123!' \
               mcpUserPassword='McpUserPass456!'

安装指南 详细说明。

建筑

┌─────────────────────────────────────────────────────────────────────┐
│                         GitHub Enterprise                           │
│                    (CI/CD with OIDC Auth)                           │
└────────────────────────────┬────────────────────────────────────────┘
                             │
                             ▼
┌─────────────────────────────────────────────────────────────────────┐
│                          Azure Cloud                                │
│                                                                     │
│  ┌──────────────────┐    ┌──────────────────┐    ┌──────────────┐ │
│  │  Container App   │───▶│  SQL Database    │◀───│  Key Vault   │ │
│  │  (MCP Server)    │    │  (Private EP)    │    │  (Secrets)   │ │
│  └──────────────────┘    └──────────────────┘    └──────────────┘ │
│                                                                     │
│  ┌──────────────────┐    ┌──────────────────┐    ┌──────────────┐ │
│  │  Container       │    │  Virtual Network │    │  Log         │ │
│  │  Registry (ACR)  │    │  (10.0.0.0/16)   │    │  Analytics   │ │
│  └──────────────────┘    └──────────────────┘    └──────────────┘ │
└─────────────────────────────────────────────────────────────────────┘
                             │
                             ▼
                    ┌─────────────────┐
                    │   AI Clients    │
                    │ • Copilot       │
                    │ • ChatGPT       │
                    │ • Claude        │
                    └─────────────────┘

架构概述 查看详细图表。

项目结构

MCP_SQL_DB/
├── src/                      # MCP Server implementation
│   ├── src/
│   │   ├── index.ts         # Main server logic
│   │   ├── config.ts        # Configuration management
│   │   ├── security.ts      # Query validation
│   │   └── logger.ts        # Logging
│   ├── Dockerfile           # Container image
│   └── package.json         # Dependencies
│
├── sql/                      # SQL scripts
│   ├── 01-security.sql      # Read-only user setup
│   ├── 02-schema.sql        # Database schema
│   ├── 03-seed-data.sql     # Sample data
│   └── 04-views.sql         # Analytics views
│
├── iac/                      # Infrastructure as Code (Bicep)
│   ├── main.bicep           # Main orchestration
│   └── modules/             # Modular templates
│       ├── sql.bicep
│       ├── aca.bicep
│       ├── keyvault.bicep
│       └── network.bicep
│
├── .github/workflows/        # CI/CD pipelines
│   ├── ci.yml               # Build & test
│   └── cd.yml               # Deploy to Azure
│
├── docs/                     # Documentation
│   ├── 00-architecture.md
│   ├── 01-setup-guide.md
│   ├── 02-security-model.md
│   ├── 03-using-mcp.md
│   └── 04-sql-examples.md
│
├── local-dev/                # Local development
│   ├── docker-compose.yml
│   ├── .devcontainer/
│   ├── .vscode/
│   └── mcp-configs/
│
└── optional/                 # Optional components
    └── function-app/        # Event-driven ingestion

数据库模式

表格

BuildRuns -CI/CD构建执行记录

  • BuildRunId、分支、开始时间、结束时间、持续时间秒数、状态、已触发By

测试运行 -单个测试执行结果

  • TestRunId、BuildRunId、TestName、TestSuite、状态、持续时间秒数、重试计数

测试失败 -详细的故障信息

  • TestFailureId、TestRunId、失败原因、错误消息、堆栈跟踪、失败类别

分析视图

  • vw_TestFlakines -识别不一致的测试
  • vw_建筑统计日报 -每日构建指标
  • vw_测试失败分析 -分类故障
  • vw_建筑性能趋势 -绩效跟踪
  • vw_最近构建摘要 -最近版本概述

使用AI客户端

GitHub Copilot

在中配置 ~/.config/github-copilot/mcp.json:

{
  "mcpServers": {
    "sql-analytics": {
      "command": "node",
      "args": ["/path/to/MCP_SQL_DB/src/dist/index.js"],
      "env": {
        "SQL_SERVER": "localhost",
        "SQL_DATABASE": "sqlmcp_db",
        "SQL_USER": "mcp_user",
        "SQL_PASSWORD": "McpUser!Pass123"
      }
    }
  }
}

然后问Copilot:

  • “显示最近失败的构建”
  • “哪些测试是不稳定的?”
  • “按分支划分的构建成功率是多少?”

查询示例

自然语言SQL查询结果

“显示最后5个版本”

SELECT TOP 5 * FROM BuildRuns ORDER BY StartTime DESC

“哪些测试最容易失败?”

SELECT * FROM vw_TestFlakiness ORDER BY FlakinessScore DESC

使用MCPSQL示例 更多。

安全

纵深防御

  1. 网络层:专用ExpressRoute、NSG、专用端点
  2. 同一层:管理身份、RBAC、OIDC
  3. 数据层:只读用户,TDE加密,TLS 1.2
  4. 应用层:查询验证、输入净化、超时保护
  5. 秘密管理:Azure密钥库,无硬编码凭据

只读执行

MCP服务器在以下位置强制执行只读访问 三级:

  1. 应用:执行前验证查询
  2. SQL用户: mcp_user 只有SELECT权限
  3. 数据库:明确否认所有破坏性操作
// Automatically blocked:
"DROP TABLE BuildRuns"           // Contains DROP keyword
"UPDATE BuildRuns SET..."        // Contains UPDATE keyword
"SELECT * FROM BuildRuns; DELETE..." // Multiple statements

安全模型 了解详情。

带有GitHub OIDC的CI/CD

零秘密身份验证 使用OIDC连接到Azure:

- name: Azure Login
  uses: azure/login@v2
  with:
    client-id: ${{ secrets.AZURE_CLIENT_ID }}
    tenant-id: ${{ secrets.AZURE_TENANT_ID }}
    subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }}

益处:

  • 没有长期有效的凭据
  • 自动令牌旋转
  • 与Azure AD建立联合信任
  • 增强安全

成本估算

每月Azure成本 (开发):

资源SKU成本
Azure SQL数据库GP无服务器1 vCore50-75美元
容器应用程序消费10-20美元
容器注册表标准$5
密钥库标准0.10美元
日志分析1GB/天2-5美元
总计$67-105

自动暂停和基于消费的定价将成本降至最低。

发展

先决条件

  • Node.js 20+
  • Docker 桌面版
  • Azure命令行界面
  • VS代码(推荐)

本地设置

# Install dependencies
cd src
npm install

# Build TypeScript
npm run build

# Run tests
npm test

# Run linter
npm run lint

# Start local environment
cd ../local-dev
docker-compose up

调试

使用VS Code启动配置:

  • 调试MCP服务器:将调试器附加到TypeScript
  • 运行测试:执行Jest并调试
  • 连接到Docker:调试容器化应用程序

部署

手动部署

# Deploy infrastructure
az deployment group create \
  --resource-group rg-sqlmcp-dev \
  --template-file iac/main.bicep \
  --parameters @iac/parameters.json

# Build and push image
az acr build \
  --registry ${ACR_NAME} \
  --image sql-mcp-server:latest \
  --file src/Dockerfile src/

自动部署(GitHub操作)

  1. 配置OIDC(参见 安装指南)
  2. 推到 main 分支
  3. 自动工作流:

- 运行测试和安全扫描 - 构建容器映像 - 部署到Azure - 初始化数据库

监控

Azure监视器查询

容器应用程序日志:

ContainerAppConsoleLogs_CL
| where Log_s contains "Tool called"
| project TimeGenerated, Log_s
| order by TimeGenerated desc

SQL性能:

AzureDiagnostics
| where ResourceProvider == "MICROSOFT.SQL"
| where duration_s > 1000
| project TimeGenerated, query_s, duration_s

故障排除

常见问题

MCP服务器无法连接到SQL

  • 检查密钥库中的连接字符串
  • 验证托管身份是否具有访问权限
  • 检查SQL防火墙规则

查询被安全验证拒绝

  • 只允许SELECT查询
  • 删除INSERT/UPDATE/DELETE/DROP关键字
  • 检查是否有多个语句(分号)

容器应用程序无法启动

  • 检查日志: az containerapp logs show ...
  • 验证ACR中是否存在映像
  • 检查托管身份权限

安装指南-故障排除

贡献

欢迎投稿!拜托:

  1. 分叉存储库
  2. 创建要素分支
  3. 进行更改
  4. 添加测试
  5. 运行门楣: npm run lint
  6. 提交拉取请求

许可证

MIT许可证-请参阅 许可证 文件

支持

  • 问题:
  • 讨论:
  • 文档: docs/

致谢

______________________________________________________________________

内置于❤️ 面向企业DevOps团队

目录标签

目录标签

Bicep只读访问Claude本地部署企业级解决方案AzureSQLCI/CD集成AI助手支持

支持客户端

ClaudeVS Code

接入字段

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

未说明

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

session

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

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

0

权限和风险

未说明session部署方式未说明

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

安装前确认

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

仍需确认:installCommand

来源信息

继续浏览同类 MCP