Skip to main content
Glama
chenkumi

easy-pg-admin-mcp

by chenkumi

easy-pg-admin-mcp

High-privilege PostgreSQL admin MCP server for database and role/grant management.

This project is a DBA-style tool. It does not provide raw SQL execution and does not manage tables, schemas, views, indexes, triggers, or functions. Use easy-pg-mcp for data access and schema/table operations.

Features

  • List, create, inspect, and change owners for databases

  • List, create, update, and drop PostgreSQL roles

  • Grant and revoke role memberships

  • Grant and revoke database-level privileges

  • Protect destructive actions with short-lived confirmation tokens

Related MCP server: PostgreSQL MCP Server

Available Tools

Tool

Description

pg_list_databases

List databases in the current PostgreSQL instance

pg_create_database

Create a PostgreSQL database

pg_describe_database

Inspect a PostgreSQL database

pg_alter_database_owner

Change a database owner

pg_drop_database

Request database deletion and return a confirmation token

pg_list_roles

List PostgreSQL roles

pg_create_role

Create a PostgreSQL role without SUPERUSER support

pg_alter_role_password

Change a role password

pg_alter_role_attributes

Change supported role attributes

pg_drop_role

Request role deletion and return a confirmation token

pg_grant_role

Grant a role to another role

pg_revoke_role

Revoke a role from another role

pg_show_role_memberships

Show memberships for a role

pg_grant_privileges

Grant database-level privileges to a role

pg_revoke_privileges

Revoke database-level privileges from a role

pg_show_grants

Show database-level grants for a role

pg_confirm_task

Confirm and execute a destructive action token

Safety

  • No raw SQL passthrough

  • No schema, table, view, index, trigger, or function management

  • SUPERUSER role creation and modification are not supported

  • pg_drop_database and pg_drop_role require pg_confirm_task

  • pg_drop_role does not support REASSIGN OWNED or DROP OWNED

  • Confirmation tokens are random, single-use, and expire quickly

Configuration

Use environment variables, matching the rest of the easy-*-mcp family.

Variable

Required

Default

Description

PG_CONNECTION_STRING

Conditional

-

PostgreSQL connection string. Takes precedence when provided

PG_HOST

Conditional

-

PostgreSQL host when no connection string is provided

PG_PORT

No

5432

PostgreSQL port

PG_USER

Conditional

-

PostgreSQL admin role name when no connection string is provided

PG_PASSWORD

No

-

PostgreSQL password

PG_DATABASE

Conditional

-

Default database used for the admin connection

PG_CONNECTION_LIMIT

No

10

Maximum number of active pool connections

PG_CONNECTION_TIMEOUT

No

10000

Connection establishment timeout in milliseconds

PG_IDLE_TIMEOUT

No

30000

Idle connection timeout in milliseconds

PG_ENABLE_KEEP_ALIVE

No

true

Whether TCP keep-alive is enabled

PG_KEEP_ALIVE_INITIAL_DELAY

No

0

Initial TCP keep-alive delay in milliseconds

PG_SSL

No

false

Use true, false, or no-verify

PG_ADMIN_TOKEN_TTL_SECONDS

No

120

Confirmation token lifetime in seconds

Example

PG_HOST=localhost
PG_PORT=5432
PG_USER=postgres
PG_PASSWORD=your_password
PG_DATABASE=postgres
PG_SSL=false
PG_ADMIN_TOKEN_TTL_SECONDS=120

Claude Desktop Example

{
  "mcpServers": {
    "easy-pg-admin-mcp": {
      "command": "npx",
      "args": ["-y", "easy-pg-admin-mcp"],
      "env": {
        "PG_HOST": "localhost",
        "PG_PORT": "5432",
        "PG_USER": "postgres",
        "PG_PASSWORD": "your_password",
        "PG_DATABASE": "postgres",
        "PG_SSL": "false",
        "PG_ADMIN_TOKEN_TTL_SECONDS": "120"
      }
    }
  }
}

