返回市场
postgresql-mcp

postgresql-mcp

作者:tyrchen30 星标更新:2025-08-30

项目介绍

Postgres MCP

Postgres MCP 是针对 PostgreSQL 数据库的模型上下文协议(MCP)实现。它提供了一组明确定义的命令,使AI代理能够与 PostgreSQL 数据库进行标准化交互。

功能

  • 连接管理

    • 注册和注销数据库连接
    • 支持多个并发数据库连接
    • 连接池以高效管理资源
  • 数据库操作

    • 执行 SELECT 查询
    • 插入新记录
    • 更新现有记录
    • 删除记录
    • 创建和删除表
    • 创建和删除索引
    • 描述表结构
    • 列出模式中的表
  • SQL 验证

    • 内置 SQL 解析器用于验证语句
    • 支持 PostgreSQL 特定语法
    • 安全检查以确保仅执行允许的操作

安装

cargo install postgres-mcp

使用

配置

在您的 MCP 配置文件中添加以下内容:

{
  "mcpServers": {
    "postgres": {
      "command": "postgres-mcp",
      "args": ["stdio"]
    }
  }
}

或在 SSE 模式下运行:

首先,在 SSE 模式下启动 postgres-mcp 服务器:

postgres-mcp sse

然后,配置 MCP 配置文件以使用 SSE 模式:

{
  "mcpServers": {
    "postgres": {
      "url": "http://localhost:3000/sse"
    }
  }
}

一旦启动了 postgres-mcp 服务器,您应该看到 MCP 配置的状态变为绿色,如下图所示(光标):

mcp-status

然后,您可以通过代理与其进行交互,如下图所示(光标):

mcp

命令

注册一个数据库连接

pg_mcp register "postgres://postgres:postgres@localhost:5432/postgres"
# 返回一个连接ID(UUID)

注销一个连接

pg_mcp unregister <connection_id>

执行一个 SELECT 查询

pg_m_ cp query <connection_id> "SELECT * FROM users"

插入数据

pg_mcp insert <connection_id> "INSERT INTO users (name, email) VALUES ('John Doe', 'john.doe@example.com')"

更新数据

pg_mcp update <connection_id> "UPDATE users SET name = 'Jane Doe' WHERE id = 1"

删除数据

pg_mcp delete <connection_id> "users" "1"

创建一个表

pg_mcp create <connection_id> "CREATE TABLE users (id SERIAL PRIMARY KEY, name VARCHAR(255), email VARCHAR(255))"

删除一个表

pg_mcp drop <connection_id> "users"

创建一个索引

pg_mcp create_index <connection_id> "CREATE INDEX idx_users_name ON users (name)"

删除一个索引

pg_mcp drop_index <connection_id> "idx_users_name"

描述一个表

pg_mcp describe <connection_id> "users"

依赖项

  • Rust 1.70 或更高版本
  • PostgreSQL 12 或更高版本
  • 必需的 Rust 包:
    • anyhow: 1.0
    • arc-swap: 1.7
    • sqlx: 0.8(带有 "runtime-tokio", "tls-rustls-aws-lc-rs", "postgres" 功能)
    • rmcp: 0.1(带有 "server", "transport-sse-server", "transport-io" 功能)
    • schemars: 0.8
    • sqlparser: 0.55
    • tokio: 1.44

开发

从源码构建:

git clone https://github.com/yourusername/postgres-mcp.git
cd postgres-mcp
cargo build --release

许可证

MIT 许可证。详情见 LICENSE.md

贡献

欢迎贡献!请打开一个问题或提交一个拉取请求。