本文介绍如何通过 API Key 认证接入PolarDB PostgreSQL Agentic Database MCP Server。完成接入后,AI Agent 即可通过 MCP 协议直接调用数据库管理工具,使用自然语言完成项目管理、分支操作、SQL 执行、Schema 浏览及 Lakebase 对象存储等操作,整个过程无需手动配置数据库地址、账号或密码。
PolarDB PostgreSQL Agentic Database目前处于公测阶段。公测期间,不承诺服务等级协议SLA。如您对当前功能有任何疑问,可通过钉钉搜索群号入群咨询。钉钉群号:175205010586
背景信息
PolarDB PostgreSQL Agentic Database MCP Server 采用 API Key 认证机制,确保使用者身份可信、操作范围可控。
认证要素 | 说明 | 获得方式 |
API Key | 格式为 | 通过阿里云控制台创建。 |
Bearer Token | 在 MCP 客户端配置中以 | 使用上述 API Key。 |
API Key 中内嵌了 AgenticDB 集群和租户信息。MCP Server 在首次连接时自动完成格式校验、Payload 解析和远程验证。验证通过后创建 Session,后续调用在该 Session 上下文中执行。AI Agent 和使用者全程不接触任何数据库地址、账号或密码。
适用范围
已创建创建PolarDB PostgreSQL Agentic Database集群,并获取API Key(
pagc_key_xxx)。已下载并安装支持 MCP 协议的客户端,例如 Qoder、Hermes、Cursor 或 Claude Desktop/CLI等。
步骤一:获取 API Key
登录PolarDB控制台。
在左侧导航栏,选择,进入AgenticDB 集群列表页面。
选择已开通的AgenticDB 集群,进入页面。
单击创建 API Key,系统将生成格式为
pagc_key_xxx的密钥。
妥善保存 API Key。该密钥仅在创建时展示一次。
API Key 包含集群 ID(
pagc-xxx)和租户 ID(t-xxx)信息,用于确定 Agent 的操作范围。每个 API Key 仅可访问其绑定集群和租户下的资源。
步骤二:配置本地 MCP 工具
配置 MCP Server 前,请满足以下条件:
Node.js >= 20.0.0。
已获取阿里云 AccessKey ID 和 AccessKey Secret(用于调用 PolarDB OpenAPI)。
在客户端的 MCP Server 配置中添加以下条目。以下示例使用 JSON 配置文件:
{
"mcpServers": {
"polardb-agentic": {
"command": "npx",
"args": ["-y", "mcp-server-polardb-agentic@latest"],
"env": {
"POLARDB_ACCESS_KEY_ID": "<your-accesskey-id>",
"POLARDB_ACCESS_KEY_SECRET": "<your-accesskey-secret>",
"POLARDB_AGENTIC_API_KEY": "pagc_key_xxx"
}
}
}
}将配置中的 pagc_key_xxx 替换为步骤一获取的实际 API Key,并将 your-accesskey-id 和 your-accesskey-secret 分别替换为已获取的 AccessKey ID 和 AccessKey Secret。添加后,客户端会自动发起连接。MCP Server 将校验 API Key 并建立 Session。
操作示例
Qoder
在Qoder桌面版中依次选择扩展 > 连接器,单击添加 > 粘贴 JSON 配置。在弹出的对话框中添加下述配置。
{
"mcpServers": {
"polardb-agentic": {
"command": "npx",
"args": ["-y", "mcp-server-polardb-agentic@latest"],
"env": {
"POLARDB_ACCESS_KEY_ID": "<your-accesskey-id>",
"POLARDB_ACCESS_KEY_SECRET": "<your-accesskey-secret>",
"POLARDB_AGENTIC_API_KEY": "pagc_key_xxx"
}
}
}
}Qoder IDE
在Qoder IDE右上角单击个人头像,选择Qoder IDE 设置。在MCP 服务中单击添加,并添加下述配置。
{
"mcpServers": {
"polardb-agentic": {
"command": "npx",
"args": ["-y", "mcp-server-polardb-agentic@latest"],
"env": {
"POLARDB_ACCESS_KEY_ID": "<your-accesskey-id>",
"POLARDB_ACCESS_KEY_SECRET": "<your-accesskey-secret>",
"POLARDB_AGENTIC_API_KEY": "pagc_key_xxx"
}
}
}
}Claude CLI
推荐使用
claude mcp add命令添加 MCP Server。在终端执行:claude mcp add polardb-agentic --transport stdio \ --env POLARDB_ACCESS_KEY_ID=<your-accesskey-id> \ --env POLARDB_ACCESS_KEY_SECRET=<your-accesskey-secret> \ --env POLARDB_AGENTIC_API_KEY=pagc_key_xxx \ -- npx -y mcp-server-polardb-agentic@latest添加成功后,执行
claude mcp list查看已配置的 MCP Server 列表。也可以直接编辑 Claude 配置文件:用户级配置文件为
~/.claude.json,项目级配置文件为项目根目录下的.claude.json。在mcpServers节点下加入以下 JSON:{ "mcpServers": { "polardb-agentic": { "command": "npx", "args": ["-y", "mcp-server-polardb-agentic@latest"], "env": { "POLARDB_ACCESS_KEY_ID": "<your-accesskey-id>", "POLARDB_ACCESS_KEY_SECRET": "<your-accesskey-secret>", "POLARDB_AGENTIC_API_KEY": "pagc_key_xxx" } } } }
配置生效后,重启 Claude 命令行会话即可连接。
Hermes
修改 ~/.hermes/config.yaml:
mcp_servers:
polardb_agentic:
command: "npx"
args: ["-y", "mcp-server-polardb-agentic@latest"]
env:
POLARDB_ACCESS_KEY_ID: "<your-accesskey-id>"
POLARDB_ACCESS_KEY_SECRET: "<your-accesskey-secret>"
POLARDB_AGENTIC_API_KEY: "pagc_key_xxx"步骤三:验证连接
配置完成后,客户端显示连接成功状态即表示认证通过。您可以直接使用自然语言与 AI Agent 交互,例如:
“列出我所有的项目”。
“在项目 my-app 中创建一个新分支”。
“查看 users 表的表结构”。
“执行 SELECT * FROM orders LIMIT 10”。
功能概览
PolarDB PostgreSQL Agentic Database MCP Server 提供以下工具能力。
项目管理
工具名称 | 说明 | 是否只读 |
| 列出当前租户下的所有 AgenticDB 项目,支持分页。 | 是 |
| 获取指定项目的详细信息。 | 是 |
| 创建新项目,返回项目详情及默认分支名称。 | 否 |
| 删除项目及其所有数据,需要您手动确认。 | 否(破坏性) |
分支管理
工具名称 | 说明 | 是否只读 |
| 列出当前租户下所有分支,支持按项目筛选。 | 是 |
| 获取指定分支的详细信息。 | 是 |
| 从已有分支创建新分支(即时fork)。 | 否 |
| 删除指定分支,需要您手动确认。 | 否(破坏性) |
| 获取分支的 PostgreSQL 连接串,无计算节点时自动分配。 | 是 |
Schema 浏览
工具名称 | 说明 | 是否只读 |
| 列出数据库中所有表的 Schema、名称、类型和注释。 | 是 |
| 获取指定表的列定义、数据类型和约束。 | 是 |
SQL 执行
工具名称 | 说明 | 是否只读 |
| 执行单条 SQL 语句。 | 否 |
| 在单个事务中原子执行多条 SQL 语句。 | 否 |
| 使用 EXPLAIN ANALYZE 分析查询执行计划。 | 是 |
Lakebase 对象存储
工具名称 | 说明 | 是否只读 |
| 列出当前集群关联的 Lakebase(PolarFS)实例。 | 是 |
| 获取 S3 网关连接信息(endpoint、凭证、bucket)。 | 是 |
| 列出 Lakebase 实例中的对象,支持前缀过滤和分页。 | 是 |
| 通过 S3 协议上传文本内容为对象。 | 否 |
| 通过 S3 协议下载并读取对象。 | 是 |
| 删除对象,需要您手动确认。 | 否(破坏性) |
日常使用
连接建立后,MCP 客户端通过 Session ID 维持会话状态,后续使用无需再次认证。您可以使用以下自然语言指令:
创建项目:“创建一个名为 my-app 的新项目,并建立 users 表,包含 id、name、email 和 created_at 字段。”
查看 Schema:“查看 my-app 项目中 users 表的完整结构。”
分支操作:“从 main 分支创建一个名为 feature-auth 的开发分支。”
对象存储:“将这份 CSV 数据上传到 Lakebase,然后从数据库中查询它。”
安全机制
PolarDB Agentic Database 内置多层安全保障
凭证隔离:数据库地址、账号和密码由 MCP Server 加密托管,AI Agent 上下文中不会出现任何连接信息。
访问控制:每个 API Key 仅可操作其绑定的集群和租户,不能跨账号或跨集群访问。
三层 Key 校验:格式校验、Payload 解析、远程 OpenAPI 验证和一致性校验可防止 Key 被伪造或篡改。
破坏性操作保护:
delete_project、delete_branch、run_sql(包含DROP、DELETE或TRUNCATE)等破坏性操作不会自主执行,Agent 始终先向您确认。Session 隔离:每个 Session 都有独立的操作上下文(集群 ID 和租户 ID),不同 Session 之间完全隔离。
API Key 管理
Key 格式:
pagc_key_{base64url(clusterId:tenantId:random)}.{hmac_signature}。Key 有效期:创建时可指定过期时间,也可设置为永不过期。
Key 吊销:可在控制台随时吊销已发放的 API Key。
多 Key 支持:同一租户可创建多个 API Key,适用于不同 Agent 或使用场景。
常见问题
Q:API Key 过期后需要重新配置吗?
A:需要。API Key 过期后连接会返回 401 错误,请在控制台重新创建 API Key 并更新客户端配置。
Q:多人或多 Agent 如何使用?
A:每个 Agent 使用独立的 API Key 连接,各自拥有独立的 Session,互不干扰。同一租户下可创建多个 API Key。
Q:哪些操作需要人工确认?
A:所有标记为破坏性的操作,包括
delete_project、delete_branch、包含DROP、DELETE或TRUNCATE的 SQL,以及lakebase_delete_object,都不会自主执行,Agent 会先向您确认。Q:可以限制 Agent 只执行只读操作吗?
A:当前版本暂不支持只读模式配置,但 Agent 在执行写操作前会遵循确认机制。
Q:支持哪些 MCP 客户端?
A:支持实现 MCP stdio 协议的客户端,包括 Qoder、Cursor、Claude Desktop 和 Windsurf 等。
故障排查
现象 | 可能原因 | 解决方法 |
连接时返回 | API Key 格式错误。 | 确认 Key 以 |
连接时返回 | API Key Payload 解析失败。 | 确认使用的是控制台生成的完整 API Key。 |
连接时返回 | API Key 不存在或已被删除。 | 在控制台确认 Key 状态,或重新创建。 |
连接时返回 | API Key 已过期。 | 在控制台创建新的 API Key 并更新配置。 |
连接时返回 | API Key 已被吊销。 | 在控制台创建新的 API Key 并更新配置。 |
工具调用报错“实例准备中” | 计算节点正在分配。 | 等待数秒后重试。 |
客户端显示连接断开 | Session 超时或服务端重启。 | 重新发起连接,客户端会自动重新认证。 |