暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

🧐瀚高技术全揭秘 | 瀚高数据库与MCP:适配AI数据库交互新范式

瀚高数据库 2025-06-18
194

前排提醒


6月27日-28日,由IvorySQL开源数据库社区主办、瀚高基础软件股份有限公司承办的 IvorySQL 2025生态大会暨 PostgreSQL 高峰论坛,将在全球PostgreSQL开发者、开源领袖与国内数据库技术专家共同见证下拉开帷幕。
这是一场技术思想与产业实践的深度碰撞,现报名通道已全面开启。


立即扫码报名,锁定席位


【技术前瞻】今日独家放送大会演讲精华,提前解锁技术前沿~


随着数据库技术与AI应用的不断融合,我们对 AI 调用数据库接口的“统一性”和“智能化”提出了更高的要求。Model Context Protocol(MCP)协议的出现,让数据库交互像“聊天”一样变得简单高效。MCP 的官方实现原生支持与 PostgreSQL 的连接,而另一个开源实现 pg-mcp-server 不仅支持基本的只读 SQL 执行,还能够无缝集成 PostGIS 和 PGVector 扩展,使地理空间数据和向量数据的处理同样变得轻松高效。
在本文中,我们将以瀚高数据库和 pg-mcp-server 为例,从环境搭建、依赖配置,到实测 PostGIS 空间函数的流程,详细记录实践过程,并分享我的实际体验和思考,希望对同样关注AI和数据库的大家有所帮助。




什么是MCP(Model Context Protocol)

参考官方的定义,MCP 是一个开放协议,它规范了应用程序向 LLM 提供上下文的方式。MCP 就像 AI 应用程序的 USB-C 端口一样。正如 USB-C 提供了一种标准化的方式将设备连接到各种外围设备和配件一样,MCP 也提供了一种标准化的方式将 AI 模型连接到不同的数据源和工具。



·MCP 主机:像 Claude Desktop、IDE 或 AI 工具这样的程序,需要通过 MCP 访问数据
·MCP 客户端:与服务器保持 1:1 连接的协议客户端
·MCP 服务器:轻量级程序,每个程序都通过标准化模型上下文协议公开特定功能
·本地数据源:MCP 服务器可以安全访问您计算机上的文件、数据库和服务
·远程服务:MCP 服务器可以通过互联网(例如通过 API)连接到的外部系统




PG-MCP-Server

开源项目PG-MCP-Server 是 PostgreSQL 数据库模型上下文协议 (MCP)的服务器实现。它为 AI 代理提供了全面的 API,使其能够通过 MCP 面向资源的架构发现、连接、查询和理解 PostgreSQL 数据库。相比于MCP官方的PostgreSQL实现,该项目提供了更完整的服务器实现,并提供了关于插件的YAML知识方便调用。




环境准备

