SP

subnetmarco/pgmcp

Developer tools

このページは AI により自動翻訳されています。技術的な詳細は原文をご確認ください。 原文を見る

540 stars 63 forks 品質 73 トレンド 24NOASSERTION

自然言語で任意のPostgresデータベースを照会できるMCPサーバー。

概要

PGMCPはAIアシスタントを自然言語クエリでつなげます。平易な英語で質問すれば、構造化されたSQL結果と自動ストリーミング、堅牢なエラー処理が得られます。 : カーソル、Claude Desktop、VS Code拡張、および任意のMCP互換クライアント PGMCPは自然言語クエリを通じてAIアシスタントに接続し、アクセスできるようにします。 - PostgreSQLデータベース(スキーマを含む既存のデータベース)- OpenAI APIキー(任意、AI駆動のSQL生成用) - : 平易な英語で質問を - : 大きな結果セットを自動的に処理 - : 書き込み操作を防止 - : 全テキストカラムを横断して検索 - : テーブル、JSON、CSV - : 大文字の混合表名を正しく処理 - : 任意のPostgreSQLデータベースで動作 - DATABASE_URL:既存データベースへのPostgreSQL接続文字列 - OPENAI_API_KEY: AI搭載SQL生成のためのOpenAI APIキー - OPENAI_MODEL: 使用するモデル(デフォルト:「gpt-4o-mini」)- HTTP_ADDR: サーバーアドレス(デフォルト:「:8080」)- HTTP_PATH: MCPエンドポイントパス...

概要(AI 翻訳)

PGMCPは、自然言語クエリを通じてAIアシスタントを任意のPostgreSQLデータベースに接続します。平易な英語で質問し、自動ストリーミングと堅牢なエラー処理を備えた構造化されたSQL結果を得られます。

**動作:カーソル、Claudeデスクトップ、VS Code拡張機能、そして任意のMCP互換クライアント

クイックスタート

PGMCPは既存のPostgreSQLデータベースに接続し、自然言語クエリを通じてAIアシスタントにアクセスできるようにします。

前提条件

  • PostgreSQLデータベース(あなたのスキーマを含む既存のデータベース)
  • OpenAI APIキー(任意、AI搭載SQL生成用)

基本用法

仕組みは以下の通りです:

特徴

  • 自然言語からSQLへ:平易な英語で質問をする
  • 自動ストリーミング:大規模な結果セットを自動的に処理します
  • Safe Read-Only Access:書き込み操作を阻止します
  • テキスト検索:すべてのテキストカラムを横断して検索
  • 複数の出力フォーマット:テーブル、JSON、CSV
  • PostgreSQLの大文字差小文字差:大文字混合テーブル名を正しく扱う
  • ユニバーサル互換性:任意のPostgreSQLデータベースで動作

環境変数

必須:

  • DATABASE_URL:既存データベースへのPostgreSQL接続文字列

このページは AI により自動翻訳されています。技術的な詳細は原文をご確認ください。

README

以下は原文 README の抜粋です。原文を見る。

PGMCP - PostgreSQL Model Context Protocol Server

PGMCP connects AI assistants to any PostgreSQL database through natural language queries. Ask questions in plain English and get structured SQL results with automatic streaming and robust error handling.

Works with: Cursor, Claude Desktop, VS Code extensions, and any MCP-compatible client

Quick Start

PGMCP connects to your existing PostgreSQL database and makes it accessible to AI assistants through natural language queries.

Prerequisites

  • PostgreSQL database (existing database with your schema)
  • OpenAI API key (optional, for AI-powered SQL generation)

Basic Usage

# Set up environment variables
export DATABASE_URL="postgres://user:password@localhost:5432/your-existing-db"
export OPENAI_API_KEY="your-api-key"  # Optional

# Run server (using pre-compiled binary)
./pgmcp-server

# Test with client in another terminal
./pgmcp-client -ask "What tables do I have?" -format table
./pgmcp-client -ask "Who is the customer that has placed the most orders?" -format table
./pgmcp-client -search "john" -format table

Here is how it works:

👤 User / AI Assistant
         │
         │ "Who are the top customers?"
         ▼
┌─────────────────────────────────────────────────────────────┐
│                    Any MCP Client                           │
│                                                             │
│  PGMCP CLI  │  Cursor  │  Claude Desktop  │  VS Code  │ ... │
│  JSON/CSV   │  Chat    │  AI Assistant    │  Editor   │     │
└─────────────────────────────────────────────────────────────┘
         │
         │ Streamable HTTP / MCP Protocol
         ▼
┌─────────────────────────────────────────────────────────────┐
│                    PGMCP Server                             │
│                                                             │
│  🔒 Security    🧠 AI Engine      🌊 Streaming              │
│  • Input Valid  • Schema Cache    • Auto-Pagination         │
│  • Audit Log    • OpenAI API      • Memory Management       │
│  • SQL Guard    • Error Recovery  • Connection Pool         │
└─────────────────────────────────────────────────────────────┘
         │
         │ Read-Only SQL Queries
         ▼
┌─────────────────────────────────────────────────────────────┐
│                Your PostgreSQL Database                     │
│                                                             │
│  Any Schema: E-commerce, Analytics, CRM, etc.               │
GitHub で README 全文を見る

インストール

docker run -e DATABASE_URL="postgres://user:pass@host:5432/db" \
MCP 初心者?mcpskill.org のガイドから始めましょう →

設定

{ "mcpServers": { "pgmcp": { "transport": { "type": "http", "url": "http://localhost:8080/mcp" } } } }