Skip to main content
Glama
itunified-io

mcp-postgres

by itunified-io

mcp-postgres

AGPL-3.0 npm

A comprehensive PostgreSQL MCP (Model Context Protocol) server providing 27 tools for database management and administration.

Features

  • Connection Management — connect, disconnect, pool health monitoring

  • Query Execution — parameterized queries, EXPLAIN ANALYZE, prepared statements

  • Schema Introspection — tables, indexes, constraints, views, functions, enums, extensions

  • CRUD Operations — type-safe insert, update, delete, upsert with injection protection

  • Server Management — version, settings, config reload, uptime

  • Database Sizing — database and table sizes with index/toast breakdown

Related MCP server: postgres-mcp-server

Installation

npm install @itunified.io/mcp-postgres

Or run directly:

npx @itunified.io/mcp-postgres

Configuration

Set one of the following environment variables:

# Option 1: Connection string (preferred)
export POSTGRES_CONNECTION_STRING="postgresql://myuser:mypassword@your-database.example.com:5432/mydb"

# Option 2: Individual variables
export PGHOST="your-database.example.com"
export PGPORT="5432"
export PGUSER="myuser"
export PGPASSWORD="mypassword"
export PGDATABASE="mydb"
export PGSSLMODE="require"  # optional

Multi-Database Configuration

Create a config file at ~/.config/mcp-postgres/databases.yaml:

databases:
  production:
    host: db.example.com
    port: 5432
    user: admin
    password: ${DB_PROD_PASSWORD}
    database: myapp
    ssl: true
  staging:
    host: staging-db.example.com
    port: 5432
    user: admin
    password: ${DB_STAGING_PASSWORD}
    database: myapp
default: production

Environment variables in ${VAR_NAME} syntax are automatically expanded.

Config file discovery order:

  1. POSTGRES_CONFIG_FILE env var (explicit path)

  2. ~/.config/mcp-postgres/databases.yaml or databases.json

  3. POSTGRES_CONNECTION_STRING env var (single database)

  4. Individual PG* env vars (single database)

Override the config path with POSTGRES_CONFIG_FILE env var:

{
  "mcpServers": {
    "postgres": {
      "command": "npx",
      "args": ["@itunified.io/mcp-postgres"],
      "env": {
        "POSTGRES_CONFIG_FILE": "/path/to/databases.yaml"
      }
    }
  }
}

Use pg_list_connections to see all configured databases, pg_switch_database to change the active one.

HashiCorp Vault Integration (Optional)

mcp-postgres supports opportunistic secret loading from HashiCorp Vault via AppRole authentication. When configured, it fetches PostgreSQL credentials from a KV v2 path — so you never need to put database passwords in environment variables or config files.

How it works:

  1. On startup, the server checks for NAS_VAULT_ADDR, NAS_VAULT_ROLE_ID, and NAS_VAULT_SECRET_ID in the environment

  2. If all three are set, it logs in via AppRole and reads the configured KV v2 path

  3. It populates POSTGRES_CONNECTION_STRING and PG* env vars from the Vault secret — but only for vars not already set

  4. If Vault is not configured or unreachable, the server silently falls back to env vars

Precedence: Explicit env vars → Vault → config file fallback → (error if nothing set)

Variable

Required

Description

NAS_VAULT_ADDR

Yes*