Codex config.toml Example

[mcp_servers.easy-pg-admin-mcp]
args = ["-y", "easy-pg-admin-mcp"]
command = "npx"
enabled = true

[mcp_servers.easy-pg-admin-mcp.env]
PG_HOST = "localhost"
PG_PORT = "5432"
PG_USER = "postgres"
PG_PASSWORD = "your_password"
PG_DATABASE = "postgres"
PG_SSL = "false"
PG_ADMIN_TOKEN_TTL_SECONDS = "120"

OpenCode opencode.jsonc Example

{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "easy-pg-admin-mcp": {
      "type": "local",
      "command": ["npx", "-y", "easy-pg-admin-mcp"],
      "enabled": true,
      "environment": {
        "PG_HOST": "localhost",
        "PG_PORT": "5432",
        "PG_USER": "postgres",
        "PG_PASSWORD": "your_password",
        "PG_DATABASE": "postgres",
        "PG_SSL": "false",
        "PG_ADMIN_TOKEN_TTL_SECONDS": "120",
      },
    },
  },
}

Available Tools

17 tools
pg_alter_database_ownerC

Change the owner of a PostgreSQL database.

ParametersJSON Schema
NameRequiredDescriptionDefault
ownerYes
databaseYes

TDQS

C2.4/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 full responsibility for behavioral disclosure. It only states 'change the owner' without mentioning requirements, side effects, or failure conditions (e.g., need for superuser privileges, impact on existing connections).

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 a single sentence, concise but too sparse to be informative. It lacks structure (e.g., no examples or additional context) that would justify its brevity.

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 low parameter count and no output schema, the description fails to provide sufficient context for safe invocation. Important details like required permissions, error handling, and return values are missing.

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

Parameters1/5

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

Schema description coverage is 0%, and the description adds no information about the 'database' or 'owner' parameters beyond their names. The agent receives no guidance on valid formats, constraints, or typical values.

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 action ('change the owner') and resource ('PostgreSQL database'). It is specific and distinguishes from sibling tools like pg_create_database or pg_drop_database, though it does not explicitly contrast with alternatives.

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 (e.g., pg_alter_role_attributes). The description implies use when needing to change database ownership, but lacks explicit context or conditions.

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

pg_alter_role_attributesC

Change PostgreSQL role attributes. SUPERUSER is intentionally not supported.

ParametersJSON Schema
NameRequiredDescriptionDefault
roleYes
loginNo
inheritNo
createdbNo
bypassrlsNo
createroleNo
validUntilNo
replicationNo
connectionLimitNo

TDQS

C2.8/5.0
Behavior2/5

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

With no annotations, the description carries the burden of behavioral disclosure. It only states that SUPERUSER is not supported, but lacks information on permissions required, side effects (e.g., immediate changes), error behavior, or whether the role must exist. Minimal disclosure.

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 very concise (two sentences), but at the cost of missing essential details. It does not waste words, but it fails to provide necessary information for tool usage.

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

Completeness1/5

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

Given the tool has 9 parameters, no schema descriptions, no output schema, and no annotations, the description is severely incomplete. It barely covers the tool's purpose and one constraint, leaving the agent without guidance on parameter usage, return values, or behavior.

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

Parameters1/5

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

Schema description coverage is 0%, so the description must explain parameters. It provides no information about what each parameter (e.g., login, inherit, createdb) does. The agent cannot understand the meaning or correct usage of the 9 parameters.

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 'Change' and the resource 'PostgreSQL role attributes', and adds a key constraint 'SUPERUSER is intentionally not supported'. This distinguishes it from siblings like pg_alter_role_password (which changes password specifically) and pg_create_role (which creates roles).

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 non-password attributes and excludes SUPERUSER, but does not explicitly state when to use this vs alternatives. For example, it does not mention that for password changes, pg_alter_role_password should be used. No when-not or alternative tool references.

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

pg_alter_role_passwordC

