mcpField
S
Simple PostgreSQL MCP Server

Simple PostgreSQL MCP Server

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

Simple PostgreSQL MCP Server について

PostgreSQL コネクタを含む、初心者向けの MCP サーバーテンプレートです。コードは簡潔で、自分で理解し改変しやすい構成になっています。Model Context Protocol を初めて扱う開発者が、独自の AI ツール連携を作成する用途に適しています。MCP のドキュメントも同梱されています。

主な機能

  1. 01SQL クエリを実行する execute_query ツール
  2. 02データベース接続を確認する test_connection ツール
  3. 03テーブルとスキーマ情報を提供するリソース
  4. 04クエリ生成と分析用のプロンプトテンプレート

活用シーン

  1. 01MCP サーバーの基本構造を学習する
  2. 02テンプレートを基に別のデータベース用コネクタを開発する
  3. 03AI クライアントから自然言語で PostgreSQL のデータを照会する

MCP 対応

MCP サーバーとして、PostgreSQL のツール、リソース、プロンプトを MCP クライアントに公開します。README では、execute_query は先頭が SELECT かどうかのみを確認すると明記されており、本番環境での利用は想定されていません。

設定

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

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

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

リポジトリ

ツール

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

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

詳細

シンプルな PostgreSQL MCP サーバー

これは、独自の MCP サーバーを構築したい方向けのテンプレートプロジェクトです。理解や応用がとても簡単になるように設計しており、コードは分かりやすく、すぐに使い始められるよう MCP のドキュメントも添付しています。

MCP とは?

要するに、AI 向けのプラグインを作成する方法です

Model Context Protocol(MCP)は、LLM が外部のツールやデータを利用するための標準的な方法です。簡単に言うと、次のとおりです。

  • ツールを使うと、LLM はコマンド(データベースクエリの実行など)を実行できます
  • リソースは、会話に添付できるデータです(プロンプトにファイルを添付するなど)
  • プロンプトは、一貫性のある LLM 向けの指示を生成するテンプレートです

機能

この PostgreSQL MCP サーバーには、次の機能が実装されています。

  1. ツール

    • execute_query - データベースに対して SQL クエリを実行します
    • test_connection - データベース接続が機能していることを確認します
  2. リソース

    • db://tables - スキーマ内のすべてのテーブルの一覧
    • db://tables/{table_name} - 特定のテーブルのスキーマ情報
    • db://schema - データベース内のすべてのテーブルの完全なスキーマ情報
  3. プロンプト

    • クエリ生成テンプレート
    • 分析クエリの作成ツール
    • このリポジトリ内のテンプレートに基づいています

前提条件

  • Python 3.8+
  • uv - 最新の Python パッケージマネージャーおよびインストーラー
  • npx(Node.js に含まれています)
  • 接続可能な PostgreSQL データベース

クイックセットアップ

  1. 仮想環境を作成し、依存関係をインストールします:

    # Create a virtual environment with uv
    uv venv
    
    # Activate the virtual environment
    source .venv/bin/activate  # On Windows: .venv\Scripts\activate
    
    # Install dependencies
    uv pip install -r requirements.txt
    
  2. MCP Inspector を使ってサーバーを実行します:

    # Replace with YOUR actual database credentials
    npx @modelcontextprotocol/inspector uv --directory . run postgres -e DSN=postgresql://username:password@hostname:port/database -e SCHEMA=public
    

    注:npx を初めて実行する場合、インストールの承認を求められます。続行するには「y」と入力してください。

    このコマンドを実行すると、ブラウザーで MCP Inspector のインターフェースが起動します。次のようなメッセージが表示されます。

    MCP Inspector is up and running at http://localhost:5173
    

    ブラウザーが自動的に開かない場合は、URL をコピーしてブラウザーに貼り付けてください。次のような画面が表示されます。 MCP Inspector のインターフェース

  3. Inspector を使用する:

    • インターフェースの「Connect」ボタンをクリックします(左下のコンソールにエラーメッセージが表示されている場合を除きます)
    • 「Tools」、「Resources」、「Prompts」タブを確認し、利用可能な機能を確認します
    • 一覧表示されたコマンドをクリックするか、リソース名を入力して、リソースとプロンプトを取得してみます
    • このインターフェースでは、クエリをテストし、MCP サーバーの応答を確認できます
  4. 公式ドキュメントを確認する

    公式サーバー開発者ガイド:https://modelcontextprotocol.io/quickstart/server

    Inspector の詳細:https://modelcontextprotocol.io/docs/tools/inspector

AI ツールをサーバーに接続する

MCP 設定ファイルを作成すると、AI アシスタント用に MCP サーバーを設定できます。

{
   "mcpServers": {
      "postgres": {
         "command": "/path/to/uv",
         "args": [
            "--directory",
            "/path/to/simple-psql-mcp",
            "run",
            "postgres"
         ],
         "env": {
            "DSN": "postgresql://username:password@localhost:5432/my-db",
            "SCHEMA": "public"
         }
      }
   }
}

または、付属のスクリプトを使ってこの設定ファイルを生成できます。

# Make the script executable
chmod +x generate_mcp_config.sh

# Run the configuration generator
./generate_mcp_config.sh

プロンプトが表示されたら、PostgreSQL DSN とスキーマ名を入力してください。

使い方

これで、LLM に自然な言葉でデータについて質問できます。

  • 「データベース内のテーブルをすべて教えて」
  • 「作成日が新しいユーザーを上位 5 人表示して」
  • 「州ごとの住所数を数えて」

テストには、Claude Desktop が MCP をネイティブにサポートしており、ツール、リソース、プロンプトのすべての機能をすぐに利用できます。

サンプルデータベース(任意)

データベースをまだ用意していない場合や、接続に問題がある場合は、付属のサンプルデータベースを使用できます。

# Make the script executable
chmod +x example-db/create-db.sh

# Run the database setup script
./example-db/create-db.sh

このスクリプトは、サンプルのユーザーと住所のテーブルがあらかじめ設定された PostgreSQL データベースを含む Docker コンテナーを作成します。実行後は、次の方法で接続できます。

npx @modelcontextprotocol/inspector uv --directory . run postgres -e DSN=postgresql://postgres:postgres@localhost:5432/user_database -e SCHEMA=public

次のステップ

独自の MCP サーバーでこのプロジェクトを拡張するには、次の手順に従います。

  1. /src の下に新しいディレクトリを作成します(例:/src/my-new-mcp)
  2. PostgreSQL の例に沿って MCP サーバーを実装します
  3. pyproject.toml に新しい MCP を追加します。
[project.scripts]
postgres = "src.postgres:main"
my-new-mcp = "src.my-new-mcp:main"

その後、次のコマンドで新しい MCP を実行できます。

npx @modelcontextprotocol/inspector uv --directory . run my-new-mcp

ドキュメント

セキュリティ

これは、開発者が独自の MCP サーバーを作成できるようにすることを目的とした実験的なプロジェクトです。試したときにすぐに動かなくならないよう最低限の対策はしていますが、ご注意ください。このツールでは簡単に SQL インジェクションを実行できてしまいます。サーバーはクエリが SELECT で始まるかどうかを確認しますが、それ以外については何も保証されません。要約すると、あなたが創業者で、なおかつ有料クライアントがいない場合を除き、本番環境では実行しないでください。

ライセンス

MIT

コメント

MCP は初めてですか?

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

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