Vault server address (e.g., https://vault.example.com:8200)

NAS_VAULT_ROLE_ID

Yes*

AppRole role ID for this server

NAS_VAULT_SECRET_ID

Yes*

AppRole secret ID for this server

NAS_VAULT_KV_MOUNT

No

KV v2 mount path (default: kv)

* Only required if using Vault. Without these, the server uses env vars / config files directly.

Vault KV v2 secret structure:

# Path: kv/your/postgres/secret
{
  "connection_string": "postgresql://myuser:mypassword@your-database.example.com:5432/mydb",
  "host": "your-database.example.com",
  "port": "5432",
  "user": "myuser",
  "password": "mypassword",
  "database": "mydb"
}

Key mapping: connection_stringPOSTGRES_CONNECTION_STRING, hostPGHOST, portPGPORT, userPGUSER, passwordPGPASSWORD, databasePGDATABASE

Tip: You can store either connection_string (for single-database setups) or individual fields (host/port/user/password/database), or both. The loader maps whatever keys are present.

Vault setup steps:

  1. Write PG credentials to a KV v2 path:

    vault kv put kv/your/postgres/secret \
      connection_string="postgresql://myuser:mypassword@your-database.example.com:5432/mydb" \
      host="your-database.example.com" \
      port="5432" \
      user="myuser" \
      password="mypassword" \
      database="mydb"
  2. Create a read-only policy:

    path "kv/data/your/postgres/secret" {
      capabilities = ["read"]
    }
  3. Create an AppRole and get credentials:

    vault write auth/approle/role/mcp-postgres \
      token_policies="mcp-postgres" token_ttl=1h
    vault read auth/approle/role/mcp-postgres/role-id
    vault write -f auth/approle/role/mcp-postgres/secret-id
  4. Configure the server with Vault env vars (no PG creds needed):

    {
      "mcpServers": {
        "postgres": {
          "command": "npx",
          "args": ["@itunified.io/mcp-postgres"],
          "env": {
            "NAS_VAULT_ADDR": "https://vault.example.com:8200",
            "NAS_VAULT_ROLE_ID": "your-role-id",
            "NAS_VAULT_SECRET_ID": "your-secret-id"
          }
        }
      }
    }

Note: Config file options (POSTGRES_CONFIG_FILE, databases.yaml) and PGSSLMODE are not loaded from Vault — set them via env vars if needed.

Claude Desktop / MCP Settings

Add to your settings.json:

{
  "mcpServers": {
    "postgres": {
      "command": "npx",
      "args": ["@itunified.io/mcp-postgres"],
      "env": {
        "POSTGRES_CONNECTION_STRING": "postgresql://myuser:mypassword@your-database.example.com:5432/mydb"
      }
    }
  }
}

Tools

Connection (5 tools)

Tool

Description

pg_connect

Connect to a database (default or named)

pg_disconnect

Disconnect from a database or all

pg_connection_status

Pool health for active or named database

pg_list_connections

List all configured databases and status

pg_switch_database

Switch the active database context

Query (3 tools)

Tool

Description

pg_query

Execute parameterized SELECT/DML query

pg_query_explain

Run EXPLAIN ANALYZE on a query

pg_query_prepared

Manage named prepared statements (PREPARE/EXECUTE/DEALLOCATE)

Schema Introspection (9 tools)

Tool

Description

pg_schema_list

List all schemas

pg_table_list

List tables (with optional schema filter)

pg_table_describe

Describe table columns, types, defaults, constraints

pg_index_list

List indexes for a table

pg_constraint_list

List constraints (PK, FK, unique, check)

pg_view_list

List views with definitions

pg_function_list

List functions/procedures with signatures

pg_enum_list

List enum types and values

pg_extension_list

List installed extensions

CRUD (4 tools)

Tool

Description

pg_insert

Insert row(s) with parameterized values

pg_update

Update rows (requires confirm: true)

pg_delete

Delete rows (requires confirm: true)

pg_upsert

Insert or update on conflict (requires confirm: true)

Server (4 tools)

Tool

Description

pg_version

PostgreSQL version

pg_settings

Show/search server configuration

pg_reload_config

Reload configuration (requires confirm: true)

pg_uptime

Server uptime and start time

HA Monitoring (4 tools)

Tool

Description

pg_replication_status

Streaming replication state and lag

pg_replication_slots

List replication slots

pg_wal_status

WAL generation rate and archive status

pg_standby_status

Primary vs standby detection

Database Management (2 tools)

Tool

Description

pg_database_size

Size of all databases

pg_table_sizes

Table sizes with index/toast breakdown

Enterprise Edition

For advanced PostgreSQL operations, mcp-postgres-enterprise extends this server with:

  • DBA Monitoring — VACUUM, ANALYZE, REINDEX, pg_stat_activity, table/index stats, locks, cache hit ratio, bloat detection

  • CloudNativePG (CNPG) — K8s cluster management, failover, switchover, backup orchestration

  • HA Operations — Replication slot management, PgBouncer pool control

  • Backup / PITR — pg_dump/pg_restore orchestration, point-in-time recovery

  • RBAC — Role management, privilege grants, row-level security policies

  • Audit — Query log analysis, connection audit, permission mapping

  • Compliance — SSL enforcement, connection limit checks

Available as a private GitHub package. Contact itunified.io for access.

Security

Query Safety Model

  • CRUD tools (pg_insert, pg_update, pg_delete, pg_upsert): All use parameterized queries ($1, $2, ...) — safe from SQL injection. Destructive operations require confirm: true.

  • pg_query: Unrestricted raw SQL runner by design — intended for power users who need full SQL flexibility. No injection protection is applied because the tool's purpose is to execute arbitrary SQL.

  • pg_query_explain: Defaults to safe plan mode (EXPLAIN only, no execution). mode=analyze always requires confirm: true because EXPLAIN ANALYZE executes the statement.

  • pg_query_prepared: Deprecated. Prepared statements are session-local in PostgreSQL and unreliable with connection pools. Statement names are validated as SQL identifiers. Use parameterized pg_query instead.

Destructive Operations

These tools require confirm: true to execute:

  • pg_update, pg_delete, pg_upsert — data modification

  • pg_reload_config — server configuration

  • pg_query_explain (analyze mode) — statement execution

Credentials

  • Connection credentials are read from environment variables or JSON/YAML config — never logged or stored

  • All identifiers (table, column, schema names) are validated against a strict regex pattern

License

This project is dual-licensed:

  1. AGPL-3.0 — Free for open-source and non-commercial use

  2. Commercial License — For proprietary and commercial use

See COMMERCIAL_LICENSE.md for details.

Contributing

Contributions are welcome! Please open an issue first to discuss proposed changes.

Available Tools

27 tools
pg_connectA

Connect to a PostgreSQL server target. If multiple targets are configured, specify which one. Otherwise connects to the default target.

ParametersJSON Schema
NameRequiredDescriptionDefault
targetYesTarget name from ~/.dbx/targets/
profileNoNamed connection profile (optional, uses default if omitted)

TDQS

A3.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, placing full burden on the description. The description only mentions connecting but does not disclose side effects (e.g., state changes, error conditions, or whether existing connections are affected). For a tool that establishes a session, this is insufficient.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two short sentences with no redundant information. It front-loads the core purpose and provides necessary guidance concisely.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple connection tool with 2 parameters and no output schema, the description covers the basic function but lacks details about the return value (e.g., connection ID or status). The sibling tools suggest connections are managed, so return value context would be helpful.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% (both parameters described). The description adds value by explaining the target selection logic (multiple vs default), which goes beyond the schema field descriptions. This provides meaningful usage context.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool connects to a PostgreSQL server target and explains the default behavior when multiple targets exist. It uses specific verb 'connect' and resource 'PostgreSQL server target', distinguishing it from siblings that perform queries or other operations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description advises when to specify a target (if multiple configured) and when the default is used. It does not explicitly state when not to use or provide alternatives, but the context of sibling tools like pg_disconnect implies usage. Some implicit guidance on prerequisites (target configuration) is present.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pg_connection_statusC

Check connection pool health for the active profile or a specific named profile.

ParametersJSON Schema
NameRequiredDescriptionDefault
targetYesTarget name from ~/.dbx/targets/
profileNoNamed profile (omit for active profile)

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must disclose behavioral traits. It states the tool 'checks' health, implying a read-only operation, but does not confirm idempotency, side effects, or required permissions. With no annotation coverage, the description is too minimal to fully inform the agent about behavioral expectations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence, front-loaded with the purpose. It wastes no words and is efficiently structured. However, a slightly expanded structure could improve clarity without sacrificing conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has two parameters and no output schema, so the description must compensate. It does not explain what information the health check returns (e.g., metrics, status), nor does it guide on interpreting results. Given the many sibling tools, the description lacks sufficient context for the agent to decide when to invoke this tool effectively.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, and both parameters have clear descriptions: target (from ~/.dbx/targets/) and profile (optional, defaults to active). The description adds value by clarifying that the check applies to the active or a specific named profile, but this largely mirrors the parameter descriptions. No additional semantics beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool checks connection pool health for the active or a specific named profile. It uses a specific verb 'check' and resource 'connection pool health', distinguishing it from connection management siblings like pg_connect or pg_list_connections. However, it could be more specific about what 'health' entails.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus alternatives. While it mentions operating on active or named profiles, there is no context about prerequisites, typical scenarios, or when to prefer this over pg_list_connections or other health-check tools. The agent is left to infer usage from the tool name alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pg_constraint_listB

List constraints (primary key, foreign key, unique, check) for a table.

ParametersJSON Schema
NameRequiredDescriptionDefault
tableYesTable name
schemaNoSchema name (default: 'public')
targetYesTarget name from ~/.dbx/targets/

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must fully convey behavior. It states 'List constraints' which implies a read-only operation, but lacks details on required permissions, error scenarios (e.g., table not found), or output structure. For a simple list tool, minimal behavioral disclosure is acceptable but insufficient given no annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, well-structured sentence of 10 words. It front-loads the action and resource without any filler, making it highly efficient and easy to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple with no output schema, so the description provides basic input context. However, it omits information about the return format (e.g., constraint names, types, columns). For a listing tool, users would benefit from knowing what data is returned. Overall, adequate but not thorough.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with descriptions for all three parameters. The description reiterates the context ('for a table') but adds no extra meaning beyond the schema for individual parameters. Baseline 3 is appropriate as the schema already documents parameters adequately.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb ('List'), the resource ('constraints'), and specifies the context ('for a table') with explicit constraint types (primary key, foreign key, unique, check). It effectively distinguishes this tool from siblings like pg_table_list or pg_index_list by naming the exact object being listed.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool vs alternatives. While the purpose is clear, the description does not advise on appropriate contexts, prerequisites (e.g., connection needed), or situations where this tool should not be used. Users must infer applicability from the tool name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pg_database_sizeC

Show size of all databases.

ParametersJSON Schema
NameRequiredDescriptionDefault
targetYesTarget name from ~/.dbx/targets/

TDQS

C2.6/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It only states 'Show size of all databases' and fails to mention that a target is required, whether it is read-only, what the output format is, or any side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise (one sentence), but it sacrifices necessary detail. It is front-loaded but incomplete, earning a middle score.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the lack of output schema and behavioral annotations, the description should explain what the result looks like (e.g., list of database names and sizes). It fails to do so, leaving the agent uncertain about the return format.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with a single parameter 'target' described as 'Target name from ~/.dbx/targets/'. The description adds no additional meaning beyond the schema, as it does not clarify that the target is the server or connection context. Baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Show size of all databases' clearly indicates the verb (show) and resource (size of all databases), distinguishing it from sibling tools like pg_table_sizes. However, it omits the requirement for a target parameter, which could cause confusion about scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool vs alternatives such as pg_table_sizes or pg_query. There is no mention of prerequisites (e.g., needing an active connection) or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pg_deleteA

Delete rows matching a WHERE clause. Requires confirm=true.

ParametersJSON Schema
NameRequiredDescriptionDefault
tableYesTable name
whereYesWHERE clause (use $N for params)
paramsNoJSON array of parameter values for WHERE clause
schemaNoSchema name (default: 'public')
targetYesTarget name from ~/.dbx/targets/
confirmYesMust be 'true' to execute this destructive operation

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It discloses that the tool is destructive and requires a confirmation parameter. However, it does not mention what happens if no rows match, whether there is a row limit, or how to handle errors. The core destructive nature is clear.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences long with no superfluous words. It immediately conveys the core action and a critical requirement, loading the most important information first.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has no output schema, so the description should ideally mention what the return value is (e.g., number of rows deleted). For a simple delete operation, the description is adequate but leaves out the result format. Given the context of sibling tools and the straightforward action, it is mostly complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% coverage, describing all 6 parameters. The description adds no additional meaning beyond what the schema already provides, so the baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states 'Delete rows matching a WHERE clause', which is a specific verb and resource. This distinguishes it from sibling tools like pg_insert, pg_update, and pg_query, which perform different operations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description mentions 'Requires confirm=true', providing a prerequisite for safe usage. However, it does not explicitly state when to use this tool versus alternatives (e.g., when to use pg_delete vs pg_update with cascade), nor does it offer guidance on when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pg_disconnectA

Disconnect from a PostgreSQL server target. Omit profile to disconnect all.

ParametersJSON Schema
NameRequiredDescriptionDefault
targetYesTarget name from ~/.dbx/targets/
profileNoNamed profile to disconnect (omit to disconnect all)

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must disclose behavioral traits. It states the action (disconnect) but does not elaborate on side effects like transaction rollback or resource release. This is a minor gap for a destructive operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise with only two sentences, no filler, and front-loaded with the action.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple disconnect action, the description covers purpose and parameter usage. It lacks details on error handling or idempotency, but these are not critical for a straightforward tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with descriptions for both parameters. The description adds value by clarifying that omitting profile disconnects all, which is not obvious from the schema alone.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Disconnect' and the resource 'PostgreSQL server target/profile'. It distinguishes from sibling tools like pg_connect and pg_connection_status by its specific action.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit guidance on when to omit the profile parameter to disconnect all connections. However, it does not include when not to use or alternatives, but the context of sibling tools makes the usage clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pg_enum_listC

List all enum types and their values.

ParametersJSON Schema
NameRequiredDescriptionDefault
targetYesTarget name from ~/.dbx/targets/

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must cover behavioral aspects. It only states the action without mentioning any side effects, permissions, or requirements (e.g., needing an active connection).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, front-loaded with the key action and resource. Concise but could potentially include a brief note about prerequisites like active connection.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has one required parameter and no output schema, the description is minimally adequate. However, it lacks context about the current database context or connection state, which is important given sibling tools that require connections.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% (1 parameter with description). The description adds no additional meaning beyond what the schema already provides for the 'target' parameter. Baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states 'List all enum types and their values', specifying the verb and resource. It distinguishes from sibling tools like pg_schema_list and pg_table_list by focusing specifically on enum types.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives, such as requiring an active connection or being used after connecting to a database. No exclusions or preconditions mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pg_extension_listA

List installed PostgreSQL extensions with versions.

ParametersJSON Schema
NameRequiredDescriptionDefault
targetYesTarget name from ~/.dbx/targets/

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It only states the basic operation (listing) without disclosing behavioral traits like read-only nature, performance impact, or required permissions, but for a simple list tool this is minimally adequate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence that immediately conveys the tool's purpose, with no extraneous information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple list tool with one parameter fully documented and no output schema, the description is mostly complete; it could mention it's a read operation, but the context is sufficient given the tool's simplicity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The single parameter 'target' is fully described in the schema (100% coverage), so the description adds no additional semantic value beyond what the schema already provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists installed PostgreSQL extensions along with versions, using a specific verb and resource, and distinguishes well from sibling tools like pg_table_list or pg_function_list.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus alternatives; usage is implied by the straightforward nature of the task, but no exclusions or context is provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pg_function_listC

List functions and procedures with their signatures.

ParametersJSON Schema
NameRequiredDescriptionDefault
schemaNoSchema name filter
targetYesTarget name from ~/.dbx/targets/

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are available, so the description carries the full burden. It fails to disclose any behavioral traits such as required permissions, performance impact, or result format (e.g., whether signatures include argument types, default values, etc.). The minimal description does not prepare the agent for the tool's behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence with no filler. It front-loads the action (list) and resource (functions and procedures with signatures). While short, it could be slightly more informative without losing conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description should clarify what 'signatures' means (e.g., includes parameter names, types, return type). It omits this detail and also lacks any context on connection or schema dependencies. The agent is left without enough information to fully understand the tool's output.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema covers 100% of parameters with descriptions, so the baseline is 3. The description adds no additional meaning beyond the schema; it does not elaborate on the expected format or behavior of the 'target' and 'schema' parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states that the tool lists functions and procedures with their signatures, matching the tool name 'pg_function_list'. It distinguishes the resource (functions and procedures) from other list tools like pg_table_list, but does not explicitly differentiate the listing scope or context.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives such as pg_schema_list or pg_view_list. An agent would need to infer usage from the tool name alone, with no explicit when-to-use or when-not-to-use instructions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pg_index_listA

List indexes for a table with type, columns, uniqueness, and size.

ParametersJSON Schema
NameRequiredDescriptionDefault
tableYesTable name
schemaNoSchema name (default: 'public')
targetYesTarget name from ~/.dbx/targets/

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description bears full responsibility. 'List' implies a read-only operation, but the description does not explicitly confirm read-only behavior or mention any prerequisites (e.g., being connected to a database). It adequately describes what the tool does without negative side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence of 11 words, highly concise and front-loaded with purpose. Every word adds value, and there is no superfluous information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simplicity of the tool (3 parameters, no output schema), the description covers the key aspects of what the tool does and what it returns. However, it could mention that a prior connection is needed (as suggested by sibling tools) or provide details on ordering or limitations.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage for all parameters, so the schema already documents each parameter. The description adds context about the output (type, columns, uniqueness, size) but does not enhance parameter understanding beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists indexes for a table and specifies the returned information (type, columns, uniqueness, size). It distinguishes this tool from siblings like pg_table_list and pg_table_describe by focusing specifically on indexes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use the tool (when index information is needed) but does not explicitly state when not to use it or mention alternatives like pg_constraint_list. Usage guidance is minimal.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pg_insertB

Insert one or more rows into a table. Returns inserted rows.

ParametersJSON Schema
NameRequiredDescriptionDefault
tableYesTable name
schemaNoSchema name (default: 'public')
targetYesTarget name from ~/.dbx/targets/
valuesYesJSON array of values to insert (matches column order)
columnsYesJSON array of column names

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must disclose behavioral traits. It mentions mutation and return of inserted rows, but lacks details on transaction behavior, error handling, authentication needs, or batch limits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with action and result, no extraneous information. Efficient and well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Missing output schema and annotations. Description does not specify return format, multiple row insertion behavior, error handling, or dependency on a prior connection. Incomplete for a write tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% (all 5 parameters have descriptions). Description does not add extra meaning beyond schema, but schema descriptions are clear. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states verb 'insert', resource 'rows into a table', and outcome 'Returns inserted rows'. Distinguishes from sibling tools like pg_update, pg_delete, pg_upsert.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use vs alternatives (e.g., pg_upsert, pg_update). No mention of prerequisites like a valid connection or context for single vs batch inserts.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pg_list_connectionsB

List all configured connection profiles and their status. Each profile represents a PostgreSQL server instance.

ParametersJSON Schema
NameRequiredDescriptionDefault
targetYesTarget name from ~/.dbx/targets/

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description must convey behavioral traits. It states it lists profiles and status, but does not disclose how status is determined, whether it requires authentication, or any side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no unnecessary words. Front-loaded with the action and resource.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple list tool with one parameter, the description is mostly complete. However, lack of output schema details could be improved by hinting at the format of the status information.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% for the single required parameter 'target', with a clear description. The tool description does not add additional meaning beyond the schema, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists all configured connection profiles and their status, with specific verb 'list' and resource 'connection profiles'. It distinguishes from siblings like pg_connect or pg_connection_status by focusing on listing configured profiles.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives such as pg_connection_status. Does not mention prerequisites, typical use cases, or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pg_queryB

Execute a parameterized SQL query. Returns rows as JSON. Use $1, $2, ... for parameters.

ParametersJSON Schema
NameRequiredDescriptionDefault
sqlYesSQL query with $1, $2, ... placeholders
paramsNoJSON array of parameter values for placeholders
targetYesTarget name from ~/.dbx/targets/

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided. The description only notes return format and parameter syntax, but does not disclose whether the tool can perform destructive actions (e.g., UPDATE, DELETE) or if it is read-only. Lacks safety-relevant behavioral details.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, zero fluff. All information is front-loaded and every word serves a purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Minimally adequate for a 3-parameter tool with no output schema. Explains purpose and parameters, but lacks context on allowed SQL commands, error behavior, or side effects.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description reinforces the parameter placeholder syntax ($1, $2) but adds limited value beyond the already clear schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states 'Execute a parameterized SQL query' with verb and resource specificity, and mentions return format (JSON). Distinguishes from sibling tools like pg_query_explain and pg_query_prepared.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides no guidance on when to use this tool vs alternatives (e.g., pg_query_explain, pg_insert). Does not state when not to use it, leaving the agent to infer based on name alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pg_query_explainA

Run EXPLAIN on a query. mode=plan (default, safe) shows the plan without executing. mode=analyze executes the statement and shows actual timing — requires confirm=true.

ParametersJSON Schema
NameRequiredDescriptionDefault
sqlYesSQL query to explain
modeNoExplain mode: plan (safe) or analyze (executes, requires confirm)plan
paramsNoJSON array of parameter values
targetYesTarget name from ~/.dbx/targets/
confirmNoSet to 'true' for mode=analyze (EXPLAIN ANALYZE executes the statement)

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Without annotations, the description fully carries the burden. It discloses that plan mode does not execute (safe) and analyze mode actually executes the statement with timing, requiring confirm=true. It does not explicitly warn about potential mutations from analyze mode, but the confirm requirement acts as a safety gate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise with two sentences. The first sentence states the core purpose, and the second explains the modes and safety condition. No unnecessary words, and critical information is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description does not specify return format or structure, but the schema covers all input parameters. The description adequately explains behavioral differences between modes and the confirm requirement for analyze. For a tool with moderate complexity, it is fairly complete for usage decisions.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description adds limited value beyond the schema; it summarizes the modes and confirm requirement, but the schema already includes equivalent descriptions for mode and confirm. No additional parameter details are provided.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool runs EXPLAIN on a query, and distinguishes two modes (plan and analyze). It is specific about the verb ('Run EXPLAIN') and resource ('query'), and differentiates from sibling tools like pg_query (which executes).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear guidance on when to use each mode: plan is safe/default, analyze executes and requires confirm=true. It does not explicitly state when not to use the tool or mention alternatives like pg_query for execution, but the mode guidance is sufficient for selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pg_query_preparedA

[DEPRECATED] Manage named prepared statements: PREPARE, EXECUTE, DEALLOCATE. Prepared statements are session-local and unreliable with connection pools. Use parameterized pg_query instead.

ParametersJSON Schema
NameRequiredDescriptionDefault
sqlNoSQL query (required for prepare)
nameYesPrepared statement name
paramsNoJSON array of parameters (for execute)
targetYesTarget name from ~/.dbx/targets/
action_typeYesAction to perform

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden. It discloses deprecation, session-locality, and unreliability with connection pools. These are key behavioral traits. However, it could mention error scenarios or execution behavior. Still, the shown transparency is strong for a deprecated tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise: a single sentence with a deprecation marker and a warning. Every word adds value, and it is front-loaded with [DEPRECATED]. No fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (5 params, no output schema, no annotations) and its deprecated status, the description covers the essential context: purpose, deprecation, alternative, and key behavioral warning. It is slightly lacking in explaining execution outcomes, but for a deprecated tool it is sufficiently complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema covers 100% of parameters with descriptions, so baseline is 3. The description does not repeat param details and adds value by contextualizing the tool's use (deprecation, actions). It does not enhance per-param understanding beyond schema, so a 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool manages named prepared statements with three specific actions (PREPARE, EXECUTE, DEALLOCATE). It also deprecates itself and distinguishes from the recommended 'pg_query' alternative, making the purpose explicit and distinct from sibling tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly warns that prepared statements are session-local and unreliable with connection pools, and directly advises to use parameterized pg_query instead. This provides clear when-not-to-use guidance and an alternative.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pg_reload_configA

Reload server configuration files (postgresql.conf). Requires confirm=true.

ParametersJSON Schema
NameRequiredDescriptionDefault
targetYesTarget name from ~/.dbx/targets/
confirmYesMust be 'true' to reload configuration

TDQS

A3.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must fully disclose behavior. It only states the action and a parameter requirement, omitting effects (e.g., applies to all server processes), prerequisites (e.g., superuser), or side effects. This is insufficient for an agent to understand consequences.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, focused sentence conveys the purpose and the critical confirm constraint. No wasted words; structure is ideal for quick reading.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite low tool complexity and full schema coverage, the description lacks behavioral context (e.g., permissions, effect on connections) and does not explain the target parameter beyond what schema provides. This limits an agent's ability to use the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with both parameters described. The description repeats the confirm requirement, but adds no new semantic information beyond what the schema provides. Baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Reload server configuration files') and specifies the resource ('postgresql.conf'). This distinguishes it from sibling tools which are mostly query or connection operations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly requires 'confirm=true', which is a key usage condition. However, it does not provide context on when to use this tool (e.g., after config changes) or alternatives, but no siblings serve a similar purpose.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pg_schema_listB

