AI 编程必备:MCP 实现数据库访问能力(PostgreSQL / MySQL / Oracle)
为什么 AI 编程需要 MCP + 数据库 在 AI 编程场景里,模型如果只能看代码,无法直接访问数据库,很多任务都做不完整,例如: 快速验证线上表结构是否和 ORM 一致 让 AI 直接查询配置表、字典表做排查 在不暴露写权限的前提下完成“读库分析” MCP(Model Context Protocol)正好解决这件事:给模型一个标准化的工具层,把数据库能力以工具形式暴露出来。 本文基于 mcp-servers 目录里的实现,提炼成一套可复用方案,并把文中所有连接串、账号等信息统一脱敏。 先讲原理:MCP 在这件事里到底做了什么 可以把 MCP 理解成 “AI 的标准工具总线”: 大模型:负责理解问题和决策“要不要调用工具” MCP Client(如 IDE/Agent):负责把工具调用请求转发给 MCP Server MCP Server:真正执行能力(这里是查数据库),再把结果返回给模型 在数据库场景里,MCP 的价值不只是“能查 SQL”,而是把查询能力放进一个可治理边界中: 能限制只读 能按工具协议定义输入输出 能审计每次调用 能把多种数据库统一成一套调用方式 MCP 规范要点(本文实现对应关系) 这篇代码里用到的主要是 MCP 的三类接口能力: ListTools:告诉模型“我有哪些工具可用” 本文统一暴露 query 工具 CallTool:执行工具调用 执行 SQL,并返回结构化文本结果 ListResources / ReadResource:资源发现与读取 列出数据表、读取表结构(列名/类型) 为什么要同时提供 Tools + Resources? 只有 query:模型能查,但容易“盲查” 加上 ListResources/ReadResource:模型可先理解表结构再查询,成功率明显更高 这也是“数据库 MCP”实战里很关键的一点: 先让模型看 schema,再让模型写 SQL。 ...