mcpField
M
MCP Postgres Query Server

MCP Postgres Query Server

ローカル
github.com/RathodDarshilデータベース086 週間前に更新

MCP Postgres Query Server について

MCP Postgres Query Serverは、Claude DesktopなどのMCPクライアントからPostgreSQLを読み取り専用で照会するサーバーです。SELECT文のみを許可し、タイムアウト保護とJSON形式の結果を備えています。

主な機能

  1. 01SELECT文のみ実行
  2. 02SQLクエリの検証
  3. 03クエリのタイムアウト保護
  4. 04JSON形式での結果返却

活用シーン

  1. 01PostgreSQLのレコード確認
  2. 02MCPクライアント経由の読み取り専用クエリ

MCP 対応

MCPサーバーとしてquery-postgresツールを公開し、設定済みのPostgreSQLデータベースに読み取り専用SQLを実行してJSON形式で結果を返します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

MCP Postgres Query サーバー

PostgreSQL データベースに読み取り専用でクエリを実行するための、Model Context Protocol(MCP)サーバーの実装です。Claude Desktop やその他の MCP クライアントでの使用を想定しています。

概要

このプロジェクトでは、次の機能を提供する Model Context Protocol(MCP)サーバーを実装しています。

  1. PostgreSQL データベースへの安全な読み取り専用インターフェース
  2. MCP プロトコルを介した Claude Desktop との連携
  3. SELECT クエリのみが実行されることを保証する SQL クエリの検証
  4. クエリのタイムアウト保護(10 秒)

前提条件

  • Node.js(v14 以降)
  • npm(Node.js に付属)
  • PostgreSQL データベース(接続情報はコマンドラインで指定)

インストール

# Clone the repository
git clone https://github.com/RathodDarshil/mcp-postgres-query-server.git
cd mcp-postgres-query-server

# Install dependencies
npm install

# Build the project
npm run build

Claude Desktop への接続

Claude Desktop を設定して、MCP サーバーを自動的に起動し、接続できます。

  1. Claude Desktop の設定ファイルにアクセスします。

    • Claude Desktop を開きます
    • Settings > Developer > Edit Config に移動します
    • 既定のテキストエディターで設定ファイルが開きます
  2. claude_desktop_config.json の mcpServers セクションに postgres-query-server を追加します。

{
    "mcpServers": {
        "postgres-query": {
            "command": "node",
            "args": [
                "/path/to/your/mcp-postgres-query-server/dist/index.js",
                "postgresql://username:password@hostname:port/database"
            ]
        }
    }
}
  1. /path/to/your/ をプロジェクトディレクトリの実際のパスに置き換えます。
  2. PostgreSQL の接続文字列を、実際のデータベース認証情報に置き換えます。
  3. ファイルを保存し、Claude Desktop を再起動します。MCP サーバーが Settings の MCP サーバー選択ドロップダウンに表示されます。
設定例

postgres-query を含む設定ファイルの完全な例を以下に示します。

{
    "mcpServers": {
        "postgres-query": {
            "command": "node",
            "args": [
                "/Users/darshilrathod/mcp-servers/mcp-postgres-query-server/dist/index.js",
                "postgresql://user:password@localhost:5432/mydatabase"
            ]
        }
    }
}
設定の更新

Claude Desktop の設定を更新するには、次の手順を実行します。

  1. Claude Desktop を開きます
  2. Settings > Developer > Edit Config に移動します
  3. 設定ファイルを編集します
  4. ファイルを保存します
  5. 変更を反映するために Claude Desktop を再起動します
  6. MCP サーバーのコードを更新した場合は、再起動する前に npm run build でビルドし直してください

機能

  • 読み取り専用のデータベースアクセス:セキュリティのため、SELECT クエリのみ実行できます
  • クエリの検証:有害な可能性がある SQL 操作を防止します
  • タイムアウト保護:10 秒を超えて実行されるクエリを自動的に終了します
  • MCP プロトコルのサポート:Model Context Protocol を完全に実装しています
  • JSON レスポンス形式:クエリ結果を構造化された JSON 形式で返します

API

ツール
query-postgres

設定済みの PostgreSQL データベースに対して、読み取り専用の SQL クエリを実行します。

パラメーター:

  • query(文字列):実行する SQL SELECT クエリ

レスポンス:

  • 以下を含む JSON オブジェクト:
    • rows:結果セットの行
    • rowCount:返された行数
    • fields:列のメタデータ

例:

query-postgres: SELECT * FROM users LIMIT 5

開発

メインのサーバー実装は src/index.ts にあります。主なコンポーネントは次のとおりです。

  • PostgreSQL 接続プールのセットアップ
  • クエリ検証ロジック
  • MCP サーバーの設定
  • ツールとリソースの定義

サーバーの動作を変更するには、次の操作ができます。

  • isReadOnlyQuery() のクエリ検証ロジックを編集する
  • MCP サーバーにツールやリソースを追加する
  • クエリのタイムアウト時間を変更する(現在は 10 秒)

セキュリティに関する考慮事項

  • サーバーは、すべてのクエリを検証して読み取り専用であることを確認します
  • データベースへの接続には SSL を使用します
  • クエリのタイムアウトにより、リソースの枯渇を防ぎます
  • 書き込み操作は許可されません
  • データベース認証情報はファイルに保存せず、コマンドライン引数で直接渡します

ライセンス

ISC

貢献

皆さまからの貢献を歓迎します。Pull Request をお気軽にお送りください。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。