List all schemas in the database.

ParametersJSON Schema
NameRequiredDescriptionDefault
targetYesTarget name from ~/.dbx/targets/

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, and the description does not disclose behavioral traits such as read-only nature, authentication requirements, or potential side effects. The description carries the full burden for transparency but fails to provide any beyond the basic purpose.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single, concise sentence with no wasted words. Every element serves a purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple listing tool with one parameter and no output schema, the description covers the basic purpose but lacks guidance on usage context (e.g., need for a connection) and expected output format. It is minimally adequate but not fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% (the 'target' parameter is described). The tool description does not add additional meaning beyond the schema. Baseline score of 3 is appropriate as the schema already documents the parameter sufficiently.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the verb 'List', resource 'schemas', and scope 'all'. It effectively distinguishes from sibling tools like pg_table_list and pg_view_list by specifying the exact database object type.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives. Does not mention prerequisites like needing an active connection (pg_connect) or any exclusions. User is left to infer usage from the tool name alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pg_settingsB

Show or search server configuration parameters.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoFilter settings by name (partial match)
targetYesTarget name from ~/.dbx/targets/

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description must fully disclose behavior, but it only states 'Show or search,' implying read-only. No details on side effects, permissions, or output size are given.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence with no redundancy, conveying the essential action efficiently.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple 2-parameter tool with no output schema, the description is adequate but missing details like default behavior when 'name' is omitted or the format of results.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the description adds no extra meaning beyond what the input schema already provides. Baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb ('Show or search') and the resource ('server configuration parameters'), which is specific and distinct from sibling tools like pg_query or pg_table_list.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool vs alternatives like pg_reload_config or pg_version. The description lacks context on prerequisites or typical use cases.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pg_switch_databaseA

