Skip to main content
Glama
PostgreSQL MCP Server

PostgreSQL MCP Server

PostgreSQL MCP Server

A Model Context Protocol (MCP) server that provides PostgreSQL database management capabilities. This server assists with analyzing existing PostgreSQL setups, providing implementation guidance, and debugging database issues.

Features

1. Database Analysis (analyze_database)

Analyzes PostgreSQL database configuration and performance metrics:

  • Configuration analysis

  • Performance metrics

  • Security assessment

  • Recommendations for optimization

// Example usage
{
  "connectionString": "postgresql://user:password@localhost:5432/dbname",
  "analysisType": "performance" // Optional: "configuration" | "performance" | "security"
}

2. Setup Instructions (get_setup_instructions)

Provides step-by-step PostgreSQL installation and configuration guidance:

  • Platform-specific installation steps

  • Configuration recommendations

  • Security best practices

  • Post-installation tasks

// Example usage
{
  "platform": "linux", // Required: "linux" | "macos" | "windows"
  "version": "15", // Optional: PostgreSQL version
  "useCase": "production" // Optional: "development" | "production"
}

3. Database Debugging (debug_database)

Debug common PostgreSQL issues:

  • Connection problems

  • Performance bottlenecks

  • Lock conflicts

  • Replication status

// Example usage
{
  "connectionString": "postgresql://user:password@localhost:5432/dbname",
  "issue": "performance", // Required: "connection" | "performance" | "locks" | "replication"
  "logLevel": "debug" // Optional: "info" | "debug" | "trace"
}

Related MCP server: Postgres MCP Pro

Prerequisites

  • Node.js >= 18.0.0

  • PostgreSQL server (for target database operations)

  • Network access to target PostgreSQL instances

Installation

Installing via Smithery

To install PostgreSQL MCP Server for Claude Desktop automatically via Smithery:

npx -y @smithery/cli install @nahmanmate/postgresql-mcp-server --client claude

Manual Installation

  1. Clone the repository

  2. Install dependencies:

    npm install
  3. Build the server:

    npm run build
  4. Add to MCP settings file:

    {
      "mcpServers": {
        "postgresql-mcp": {
          "command": "node",
          "args": ["/path/to/postgresql-mcp-server/build/index.js"],
          "disabled": false,
          "alwaysAllow": []
        }
      }
    }

Development

  • npm run dev - Start development server with hot reload

  • npm run lint - Run ESLint

  • npm test - Run tests

Security Considerations

  1. Connection Security

    • Uses connection pooling

    • Implements connection timeouts

    • Validates connection strings

    • Supports SSL/TLS connections

  2. Query Safety

    • Validates SQL queries

    • Prevents dangerous operations

    • Implements query timeouts

    • Logs all operations

  3. Authentication

    • Supports multiple authentication methods

    • Implements role-based access control

    • Enforces password policies

    • Manages connection credentials securely

Best Practices

  1. Always use secure connection strings with proper credentials

  2. Follow production security recommendations for sensitive environments

  3. Regularly monitor and analyze database performance

  4. Keep PostgreSQL version up to date

  5. Implement proper backup strategies

  6. Use connection pooling for better resource management

  7. Implement proper error handling and logging

  8. Regular security audits and updates

Error Handling

The server implements comprehensive error handling:

  • Connection failures

  • Query timeouts

  • Authentication errors

  • Permission issues

  • Resource constraints

Running evals and tests

The evals package loads an mcp client that then runs the index.ts file, so there is no need to rebuild between tests. You can see the full documentation here.

OPENAI_API_KEY=your-key  npx mcp-eval src/evals/evals.ts src/index.ts

Contributing

  1. Fork the repository

  2. Create a feature branch

  3. Commit your changes

  4. Push to the branch

  5. Create a Pull Request

License

This project is licensed under the AGPLv3 License - see LICENSE file for details.

Available Tools

3 tools
analyze_databaseC

Analyze PostgreSQL database configuration and performance

Inputs: connectionString (required), analysisType.

debug_databaseC

Debug common PostgreSQL issues

Inputs: connectionString (required), issue (required), logLevel.

get_setup_instructionsB

Get step-by-step PostgreSQL setup instructions

Inputs: platform (required), version, useCase.

Tool Schema Changelog

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

Loading tool schema changelog…

    TDQS

    B3/5.0

    Scored across 3 tools

    Disambiguation5/5

    Each tool has a clearly distinct purpose: analyze_database focuses on configuration and performance analysis, debug_database targets issue troubleshooting, and get_setup_instructions provides installation guidance. There is no overlap in functionality, making it easy for an agent to select the appropriate tool without confusion.

    Naming Consistency5/5

    All tool names follow a consistent verb_noun pattern (analyze_database, debug_database, get_setup_instructions), using snake_case throughout. The naming is predictable and readable, with no deviations or mixed conventions.

    Tool Count2/5

    With only 3 tools, the server feels thin for a PostgreSQL domain, which typically involves operations like querying, inserting, updating, or managing tables. While the tools cover analysis, debugging, and setup, the lack of core database interaction tools suggests an incomplete surface for typical agent workflows.

    Completeness2/5

    The tool set is severely incomplete for a PostgreSQL server, as it lacks basic CRUD operations (e.g., execute_query, create_table, insert_data) and management functions (e.g., list_tables, backup_database). This will cause significant agent failures when attempting to interact with the database beyond setup and diagnostics.

    Maintenance

    ActivityInactive
    ResponsivenessSyncing

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      A
      quality
      B
      maintenance
      Enables comprehensive PostgreSQL database monitoring, analysis, and management through natural language queries. Provides performance insights, bloat analysis, vacuum monitoring, and intelligent maintenance recommendations across PostgreSQL versions 12-17.
      38
      164
      MIT
    • A
      license
      B
      quality
      D
      maintenance
      Enables comprehensive PostgreSQL database management including index tuning, query plan analysis, health monitoring, schema-aware SQL generation, and safe SQL execution with configurable access control for both development and production environments.
      9
      MIT
    • A
      license
      Not graded
      quality
      D
      maintenance
      Enables AI assistants to manage, monitor, and optimize PostgreSQL databases with over 200 specialized tools for operations, security, performance tuning, and diagnostics.
      32 npm
      12
      MIT
    • A
      license
      A
      quality
      D
      maintenance
      Provides PostgreSQL database management and analysis via MCP, enabling schema exploration, query execution, performance monitoring, and database health checks.
      36
      25 npm
      MIT