Giving AI agents visibility into SQL Server with MCP | Data Exposed MVP Edition
三句話摘要
通過 MCP (Model Context Protocol) 服務器將 SQL Server 系統管理與數據查詢能力暴露給 AI 代理,實現自然語言交互與跨實例管理。 MCP 的真正價值不在於讓 AI 代理更自由,而在於通過受控的工具暴露、細粒度權限管理與技能文件,在保持安全防護的前提下實現自然語言驅動的系統自動化。 MCP 帶來的控制機制
重點整理
重點- 1
MCP 帶來的控制機制
- 2
MCP 允許開發者和 DBA 將自己編寫的代碼暴露給 AI 代理,代理僅能透過預定義工具執行任務。這與直接授予代理系統存取權限根本不同,確保每次執行都受到人工定義的查詢控制,而非代理自主構造 SQL 語句。
- 3
服務發現與跨實例管理
- 4
系統能自動發現環境中所有 SQL Server 實例,並將 28 種 DBA 工具(涵蓋監控、性能調優、索引統計、等待統計等)進行並行查詢。代理基於自然語言描述自動選擇適當工具,開發者無需知道具體工具名稱。
- 5
雙層應用場景
- 6
DBA 側專注系統管理與故障排查,提供只讀存取;開發者側透過 Data API Builder 執行數據變更,支持讀寫更新操作,體現了角色分離的安全設計。
- 7
技能文件與業務規則編碼
- 8
可透過技能文件(skill files)向代理注入企業環境的最佳實踐與業務規則,使代理在執行查詢時自動套用這些規則評估風險。
實用技巧與重點
乾貨- 工具與平台
- MCP (Model Context Protocol)
- SQL Server DBA MCP Server(28 個工具)
- Data API Builder
- GitHub Copilot in VS Code
- Docker Compose
- 具體工具清單
- 發現類:List Instances、Get Server Info
- 健康類:Health Snapshots
- 性能類:Wait Stats、Active Sessions
- 優化類:DOP 設置、Cost Threshold for Parallelism
- 數據管理:Product 表、Orders 表、Categories
- 關鍵數據與配置
- 並行查詢限制:5 個實例為單位
- 演示環境:2 個 SQL Server 容器 + 2 個 MCP 服務器容器
- 數據库配置:SQL Server 2025 CU3
- 業務場景:家具類庫存警示、15% 折扣應用
結論
結論“MCP 的真正價值不在於讓 AI 代理更自由,而在於通過受控的工具暴露、細粒度權限管理與技能文件,在保持安全防護的前提下實現自然語言驅動的系統自動化。”
完整解析
詳細Anthony Nocentino 以 Everpure 的架構師身份展示了一套整合 MCP 與 SQL Server 的完整解決方案。問題源於 Data API Builder 雖然功能強大,卻僅聚焦應用開發者與數據庫用戶交互,無法滿足系統 DBA 進行故障排查與配置發現的需求。因此他決定構建 DBA 側的 MCP 服務器,將社區貢獻的 DMV 查詢包裝成代理可調用的工具。
整個系統採用 Docker 部署,啟動單一命令即可獲得完整環境。系統核心優勢在於代碼控制:DBA 預先定義所有允許執行的查詢,代理只能透過這些工具與系統互動,不能自主編寫 SQL。演示中,代理接收「檢查 SQL Server 一的健康狀態」自然語言命令,自動調用適當工具並聚合結果,發現默認成本門檻設定與並行度設置需要優化、日誌文件過大等問題。
開發者側則展示 Data API Builder 的細粒度存取控制——能針對每張表和存儲過程指定讀寫權限。代理在不知道具體 REST 端點的情況下,僅用自然語言「顯示庫存少於 50 單位的產品」就能執行複雜查詢,甚至識別出家具類面臨缺貨風險。系統更支持變更操作,演示中自動對所有家具商品應用 15% 折扣。
最後 Anthony 強調安全第一。他分享了一個關鍵事件:某次代理收到有缺陷的代碼後,試圖繞過控制直接調用 REST 端點。幸好這發生在實驗環境,突顯了多層防護的必要性:代碼級別的工具控制、UI 級別的批准按鈕、以及代理框架內的安全政策。
關鍵時刻
Pipeline v2帶時間戳的重點,會在逐字稿層級分析上線後產生。目前請先透過原始影片觀看。
事實查核
Pipeline v2說法查證是下一次管線升級的一部分。KeyFrame 只會顯示它真正能驗證的內容。