·Python 3.13+
·瀚高数据库
docker仅对一般linux支持较好,选择手动安装
    # 克隆仓库
    git clone https://github.com/stuzero/pg-mcp-server.git
    cd pg-mcp-server
    # 用uv安装依赖并创建虚拟环境 ( .venv )
    uv sync
    # 激活虚拟环境
    source .venv/bin/activate # On Windows: .venv\Scripts\activate
    # 运行mcp服务
    python -m server.app
    配置env,根据自己的数据库信息替换
      PG_MCP_URL=http://localhost:8000/sse
      DATABASE_URL=postgresql://user:password@hostname:port/databasename
      默认仅对Claude cli支持较好,但是启动的MCP Server支持通过其他MCP Client通用配置,此处通过字节的Trae编辑器配置
      1.选择智能体 > Builder with MCP,之后选择添加
      2.然后在市场选择手动配置

      3.之后在弹出的窗口中输入如下配置(npx需要安装npm)

        {
        "mcpServers": {
        "pg-mcp-server": {
        "command": "npx",
        "args": [
        "mcp-remote",
        "http://127.0.0.1:8000/sse"
        ]
        }
        }
        }
        4.配置好后会显示如下,这里也是列出来了所有可以给AI用的“工具”。
        其实到这一步,就已经可以通过Trae的聊天窗口用配置好的MCP服务器和大模型交流了,不过为了能测试mcp和postGIS的交互能力,还是要额外配置好postGIS




        PostGIS数据准备

        安装GIS插件之后,初始化瀚高数据库使用md5,然后修改下列参数

        ——修改配置文件

          echo "listen_addresses='*'">> data/postgresql.auto.conf
          echo "host all all 0/0 scram-sha-256" >> data/pg_hba.conf
          ——安装插件关闭安全参数
            psql -dhighgo -p5866 -Usyssso
            select set_secure_param('hg_sepofpowers','off');

            ——重启数据库后,启用安装好的postgis插件

              CREATE EXTENSION postgis;
              之后导入自己的GIS数据并创建索引即可




              实践MCP调用

              1.输入下列提示词给Trae
                ### For AI Agents
                Example prompt for use with agents:
                ```
                Use the PostgreSQL MCP server to analyze the database.
                Available tools:
                - connect: Register a database connection string and get a connection ID
                - disconnect: Close a database connection
                - pg_query: Execute SQL queries using a connection ID
                - pg_explain: Get query execution plans
                You can explore schema resources via:
                pgmcp://{conn_id}/schemas
                pgmcp://{conn_id}/schemas/{schema}/tables
                pgmcp://{conn_id}/schemas/{schema}/tables/{table}/columns
                A comprehensive database description is available at this resource:
                pgmcp://{conn_id}/
                这是AI agent能用的mcp工具箱,参数在 .env 里,先连接数据库
                之后可以看到通过MCP中的connect已经准备好和数据库建立连接,并且执行的测试sql可以正常的返回响应。
                2.提示两个表是GIS数据后,通过MCP调用的大模型使用了ST_Intersects对GIS数据的相交情况和整个SQL性能进行了分析
                而在之后的分析中他也识别到了没用到table2的index,主动推荐创建index,不过此处其实是因为table2很小所以计划中没有调用,而数据库中是提前创建好index的,AI此时并不清楚。




                结语

                整体而言,MCP(Model Context Protocol)为数据库与 AI 之间的交互提供了一种比传统函数调用更为标准化和灵活的方式。MCP 的实现结合 Agent 的特性,可以相对标准的自动生成 SQL,并根据上下文智能选择是否执行和返回结果,显著提升了 AI 与数据库的协同效率。此外,借助 YAML 配置文件,开发者可以方便地扩展对 PostGIS 等数据库插件的支持。整体的可靠性有提升,不过现阶段还是建议在执行后对结果进行人工校验以确保准确性。
                目前MCP 的应用场景包括:在 IDE 中以对话形式连接和操作多个数据库、执行 SQL 查询、查看查询计划等。业界的一些 GUI 工具,如 QGIS,也开始支持 MCP 协议。展望未来,MCP 有望实现不同 MCP 服务器之间的协同工作,进一步推动智能化和互联化的 AI 应用生态系统的发展。
                [1]https://modelcontextprotocol.io/introduction  
                [2]https://github.com/stuzero/pg-mcp-server
                [3]https://github.com/jjsantos01/qgis_mcp
                [4]https://www.xugj520.cn/archives/postgresql-mcp-ai-database.html 


                如果你想了解更多相关内容,请锁定:
                6月27日-28日,山东大厦
                IvorySQL 2025生态大会暨 PostgreSQL 高峰论坛
                分论坛——优化之巅:PostgreSQL全方位调优与智能化诊断
                瀚高数据库工程师 郭恒臣 
                将于6月28日上午10:30-11:00
                为大家深入解读《用AI通过MCP server调用数据库进行实操》


                大会现场更有多项前沿议题放送

                请报名参会

                *更多大会内容直达底部『阅读原文』查看官网

                点击下方"阅读原文" 查看大会详情

                文章转载自瀚高数据库,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

                评论