Skip to main content
Glama
MCP PostgreSQL Server

MCP PostgreSQL Server

MCP PostgreSQLサーバー

PostgreSQLデータベース操作を提供するモデルコンテキストプロトコルサーバー。このサーバーにより、AIモデルは標準化されたインターフェースを介してPostgreSQLデータベースと対話できるようになります。

インストール

手動インストール

npm install mcp-postgres-server

または、次のコマンドを直接実行します:

npx mcp-postgres-server

Related MCP server: PostgreSQL MCP Server

構成

サーバーには次の環境変数が必要です。

{
  "mcpServers": {
    "postgres": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "mcp-postgres-server"],
      "env": {
        "PG_HOST": "your_host",
        "PG_PORT": "5432",
        "PG_USER": "your_user",
        "PG_PASSWORD": "your_password",
        "PG_DATABASE": "your_database"
      }
    }
  }
}

利用可能なツール

1. connect_db

提供された資格情報を使用して PostgreSQL データベースへの接続を確立します。

use_mcp_tool({
  server_name: "postgres",
  tool_name: "connect_db",
  arguments: {
    host: "localhost",
    port: 5432,
    user: "your_user",
    password: "your_password",
    database: "your_database"
  }
});

2. クエリ

オプションの準備済みステートメントパラメータを使用してSELECTクエリを実行します。PostgreSQLスタイル($1、$2)とMySQLスタイル(?)の両方のパラメータプレースホルダをサポートします。

use_mcp_tool({
  server_name: "postgres",
  tool_name: "query",
  arguments: {
    sql: "SELECT * FROM users WHERE id = $1",
    params: [1]
  }
});

3. 実行する

オプションの準備済みステートメントパラメータを使用して、INSERT、UPDATE、またはDELETEクエリを実行します。PostgreSQLスタイル($1、$2)とMySQLスタイル(?)の両方のパラメータプレースホルダをサポートします。

use_mcp_tool({
  server_name: "postgres",
  tool_name: "execute",
  arguments: {
    sql: "INSERT INTO users (name, email) VALUES ($1, $2)",
    params: ["John Doe", "john@example.com"]
  }
});

4. list_schemas

接続されたデータベース内のすべてのスキーマを一覧表示します。

use_mcp_tool({
  server_name: "postgres",
  tool_name: "list_schemas",
  arguments: {}
});

5. list_tables

接続されたデータベース内のテーブルを一覧表示します。オプションのスキーマパラメータを受け入れます(デフォルトは「public」)。

// List tables in the 'public' schema (default)
use_mcp_tool({
  server_name: "postgres",
  tool_name: "list_tables",
  arguments: {}
});

// List tables in a specific schema
use_mcp_tool({
  server_name: "postgres",
  tool_name: "list_tables",
  arguments: {
    schema: "my_schema"
  }
});

6. テーブルの説明

特定のテーブルの構造を取得します。オプションのスキーマパラメータ(デフォルトは「public」)を受け入れます。

// Describe a table in the 'public' schema (default)
use_mcp_tool({
  server_name: "postgres",
  tool_name: "describe_table",
  arguments: {
    table: "users"
  }
});

// Describe a table in a specific schema
use_mcp_tool({
  server_name: "postgres",
  tool_name: "describe_table",
  arguments: {
    table: "users",
    schema: "my_schema"
  }
});

特徴

  • 自動クリーンアップによる安全な接続処理

  • クエリパラメータの準備済みステートメントのサポート

  • PostgreSQLスタイル($1、$2)とMySQLスタイル(?)の両方のパラメータプレースホルダをサポート

  • 包括的なエラー処理と検証

  • TypeScriptサポート

  • 自動接続管理

  • PostgreSQL固有の構文と機能をサポート

  • データベース操作のマルチスキーマサポート

安全

  • SQLインジェクションを防ぐために準備されたステートメントを使用する

  • 環境変数による安全なパスワード処理をサポート

  • 実行前にクエリを検証します

  • 完了すると自動的に接続が閉じられます

エラー処理

サーバーは、一般的な問題に関する詳細なエラー メッセージを提供します。

  • 接続失敗

  • 無効なクエリ

  • パラメータが不足しています

  • データベースエラー

ライセンス

マサチューセッツ工科大学

Available Tools

5 tools
describe_tableDescribe a tableA
Read-only

Show the structure of one table: column names, data types, nullability, defaults, and primary-key membership. Call this before writing non-trivial queries against a table. Returns {columns: [{column, type, nullable, default, is_primary_key}, ...]}.

Inputs: table (required), schema.

executeRun a write statement (disabled)A
Destructive

Run a data-modifying SQL statement (INSERT/UPDATE/DELETE or DDL). Currently DISABLED: the server is read-only, so this returns an error and changes nothing. To enable writes, the operator must start the server with PG_ALLOW_WRITE=true.

Inputs: sql (required), params.

list_schemasList schemasA
Read-only

List every schema in the connected database. Start here when exploring an unfamiliar database, then call list_tables for the schema you care about. Returns {schemas: [name, ...]}.

Inputs: no named parameters.

list_tablesList tablesA
Read-only

List all tables in a schema (default: 'public'). Use this before querying tables you have not seen yet, then call describe_table for column details. Returns {tables: [name, ...]}.

Inputs: schema.

queryRun read-only SQLA
Read-only

Run one read-only SQL statement against the connected PostgreSQL database and get rows back as JSON. Send exactly one statement per call (SELECT, WITH, EXPLAIN, or SHOW). It runs inside an engine-enforced read-only transaction, so any write is refused by the database. Use this tool for all data reading, aggregation, and query planning. Returns {rows, rowCount, returnedRows, truncated}, plus hint when truncated is true. Prefer $1, $2 placeholders with the params array over interpolating values. Results are capped at ~32768 bytes; truncated:true means rows were dropped - add LIMIT/WHERE or select fewer columns.

Inputs: sql (required), params.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A4.5/5.0

    Scored across 5 tools

    Disambiguation5/5

    Each tool targets a clearly separate concern: read queries, write execution, schema discovery, table discovery, and column metadata. There is no meaningful overlap, and the descriptions reinforce the boundaries.

    Naming Consistency5/5

    All tool names follow a clean verb_object pattern in snake_case: query, execute, list_schemas, list_tables, describe_table. The naming convention is consistent and predictable.

    Tool Count5/5

    Five tools is well-scoped for a PostgreSQL server: one read path, one write path, and three introspection tools for exploring the database structure. No tool feels redundant or missing.

    Completeness4/5

    The tool surface covers the core database workflow well: discover schemas, inspect tables, describe columns, run read queries, and execute writes. The only caveat is that execute is disabled by default, so write workflows are not available unless the operator explicitly enables them.

    Maintenance

    ActivitySlowing
    ResponsivenessLimited data

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      D
      maintenance
      Enables AI agents to interact with PostgreSQL databases through the Model Context Protocol, supporting SQL queries, schema management, and data operations.
      8 npm
      MIT
    • A
      license
      Not graded
      quality
      D
      maintenance
      Enables AI assistants to safely interact with PostgreSQL databases, perform queries, inspect schemas, and analyze query performance.
      2
      ISC