Change a PostgreSQL role password.

ParametersJSON Schema
NameRequiredDescriptionDefault
roleYes
passwordYes

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 fails to disclose important behavioral traits: whether the change is immediately effective, if it terminates existing sessions, or any security implications (e.g., locking out users). The description does not go beyond stating the basic operation.

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 a single short sentence, which is concise but lacks any structural elements like paragraphs or lists. It is front-loaded with the key verb, but the brevity sacrifices informativeness.

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 simplicity of the tool (two params, no output schema), the description still falls short by not mentioning return behavior, error cases, or context about how password changes affect role access. It is not fully informative for an agent.

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

Parameters2/5

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

Schema coverage is 0% and the description provides no additional meaning for the 'role' and 'password' parameters. While parameter names are somewhat self-explanatory, the description adds no value over the schema, failing to compensate for the lack of 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?

The description clearly states the action ('Change') and the resource ('PostgreSQL role password'), making it immediately understandable. It distinguishes from sibling tools like pg_alter_role_attributes which handle other role attributes.

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 (e.g., pg_alter_role_attributes). There is no mention of prerequisites, such as required permissions or connection state, which are critical for an agent to operate correctly.

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

pg_confirm_taskC

Confirm and execute a previously issued destructive action token.

ParametersJSON Schema
NameRequiredDescriptionDefault
tokenYes

TDQS

C2.6/5.0
Behavior2/5

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

With no annotations, the description must fully disclose behavior. It mentions 'destructive action' but does not detail what gets destroyed, execution consequences, or any required permissions or authentication.

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 concise (one sentence), but it sacrifices necessary detail. It is front-loaded but insufficiently informative for a tool with no annotations or output schema.

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

Completeness1/5

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

Given the tool has no output schema, no annotations, and low parameter coverage, the description is far from complete. It lacks behavioral details, parameter semantics, and usage context.

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

Parameters1/5

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

Schema description coverage is 0%, so the description should explain the 'token' parameter. It does not describe the token's origin, format, or purpose beyond being a 'destructive action token.'

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 function with a specific verb ('confirm and execute') and resource ('destructive action token'), and it is distinct from sibling tools that focus on database/role operations.

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, nor any prerequisites or conditions for its use. The description only implies usage when a token is available.

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

pg_create_databaseD

Create a PostgreSQL database.

ParametersJSON Schema
NameRequiredDescriptionDefault
ownerNo
localeNo
databaseYes
encodingNo
templateNo

TDQS

D1.8/5.0
Behavior2/5

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

No annotations are provided, and the description only says 'Create', which implies mutation but offers no details on permissions, side effects, idempotency, or response format. Behavioral transparency 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.

Conciseness2/5

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

The description is very brief (one sentence), but overly so. It sacrifices useful information for brevity, making it under-specification rather than conciseness. Not appropriately sized for a tool with 5 parameters.

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

Completeness1/5

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

Given the tool has 5 parameters, no output schema, and no annotations, the description is completely inadequate. It provides almost no contextual information needed to use the tool correctly, such as parameter meanings, return values, or behaviors.

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

Parameters1/5

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

The input schema has 5 parameters with 0% description coverage (no descriptions in the schema). The description does not mention or explain any of the parameters (owner, locale, encoding, template). Fails to add meaning beyond the schema.

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

Purpose2/5

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

The description 'Create a PostgreSQL database' is essentially a restatement of the tool name 'pg_create_database'. It does not add any specific detail about what the tool does beyond the name, qualifying as a tautology according to the rubric.

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 its alternatives (e.g., pg_describe_database, pg_drop_database). Missing context such as prerequisites or when not to use.

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

pg_create_roleC

Create a PostgreSQL role. SUPERUSER is intentionally not supported.

ParametersJSON Schema
NameRequiredDescriptionDefault
roleYes
loginNo
inheritNo
createdbNo
passwordNo
bypassrlsNo
createroleNo
validUntilNo
replicationNo
connectionLimitNo

