Skip to main content
Glama
antonorlov

MCP PostgreSQL Server

by antonorlov

Server Quality Checklist

58%
Profile completionA complete profile improves this server's visibility in search results.
  • Latest release: v1.0.0

  • Disambiguation4/5

    Most tools have distinct purposes: list_schemas and list_tables are clearly different, describe_table is unique, and query vs execute handle different SQL types. However, 'execute' and 'query' could potentially be confused since both run SQL commands, though their descriptions clarify one is for SELECT and the other for INSERT/UPDATE/DELETE.

    Naming Consistency4/5

    Tools follow a consistent verb_noun pattern (e.g., list_schemas, describe_table, execute_query would have been more consistent but 'query' and 'execute' are verbs alone). Minor deviation: 'connect_db' uses a verb_noun format while 'query' and 'execute' are standalone verbs, but overall naming is readable and predictable.

    Tool Count5/5

    With 6 tools, this is well-scoped for a PostgreSQL server. It covers essential database operations without being overwhelming. Each tool has a clear role, and the count aligns with typical MCP server ranges for this domain.

    Completeness3/5

    The toolset covers core CRUD operations via query and execute, and metadata exploration with list/describe tools. However, there are notable gaps: no tools for creating/dropping tables, managing indexes, or handling transactions, which are common in database workflows. The surface is functional but incomplete for full database management.

  • Average 3.1/5 across 6 of 6 tools scored.

    See the Tool Scores section below for per-tool breakdowns.

    • 0 of 2 community issues answered or closed in the last 6 months
    • 0 commits in the last 12 weeks
    • No stable releases found
    • No critical vulnerability alerts
    • No high-severity vulnerability alerts
    • No code scanning findings
    • CI status not available
  • This repository is licensed under MIT License.

  • This repository includes a README.md file.

  • No tool usage detected in the last 30 days. Usage tracking helps demonstrate server value.

    Tip: use the "Try in Browser" feature on the server page to seed initial usage.

  • Add a glama.json file to provide metadata about your server.

  • If you are the author, simply .

    If the server belongs to an organization, first add glama.json to the root of your repository:

    {
      "$schema": "https://glama.ai/mcp/schemas/server.json",
      "maintainers": [
        "your-github-username"
      ]
    }

    Then . Browse examples.

  • Add related servers to improve discoverability.

How to sync the server with GitHub?

Servers are automatically synced at least once per day, but you can also sync manually at any time to instantly update the server profile.

To manually sync the server, click the "Sync Server" button in the MCP server admin interface.

How is the quality score calculated?

The overall quality score combines two components: Tool Definition Quality (70%) and Server Coherence (30%).

Tool Definition Quality measures how well each tool describes itself to AI agents. Every tool is scored 1–5 across six dimensions: Purpose Clarity (25%), Usage Guidelines (20%), Behavioral Transparency (20%), Parameter Semantics (15%), Conciseness & Structure (10%), and Contextual Completeness (10%). The server-level definition quality score is calculated as 60% mean TDQS + 40% minimum TDQS, so a single poorly described tool pulls the score down.

Server Coherence evaluates how well the tools work together as a set, scoring four dimensions equally: Disambiguation (can agents tell tools apart?), Naming Consistency, Tool Count Appropriateness, and Completeness (are there gaps in the tool surface?).

Tiers are derived from the overall score: A (≥3.5), B (≥3.0), C (≥2.0), D (≥1.0), F (<1.0). B and above is considered passing.

