本文以Qoder为例,介绍如何通过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中内嵌了PolarDB PostgreSQL Agentic Database集群和租户信息,MCP Server在首次连接时自动完成三层校验(格式校验→Payload解析→远程验证),验证通过后创建Session,后续调用在该Session上下文中执行,AI Agent和使用者全程不接触任何数据库地址、账号或密码。
适用范围
-
已注册阿里云账号并完成实名认证。
-
已下载并安装支持MCP协议的客户端,例如Qoder、Hermes、Cursor、Claude Desktop/CLI等。
步骤一:获取API Key
-
在左侧导航栏,选择,进入AgenticDB 集群列表页面。
-
单击目标集群ID/名称,进入集群详情页。
-
在左侧导航栏单击,进入API Key管理页面。
-
单击创建 API Key。创建完成后,系统将生成格式为
pagc_key_xxx的密钥。
-
请妥善保存API Key(仅创建时展示一次)。
-
API Key包含集群ID(
pagc-xxx)和租户ID(t-xxx)信息,用于确定Agent操作范围。每个API Key仅可访问其绑定的集群和租户下的资源。
步骤二:本地部署MCP Server
当前PolarDB PostgreSQL Agentic Database MCP Server未提供远端服务,需要在本地以HTTP模式部署运行。
前置条件
-
Node.js>=20.0.0。
-
阿里云AccessKey ID和AccessKey Secret(用于调用PolarDB OpenAPI)。
环境变量配置
创建.env文件或在环境中设置以下变量:
|
变量名 |
是否必填 |
说明 |
默认值 |
|
|
是 |
阿里云AccessKey ID。 |
无 |
|
|
是 |
阿里云AccessKey Secret。 |
无 |
|
|
否 |
PolarDB地域。 |
|
|
|
否 |
PolarDB API端点。 |
|
|
|
否 |
传输模式。 |
|
|
|
否 |
HTTP服务端口。 |
|
|
|
否 |
HTTP服务绑定地址。 |
|
方式一:使用npx快速启动(无需安装)
MCP_TRANSPORT=http npx -y mcp-server-polardb-agentic
方式二:全局安装后启动
npm install -g mcp-server-polardb-agentic
MCP_TRANSPORT=http mcp-server-polardb-agentic
启动成功后,MCP Server监听在http://127.0.0.1:3000/mcp。
步骤三:在MCP客户端中配置连接
在客户端的MCP Server配置中添加以下条目(以JSON配置文件为例):
{
"mcpServers": {
"polardb-agentic": {
"type": "http",
"url": "http://127.0.0.1:3000/mcp",
"headers": {
"Authorization": "Bearer pagc_key_xxxxx.yyyyy"
}
}
}
}
将pagc_key_xxxxx.yyyyy替换为步骤一中获取的实际API Key。
-
服务器类型选择Streamable HTTP。
-
添加后客户端会自动发起连接,MCP Server将校验API Key并建立Session。
操作示例
Hermes
您需修改config.yaml。
mcp_servers:
polardb_agentic:
url: http://127.0.0.1:3000/mcp
headers:
Authorization: Bearer pagc_key_xxxxx.yyyyy
timeout: 180
connect_timeout: 60
request_timeout: 120
read_timeout: 120
tool_call_timeout: 120
max_retries: 0
retry: false
Qoder
在Qoder右上角的个人头像,单击Qoder设置,在MCP服务中单击添加按钮,将对应的配置添加进去。
{
"mcpServers": {
"polardb-agentic": {
"type": "http",
"url": "http://127.0.0.1:3000/mcp",
"headers": {
"Authorization": "Bearer pagc_key_xxxxx.yyyyy"
}
}
}
}
Claude CLI
-
推荐使用
claude mcp add命令行方式添加,在终端执行:claude mcp add polardb-agentic \ --transport http \ --url http://127.0.0.1:3000/mcp \ --header "Authorization: Bearer pagc_key_xxxxx.yyyyy"添加成功后,执行
claude mcp list可查看已配置的 MCP Server 列表。 -
您也可以直接编辑 Claude 配置文件(用户级:
~/.claude.json;项目级:项目根目录下的.claude.json),在mcpServers节点下加入以下 JSON:{ "mcpServers": { "polardb-agentic": { "type": "http", "url": "http://127.0.0.1:3000/mcp", "headers": { "Authorization": "Bearer pagc_key_xxxxx.yyyyy" } } } }
配置生效后重启claude命令行会话即可连接。
步骤四:验证连接
配置完成后,客户端显示连接成功状态即表示认证通过。您可以直接使用自然语言与AI Agent交互,例如:
-
“列出我所有的项目”
-
“在项目 my-app 中创建一个新分支”
-
“查看 users 表的表结构”
-
“执行 SELECT * FROM orders LIMIT 10”
功能概览
PolarDB PostgreSQL Agentic Database MCP Server提供以下工具能力。
项目管理
|
工具名称 |
说明 |
是否只读 |
|
|
列出当前租户下的所有PolarDB PostgreSQL Agentic Database项目,支持分页。 |
是 |
|
|
获取指定项目的详细信息。 |
是 |
|
|
创建新项目,返回项目详情及默认分支名称。 |
否 |
|
|
删除项目及其所有数据(需人工确认)。 |
否(破坏性) |
分支管理
|
工具名称 |
说明 |
是否只读 |
|
|
列出当前租户下所有分支,支持按项目筛选。 |
是 |
|
|
获取指定分支的详细信息。 |
是 |
|
|
从已有分支创建新分支(即时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,然后从数据库中查询它。”
安全机制
多层安全保障
-
凭证隔离:数据库地址、账号、密码由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 Streamable HTTP协议的客户端,包括Qoder、Cursor、Claude Desktop、Windsurf等。
故障排查
|
现象 |
可能原因 |
解决方法 |
|
连接时返回 |
客户端未配置Authorization头。 |
检查MCP配置中是否正确添加了 |
|
连接时返回 |
API Key格式错误。 |
确认Key以 |
|
连接时返回 |
API Key Payload解析失败。 |
确认使用的是控制台生成的完整API Key。 |
|
连接时返回 |
API Key不存在或已被删除。 |
在控制台确认Key状态,或重新创建。 |
|
连接时返回 |
API Key已过期。 |
在控制台创建新的API Key并更新配置。 |
|
连接时返回 |
API Key已被吊销。 |
在控制台创建新的API Key并更新配置。 |
|
工具调用报错“实例准备中” |
计算节点正在分配。 |
等待数秒后重试。 |
|
客户端显示连接断开 |
Session超时或服务端重启。 |
重新发起连接,客户端会自动重新认证。 |