TDQS

C2.6/5.0
Behavior2/5

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

With no annotations, the description bears full responsibility for behavioral disclosure. It discloses that SUPERUSER is not supported, but fails to mention other behavioral traits such as error handling, permissions required, or side effects. This under-disclosure leaves significant gaps.

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 very short (one sentence), which is concise but insufficient for a tool with 10 parameters. It front-loads the purpose but omits necessary details, making it under-specified for the complexity.

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

Completeness1/5

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

Given the complexity (10 params, no output schema, no annotations), the description is severely incomplete. It does not cover return values, error conditions, or parameter usage, leaving the agent with inadequate context to use the tool correctly.

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

Parameters1/5

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

The input schema has 10 parameters with 0% description coverage. The tool description does not explain any parameter, such as 'role', 'login', or 'password'. It adds no semantic value beyond the schema structure, which is insufficient given the lack of 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?

The description clearly states 'Create a PostgreSQL role', which is a specific verb and resource. The note 'SUPERUSER is intentionally not supported' distinguishes it from role creation tools that might allow SUPERUSER, and it differentiates from sibling tools that alter or drop roles.

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 like pg_alter_role_attributes or pg_drop_role. The description only states what it does, not when 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.

pg_describe_databaseC

Inspect a PostgreSQL database definition.

ParametersJSON Schema
NameRequiredDescriptionDefault
databaseYes

TDQS

C2.1/5.0
Behavior2/5

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

Without annotations, the description must disclose behavioral traits. 'Inspect' implies read-only, but no permissions, side effects, or output format are mentioned. The tool's behavior beyond a vague inspection is opaque.

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 a single short sentence, which is concise. However, it sacrifices informativeness for brevity; a slightly longer description could provide more value without being verbose.

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

Completeness1/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 annotations, the description should explain what the tool returns or requires. It does not cover return values, prerequisites, or any context beyond the minimal verb, making it incomplete for agent usage.

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

Parameters1/5

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

The input schema has a single parameter 'database' with no description, and the schema description coverage is 0%. The description does not add any meaning to this parameter (e.g., expected format, examples), so the agent gets no help understanding how to specify the database.

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

Purpose3/5

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

The description states the tool inspects a database definition, which distinguishes it from listing or creating databases. However, 'definition' is vague and doesn't specify what aspects (schema, config, permissions) are returned, making it only moderately clear.

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 siblings like pg_list_databases or pg_alter_database_owner. The description lacks explicit context on prerequisites or alternatives, leaving the agent to infer.

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

pg_drop_databaseC

Request database deletion and return a short-lived confirmation token.

ParametersJSON Schema
NameRequiredDescriptionDefault
forceNo
databaseYes

TDQS

C2.4/5.0
Behavior2/5

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

With no annotations, the description must disclose all behavioral traits. It mentions a short-lived confirmation token, implying non-immediate deletion, but does not explain what happens on token expiration, authentication requirements, or the effect of the 'force' parameter. Irreversible consequences are not highlighted.

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 a single sentence, which is concise but at the expense of necessary detail. It front-loads the core action but omits critical information.

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 destructive nature, lack of output schema, and two-step process hinted at, the description is incomplete. It does not explain the token usage, return format, or how the 'force' parameter modifies behavior.

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

Parameters1/5

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

Schema description coverage is 0% and the description does not add any meaning to the parameters. The 'database' and 'force' parameters are not explained beyond their names.

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 it requests database deletion and returns a confirmation token, distinguishing it from siblings like pg_alter_database_owner and pg_describe_database. However, the phrase 'request' implies a two-step process that could be more explicit.

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, no prerequisites, and no mention of when not to use it. The sibling pg_confirm_task is the logical next step but is not referenced.

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

pg_drop_roleC

Request role deletion and return a short-lived confirmation token.

