Simple PostgreSQL MCP Server

by NetanelBollag
Verified

hybrid server

The server is able to function both locally and remotely, depending on the configuration or use case.

Integrations

  • Allows execution of SQL queries against a PostgreSQL database, access to database schema information, and use of query templates, enabling AI assistants to retrieve and manipulate data in PostgreSQL databases.

シンプルなPostgreSQL MCPサーバー

これは、独自のMCPサーバーを構築しようとしている方のためのテンプレートプロジェクトです。非常にシンプルに理解し、適応できるように設計しました。コードは分かりやすく、MCPドキュメントも付属しているので、すぐに使いこなせるようになります。

MCPとは何ですか?

TL;DR - AI用のプラグインを書く方法です

モデルコンテキストプロトコル(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をコピーしてブラウザに貼り付けてください。次のような画面が表示されます。
  3. インスペクターの使用:
    • インターフェースの「接続」ボタンをクリックします(左下のコンソールにエラーメッセージが表示されていない場合)
    • 「ツール」、「リソース」、「プロンプト」タブで利用可能な機能を確認してください。
    • リストされているコマンドをクリックするか、リソース名を入力してリソースとプロンプトを取得してください。
    • このインターフェースではクエリをテストし、MCPサーバーの応答を確認することができます。
  4. 公式ドキュメントをご覧ください公式サーバー開発者ガイド: https://modelcontextprotocol.io/quickstart/serverインスペクターの詳細: 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. 新しい MCP をpyproject.tomlに追加します。
[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で始まっているかどうかを確認しますが、それ以上の保証はありません。要約すると、あなたが創設者であり、かつ有料クライアントがいない限り、本番環境では実行しないでください。

ライセンス

マサチューセッツ工科大学

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

PostgreSQL データベースへの直接アクセスを可能にし、モデル コンテキスト プロトコルを通じて SQL クエリの実行とスキーマ情報の取得を可能にするカスタム MCP サーバーを構築するためのテンプレート プロジェクト。

  1. What is MCP?
    1. Features
      1. Prerequisites
        1. Quick Setup
          1. Connect Your AI Tool to the Server
            1. How to use it
          2. Example Database (Optional)
            1. Next Steps
              1. Documentation
                1. Security
                  1. License
                    ID: ccc5pmsjxz