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 服务。
参数如下:
-
传输协议:SSE
点击“Connect”后,预期会提示“Connected”
通过 Inspector 访问 DBHub
Inspector 通过 resources/template/list 命令,DBHub 服务支持更多的 Resource Templates。
Inspector 通过 tool/list 命令,返回 execute_sql 接口的定义,通过execute_sql接口,可以向数据库发起具体的 SQL 查询。