Switch the active connection profile. All subsequent queries will use this profile unless overridden.

ParametersJSON Schema
NameRequiredDescriptionDefault
targetYesTarget name from ~/.dbx/targets/
profileYesNamed profile to switch to

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations are absent, so the description bears full responsibility. It states the tool modifies the active profile and affects subsequent queries, but does not disclose potential side effects (e.g., does it validate the profile, require an existing connection, or return a confirmation?)

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise—a single sentence that front-loads the core action and adds only essential information about persistence to subsequent queries. No unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Without an output schema, the description should clarify what the tool returns (e.g., success/error, confirmation) or that it operates as a side-effect. The current description is adequate for a state-changing tool but could be more complete by noting return behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with clear descriptions for both 'target' and 'profile'. The tool description adds minimal extra meaning beyond summarizing the action; it does not explain the relationship between the parameters or provide additional context.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Switch the active connection profile.' It uses a specific verb ('switch') and resource ('active connection profile'), and among the sibling tools, it uniquely identifies this function.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage context ('All subsequent queries will use this profile unless overridden') but lacks explicit guidance on when to use it versus alternatives like pg_connect or pg_connection_status, and does not mention conditions where it should not be used.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pg_table_describeA

Describe a table: columns, data types, defaults, nullability, and constraints.

