Skip to main content
Glama
sbfulfil

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

Related MCP server: Simple PostgreSQL MCP Server

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.

Install Server
A
security – no known vulnerabilities
F
license - not found
A
quality - confirmed to work

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

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

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

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