Simple PostgreSQL MCP Server
シンプルなPostgreSQL MCPサーバー
これは、独自のMCPサーバーを構築しようとしている方のためのテンプレートプロジェクトです。非常にシンプルに理解し、適応できるように設計しました。コードは分かりやすく、MCPドキュメントも付属しているので、すぐに使いこなせるようになります。
MCPとは何ですか?
TL;DR - AI用のプラグインを書く方法です
モデルコンテキストプロトコル(MCP)は、LLMが外部ツールやデータとやり取りするための標準的な方法です。簡単に言うと、
ツールを使用すると、LLM はコマンドを実行できます (データベース クエリの実行など)
リソースは会話に添付できるデータです(プロンプトにファイルを添付するなど)
プロンプトは、一貫したLLM指示を生成するテンプレートです。
Related MCP server: PostgreSQL MCP Server
特徴
この PostgreSQL MCP サーバーは以下を実装します。
ツール
execute_query- データベースに対してSQLクエリを実行するtest_connection- データベース接続が機能していることを確認する
リソース
db://tables- スキーマ内のすべてのテーブルのリストdb://tables/{table_name}- 特定のテーブルのスキーマ情報db://schema- データベース内のすべてのテーブルの完全なスキーマ情報
プロンプト
クエリ生成テンプレート
分析クエリビルダー
このリポジトリのテンプレートに基づいて
前提条件
Python 3.8以上
uv - 最新の Python パッケージ マネージャーとインストーラー
npx (Node.js に含まれています)
接続できるPostgreSQLデータベース
クイックセットアップ
仮想環境を作成し、依存関係をインストールします。
# 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.txtMCP 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サーバーの応答を確認することができます。
公式ドキュメントをご覧ください
公式サーバー開発者ガイド: 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 サーバーで拡張するには:
/srcの下に新しいディレクトリを作成します (例:/src/my-new-mcp)PostgreSQLの例に従ってMCPサーバーを実装する
新しい 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ドキュメント
LLM 開発を容易にする MCP ドキュメントが含まれています
次のアプローチに基づいています: https://modelcontextprotocol.io/tutorials/building-mcp-with-llms
安全
これは、開発者が独自のMCPサーバーを作成できるようにするための実験的なプロジェクトです。試用時にすぐに停止しないよう最低限の対策は講じましたが、このツールではSQLインジェクションが非常に簡単に実行できるので、ご注意ください。サーバーはクエリがSELECTで始まっているかどうかを確認しますが、それ以上の保証はありません。要約すると、あなたが創設者であり、かつ有料クライアントがいない限り、本番環境では実行しないでください。
ライセンス
マサチューセッツ工科大学
This server cannot be installed
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/NetanelBollag/simple-psql-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server