ParametersJSON Schema
NameRequiredDescriptionDefault
tableYesTable name
schemaNoSchema name (default: 'public')
targetYesTarget name from ~/.dbx/targets/

TDQS

A3.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. While 'describe' implies a read-only operation, it does not explicitly state that it is non-destructive, nor does it disclose any other behavioral traits like permission requirements or side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence that efficiently conveys the tool's purpose. Every word contributes value, with no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity, the description adequately explains what it returns (columns, data types, defaults, nullability, constraints). No output schema exists, so the description's summary is sufficient for an agent to understand the return value.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% (all three parameters have descriptions in the schema). The tool description adds no additional meaning beyond what the schema already provides, so baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states that the tool describes a table's schema details (columns, data types, defaults, nullability, constraints). It differentiates from siblings like pg_table_list, pg_index_list, etc., which serve different purposes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use (when you need schema details of a table) but does not provide explicit guidance on when not to use or suggest alternatives. No exclusions or context for choosing this over other table-related tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pg_table_listB

List tables in the database. Optionally filter by schema name.

ParametersJSON Schema
NameRequiredDescriptionDefault
schemaNoSchema name filter (default: all user schemas)
targetYesTarget name from ~/.dbx/targets/

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description bears full responsibility for behavioral disclosure. It does not mention that the tool is read-only, requires a connection via 'target', or what happens if no tables are found.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence, front-loading the purpose. However, it is so brief that it sacrifices completeness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema and no annotations, the description should explain more about the output format (e.g., list of table names) and that 'target' is required. It fails to mention the required parameter 'target', making it incomplete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents both parameters. The description adds minimal value by restating that the schema filter is optional.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'List tables in the database' with an optional schema filter, which distinguishes it from sibling tools like pg_schema_list and pg_table_describe.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool vs alternatives like pg_table_describe for specific tables or pg_schema_list for schemas. The description does not mention context or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pg_table_sizesA