ParametersJSON Schema
NameRequiredDescriptionDefault
roleYes

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 carries full burden. It mentions 'Request role deletion' and 'short-lived confirmation token', suggesting a two-step process, but it does not specify whether the role is immediately deleted, what happens if the token expires, or any permission requirements. This leaves significant behavioral ambiguity for an agent.

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 of 10 words, which is concise. However, it could be expanded slightly to include more behavioral details 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?

Given that this tool has no output schema, no annotations, and only one parameter, the description should provide more context about the confirmation token mechanism and lifecycle. The current text leaves uncertainty about the deletion's finality and the agent's next steps.

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

Parameters2/5

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

The input schema defines one parameter 'role' with type string and minLength 1, but has 0% schema description coverage. The tool description does not elaborate on the role parameter, so an agent must infer its meaning from the tool name and context. Adding a description would improve clarity.

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 ('Request role deletion') and the resource ('role'), and it distinguishes itself by mentioning the unique outcome of returning a short-lived confirmation token, which differentiates it from sibling tools like pg_drop_database or pg_create_role.

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, such as when a two-step deletion process is needed or when to use pg_confirm_task. There are no prerequisites or exclusions mentioned.

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

pg_grant_privilegesC

Grant database-level PostgreSQL privileges to a role.

ParametersJSON Schema
NameRequiredDescriptionDefault
roleYes
databaseYes
privilegesYes
withGrantOptionNo

TDQS

C2.6/5.0
Behavior2/5

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

No annotations are provided, and the description does not disclose side effects, error conditions, idempotency, or security requirements (e.g., superuser privileges needed). Minimal transparency for a mutation tool.

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 a single sentence, which is concise, but it is insufficiently informative. It could be expanded with brief parameter descriptions or usage notes without becoming verbose.

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

Completeness1/5

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

For a tool with 4 parameters, no schema descriptions, no annotations, and no output schema, the description is severely incomplete. It lacks parameter semantics, behavioral notes, and context needed for correct invocation.

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

Parameters1/5

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

The description provides no information about the parameters. With 0% schema description coverage, the description completely fails to explain what 'role', 'database', 'privileges' (and acceptable values), or 'withGrantOption' mean.

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 ('Grant'), the resource ('database-level PostgreSQL privileges'), and the target ('to a role'). It effectively distinguishes from sibling tools like 'pg_grant_role' which grants role membership, not privileges.

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, no prerequisites or conditions mentioned, and no exclusions given. The description solely states the action without context.

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

pg_grant_roleC

Grant a PostgreSQL role to another role.

ParametersJSON Schema
NameRequiredDescriptionDefault
roleYes
memberYes
adminOptionNo

TDQS

C2.6/5.0
Behavior2/5

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

The description only states the action without disclosing behavioral traits such as idempotency, error handling (e.g., what happens if the role or member does not exist), or side effects. Since no annotations are provided, the description fails to fill the gap.

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 a single sentence with no superfluous words, which is concise. However, it is too minimal, sacrificing useful information for brevity. It earns a middle score for being efficient but under-informed.

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

Completeness1/5

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

Given the tool has three parameters, no output schema, and no annotations, the description is severely incomplete. It does not explain the result, error conditions, or any behavioral details, making it insufficient for an agent to use effectively.

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

Parameters1/5

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

The schema has 0% description coverage, and the tool description does not explain any of the parameters. The meaning of 'role' and 'member' is implied but not clarified, and 'adminOption' is entirely undocumented beyond its type. The description adds no value over the raw 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 verb 'Grant' and the resource 'a PostgreSQL role to another role,' which precisely defines the action and distinguishes it from siblings like 'pg_revoke_role' and 'pg_grant_privileges.'

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_grant_privileges' or 'pg_create_role.' There is no mention of prerequisites, like the role needing to exist, nor any context about when to use 'adminOption.'

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

pg_list_databasesA

