mcp-postgres mcp

v1.0.0 · MCP Tool · database · registry.pascalai.org

Execute SQL queries on PostgreSQL databases. Supports SELECT queries, DML operations, schema inspection, table and column listing, index analysis and EXPLAIN plans.

postgrespostgresqlsqldatabasequery

Input Parameters

ParameterTypeDescription
connectionrequired object Database connection parameters.
operationrequired string 'query': run SELECT (sql, limit); 'execute': INSERT/UPDATE/DELETE/DDL (sql); 'databases': list all databases on server; 'schemas': list schemas in current database; 'tables': list tables in schema; 'schema': describe columns of a table (table); 'indexes': list indexes of a table (table); 'explain': query execution plan (sql, analyze); 'info': server version and stats. One of: query, execute, databases, schemas, tables, schema, indexes, explain, info.
sqloptional string SQL statement (required for query, execute, explain).
tableoptional string Table name for schema and indexes operations.
schemaoptional string PostgreSQL schema name. Default: 'public'. Default: public.
paramsoptional array[any] Positional parameters for parameterized queries ($1, $2, ...).
limitoptional integer Max rows to return. Default: 100. Default: 100.
analyzeoptional boolean For explain: run EXPLAIN ANALYZE BUFFERS. Default: false. Default: False.

Output Fields

FieldTypeDescription
operation string
rows array[object]
columns array[string]
row_count integer
affected_rows integer
tables array[string]
schema_info array[object] Column definitions with name, type, nullable, default.
explain string Query execution plan text (explain operation).

Examples

Query users with pagination

// Input
{
  "connection": {
    "host": "localhost",
    "database": "myapp",
    "user": "app",
    "password": "secret"
  },
  "operation": "query",
  "sql": "SELECT id, email, created_at FROM users WHERE active = $1 ORDER BY created_at DESC",
  "params": [
    true
  ],
  "limit": 20
}

// Output
{
  "operation": "query",
  "row_count": 20,
  "columns": [
    "id",
    "email",
    "created_at"
  ],
  "rows": []
}

Inspect table schema

// Input
{
  "connection": {
    "host": "localhost",
    "database": "myapp",
    "user": "app",
    "password": "secret"
  },
  "operation": "schema",
  "table": "orders"
}

// Output
{
  "operation": "schema",
  "schema_info": [
    {
      "column": "id",
      "type": "bigint",
      "nullable": false
    },
    {
      "column": "total",
      "type": "numeric(10,2)",
      "nullable": true
    }
  ]
}

Install & Discovery

Install

ppm install mcp-postgres

Get JSON Schema

GET /v1/packages/mcp-postgres/1.0.0/schema

Discover by keyword

GET /v1/mcp/discover?q=postgres
Discovery hint: Install with ppm install mcp-postgres or invoke remotely via POST /v1/invoke/mcp-postgres on the MCP Service.

PascalAI Usage

uses toolslib;
var Conn := JsonObj(['host','localhost','database','mydb','user','admin','password','secret']);
var Tool := LoadTool('mcp-postgres');
var R := Tool.Call(JsonObj(['connection',Conn,'operation','query','sql','SELECT COUNT(*) FROM orders']));
Writeln(R['rows'][0]['count']);