Show table sizes with index and toast breakdown, sorted by total size descending.

ParametersJSON Schema
NameRequiredDescriptionDefault
schemaNoSchema name filter (default: 'public')
targetYesTarget name from ~/.dbx/targets/

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description bears full responsibility. It states what information is returned but does not explicitly mention that the tool is read-only, safe for concurrent use, or any permissions required.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence with no unnecessary words. It efficiently conveys the tool's purpose and output characteristics.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with two parameters and no output schema, the description provides sufficient context: what is shown, breakdown detail, and sorting. No additional information appears necessary.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the input schema already describes both parameters. The description adds no extra semantic meaning beyond the schema, earning a baseline score of 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Show') and resource ('table sizes with index and toast breakdown'), and includes sorting order. It clearly distinguishes from sibling tools like pg_database_size (database level) or pg_table_list (listing only).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for inspecting table storage but does not explicitly state when to use this tool versus alternatives like pg_database_size or pg_query. No when-not-to guidance is provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pg_updateB

Update rows matching a WHERE clause. Requires confirm=true.

ParametersJSON Schema
NameRequiredDescriptionDefault
setYesJSON object of column-value pairs to update
tableYesTable name
whereYesWHERE clause (use $N for params)
paramsNoJSON array of parameter values for WHERE clause
schemaNoSchema name (default: 'public')
targetYesTarget name from ~/.dbx/targets/
confirmYesMust be 'true' to execute this destructive operation

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden. It hints at destructiveness via confirm requirement but lacks details on return values, error handling, or row count behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with no unnecessary words, front-loading the core action and requirement.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 7 parameters, no output schema, and no annotations, the description is too minimal. It fails to explain return format, transaction behavior, or usage examples.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description does not add meaning beyond the schema; it merely restates the update operation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('update rows') and the resource (via WHERE clause), and it distinguishes from siblings like pg_insert and pg_delete.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description mentions the required 'confirm=true' but does not provide guidance on when to use this tool versus alternatives like pg_upsert, leaving context implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pg_upsertC