Tool Scores

  • Behavior2/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. 'Get table structure' suggests a read-only operation, but it doesn't specify whether it requires authentication, has rate limits, returns detailed metadata (e.g., column types, constraints), or handles errors. This leaves significant gaps for a tool with potential database interactions.

    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 with just three words, making it front-loaded and efficient. However, it might be overly terse, potentially sacrificing clarity for brevity, as it could benefit from slightly more detail to fully convey the tool's scope.

    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 annotations and output schema, the description is incomplete. It doesn't explain what 'table structure' entails (e.g., column definitions, indexes), how results are formatted, or any behavioral aspects like error handling. For a database tool with potential complexity, this leaves too much unspecified.

    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, clearly documenting both parameters ('table' and 'schema') with their types and defaults. The description adds no additional meaning beyond what the schema provides, such as examples or constraints, but the schema is sufficient, so a baseline score of 3 is appropriate.

    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 'Get table structure' clearly states the verb ('Get') and resource ('table structure'), making the purpose understandable. However, it doesn't differentiate from potential sibling tools like 'list_tables' or 'query', and 'structure' could be interpreted as metadata, columns, or schema details without further clarification.

    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 is provided on when to use this tool versus alternatives like 'list_tables' or 'query'. The description implies it's for retrieving structural information, but it doesn't specify prerequisites (e.g., needing a database connection) or exclusions (e.g., not for data retrieval).

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

  • 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 of behavioral disclosure. 'Execute a SELECT query' implies a read-only operation, but it doesn't confirm safety (e.g., that it won't modify data), describe error handling, rate limits, or authentication needs. For a database query tool with zero annotation coverage, this leaves critical behavioral traits unspecified.

    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, efficient sentence with zero waste. It's front-loaded with the core action ('Execute a SELECT query'), making it immediately clear. Every word earns its place, and there's no unnecessary elaboration or repetition.

    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 of database operations and the lack of annotations and output schema, the description is incomplete. It doesn't explain what the tool returns (e.g., result sets, error messages), performance implications, or connection requirements. For a tool that executes SQL queries, more context is needed to guide the agent 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 description coverage is 100%, with both parameters ('sql' and 'params') well-documented in the schema. The description adds no parameter semantics beyond what the schema provides (e.g., it doesn't explain SQL syntax, parameter binding rules, or result formatting). With high schema coverage, the baseline score of 3 is appropriate, as the description doesn't enhance parameter understanding.

    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 'Execute a SELECT query' clearly states the verb ('Execute') and resource ('SELECT query'), making the purpose understandable. However, it doesn't distinguish this tool from its sibling 'execute' (which likely handles non-SELECT queries), leaving ambiguity about when to use each. The purpose is clear but lacks sibling differentiation.

    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 doesn't mention when to use 'query' vs 'execute' (a sibling tool), nor does it specify prerequisites like needing an established database connection. Without any usage context or exclusions, the agent must infer when this tool is appropriate.

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

  • Behavior2/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. While it indicates this is a mutation tool (INSERT, UPDATE, DELETE), it doesn't cover critical aspects like required permissions, transaction behavior, error handling, rate limits, or what happens on success/failure. The description is insufficient for a tool that modifies data.

    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, efficient sentence with zero wasted words. It's appropriately sized and front-loaded with the core functionality.

    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 mutation tool with no annotations and no output schema, the description is incomplete. It doesn't address behavioral expectations, error conditions, or return values. Given the complexity of executing data-modifying SQL queries, this leaves significant gaps for an AI agent.

    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 thoroughly. The description doesn't add any meaningful semantic context beyond what's in the schema (e.g., it doesn't explain parameter binding patterns or SQL injection risks). Baseline 3 is appropriate when the schema does the heavy lifting.

    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 executes SQL queries (INSERT, UPDATE, DELETE), which is a specific verb+resource combination. However, it doesn't distinguish this tool from its sibling 'query' tool, which likely handles SELECT queries, leaving some ambiguity about when to use each.

    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 like the 'query' sibling tool. It mentions the types of SQL queries supported but doesn't specify prerequisites, exclusions, or contextual usage scenarios.

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

  • 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 of behavioral disclosure. It states the action ('List') but doesn't describe what 'List' entails—e.g., whether it returns all tables, if there's pagination, what format the output is in, or any permissions required. For a tool with no annotation coverage, this is a significant gap in 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?

    The description is a single, efficient sentence with zero waste. It is appropriately sized and front-loaded, directly stating the tool's purpose without unnecessary elaboration. Every word earns its place, making it highly concise.

    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's simplicity (1 optional parameter, no output schema, no annotations), the description is incomplete. It lacks details on output format, behavioral traits, or usage context, which are necessary for an agent to effectively invoke and interpret results. This is inadequate for even a simple 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 input schema has 100% description coverage, with the single parameter 'schema' documented as 'Schema name (default: public)'. The description adds no parameter semantics beyond what the schema provides, so it meets the baseline of 3 where the schema does the heavy lifting. No additional value is contributed.

    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 verb ('List') and resource ('tables in the database'), making the purpose immediately understandable. It doesn't explicitly differentiate from siblings like 'list_schemas' or 'describe_table', but the specificity of 'tables' provides some implicit distinction. This is clear but lacks explicit sibling differentiation.

    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 doesn't mention prerequisites (e.g., needing to connect to the database first), when to prefer 'list_schemas' or 'describe_table', or any usage constraints. This leaves the agent with minimal context for tool selection.

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

  • 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 of behavioral disclosure. It states a read operation ('List'), implying it's likely non-destructive, but doesn't cover aspects like permissions required, rate limits, pagination, or the format of the returned list. For a tool with zero annotation coverage, this is a significant gap in 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?

    The description is a single, clear sentence with zero waste. It's front-loaded with the core purpose and appropriately sized for a simple tool, 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?

    Given the tool's simplicity (0 parameters, no output schema, no annotations), the description is adequate but has clear gaps. It covers the basic purpose but lacks behavioral details and usage context. For a tool that likely returns a list of schemas, more information on output format or dependencies would improve completeness.

    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 input schema has 0 parameters with 100% coverage, meaning no parameters are documented in the schema. The description doesn't add parameter details, but since there are no parameters, this is acceptable. Baseline is 4 for 0 parameters, as the description doesn't need to compensate for missing schema information.

    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 ('List') and resource ('all schemas in the database'), making the purpose immediately understandable. However, it doesn't explicitly differentiate from sibling tools like 'list_tables' or 'describe_table', which might handle similar database metadata operations, so it misses the highest score.

    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 'list_tables' or 'describe_table'. It lacks context about prerequisites (e.g., whether a database connection is needed) or exclusions, leaving the agent 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.

  • 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 of behavioral disclosure. It mentions the existence of a default connection and usage constraints, which adds useful context beyond basic functionality. However, it lacks details on error handling, connection persistence, or authentication requirements, leaving gaps in behavioral understanding for a connection 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 and front-loaded, with the core purpose stated first followed by critical usage notes. Every sentence earns its place by providing essential information without redundancy, making it efficient and easy to parse.

    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 (connection establishment with multiple parameters) and lack of annotations or output schema, the description is reasonably complete. It covers purpose and usage guidelines well, but could benefit from more behavioral details (e.g., what happens on success/failure) to fully compensate for the missing structured data.

    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 all five parameters (host, port, user, password, database) with their types and descriptions. The description does not add any additional meaning or context about the parameters beyond what the schema provides, meeting the baseline expectation when schema coverage is high.

    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 specific action ('Connect to PostgreSQL database') and resource ('PostgreSQL database'), making the purpose immediately understandable. It distinguishes this tool from sibling tools like 'query' or 'execute' by focusing on establishing a database connection rather than performing operations on an already connected database.

    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 provides explicit guidance on when to use this tool ('only use when requested or if other commands fail') and when not to use it ('Default connection exists'), offering clear context for its application. This helps the agent avoid unnecessary invocations when a default connection is already available.

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

GitHub Badge

Glama performs regular codebase and documentation scans to:

  • Confirm that the MCP server is working as expected.
  • Confirm that there are no obvious security issues.
  • Evaluate tool definition quality.

Our badge communicates server capabilities, safety, and installation instructions.

Card Badge

mcp-postgres-server MCP server

Copy to your README.md:

Score Badge

mcp-postgres-server MCP server

Copy to your README.md:

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/antonorlov/mcp-postgres-server'

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