mcpField
P
pgcloud

pgcloud

ローカル
github.com/CloudCorpRecordsデータベース02 週間前に更新

pgcloud について

pgcloudは、Neon Postgresのプロジェクトやデータベースを管理するコマンドラインツール兼MCPサーバーです。プロジェクトとブランチの管理に加え、一時ブランチでマイグレーションやクエリ調整を試してから変更を適用する2段階のワークフローを備えています。

主な機能

  1. 01プロジェクトとブランチの管理
  2. 02SQLとトランザクションの実行
  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 の 2 フェーズ方式に従います。移行またはチューニングセッションを一時ブランチで準備して実行し、その後に元のブランチへ反映します。

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 呼び出しの失敗時(NEON_API_KEY が未設定の場合を含む)は 1、使用法エラーの場合は 2 です。

MCP サーバー

1 つのバイナリで両方のインターフェースを提供します。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_projectprojectId1 つのプロジェクトの詳細を表示します。
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、pooledPostgres 接続文字列を解決します。
run_sqlsql、projectId、branchId、databaseName、roleNameSQL ステートメントを 1 つ実行します。
run_sql_transactionsql(配列)、projectId、…1 つのトランザクション内でステートメントを実行します。
get_database_tablesprojectId、branchId、databaseNameinformation_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 を解決し、次に URI を Neon-Connection-String ヘッダーに含めて、データベースホストの HTTP SQL エンドポイントへステートメントを POST します。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 を参照してください。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。