Insert or update on conflict. Requires confirm=true.

ParametersJSON Schema
NameRequiredDescriptionDefault
tableYesTable name
schemaNoSchema name (default: 'public')
targetYesTarget name from ~/.dbx/targets/
valuesYesJSON array of values to insert
columnsYesJSON array of column names
confirmYesMust be 'true' to execute this destructive operation
conflict_columnsYesJSON array of columns for ON CONFLICT clause

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden. It indicates destructiveness via 'confirm=true' but fails to disclose return behavior, side effects, or what happens on conflict beyond 'update'.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is very brief (two sentences) and front-loads the purpose. Could be improved by adding a bit more context without becoming verbose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 7 required parameters and no output schema, the description lacks details on return values, prerequisites (e.g., needing a connection), and precise behavior of the upsert logic.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. Description adds no parameter-specific meaning; the name 'pg_upsert' and brief purpose already imply the conflict_columns purpose.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states 'Insert or update on conflict' which explains the upsert functionality. However, it does not explicitly differentiate from sibling tools pg_insert and pg_update, leaving ambiguity for agents.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Only mentions 'Requires confirm=true' as a usage requirement. No guidance on when to use this tool over pg_insert or pg_update, nor any prerequisites like an active connection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pg_uptimeB

Show server uptime and start time.

