SQL Server远程服务

MCP SQL Server是一个基于FastAPI的远程SQL Server服务,提供双实例支持、只读控制、速率限制和诊断功能。

  • by harryvaldez
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 harryvaldez/mcp-sql-server

使用说明

MCP SQL Server

用于双SQL server 2019实例的远程FastMCP服务器,具有强大的只读控制、速率限制和诊断功能。

此存储库提供什么

  • FastMCP+FastAPI服务通过HTTP在/mcp上公开SQL工具
  • 双实例SQL Server 2019支持(主要和次要)
  • 具有denylist(13种模式:DDL、DML、DCL、系统过程)和allowlist配置的只读SQL策略控件
  • Redis或具有每个参与者和全局限制的本地速率限制
  • 面向安全的输出处理(敏感字段编辑)
  • 运行时姿态和工具使用的诊断端点
  • Docker运行时和为本地和远程操作编写文件

重要文件

仓库结构

  • src:服务运行时、工具注册、中间件、诊断
  • config:实例配置、策略和速率限制设置
  • 策略:SQL允许列表和拒绝列表定义
  • docker:Dockerfile和组合文件
  • 测试:单元测试
  • 测试:集成和操作测试工具
  • docs:工具目录、Runbook和运行说明
  • docs/runbooks/scaling-strategy.md:用于扩展和负载验证操作的runbook
  • docs/runbooks/security-maintance.md:用于安全状态检查和维护的runbook
  • docs/access-levels-and-controlled-write.md:访问模型和受控写入实施参考

快速入门(本地)

  1. 创建并激活Python 3.11+虚拟环境。
  2. 安装依赖项:

Windows(PowerShell):

pip install -e .[dev]

Linux/macOS:

pip install -e '.[dev]'
  1. 复制环境和配置模板:

Windows(PowerShell):

Copy-Item .env.example .env

Linux/macOS:

cp .env.example .env
  1. 在中配置实例 config/instances.yaml (此存储库已包含它;否 instances.yaml.example 文件已提供)。为了与 .env.example -> .env 在上面的模式中,使用现有文件作为本地运行时文件,并使用 config/instances.runtime.example.yaml 作为格式/密钥参考。
  2. 运行服务:
python -m src.server
  1. 验证端点:
  • http://localhost:8080/
  • http://localhost:8080/diagnostics/health
  • http://localhost:8080/diagnostics/security
  • http://localhost:8080/diagnostics/pool

主要推出验证检查:

  • /diagnostics/health:确认服务和实例连接。
  • /diagnostics/security:确认身份验证模式、所需范围计数、组授权状态和已注册的工具清单。
  • /diagnostics/pool:确认每个实例的SQL池大小和重用计数器。

Docker运行时

使用docs/run-mcp-server-with-docker.md中记录的运行时编写流。

受控写入策略从config/runtime-policy.yaml强制执行。文件policy/sql-allowlist.yaml是一个审查/引用镜像,不会作为运行时策略源加载。

docker compose -f docker/docker-compose.runtime.yml up -d

操作手册

  • 扩展策略 -仪表板扩展和负载验证指南。
  • 安全维护 -对安全态势和操作卫生进行维护检查。

测试

运行单元测试:

pytest -q

当前验证快照:

安全说明

  • 不要泄露真正的秘密。
  • 仅保留.env本地。
  • 首选权限最低的SQL凭据。
  • 有关报告和强化指南,请参阅SECURITY.md。

贡献

有关分支、PR和测试期望,请参阅CONTRIBUTING.md。

发布和CI

  • CI在pull请求上运行,并推送到master/main。
  • v*后面有发布标签(例如:v1.2)。
  • 最新发行说明: docs/release-notes-v1.4.0.md

面向CMMI的平台集成

该存储库包括与CMMI实现模式一致的GitHub本地过程控制:

  • 需求管理:需求发布模板和PR可追溯性部分
  • 配置管理:分支保护、代码所有者、签名提交和受保护的发布标签
  • 验证和确认:CI检查、PR门和可追溯性检查工作流程
  • 测量和分析:计划可追溯性矩阵生成
  • 审计跟踪:GitHub中保留的问题/PR历史、提交历史和工作流日志

人工产品:

  • .github/ISSUE_TEMPLATE/requirement.yml
  • .github/workflows/traceability-check.yml
  • .github/workflows/traceability-matrix.yml
  • 文档/可追溯性矩阵.md

许可证

根据MIT许可证获得许可。看 许可证.