Skip to main content
Glama

PostgreSQL MCP Server

by sbfulfil

PostgreSQL MCP Server

A Model Context Protocol (MCP) server that provides access to PostgreSQL database schemas and metadata. This server allows Cursor and other MCP-compatible tools to explore your database structure, inspect table schemas, and understand relationships.

Features

  • List Tables: Get all tables in a schema with basic information
  • Describe Table: Get detailed column information for any table
  • Table Relationships: Explore foreign key relationships
  • List Schemas: See all available schemas in your database
  • Index Information: View indexes for specific tables

Prerequisites

  • Node.js 18+
  • PostgreSQL database (local or remote)
  • npm or yarn package manager

Installation

  1. Clone or download this repository
  2. Install dependencies:
    npm install
  3. Configure database connection:
    cp config.env.example .env
    Edit the .env file with your PostgreSQL connection details:
    DB_HOST=localhost DB_PORT=5432 DB_NAME=your_database_name DB_USER=your_username DB_PASSWORD=your_password
  4. Test the server (optional):
    npm start

Cursor Integration

To use this MCP server with Cursor, you need to add it to your Cursor configuration.

Step 1: Add to Cursor MCP Configuration

Open Cursor and go to Settings → Features → Model Context Protocol, or edit your MCP configuration file directly.

Add the following configuration:

{ "mcpServers": { "postgres-schema": { "command": "node", "args": ["/absolute/path/to/pg_mcp/src/index.js"], "env": { "DB_HOST": "localhost", "DB_PORT": "5432", "DB_NAME": "your_database_name", "DB_USER": "your_username", "DB_PASSWORD": "your_password" } } } }

Important: Replace /absolute/path/to/pg_mcp/src/index.js with the actual absolute path to your src/index.js file.

Step 2: Alternative Configuration (Using .env file)

If you prefer to use the .env file for configuration:

{ "mcpServers": { "postgres-schema": { "command": "node", "args": ["/absolute/path/to/pg_mcp/src/index.js"], "cwd": "/absolute/path/to/pg_mcp" } } }

Step 3: Restart Cursor

After adding the configuration, restart Cursor to load the MCP server.

Available Tools

Once configured, you'll have access to these tools in Cursor:

list_tables

Lists all tables in a specified schema (defaults to 'public')

Parameters: - schema (optional): Schema name (default: "public")

describe_table

Gets detailed schema information for a specific table

Parameters: - table_name (required): Name of the table to describe - schema (optional): Schema name (default: "public")

get_table_relationships

Shows foreign key relationships for a table

Parameters: - table_name (required): Name of the table - schema (optional): Schema name (default: "public")

list_schemas

Lists all available schemas in the database

No parameters required

get_indexes

Shows indexes for a specific table

Parameters: - table_name (required): Name of the table - schema (optional): Schema name (default: "public")

Usage Examples

Once configured in Cursor, you can ask questions like:

  • "What tables are in my database?"
  • "Show me the schema for the users table"
  • "What are the foreign key relationships for the orders table?"
  • "List all indexes on the products table"
  • "What schemas are available in my database?"

Troubleshooting

Connection Issues

  1. Database connection fails:
    • Verify your database credentials in .env
    • Ensure PostgreSQL is running
    • Check if the database allows connections from your host
  2. MCP server not loading in Cursor:
    • Verify the absolute path to index.js is correct
    • Check that Node.js is installed and accessible
    • Review Cursor's MCP logs for error messages
  3. Permission denied errors:
    • Ensure the database user has read permissions on information_schema
    • Grant necessary SELECT permissions on system tables

Common Error Messages

  • Database connection failed: Check your connection parameters
  • Table not found: Verify the table name and schema
  • Permission denied: Ensure your database user has appropriate read permissions

Security Considerations

  • This server only reads database metadata (schema information)
  • No actual table data is accessed or exposed
  • Uses parameterized queries to prevent SQL injection
  • Database credentials are stored locally in your environment

Development

To run in development mode with auto-reload:

npm run dev

License

MIT License - see LICENSE file for details.

-
security - not tested
F
license - not found
-
quality - not tested

Provides access to PostgreSQL database schemas and metadata, allowing MCP-compatible tools like Cursor to explore database structure, inspect table schemas, and understand relationships.

  1. Features
    1. Prerequisites
      1. Installation
        1. Cursor Integration
          1. Step 1: Add to Cursor MCP Configuration
          2. Step 2: Alternative Configuration (Using .env file)
          3. Step 3: Restart Cursor
        2. Available Tools
          1. list_tables
          2. describe_table
          3. get_table_relationships
          4. list_schemas
          5. get_indexes
        3. Usage Examples
          1. Troubleshooting
            1. Connection Issues
            2. Common Error Messages
          2. Security Considerations
            1. Development
              1. License

                Related MCP Servers

                • -
                  security
                  F
                  license
                  -
                  quality
                  Provides read-only access to PostgreSQL databases, enabling users to inspect database schemas and execute read-only queries through a Model Context Protocol server.
                  Last updated -
                  3
                  JavaScript
                • -
                  security
                  A
                  license
                  -
                  quality
                  An MCP server that connects to Supabase PostgreSQL databases, exposing table schemas as resources and providing tools for data analysis through SQL queries.
                  Last updated -
                  1
                  JavaScript
                  MIT License
                • -
                  security
                  F
                  license
                  -
                  quality
                  A server implementing the Model Context Protocol (MCP) for Cursor that allows using a PostgreSQL database as storage for model contexts, enabling secure database exploration and querying.
                  Last updated -
                  64
                  JavaScript
                  • Linux
                  • Apple
                • -
                  security
                  A
                  license
                  -
                  quality
                  A template project for building custom MCP servers that enables direct access to PostgreSQL databases, allowing SQL query execution and schema information retrieval through the Model Context Protocol.
                  Last updated -
                  30
                  Python
                  MIT License
                  • Apple
                  • Linux

                View all related MCP servers

                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/sbfulfil/pg-mcp'

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