PgSQL MCP Server について
PgSQL MCP Serverは、MCP経由でPostgreSQLデータベースにアクセスするPythonサーバーです。非同期処理や構造の確認に加え、エラー時にロールバックするSQL操作を提供します。
主な機能
- 01PostgreSQLの非同期操作
- 02スキーマ、テーブル、列、インデックス、キーの確認
- 03DQL、DML、DDL、DCLの実行
- 04トランザクション処理とエラー時のロールバック
- 05コマンドラインからの起動
活用シーン
- 01PostgreSQLのスキーマやテーブル構造の確認
- 02MCP経由でのクエリやデータベース変更
- 03エラー時にロールバックするデータベース変更
MCP 対応
MCPクライアントにPostgreSQLの確認・クエリ用ツールを公開し、DQL、DML、DDL、DCL操作を提供します。クライアントは設定したデータベースDSNを使って接続します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
PgSQL MCP Server
English | 簡体中文
Model Context Protocol(MCP)に基づく強力なツールサーバーです。MCP 呼び出しを介して PostgreSQL データベースとやり取りできます。
🚀 概要
このプロジェクトは FastMCP フレームワークに基づいて構築されており、SQLAlchemy と asyncpg ライブラリを活用して、高性能な非同期データベース操作を実現します。データベースリクエストを処理する際の効率と応答性を確保します。
✨ 主な機能
- 非同期かつ高効率:
asyncioに基づく完全な非同期実装で、高性能な非同期 PostgreSQL ドライバーasyncpgを使用します。 - トランザクションの安全性: DDL、DML、DCL 操作は、エラー処理とロールバックの仕組みを備えたトランザクション内で実行されます。
- 簡単なデプロイ: シンプルなコマンドラインインターフェースでサーバーを起動できます。
📦 インストール
Python 3.10 以降がインストールされていることを確認してください。以下の方法をおすすめします。
uv を使用する(推奨)
uv tool install pgsql-mcp-server
次に、以下を実行します。
pgsql-mcp-server --dsn "postgresql://user:password@localhost:5432/db"
または、インストールせずに直接実行します。
uvx pgsql-mcp-server --dsn "postgresql://user:password@localhost:5432/db"
pip を使用する
pip install pgsql-mcp-server
🛠️ 利用可能なツール
このサーバーは、データベースとのやり取りに次のツールを提供します。
get_schema_names:データベース内のすべてのスキーマを一覧表示します。get_tables:特定のスキーマ内のすべてのテーブルを一覧表示します(デフォルトはpublic)。get_columns:特定のテーブルの詳細なカラム情報を取得します。get_indexes:特定のテーブルのインデックスの詳細を取得します。get_foreign_keys:特定のテーブルの外部キー制約を取得します。run_dql_query:SELECT、SHOW、EXPLAINなどのデータクエリ言語(DQL)文を実行します。run_dml_query:INSERT、UPDATE、DELETEなどのデータ操作言語(DML)文を実行します。run_ddl_query:CREATE、ALTER、DROPなどのデータ定義言語(DDL)文を実行します。run_dcl_query:GRANT、REVOKEなどのデータ制御言語(DCL)文を実行します。
🔍 プレビューとデバッグ
公式の MCP Inspector ツールを使用して、このサーバーが提供するツールを視覚的に確認し、それぞれのパラメーターと説明を表示して、テスト呼び出しを直接実行できます。
npx @modelcontextprotocol/inspector uvx pgsql-mcp-server --dsn "postgresql://user:password@host:port/database"
ローカルの Web サービスが起動します。表示された URL をブラウザーで開くと、デバッグを開始できます。
🧪 テスト
このプロジェクトでは、テストに pytest を使用します。
すべてのテストを実行
uv run pytest
単体テストのみを実行
uv run pytest tests/test_app.py
統合テストのみを実行
統合テストには、ローカルの PostgreSQL インスタンスが必要です。デフォルトでは localhost:5432/postgres に接続します。
uv run pytest tests/test_integration.py
🤝 貢献
貢献を歓迎します。改善案や機能リクエストがある場合、またはバグを見つけた場合は、ぜひ以下を行ってください。
- 議論するために Issue を作成します。
- リポジトリをフォークし、機能ブランチを作成します(
git checkout -b feature/AmazingFeature)。 - 変更をコミットします(
git commit -m 'Add some AmazingFeature')。 - ブランチにプッシュします(
git push origin feature/AmazingFeature)。 - Pull Request を作成します。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。