mcpField
P
PgSQL MCP Server

PgSQL MCP Server

ローカル
github.com/twn39データベース635 週間前に更新

PgSQL MCP Server について

PgSQL MCP Serverは、MCP経由でPostgreSQLデータベースにアクセスするPythonサーバーです。非同期処理や構造の確認に加え、エラー時にロールバックするSQL操作を提供します。

主な機能

  1. 01PostgreSQLの非同期操作
  2. 02スキーマ、テーブル、列、インデックス、キーの確認
  3. 03DQL、DML、DDL、DCLの実行
  4. 04トランザクション処理とエラー時のロールバック
  5. 05コマンドラインからの起動

活用シーン

  1. 01PostgreSQLのスキーマやテーブル構造の確認
  2. 02MCP経由でのクエリやデータベース変更
  3. 03エラー時にロールバックするデータベース変更

MCP 対応

MCPクライアントにPostgreSQLの確認・クエリ用ツールを公開し、DQL、DML、DDL、DCL操作を提供します。クライアントは設定したデータベースDSNを使って接続します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

PgSQL MCP Server

PyPI - Version PyPI - Python Version Maintainability

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

🤝 貢献

貢献を歓迎します。改善案や機能リクエストがある場合、またはバグを見つけた場合は、ぜひ以下を行ってください。

  1. 議論するために Issue を作成します。
  2. リポジトリをフォークし、機能ブランチを作成します(git checkout -b feature/AmazingFeature)。
  3. 変更をコミットします(git commit -m 'Add some AmazingFeature')。
  4. ブランチにプッシュします(git push origin feature/AmazingFeature)。
  5. Pull Request を作成します。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。