Model Context Protocol PostgreSQL Server
モデルコンテキストプロトコル PostgreSQL サーバー
このプロジェクトは、PostgreSQLデータベースに接続するモデルコンテキストプロトコル(MCP)サーバーを実装します。これにより、AIモデルは標準化されたプロトコルを介してデータベースとやり取りできるようになります。
特徴
接続プールを使用してPostgreSQLデータベースに接続します
AIモデルのインタラクションのためのモデルコンテキストプロトコルを実装します
データベーススキーマ情報をリソースとして提供する
再試行ロジックを使用してSQLクエリを実行できます
接続エラーを適切に処理します
Related MCP server: PostgreSQL MCP Server
前提条件
Node.js 20以上
PostgreSQLデータベース
データベースのアクセス資格情報
インストール
このリポジトリをクローンする
依存関係をインストールします:
npm install構成
サーバーは、プロジェクトのルートディレクトリにある.envファイルからデータベースの認証情報を読み取ります。データベースの認証情報は、JSON 文字列としてDB_CREDENTIALS環境変数に追加する必要があります。
プロジェクト ルートに
.envファイルを作成します。
touch .env実際のデータベース資格情報を含む次の行を追加します。
export DB_CREDENTIALS='{"DB_USER":"your-username","DB_PASSWORD":"your-password","DB_HOST":"your-host","DB_PORT":"5433","DB_NAME":"your-database"}'シェル設定ファイルへのフォールバック
.envファイルが存在しないか、資格情報変数が見つからない場合、サーバーは次の順序でシェル構成ファイル内の資格情報を自動的に検索します。
~/.zshrc~/.bashrc~/.bash_profile~/.profile
これは、カーソル MCP 環境など、シェル構成ファイルが自動的にソース化されない環境で特に役立ちます。
シェル構成ファイルのいずれかで資格情報を設定するには:
好みのシェル設定ファイルを開きます。例:
nano ~/.zshrc
# or
nano ~/.bashrc実際のデータベース資格情報を含む次の行を追加します。
export DB_CREDENTIALS='{"DB_USER":"your-username","DB_PASSWORD":"your-password","DB_HOST":"your-host","DB_PORT":"5433","DB_NAME":"your-database"}'.envファイルが利用できない場合、サーバーはこれらの資格情報を自動的に検出して使用します。
カスタム資格情報変数
サーバーの起動時に--credentials-varフラグを使用して、 DB_CREDENTIALSの代わりにカスタム環境変数名を使用することもできます。
node server.js --credentials-var MY_CUSTOM_DB_CREDSこの場合、代わりに.envファイルでMY_CUSTOM_DB_CREDSを定義します。
オプションの組み合わせ
必要に応じて、さまざまなコマンドライン オプションを組み合わせることができます。
# Use custom credentials and enable verbose mode
node server.js --credentials-var MY_CUSTOM_DB_CREDS --verbose
# Short form also works
node server.js -c MY_CUSTOM_DB_CREDS -v使用法
MCP サーバーを起動します。
# Directly with Node.js
node server.js
# Or with npm
npm startログオプション
デフォルトでは、サーバーはサイレントモードで実行され、エラーメッセージのみが表示されます。すべてのログメッセージを表示するには、verboseフラグを使用します。
# With verbose logging
node server.js --verbose
# Or with npm
npm start -- --verbose短いフラグ-vを使用することもできます。
node server.js -vサーバーは次のことを行います。
データベース接続をテストする
stdioトランスポートを使用してMCPサーバーを起動します
AIモデルからのリクエストを処理する
カーソルとの統合
このサーバーは、モデル コンテキスト プロトコル (MCP) をサポートし、Cursor AI と統合されます。
自動構成
このプロジェクトには、Cursor 内での自動セットアップ用に事前構成された.cursor/mcp.jsonファイルが含まれています。
手動設定
このサーバーを手動でカーソルに追加するには:
カーソル設定→機能→MCPに移動します
「+新しいMCPサーバーを追加」をクリックします
次の詳細を入力してください。
名前: Postgres MCP
タイプ: stdio
コマンド:
node /full/path/to/server.js
MCP と Cursor の統合の詳細については、公式ドキュメントを参照してください。
利用可能なツール
サーバーは AI モデルに次のツールを提供します。
query: 再試行ロジックを使用してSQLクエリを実行する
リソース
サーバーはデータベース テーブルをリソースとして公開し、AI モデルが次のことを実行できるようにします。
データベース内のすべてのテーブルを一覧表示する
各テーブルのスキーマ情報を表示する
エラー処理
サーバーには以下が含まれます。
接続再試行ロジック
詳細なエラーログ
正常なシャットダウン処理
トラブルシューティング
接続の問題
データベース接続に失敗しました
PostgreSQLが実行中かどうか確認する:
pg_isready -h localhost -p 5433.envファイル内の資格情報が正しいことを確認してくださいIP アドレスがデータベースにアクセスできることを確認してください (pg_hba.conf を確認してください)
資格情報を確認するには、
psqlなどの別のツールで接続してみてください。
環境変数の問題
.envファイルがプロジェクトのルートディレクトリにあることを確認してくださいDB_CREDENTIALSのJSON構造が有効であることを確認しますJSON文字列に余分なスペースや改行がないことを確認する
次のコマンドでテスト:
node -e "console.log(JSON.parse(process.env.DB_CREDENTIALS))" < .env
Node.js バージョンの問題
Node.jsのバージョンを確認してください:
node -vこのサーバーにはNode.js 20以上が必要です
古いバージョンを使用している場合は、Node.js 20 をインストールします:
nvm install 20 && nvm use 20
カーソル統合
カーソルにサーバーが表示されない
.cursor/mcp.jsonファイルが存在し、適切にフォーマットされていることを確認してください。プロジェクト固有の設定を検出するためにカーソルを再起動してください
カーソルログでエラーメッセージを確認してください
「クライアントの作成に失敗しました」エラー
これは通常、起動中にサーバーがクラッシュしたことを示します
エラーを確認するには、詳細なログ出力を使用してサーバーを手動で実行します:
node server.js -vカーソル環境でデータベースの資格情報にアクセスできるかどうかを確認します
カーソル内にツールがありません
サーバーが正常に動作していることを確認する(ログを確認する)
MCPツールパネルの更新ボタンをクリックしてみてください
カーソルを再起動して再試行してください
PostgreSQL固有の問題
権限拒否エラー
データベースユーザーがテーブルに対して適切な権限を持っていることを確認してください
必要な権限を付与してみてください:
GRANT SELECT ON ALL TABLES IN SCHEMA public TO username;
「関係が存在しません」エラー
テーブルが存在することを確認します: psqlの
\dt tablename正しいデータベースに接続しているかどうかを確認してください
ユーザーがテーブルが配置されているスキーマにアクセスできることを確認します。
パフォーマンスの問題
クエリ結果が大きいと遅延が発生する可能性があるため、LIMIT句の追加を検討してください。
データベースに最適化(インデックス、バキューム)が必要かどうかを確認します
さらにヘルプが必要な場合は、詳細なエラー メッセージと操作ログを表示するために、詳細ログ ( -vフラグ) を指定してサーバーを実行できます。
ライセンス
マサチューセッツ工科大学
This server cannot be deployed
Maintenance
Related MCP Connectors
- XataOAuthio.github.xataio
Xata MCP server lets AI agents interact with your Xata projects, and Postgres database branches.
- mcpOAuthcom.gibsonai
GibsonAI MCP server: manage your databases with natural language
Query PostgreSQL databases in plain English — LLM-generated, safety-validated SQL.
Query your Postgres from ChatGPT or Claude without exposing the database or handing over credentials. Run npx boltschema connect next to your database and it dials out over HTTPS — no inbound firewall rule, no open port, works with localhost and VPC-private databases. Read-only is enforced by a SQL guard, a Postgres READ ONLY transaction, and a scoped role generated for you.
Related MCP Servers
- AlicenseNot gradedqualityFmaintenanceA Model Context Protocol server providing both read and write access to PostgreSQL databases, enabling LLMs to query data, modify records, and manage database schemas.103 npm10MIT
- AlicenseNot gradedqualityCmaintenanceA Model Context Protocol server that enables interaction with PostgreSQL databases to list tables, retrieve schemas, and execute read-only SQL queries.7 npmMIT
- AlicenseNot gradedqualityFmaintenanceA Model Context Protocol server providing dual transport (HTTP and Stdio) access to PostgreSQL databases, allowing AI assistants to query databases and fetch schema information through natural language.26 npm31MIT
- AlicenseBqualityDmaintenanceA TypeScript-based Model Context Protocol server that enables AI assistants to perform secure database operations on PostgreSQL databases through structured tool interfaces.85 npmMIT