MCP Postgres クエリサーバー
Claude Desktop およびその他の MCP クライアントで動作するように設計された、読み取り専用モードで PostgreSQL データベースをクエリするためのモデル コンテキスト プロトコル (MCP) サーバー実装。
概要
このプロジェクトは、以下を提供するモデル コンテキスト プロトコル (MCP) サーバーを実装します。
PostgreSQL データベースへの安全な読み取り専用インターフェース
MCPプロトコルによるClaude Desktopとの統合
SELECTクエリのみが実行されるようにするSQLクエリ検証
クエリタイムアウト保護(10秒)
Related MCP server: PostgreSQL MCP Server
前提条件
Node.js (v14以降)
npm (Node.js に付属)
PostgreSQL データベース (接続詳細はコマンドラインから提供)
インストール
Claudeデスクトップに接続しています
Claude Desktop を自動的に起動して MCP サーバーに接続するように設定できます。
Claude Desktop 構成ファイルにアクセスします。
クロードデスクトップを開く
設定 > 開発者 > 設定の編集に移動します
これにより、デフォルトのテキストエディタで設定ファイルが開きます。
claude_desktop_config.jsonのmcpServersセクションに postgres-query-server を追加します。
/path/to/your/プロジェクト ディレクトリへの実際のパスに置き換えます。PostgreSQL 接続文字列を実際のデータベース資格情報に置き換えます。
ファイルを保存し、Claude Desktopを再起動します。設定のMCPサーバー選択ドロップダウンにMCPサーバーが表示されるはずです。
構成例
postgres-query を使用した構成ファイルの完全な例を次に示します。
構成の更新
Claude Desktop の構成を更新するには:
クロードデスクトップを開く
設定 > 開発者 > 設定の編集に移動します
設定ファイルに変更を加える
ファイルを保存する
変更を有効にするには、Claude Desktopを再起動してください。
MCPサーバーのコードを更新した場合は、再起動する前に必ず
npm run buildで再構築してください。
特徴
読み取り専用データベースアクセス: セキュリティのため、SELECTクエリのみが許可されます
クエリ検証: 潜在的に有害なSQL操作を防止します
タイムアウト保護: 10秒以上実行されたクエリは自動的に終了します
MCPプロトコルサポート: モデルコンテキストプロトコルの完全な実装
JSONレスポンスフォーマット: クエリ結果は構造化されたJSON形式で返されます
API
ツール
クエリ-Postgres
構成された PostgreSQL データベースに対して読み取り専用の SQL クエリを実行します。
パラメータ:
query(文字列): 実行するSQL SELECTクエリ
応答:
以下を含む JSON オブジェクト:
rows: 結果セットの行rowCount: 返される行数fields: 列のメタデータ
例:
発達
メインサーバーの実装はsrc/index.tsにあります。主なコンポーネントは次のとおりです。
PostgreSQL接続プールの設定
クエリ検証ロジック
MCP サーバーの構成
ツールとリソースの定義
サーバーの動作を変更するには、次の操作を行います。
isReadOnlyQuery()のクエリ検証ロジックを編集します。MCP サーバーに追加のツールやリソースを追加する
クエリのタイムアウト期間を変更します(現在は10秒)
セキュリティに関する考慮事項
サーバーはすべてのクエリを検証し、読み取り専用であることを確認します。
データベースへの接続にはSSLを使用します
クエリタイムアウトによりリソース枯渇を防止
書き込み操作は許可されていません
データベースの資格情報はファイルに保存されず、コマンドライン引数を介して直接渡されます。
ライセンス
ISC
貢献
貢献を歓迎します!お気軽にプルリクエストを送信してください。