List databases in the current PostgreSQL instance.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

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 the full burden. It states 'List databases,' implying a read-only operation, but does not disclose any behavioral details such as permission requirements or whether the list is limited to accessible databases.

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 states the tool's purpose. There is no extraneous information, making it efficient and front-loaded.

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?

Without an output schema, the description should clarify what information is returned (e.g., database names, sizes). It lacks this detail, making it incomplete for a tool that returns data.

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?

The tool has no parameters, and the schema coverage is 100% (empty schema). The description does not need to add parameter information since none exist, meeting the baseline for zero-parameter tools.

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 ('List') and resource ('databases'), clearly indicating the tool's function. It distinguishes itself from sibling tools like pg_create_database and pg_drop_database, which handle 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?

No explicit guidelines on when to use this tool versus alternatives. The usage is implied by the name and description, but there is no mention of 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_list_rolesC

List PostgreSQL roles.

ParametersJSON Schema
NameRequiredDescriptionDefault
includeSystemNo

TDQS

C2.5/5.0
Behavior2/5

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

No annotations provided, and the description only says 'List PostgreSQL roles.' It does not disclose what is returned, whether system roles are included, or if it is read-only. The includeSystem parameter is not explained.

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

Conciseness2/5

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

Too brief for a tool without annotations or output schema. Single sentence lacks sufficient detail to be helpful while being short.

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

Completeness1/5

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

No output schema and no parameter description. The tool has one parameter that is undocumented, and the return format is unspecified. Incomplete for effective use.

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

Parameters1/5

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

Schema description coverage is 0% and the description does not explain the 'includeSystem' parameter, leaving the agent without necessary information on its effect.

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 'List' and resource 'PostgreSQL roles', clearly distinguishing it from sibling tools like pg_list_databases.

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_list_databases or role-specific tools. Does not mention filtering or context.

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

pg_revoke_privilegesC

Revoke database-level PostgreSQL privileges from a role.

ParametersJSON Schema
NameRequiredDescriptionDefault
roleYes
databaseYes
privilegesYes
grantOptionForNo

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 the full burden of disclosing behavioral traits. It does not mention idempotency, error handling (e.g., behavior if the role or database does not exist), whether it revokes only specified privileges or all, or any cascading effects. The description is too sparse for a mutation operation.

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 padding. However, it is under-specified for a complex tool with four parameters. Conciseness is good, but the content could be expanded without sacrificing clarity.

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 complexity (4 parameters, no output schema, no annotations), the description is incomplete. It lacks details on valid privilege values, the effect of grantOptionFor, error conditions, and required permissions. The tool's behavior is inadequately specified for an AI agent to use correctly.

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

Parameters2/5

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

Schema coverage is 0%, so the description should clarify parameter meanings. It does not explain what values are valid for 'privileges' (e.g., ALL, SELECT, INSERT) or the purpose of the optional 'grantOptionFor' parameter. The description adds no semantic value beyond the schema's type constraints.

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 'Revoke database-level PostgreSQL privileges from a role', specifying the verb (revoke), resource (database-level privileges), and target (role). It distinguishes this from sibling tools like pg_revoke_role (which revokes role membership) and pg_grant_privileges (which grants privileges).

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_revoke_role or pg_grant_privileges. There is no mention of prerequisites, context for when revoking is appropriate, or when the optional grantOptionFor parameter should be used.

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

pg_revoke_roleC

Revoke a PostgreSQL role from another role.

ParametersJSON Schema
NameRequiredDescriptionDefault
roleYes
memberYes
adminOptionNo

TDQS

C2.7/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 for behavioral disclosure. It only states the basic operation, omitting important details about side effects, permissions required, or error conditions. For a mutation tool, 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.

Conciseness4/5

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

