PostgreSQL MCP サーバー
モデルコンテキストプロトコル(MCP) Python SDKを使用したPostgreSQL MCPサーバー実装。MCPは、LLMアプリケーションと外部データソース間のシームレスな統合を可能にするオープンプロトコルです。このサーバーにより、AIエージェントは標準化されたインターフェースを介してPostgreSQLデータベースと対話できるようになります。
特徴
データベーススキーマの一覧表示
スキーマ内のテーブルを一覧表示する
テーブル構造を説明する
テーブルの制約と関係を一覧表示する
外部キー情報を取得する
SQLクエリを実行する
Related MCP server: MCP PostgreSQL Server
クイックスタート
インストール
Smithery経由でインストール
Smithery経由で Claude Desktop 用の PostgreSQL MCP サーバーを自動的にインストールするには:
手動インストール
このリポジトリをクローンします:
仮想環境を作成してアクティブ化します (推奨):
依存関係をインストールします:
使用法
MCP サーバーを起動します。
# Without a connection string (server starts, DB‑backed tools will return a friendly error) python postgres_server.py # Or set the connection string via environment variable: export POSTGRES_CONNECTION_STRING="postgresql://username:password@host:port/database" python postgres_server.py # Or pass it using the --conn flag: python postgres_server.py --conn "postgresql://username:password@host:port/database"サーバーは次のツールを提供します。
query: データベースに対してSQLクエリを実行するlist_schemas: 利用可能なすべてのスキーマを一覧表示するlist_tables: 特定のスキーマ内のすべてのテーブルを一覧表示するdescribe_table: テーブルの構造に関する詳細情報を取得するget_foreign_keys: テーブルの外部キー関係を取得するfind_relationships: テーブルの明示的および暗黙的な関係の両方を検出します
Dockerで実行する
イメージをビルドします。
データベース接続なしでコンテナを実行します(サーバーは検査可能なままです)。
POSTGRES_CONNECTION_STRINGを指定してライブ PostgreSQL データベースで実行します。
環境変数を省略すると、サーバーは通常どおり起動し、環境変数が指定されるまで、すべてのデータベース バックアップ ツールは「接続文字列が設定されていません」というわかりやすいメッセージを返します。
mcp.json による設定
このサーバーを MCP 互換ツール (Cursor など) と統合するには、 ~/.cursor/mcp.jsonに追加します。
POSTGRES_CONNECTION_STRING
交換する:
/path/to/venv仮想環境のパスに置き換えます/path/to/postgres_server.pyにサーバースクリプトへの絶対パスを記述します。
安全
コード内で機密データベースの認証情報を公開しないでください
データベース接続文字列には環境変数または安全な構成ファイルを使用する
リソース管理を改善するために接続プールの使用を検討する
適切なアクセス制御とユーザー認証を実装する
貢献
貢献を歓迎します!お気軽にプルリクエストを送信してください。
関連プロジェクト
ライセンス
MITライセンス
著作権 (c) 2025 gldc
本ソフトウェアおよび関連ドキュメント ファイル (以下「本ソフトウェア」) のコピーを入手したすべての人物は、以下の条件に従い、本ソフトウェアを無制限に扱う権利 (使用、コピー、変更、統合、公開、配布、サブライセンス、および/または販売する権利を含みますが、これに限定されません) および本ソフトウェアの提供を受けた人物が同様の行為を行うことを許可する権利を無償で付与されます。
上記の著作権表示およびこの許可通知は、ソフトウェアのすべてのコピーまたは大部分に含めるものとします。
本ソフトウェアは「現状有姿」で提供され、明示的または黙示的を問わず、商品性、特定目的への適合性、非侵害性を含むがこれらに限定されない、いかなる種類の保証も付与されません。いかなる場合においても、著作者または著作権者は、契約違反、不法行為、またはその他の行為にかかわらず、本ソフトウェア、本ソフトウェアの使用、またはその他の取り扱いに起因または関連して発生するいかなる請求、損害、またはその他の責任についても責任を負わないものとします。