PostgreSQL について
PostgreSQL は、LLM に PostgreSQL のスキーマ確認と読み取り専用 SQL クエリを提供する MCP サーバーです。列名とデータ型をスキーマリソースとして公開し、クエリは読み取り専用トランザクションで実行します。
主な機能
- 01読み取り専用 SQL クエリの実行
- 02テーブルスキーマの確認
- 03列名とデータ型の表示
- 04読み取り専用トランザクションでのクエリ実行
活用シーン
- 01データベーススキーマの確認
- 02PostgreSQL への読み取り専用クエリ
- 03LLM へのデータベース構造の提供
MCP 対応
MCP クライアントにクエリツールとテーブルスキーマのリソースを提供します。SQL は読み取り専用トランザクションで実行されます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
PostgreSQL
PostgreSQL データベースへの読み取り専用アクセスを提供する Model Context Protocol サーバーです。このサーバーを使用すると、LLM がデータベースのスキーマを確認し、読み取り専用クエリを実行できます。
コンポーネント
ツール
- query
- 接続先データベースに対して読み取り専用の SQL クエリを実行します
- 入力:
sql(文字列):実行する SQL クエリ - すべてのクエリは READ ONLY トランザクション内で実行されます
リソース
このサーバーは、データベース内の各テーブルのスキーマ情報を提供します。
- テーブルスキーマ(
postgres://<host>/<table>/schema)- 各テーブルの JSON スキーマ情報
- カラム名とデータ型を含みます
- データベースのメタデータから自動的に検出されます
Claude Desktop での使用方法
このサーバーを Claude Desktop アプリで使用するには、claude_desktop_config.json の「mcpServers」セクションに次の設定を追加します。
Docker
- macOS で Docker を実行する場合、サーバーがホストネットワーク(例:localhost)で実行されているなら、host.docker.internal を使用してください
- ユーザー名とパスワードは、
postgresql://user:password@host:port/db-nameを使って PostgreSQL の URL に追加できます
{
"mcpServers": {
"postgres": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"mcp/postgres",
"postgresql://host.docker.internal:5432/mydb"]
}
}
}
NPX
{
"mcpServers": {
"postgres": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-postgres",
"postgresql://localhost/mydb"
]
}
}
}
/mydb をデータベース名に置き換えてください。
ビルド
Docker:
docker build -t mcp/postgres -f src/postgres/Dockerfile .
ライセンス
この MCP サーバーは MIT License の下でライセンスされています。MIT License の利用規約に従う限り、このソフトウェアを自由に使用、変更、配布できます。詳しくは、プロジェクトリポジトリ内の LICENSE ファイルをご覧ください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。