1. Conduid
  2. Data
  3. Rmcp Postgres
MCP server · Data

Rmcp Postgres

A PostgreSQL MCP (Model Context Protocol) server built with [rmcp] the Rust MCP SDK.

Unclaimed last commit 9 months ago data
34Low

Scored 6 months ago · breakdown

About Rmcp Postgres

Rmcp Postgres is an MCP server published by sqrew in the Data category: a PostgreSQL MCP (Model Context Protocol) server built with [rmcp] the Rust MCP SDK.

The repository has 2 stars and 0 forks, with the last commit 9 months ago. Six months or more without a commit doesn't mean the server is broken, but check the open issues before depending on it in production.

Install

From source
git clone https://github.com/sqrew/rmcp-postgres

This server has no ConduID identity, so agent calls to it are not receipted. Pin the version you install and review the source before granting it credentials.

Ask AI

✦

Ask AI about Rmcp Postgres

Powered by Claude · Grounded in docs

I know everything about Rmcp Postgres. Ask me about installation, configuration, usage, or troubleshooting.

Security checks

  • ✓README presentThe repository ships documentation.

5 checks have not been run yet.

README

rmcp-postgres

A PostgreSQL MCP (Model Context Protocol) server built with [rmcp] https://github.com/modelcontextprotocol/rust-sdk, the Rust MCP SDK.

Provides comprehensive PostgreSQL database access through MCP tools for querying, inserting, updating, deleting, and inspecting database schemas.

Features

  • Full CRUD Operations: Query, insert, update, and delete data
  • Schema Inspection: List tables, describe schemas, check existence
  • Relationship Discovery: Explore foreign key relationships
  • Safety Limits: Built-in protections for bulk operations
  • Configurable: Flexible database connection configuration
  • Library + Binary: Use as a standalone server or integrate into your own Rust projects

Installation

From crates.io

cargo install rmcp-postgres

From source

git clone https://github.com/sqrew/rmcp-postgres
cd rmcp-postgres
cargo build --release

The binary will be at target/release/rmcp-postgres.

Usage

As a Standalone Server

Set your PostgreSQL connection string and run:

# Using environment variable
export POSTGRES_CONNECTION_STRING="host=localhost user=postgres dbname=mydb password=secret"
rmcp-postgres

# Using command line argument
rmcp-postgres --db-config "host=localhost user=postgres dbname=mydb password=secret"

As a Library

Add to your Cargo.toml:

[dependencies]
rmcp-postgres = "0.1"
rmcp = { version = "0.12", features = ["server"] }
tokio = { version = "1", features = ["full"] }

Use in your code:

use rmcp::service::ServiceExt;
use rmcp_postgres::PostgresServer;

#[tokio::main]
async fn main() -> anyhow::Result<()> {
    // Create server with connection string
    let server = PostgresServer::new("host=localhost user=postgres dbname=mydb");

    // Serve over stdio (for MCP)
    let (stdin, stdout) = (tokio::io::stdin(), tokio::io::stdout());
    server.serve((stdin, stdout)).await?;

    Ok(())
}

Claude Desktop Configuration

Add to your Claude Desktop config (~/Library/Application Support/Claude/claude_desktop_config.json on macOS):

{
  "mcpServers": {
    "postgres": {
      "command": "rmcp-postgres",
      "env": {
        "POSTGRES_CONNECTION_STRING": "host=localhost user=postgres dbname=mydb password=secret"
      }
    }
  }
}

Or if installed from source:

{
  "mcpServers": {
    "postgres": {
      "command": "/path/to/rmcp-postgres/target/release/rmcp-postgres",
      "env": {
        "POSTGRES_CONNECTION_STRING": "host=localhost user=postgres dbname=mydb"
      }
    }
  }
}

Available Tools

Data Operations

  • query_data - Execute SELECT queries and return JSON results
  • insert_data - Insert rows into tables
  • update_data - Update rows with WHERE conditions (safety limit: 1000 rows)
  • delete_data - Delete rows with WHERE conditions (safety limit: 1000 rows)
  • execute_raw_query - Execute any SQL query (use with caution)

Schema Inspection

  • list_tables - List all tables in the database
  • get_schema - Get column information for tables
  • describe_table - Get detailed table info including indexes and constraints
  • table_exists - Check if a table exists
  • column_exists - Check if a column exists in a table

Utilities

  • count_rows - Count rows in a table with optional WHERE conditions
  • get_table_sample - Get sample rows from a table (default: 10, max: 100)
  • get_relationships - Get foreign key relationships between tables
  • get_connection_status - Test connection and get database version info

Connection String Format

PostgreSQL connection strings support multiple formats:

# Basic
"host=localhost user=postgres dbname=mydb"

# With password
"host=localhost user=postgres dbname=mydb password=secret"

# With port
"host=localhost port=5433 user=postgres dbname=mydb"

# Full URL format
"postgresql://postgres:secret@localhost:5432/mydb"

See the tokio-postgres documentation for all connection options.

Examples

Query data

{
  "query": "SELECT * FROM users WHERE active = true LIMIT 10"
}

Insert data

{
  "table_name": "users",
  "data": {
    "username": "alice",
    "email": "alice@example.com",
    "active": true
  }
}

Update data

{
  "table_name": "users",
  "values": {
    "active": false
  },
  "where_conditions": {
    "username": "alice"
  }
}

Get schema for a table

{
  "table_name": "users"
}

Safety Features

  • Update and delete operations have default limits (1000 rows)
  • WHERE conditions required for updates and deletes
  • Raw query execution requires explicit tool call
  • Connection string passwords are sanitized in logs

Development

# Build
cargo build

# Run tests
cargo test

# Run with debug logging
RUST_LOG=rmcp_postgres=debug,rmcp=debug rmcp-postgres

Contributing

Contributions welcome! Please feel free to submit issues or pull requests.

License

MIT

Related Projects

README copy captured when this server was indexed; it may lag the repository. The original is authoritative.

Questions

About Rmcp Postgres

How do I install Rmcp Postgres?

No package has been published for this server, so install it from source: clone the repository and follow its README.

Is Rmcp Postgres safe to use with an AI agent?

Its trust score is 34 out of 100 (low). It passes 1 of the 1 static security checks run so far. It has no ConduID identity yet, so agent calls to it are not receipted.

Is Rmcp Postgres still maintained?

The last commit was 9 months ago. That's long enough that you should check whether the maintainer is responding to issues before depending on it.