ParametersJSON Schema
NameRequiredDescriptionDefault
targetYesTarget name from ~/.dbx/targets/

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description must disclose behavioral traits. Only says 'Show' – assumes read-only, but doesn't confirm idempotency, required connection state, or side effects. Minimal transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single concise sentence, no wasted words. Front-loaded with purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only tool, description is adequate but missing details about return format (no output schema). Could mention output includes timestamp or uptime duration.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema covers 100% of parameter (target) with clear description. Tool description adds no extra meaning beyond schema. Baseline 3 maintained.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states 'Show server uptime and start time' – a specific verb and resource. Among sibling tools, this is distinct from query, connect, etc. No ambiguity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this vs alternatives (e.g., pg_connection_status, pg_version). Lacks context about prerequisites or typical scenarios.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pg_versionB

Get PostgreSQL version string and numeric version.

ParametersJSON Schema
NameRequiredDescriptionDefault
targetYesTarget name from ~/.dbx/targets/

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so the description must disclose side effects and safety. It only says 'get version,' implying a read-only operation, but does not confirm absence of side effects, state changes, or required permissions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence that front-loads the key action. However, it omits potentially useful details like return format, but remains efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple with one parameter and no output schema. The description covers the basic purpose but does not explain the return structure or any connection requirements, leaving some ambiguity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description adds no additional meaning beyond the parameter's schema description, which already explains 'target' refers to a target name from a configuration file.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it retrieves the PostgreSQL version string and numeric version. It distinguishes from sibling tools like pg_uptime or pg_settings by focusing on version info.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives like pg_connection_status or pg_query. It does not specify prerequisites or exclusion criteria.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pg_view_listB

List views with their definitions. Optionally filter by schema.

ParametersJSON Schema
NameRequiredDescriptionDefault
schemaNoSchema name filter
targetYesTarget name from ~/.dbx/targets/

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must carry the full burden of behavioral disclosure. It implies a read-only operation but does not explicitly state that it is safe, nor does it mention permissions, side effects, or performance considerations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence with no redundant information. It is highly concise and front-loads the core purpose immediately.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simplicity of the tool (2 parameters, no output schema), the description is adequate but not complete. It does not explain what 'definitions' includes, return format, or error cases, and it lacks guidance relative to sibling tools.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description adds no extra meaning beyond the schema: it mentions 'optionally filter by schema' but that is already captured. No additional format, constraints, or usage context is provided.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists views with their definitions and optionally filters by schema. The verb 'list' and resource 'views' are specific. However, it does not explicitly differentiate from sibling tools like pg_table_list or pg_function_list, though the resource type is distinct.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It lacks information on prerequisites, such as requiring an active connection via pg_connect, or when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 27 tool updatesv2026.4.10-3
    • First observedpg_connect
    • First observedpg_connection_status
    • First observedpg_constraint_list
    • First observedpg_database_size
    • First observedpg_delete
    • First observedpg_disconnect
    • First observedpg_enum_list
    • First observedpg_extension_list
    • First observedpg_function_list
    • First observedpg_index_list
    • First observedpg_insert
    • First observedpg_list_connections
    • First observedpg_query
    • First observedpg_query_explain
    • First observedpg_query_prepared
    • First observedpg_reload_config
    • First observedpg_schema_list
    • First observedpg_settings
    • First observedpg_switch_database
    • First observedpg_table_describe
    • First observedpg_table_list
    • First observedpg_table_sizes
    • First observedpg_update
    • First observedpg_upsert
    • First observedpg_uptime
    • First observedpg_version
    • First observedpg_view_list

TDQS

A3.6/5.0
Disambiguation5/5

All 27 tools have clearly distinct purposes. Overlap between pg_query, pg_query_explain, and pg_query_prepared is minimal and explained, and pg_connect/pg_switch_database are well-differentiated. No ambiguity for an agent.

Naming Consistency5/5

Tools consistently use the 'pg_' prefix followed by a descriptive verb or verb_noun pattern. Although pg_connection_status is slightly irregular, the overall pattern is uniform and predictable.

Tool Count4/5

27 tools is on the higher end of typical (3-15), but each tool serves a necessary PostgreSQL operation: connection, DML, introspection, admin. The scope justifies the count, but fewer tools could suffice if combined.

Completeness5/5

The toolset covers all major PostgreSQL operations: connection management, CRUD, schema introspection, indexes/constraints, querying with parameters/explain, admin (version, settings, reload, uptime, sizes). No obvious gaps for a general-purpose database client.

Maintenance

ActivityInactive
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    A
    maintenance
    MCP server with 14 tools for PostgreSQL database operations. Query databases, explore schemas, analyze tables, with SQL injection prevention and read-only mode by default.
    14
    10
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    Provides PostgreSQL database management and analysis via MCP, enabling schema exploration, query execution, performance monitoring, and database health checks.
    36
    23
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    Full-featured MCP server that exposes 36 tools for interacting with PostgreSQL databases, covering schema introspection, query execution, data exploration, performance monitoring, security auditing, and maintenance.
    36
    19
    MIT
  • F
    license
    Not graded
    quality
    C
    maintenance
    MCP server for PostgreSQL database management, enabling AI-assisted schema exploration, stored procedure analysis, test data generation, and safe transaction management via Claude Desktop.
    -

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/itunified-io/mcp-postgres'

If you have feedback or need assistance with the MCP directory API, please join our Discord server