Mcp Postgres Analytics について
データベース運用者や分析担当者向けの、読み取り専用 PostgreSQL 分析 MCP サーバーです。クエリプラン、性能、インデックス、肥大化、ロックを診断し、起動時に書き込み権限を拒否します。
主な機能
- 01コスト注釈付きクエリプラン
- 02遅いクエリとインデックス統計
- 03テーブル肥大化と vacuum 状態
- 04接続とロック待ちの診断
- 05データベースオブジェクトのサイズ集計
- 06起動時の書き込み権限拒否
活用シーン
- 01アプリケーションの遅いリクエストの調査
- 02データベース容量の計画
- 03インデックスとテーブル肥大化の確認
MCP 対応
MCP クライアントに、クエリ、インデックス、テーブル、接続、ロック、データベースサイズを調べる 8 種類の読み取り専用 PostgreSQL 分析ツールを公開します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Archimedes Marketで検証済みのアセットです。4つの観点(セキュリティ・品質・ライセンス・複雑さ)に関するTrust Reportの全文と、厳選されたカタログはアセットページをご覧ください。
MCP PostgreSQL Analytics
MCP サーバーとして公開される、読み取り専用のPostgreSQL分析エージェントです。本番データベースに安全に導入できるよう設計されています。DDLもDMLも一切実行せず、書き込みは行いません。
インシデント対応やキャパシティプランニングで多くのチームが必要とする可観測性を、次の8つのツールでカバーします。
query_plan— クエリ文字列に対してEXPLAIN (ANALYZE, BUFFERS, VERBOSE)を実行し、コストの高い箇所に注釈を付けますslow_queries—pg_stat_statementsから平均時間/合計時間/呼び出し回数に基づく上位N件のクエリを取得しますindex_usage— インデックスのヒット率、使用されていないインデックス、pg_stat_user_indexesに基づくインデックス不足のヒントを取得しますtable_bloat—pgstattuple相当のヒューリスティックを使って、テーブルごとの肥大化を推定しますvacuum_status— テーブルごとの最終バキューム/自動バキューム/分析の実行時刻を取得し、トランザクションIDの周回リスクにフラグを付けますconnection_stats— アクティブなセッション、トランザクション中のアイドル状態、最長実行中のトランザクションを確認しますlock_waits— ブロッカーの連鎖を解決したうえで、ブロックされているクエリを取得しますsize_summary— データベース/スキーマ/テーブル/インデックスのサイズを取得し、ソートします
安全性の保証
MCP サーバーは、pg_read_all_statsとCONNECTのみを持つロールで接続します。MCP_POSTGRES_DSNの接続文字列は起動時に検証され、いずれかのスキーマに対してCREATE、INSERT、UPDATE、DELETE、TRUNCATE、ALTER、DROP権限を持つロールは拒否されます。権限を昇格して実行するのではなく、明確なエラーを表示して終了します。
query_planはクエリ文字列を受け取りますが、実行するのはEXPLAIN (...)の内部だけです。クエリ自体が実行されることはありません。
クイックスタート
pip install mcp-postgres-analytics
export MCP_POSTGRES_DSN="postgresql://reader@host:5432/db"
mcp-postgres-analytics serve
Claude Desktopの設定:
{
"mcpServers": {
"postgres-analytics": {
"command": "mcp-postgres-analytics",
"args": ["serve"],
"env": {
"MCP_POSTGRES_DSN": "postgresql://reader@host:5432/db"
}
}
}
}
エージェントの一般的なワークフロー
Agent: "Why is our /api/checkout endpoint slow this week?"
↓
1. slow_queries → top 5 queries by mean time
2. query_plan on the worst → spots a sequential scan
3. index_usage → confirms missing index hint
4. size_summary → confirms the table is 14GB
5. Output: "Index on orders(status, created_at) missing. ~150ms saved per call. Run during low-traffic window."
対応していないこと
- いかなる種類の書き込み操作も行いません
- PostgreSQL以外のデータベースには接続しません(Parquet/CSVにはDuckDB MCPを使用してください)
- バックアップ/復元は行いません(
pg_dumpを直接使用してください) - レプリケーショントポロジーの管理は行いません
エージェントのワークフローで書き込みアクセスが必要な場合は、明示的なゲートを備えた別のMCP サーバーを使用してください。読み取り専用の分析と書き込み操作を混在させないことは、このサーバーが避けるために作られた、まさにその種のツール設計上の混同です。
ライセンス
MIT。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。