MCP Server

ProtonBase 是一款兼容 PostgreSQL 协议的分布式数据库,支持通过主流的 ModelContextProtocol (MCP) Server 对外提供数据查询和元数据检索服务。本文将以 MCP 官方 server-postgres,以及 Bytebase 开源的多数据库 MCP 网关产品 DBHub为例,介绍这些 MCP Server 如何连接 ProtonBase 数据库,并使用 MCP Server 调试工具 MCP Inspector 工具进行功能验证。

MCP Server 通常与 MCP Client、大语言模型、Agent 等组成一套服务调用链,在该调用链中,ProtonBase 的 MCP Server 主要提供数据查询和模式探查两个基础能力。在下图中,PG MCP Server 可以是 MCP server-postgres,可以是 ByteBase 的 DBHub 以及所有支持 PG 协议的其他 MCP Server,MCP Client 可以是 MCP Inspector 以及其他支持 MCP 协议的 Client,大语言模型可以是 DeepSeek、ChatGPT、QWen 等。为了简化系统,本文仅讨论 MCP Client 与 MCP Server 的交互,不涉及大语言模型部分。

MCP Inspector

MCP Inspector 是 Model Context Protocol (MCP)生态下的一个可视化 MCP Server 测试工具。该项目目标是为 LLM(大模型)、浏览器端插件等异构AI调用环境,提供一种标准的数据结构和协议,以实现 LLM 上下文可插拔与跨平台可追溯。

核心特点

  • 跨端上报与可视化:收集和展示 Prompt、结果、环境、引用链等历史,让提示词工程、上下文数据、插件调用更透明可追溯;
  • 多平台支持:旨在支持浏览器、IoT、服务端等多种场景的AI上下文追踪;
  • 标准化协议:定义了上下文信息的数据结构,方便扩展、集成与测试;

启动 MCP Inspector

最简单启动 MCP Inspector 的方式是通过 npx 命令:

npx @modelcontextprotocol/inspector

默认会在 http://127.0.0.1:6274 (opens in a new tab) 启动如下界面

MCP 官方的server-postgres

MCP 官方的 server-postgres是 Model Context Protocol (MCP) 生态下的一个 PostgreSQL 后端数据服务实现。它实现了 MCP 协议,用于让各种客户端通过标准化 API 在数据库系统上进行模型相关的数据交互。项目地址:modelcontextprotocol/servers (opens in a new tab)

核心特点:

  • 以只读方式查询数据库
  • 支持获取表的元信息
  • 采用 Stdio 传输协议

启动 MCP server-postgres

MCP Inspector 可以通过 npx 命令直接启动 MCP Server。

参数如下:

  • 传输协议:STDIO
  • 命令:npx
  • 参数:@modelcontextprotocol/server-postgres "postgres://mcp_user:mcp_password@hostname:5432/dbname?sslmode=disable"

点击“Connect”后,预期会提示“Connected”。

通过 Inspector 访问 server-postgres

Inspector 通过 resources/list 命令,遍历返回所有表的元信息,通过 resources/read 命令可以访问具体某张表的细节元信息。

Inspector 通过 tool/list 命令,返回 query 接口的定义,通过 query 接口,可以向数据库发起具体的 SQL 查询。

使用 DBHub 作为 MCP Server

DBHub 是一款支持多数据库,实现了 MCP Server 接口的网关型产品,他支持将 MCP Client 连接到多款不同种类的数据库,包括 PostgreSQL、MySQL、SQL Server 等。

相对官方的 server-postgres,DBHub 的功能更加丰富,支持 SSE 协议,提供更丰富的 Resource Template,如查看表结构、索引结构、存储过程等。

启动 DBHub

最简单启动 MCP Inspector 的方式是通过 npx 命令:

npx @bytebase/dbhub --transport sse  --dsn "postgres://mcp_user:mcp_password@hostname:5432/dbname?sslmode=disable"

启动后,默认在 http://localhost:8080/sse (opens in a new tab) 提供服务。

使用 Inspector 连接 DBHub

通过以下配置,可以在 Inspector 中访问已经启动的 DBHub 服务。

参数如下:

点击“Connect”后,预期会提示“Connected”

通过 Inspector 访问 DBHub

Inspector 通过 resources/template/list 命令,DBHub 服务支持更多的 Resource Templates。

Inspector 通过 tool/list 命令,返回 execute_sql 接口的定义,通过execute_sql接口,可以向数据库发起具体的 SQL 查询。