mcpField
P
pgcloud

pgcloud

本地服务
github.com/CloudCorpRecords数据库02 周前更新

关于 pgcloud

pgcloud 是用于管理 Neon Postgres 项目和数据库的命令行工具及 MCP 服务。它结合项目与分支管理、SQL 检查,以及在临时分支测试迁移或查询调优后再应用变更的两阶段工作流。

主要功能

  1. 01管理项目和分支
  2. 02执行 SQL 与事务
  3. 03检查表结构和查询计划
  4. 04查看慢查询
  5. 05准备并应用迁移
  6. 06在临时分支测试查询调优

适用场景

  1. 01创建开发分支
  2. 02查询项目数据库
  3. 03检查慢查询和执行计划
  4. 04应用前测试架构变更

MCP 相关

它以 stdio MCP 服务运行,向 MCP 客户端提供 Neon 项目、分支、SQL、迁移和调优工具。同一组工具也可通过命令行子命令使用。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"cloudcorprecords-pgcloud": {
"command": "npx",
"args": [
"-y",
"@reneturcios/pgcloud"
]
}
}
}
启动命令npx -y @reneturcios/pgcloud

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npm@reneturcios/pgcloud0.1.0
ocighcr.io/cloudcorprecords/pgcloud:0.1.0

工具

20

收录的工具列表 · 更新于 2 周前

参数类型必填说明
limitnumber否要返回的 Neon 项目数量上限。
org_idstring否可选的 Neon 组织 ID;指定后,仅列出属于该组织的项目。
searchstring否可选的搜索词,用于按项目名称筛选项目。

详细介绍

pgcloud

pgcloud 让 MCP 客户端或终端能够访问 Neon Postgres 账户。你可以列出、描述、创建和删除项目及其分支;检查计算端点和组织;并直接查询项目中的任何数据库——包括单条语句、多语句事务、表和列信息查询、慢查询报告以及执行计划。架构变更遵循 Neon 的两阶段模式:先在临时分支上准备迁移或调优会话并进行测试,然后才将其应用到原始分支。

需要 Neon API 密钥。将其放入 NEON_API_KEY 环境变量中;该密钥会作为 Bearer 令牌发送给 Neon API,且绝不会出现在输出中。如果缺少此变量,每次调用都会失败,并指出缺少该变量。

安装

npx @reneturcios/pgcloud list_projects

或者运行容器镜像:

docker run -i -e NEON_API_KEY ghcr.io/cloudcorprecords/pgcloud

容器默认启动 MCP 服务(见下文)。传入 CLI 参数即可将其用作 CLI。

CLI

每个 MCP 工具也都是一个 CLI 子命令。工具参数以单个 JSON 对象的形式通过 --json 传入:

export NEON_API_KEY=<your Neon API key>

pgcloud list_projects
pgcloud list_projects --json '{"limit": 5, "search": "billing"}'
pgcloud describe_project --json '{"projectId": "snowy-pond-12345678"}'
pgcloud create_branch --json '{"projectId": "snowy-pond-12345678", "branchName": "dev"}'
pgcloud run_sql --json '{"projectId": "snowy-pond-12345678", "sql": "select now()"}'
pgcloud get_connection_string --json '{"projectId": "snowy-pond-12345678", "pooled": true}'

pgcloud --version

结果以 JSON 格式输出。退出码:成功时为 0;API 或 SQL 调用失败时为 1(包括缺少 NEON_API_KEY);用法错误时为 2。

MCP 服务

同一个二进制文件支持这两种用法。mcp 子命令会启动一个 stdio MCP 服务:

npx -y @reneturcios/pgcloud mcp

MCP 客户端配置:

{
  "mcpServers": {
    "pgcloud": {
      "command": "npx",
      "args": ["-y", "@reneturcios/pgcloud", "mcp"],
      "env": { "NEON_API_KEY": "your Neon API key" }
    }
  }
}
工具
工具输入(粗体为必填项)功能
list_projectslimit、search、org_id列出账户中的项目。
describe_projectprojectId描述一个项目。
create_projectname、region_id、org_id创建一个项目。
delete_projectprojectId删除一个项目及其资源。
create_branchprojectId、branchName、parentBranchId创建一个带有读写计算的分支。
delete_branchprojectId、branchId删除一个分支。
describe_branchprojectId、branchId返回分支记录及其数据库。
list_branch_computesprojectId、branchId列出计算端点。
list_organizationssearch列出用户可以访问的组织。
get_connection_stringprojectId、branchId、databaseName、roleName、pooled获取 Postgres 连接字符串。
run_sqlsql、projectId、branchId、databaseName、roleName运行一条 SQL 语句。
run_sql_transactionsql(数组)、projectId、…在一个事务中运行多条语句。
get_database_tablesprojectId、branchId、databaseName通过 information_schema 列出表。
describe_table_schemaprojectId、tableName、…列出表的列。
list_slow_queriesprojectId、limit、…返回 pg_stat_statements 中耗时最长的查询。
explain_sql_statementsql、projectId、…返回语句的 EXPLAIN 计划。
prepare_database_migrationmigrationSql、projectId、…在临时分支上运行迁移 SQL。
complete_database_migrationmigrationId、projectId、…将已准备的迁移应用到原始分支。
prepare_query_tuningsql、projectId、…在临时分支上开启调优会话并生成计划。
complete_query_tuningtuningId、projectId、applyChanges结束调优会话,并应用或放弃更改。

管理调用会发送到 https://api.neon.tech/api/v2。SQL 调用会先通过 API 获取分支的连接 URI,然后将语句 POST 到数据库主机的 HTTP SQL 端点,并在 Neon-Connection-String 标头中附上 URI;SQL 文本会按原样传递。迁移和调优会话保存在服务进程中,因此必须由准备会话的同一进程完成会话。

开发

npm install
npm run build   # tsc -> dist/
npm test        # node test runner over test/*.test.ts, no network (fake fetch fixtures)
npm run dev     # run the CLI from source via tsx

许可证

MIT — 参见 LICENSE。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。