PostgreSQL MCP Server

by HenkDz
Verified

remote-capable server

The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.

Integrations

  • Supports PostgreSQL installation and configuration on Linux platforms with customized setup instructions tailored to Linux environments.

  • Provides platform-specific PostgreSQL installation and configuration guidance for macOS systems.

  • Requires Node.js runtime environment for server operation, with specific version requirements (≥ 18.0.0) for proper functionality.

PostgreSQL MCP サーバー

PostgreSQLデータベース管理機能を提供するモデルコンテキストプロトコル(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" }

スキーマ管理

4. スキーマ情報( get_schema_info

データベースまたは特定のテーブルの詳細なスキーマ情報を取得します。

  • データベース内のテーブルのリスト
  • 列の定義
  • 制約(主キー、外部キーなど)
  • インデックス
// Example usage { "connectionString": "postgresql://user:password@localhost:5432/dbname", "tableName": "users" // Optional: specific table to get info for }

5. テーブルの作成 ( create_table )

指定された列を持つ新しいテーブルを作成します。

  • 列名と型を定義する
  • null許容制約を設定する
  • デフォルト値を設定する
// Example usage { "connectionString": "postgresql://user:password@localhost:5432/dbname", "tableName": "users", "columns": [ { "name": "id", "type": "SERIAL", "nullable": false }, { "name": "username", "type": "VARCHAR(100)", "nullable": false }, { "name": "email", "type": "VARCHAR(255)", "nullable": false }, { "name": "created_at", "type": "TIMESTAMP", "default": "NOW()" } ] }

6. テーブルの変更 ( alter_table )

既存のテーブルを変更します。

  • 新しい列を追加する
  • 列の型または制約を変更する
  • 列をドロップする
// Example usage { "connectionString": "postgresql://user:password@localhost:5432/dbname", "tableName": "users", "operations": [ { "type": "add", "columnName": "last_login", "dataType": "TIMESTAMP" }, { "type": "alter", "columnName": "email", "nullable": false }, { "type": "drop", "columnName": "temporary_field" } ] }

データ移行

7. テーブルデータのエクスポート ( export_table_data )

テーブルデータを JSON または CSV 形式でエクスポートします。

  • WHERE句でデータをフィルタリングする
  • 行数を制限する
  • 出力形式を選択
// Example usage { "connectionString": "postgresql://user:password@localhost:5432/dbname", "tableName": "users", "outputPath": "./exports/users.json", "where": "created_at > '2023-01-01'", // Optional "limit": 1000, // Optional "format": "json" // Optional: "json" | "csv" }

8. テーブルデータのインポート ( import_table_data )

JSON または CSV ファイルからデータをインポートします。

  • オプションでインポート前にテーブルを切り捨てる
  • さまざまな形式のサポート
  • カスタムCSV区切り文字
// Example usage { "connectionString": "postgresql://user:password@localhost:5432/dbname", "tableName": "users", "inputPath": "./imports/users.json", "truncateFirst": false, // Optional "format": "json", // Optional: "json" | "csv" "delimiter": "," // Optional: for CSV files }

9. データベース間のコピー ( copy_between_databases )

2 つの PostgreSQL データベース間でデータをコピーします。

  • WHERE句でデータをフィルタリングする
  • オプションでターゲットテーブルを切り捨てる
// Example usage { "sourceConnectionString": "postgresql://user:password@localhost:5432/source_db", "targetConnectionString": "postgresql://user:password@localhost:5432/target_db", "tableName": "users", "where": "active = true", // Optional "truncateTarget": false // Optional }

監視

10. データベースの監視 ( monitor_database )

PostgreSQL データベースのリアルタイム監視:

  • データベース メトリック (接続、キャッシュ ヒット率など)
  • テーブルメトリクス(サイズ、行数、デッドタプル)
  • アクティブクエリ情報
  • ロック情報
  • レプリケーションステータス
  • 設定可能なアラート
// Example usage { "connectionString": "postgresql://user:password@localhost:5432/dbname", "includeTables": true, // Optional "includeQueries": true, // Optional "includeLocks": true, // Optional "includeReplication": false, // Optional "alertThresholds": { // Optional "connectionPercentage": 80, "longRunningQuerySeconds": 30, "cacheHitRatio": 0.95, "deadTuplesPercentage": 10, "vacuumAge": 7 } }

前提条件

  • Node.js >= 18.0.0
  • PostgreSQL サーバー (ターゲット データベース操作用)
  • 対象のPostgreSQLインスタンスへのネットワークアクセス

インストール

  1. リポジトリをクローンする
  2. 依存関係をインストールします:
    npm install
  3. サーバーを構築します。
    npm run build
  4. 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 - テストを実行する

セキュリティに関する考慮事項

  1. 接続セキュリティ
    • 接続プールを使用する
    • 接続タイムアウトを実装する
    • 接続文字列を検証する
    • SSL/TLS接続をサポート
  2. クエリの安全性
    • SQLクエリを検証する
    • 危険な操作を防止
    • クエリタイムアウトを実装する
    • すべての操作をログに記録します
  3. 認証
    • 複数の認証方法をサポート
    • ロールベースのアクセス制御を実装する
    • パスワードポリシーを強制する
    • 接続資格情報を安全に管理します

ベストプラクティス

  1. 常に適切な資格情報を使用して安全な接続文字列を使用する
  2. 機密性の高い環境における本番環境のセキュリティ推奨事項に従う
  3. データベースのパフォーマンスを定期的に監視および分析する
  4. PostgreSQLのバージョンを最新に保つ
  5. 適切なバックアップ戦略を実装する
  6. リソース管理を改善するために接続プールを使用する
  7. 適切なエラー処理とログ記録を実装する
  8. 定期的なセキュリティ監査と更新

エラー処理

サーバーは包括的なエラー処理を実装します。

  • 接続失敗
  • クエリタイムアウト
  • 認証エラー
  • 権限の問題
  • リソースの制約

貢献

  1. リポジトリをフォークする
  2. 機能ブランチを作成する
  3. 変更をコミットする
  4. ブランチにプッシュする
  5. プルリクエストを作成する

ライセンス

このプロジェクトは AGPLv3 ライセンスの下でライセンスされています - 詳細については LICENSE ファイルを参照してください。

-
security - not tested
A
license - permissive license
-
quality - not tested

分析、スキーマ管理、データ移行、自然言語による対話による監視などの強力な PostgreSQL データベース管理機能を可能にするモデル コンテキスト プロトコル サーバーです。

  1. Features
    1. Database Analysis and Debugging
    2. Schema Management
    3. Data Migration
    4. Monitoring
  2. Prerequisites
    1. Installation
      1. Development
        1. Security Considerations
          1. Best Practices
            1. Error Handling
              1. Contributing
                1. License
                  ID: 39cm5xytx2