PostgreSQL MCP Server について
PostgreSQL MCP Server は、PostgreSQL データベースの管理機能を提供する MCP サーバーです。既存環境の分析、導入ガイダンスの提供、データベースの問題調査を支援します。AI アシスタントを使ってデータベース運用を行いたい開発者や管理者に向いています。
主な機能
- 01analyze_database による設定・性能・セキュリティ分析
- 02get_setup_instructions によるプラットフォーム別の導入手順
- 03debug_database による接続・ロック・レプリケーションの調査
- 04SSL/TLS 接続のサポートと接続タイムアウト設定
- 05SQL クエリの検証と操作ログの記録
活用シーン
- 01データベースの設定と性能指標のレビュー
- 02Linux、macOS、Windows 向けの PostgreSQL 導入手順の作成
- 03接続失敗やロック競合の原因調査
MCP 対応
本プロジェクトは MCP サーバーであり、analyze_database、get_setup_instructions、debug_database などのツールを MCP クライアントに公開します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
PostgreSQL MCP サーバー
PostgreSQL データベースの管理機能を提供する Model Context Protocol(MCP)サーバーです。このサーバーは、既存の PostgreSQL 環境の分析、実装ガイダンスの提供、データベースの問題のデバッグを支援します。
機能
1. データベース分析(analyze_database)
PostgreSQL データベースの構成とパフォーマンス指標を分析します。
- 構成分析
- パフォーマンス指標
- セキュリティ評価
- 最適化に関する推奨事項
// Example usage
{
"connectionString": "postgresql://user:password@localhost:5432/dbname",
"analysisType": "performance" // Optional: "configuration" | "performance" | "security"
}
2. セットアップ手順(get_setup_instructions)
PostgreSQL のインストールと構成に関する手順を段階的に案内します。
- プラットフォーム固有のインストール手順
- 構成に関する推奨事項
- セキュリティのベストプラクティス
- インストール後のタスク
// Example usage
{
"platform": "linux", // Required: "linux" | "macos" | "windows"
"version": "15", // Optional: PostgreSQL version
"useCase": "production" // Optional: "development" | "production"
}
3. データベースのデバッグ(debug_database)
PostgreSQL でよく発生する問題をデバッグします。
- 接続の問題
- パフォーマンスのボトルネック
- ロックの競合
- レプリケーションのステータス
// Example usage
{
"connectionString": "postgresql://user:password@localhost:5432/dbname",
"issue": "performance", // Required: "connection" | "performance" | "locks" | "replication"
"logLevel": "debug" // Optional: "info" | "debug" | "trace"
}
前提条件
- Node.js >= 18.0.0
- PostgreSQL サーバー(対象データベースの操作に必要)
- 対象の PostgreSQL インスタンスへのネットワークアクセス
インストール
Smithery 経由でインストール
Smithery 経由で Claude Desktop に PostgreSQL MCP Server を自動的にインストールするには、次の手順を実行します。
npx -y @smithery/cli install @nahmanmate/postgresql-mcp-server --client claude
手動インストール
- リポジトリをクローンします
- 依存関係をインストールします。
npm install - サーバーをビルドします。
npm run build - MCP 設定ファイルに追加します。
{ "mcpServers": { "postgresql-mcp": { "command": "node", "args": ["/path/to/postgresql-mcp-server/build/index.js"], "disabled": false, "alwaysAllow": [] } } }
開発
npm run dev- ホットリロードで開発サーバーを起動しますnpm run lint- ESLint を実行しますnpm test- テストを実行します
セキュリティに関する考慮事項
-
接続のセキュリティ
- 接続プーリングを使用します
- 接続タイムアウトを実装します
- 接続文字列を検証します
- SSL/TLS 接続をサポートします
-
クエリの安全性
- SQL クエリを検証します
- 危険な操作を防止します
- クエリタイムアウトを実装します
- すべての操作をログに記録します
-
認証
- 複数の認証方式をサポートします
- ロールベースのアクセス制御を実装します
- パスワードポリシーを適用します
- 接続認証情報を安全に管理します
ベストプラクティス
- 常に適切な認証情報を含む安全な接続文字列を使用します
- 機密性の高い環境では、本番環境向けのセキュリティに関する推奨事項に従います
- データベースのパフォーマンスを定期的に監視、分析します
- PostgreSQL のバージョンを常に最新の状態に保ちます
- 適切なバックアップ戦略を実施します
- リソースをより適切に管理するため、接続プーリングを使用します
- 適切なエラー処理とログ記録を実装します
- セキュリティ監査とアップデートを定期的に実施します
エラー処理
サーバーは包括的なエラー処理を実装しています。
- 接続の失敗
- クエリタイムアウト
- 認証エラー
- 権限の問題
- リソースの制約
評価とテストの実行
evals パッケージは MCP クライアントを読み込み、そのクライアントが index.ts ファイルを実行するため、テストの間に再ビルドする必要はありません。ドキュメント全文はこちらで確認できます。
OPENAI_API_KEY=your-key npx mcp-eval src/evals/evals.ts src/index.ts
コントリビューション
- リポジトリをフォークします
- フィーチャーブランチを作成します
- 変更をコミットします
- ブランチにプッシュします
- プルリクエストを作成します
ライセンス
このプロジェクトは AGPLv3 ライセンスの下でライセンスされています。詳細については LICENSE ファイルを参照してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。