The description is extremely concise (7 words) and front-loaded with the key verb and resource. However, it is so brief that it sacrifices necessary detail, making it less effective overall.

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 tool has three parameters and no annotations, the description is incomplete. It does not cover parameter meanings, return values, or execution context. More context is needed for an agent to use the tool correctly.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must explain parameters. It does not clarify what 'role', 'member', or 'adminOption' mean in the context of revocation. The overall description hints at the relationship but lacks explicit semantics.

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 action (revoke) and the resource (PostgreSQL role), making the purpose immediately understandable. However, it does not differentiate this tool from similar sibling tools like pg_revoke_privileges, missing the opportunity to clarify when to use this specific tool.

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 any context about when it should or should not be used, such as 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_show_grantsB

Show database-level PostgreSQL grants for a role.

ParametersJSON Schema
NameRequiredDescriptionDefault
roleYes
databaseNo

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 only states the basic action. It lacks disclosure of required permissions, whether the output includes all databases by default, or any other behavioral traits.

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 verb first, no redundant information; concise and properly 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?

Given no output schema and no annotations, the description is too sparse. It does not mention what fields are returned, whether it shows grants for all databases if database parameter omitted, or any caveats for a security-sensitive 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?

The description adds meaning by linking the role parameter to 'for a role' and implying a database filter, but with 0% schema coverage and two parameters, more detail on the database parameter is needed.

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 specifies the verb 'Show' and resource 'database-level PostgreSQL grants for a role', distinguishing it from sibling tools like pg_grant_privileges or pg_revoke_privileges.

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_show_role_memberships, nor any prerequisites or limitations mentioned.

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

pg_show_role_membershipsC

Show memberships for a PostgreSQL role.

ParametersJSON Schema
NameRequiredDescriptionDefault
roleYes

TDQS

C2.9/5.0
Behavior2/5

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

No annotations provided, so description must fully disclose behavior. Minimal description does not specify permissions, output format, or whether it shows direct or transitive memberships.

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?

Single sentence, no wasted words, but lacks important context. Adequate conciseness but could be improved with more informative phrasing.

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, no annotations, and parameter count 1, the description is incomplete. Does not clarify what 'memberships' means (e.g., roles the specified role belongs to vs. roles that are members of the specified role).

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

Parameters2/5

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

Schema has one parameter 'role' with no description. Description adds 'for a PostgreSQL role' but no additional semantic value beyond the schema. Schema description coverage is 0%.

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 shows memberships for a PostgreSQL role, with a specific verb and resource. It distinguishes from sibling tools that involve altering, creating, dropping, or granting roles.

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_grant_role or pg_revoke_role. No prerequisites or conditions specified.

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

TDQS

B3.1/5.0
Disambiguation5/5

Each tool targets a distinct action on either databases or roles, with clear descriptions that prevent overlap. For example, pg_grant_privileges and pg_grant_role are explicitly different operations.

Naming Consistency5/5

All tools follow the consistent pattern 'pg_verb_noun' (e.g., pg_create_database, pg_drop_role). The naming is uniform and predictable.

Tool Count5/5

With 17 tools covering database and role CRUD, grants, and listings, the count matches the domain well. Each tool serves a specific purpose without unnecessary overlap.

Completeness4/5

The set covers essential PostgreSQL admin tasks: create, drop (with confirmation), list, alter, and grant/revoke for both databases and roles. Minor gaps like renaming or altering database properties other than owner are absent but acceptable for an 'easy' admin tool.

Maintenance

ActivitySlowing
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
    Not graded
    quality
    C
    maintenance
    MCP server that exposes PostgreSQL database operations via psycopg2, including connection management, query execution, and transaction control.
    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
  • A
    license
    A
    quality
    C
    maintenance
    Local MCP server for safe querying and inspecting PostgreSQL databases, with write and maintenance operations disabled by default.
    8
    29
    1
    ISC
  • A
    license
    Not graded
    quality
    C
    maintenance
    A Python MCP 2.0 server for self-hosted PostgreSQL instances, providing schema/relation discovery, SQL query and controlled transactional execution tools with security features like read-only transactions, role hardening guidance, and optional human approval for write commands.
    MIT

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/chenkumi/easy-pg-admin-mcp'

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