PostgreSQL交互工具

一个提供PostgreSQL数据库交互工具的Model Context Protocol (MCP)服务器。

  • by sajithdilshan
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 sajithdilshan/simple-postgres-mcp

使用说明

PostgreSQL MCP服务器

一种模型上下文协议(MCP)服务器,提供与PostgreSQL数据库交互的工具。

工具

  • read_query -执行SELECT查询以从数据库中读取数据
  • list_tables -获取数据库中所有表的列表
  • describe_table -查看特定表的架构信息

安装

1.创建并激活虚拟环境

cd <path-to-project>
python3 -m venv .venv
source .venv/bin/activate  # On Windows: .venv\Scripts\activate

2.安装包装

pip install -e .

用法

服务器支持两种传输模式:

  • 标准 (默认)-标准输入/输出,用于直接MCP客户端集成
  • 超文本传输协议 -具有流式传输的HTTP,适用于独立服务器模式

命令行

postgres-mcp --host <host> --port <port> --database <database> --user <user> --password <password> [--transport stdio|http]

论据:

参数 必需 默认值 描述
--host 是 - PostgreSQL主机
--port 否 5432 PostgreSQL端口
--database 是 - 数据库名称
--user 是 - 数据库用户
--password 是 - 数据库密码
--transport 否 stdio 传输类型: stdio 或 http
--http-host 否 127.0.0.1 HTTP服务器的主机
--http-port 没有 8080 HTTP服务器端口

示例(stdio模式):

postgres-mcp --host localhost --port 5432 --database mydb --user admin --password secret

示例(HTTP模式):

postgres-mcp --host localhost --database mydb --user admin --password secret --transport http --http-port 8080

作为Python模块

python -m postgres_mcp --host localhost --database mydb --user admin --password secret

使用run.sh(用于具有IAM身份验证的AWS RDS)

这 run.sh 该脚本处理AWS RDS IAM身份验证和SSL配置:

./run.sh

此脚本:

  • 为RDS设置SSL证书
  • 通过以下方式生成临时IAM身份验证令牌 aws-vault
  • 在上以HTTP模式启动MCP服务器 http://127.0.0.1:8080/mcp
  • 在运行脚本之前,您需要为凭据和RDS连接详细信息配置环境变量。

MCP客户端配置

HTTP模式(建议用于AWS RDS/复杂环境)

  1. 在具有正确环境的终端中启动服务器:

    ./run.sh
    
  2. 配置您的MCP客户端:

    对于直接支持HTTP的客户端(例如Cursor):

    {
      "mcpServers": {
        "postgres": {
          "type": "streamable-http",
          "url": "http://127.0.0.1:8080/mcp"
        }
      }
    }
    

    对于只支持stdio的客户端(例如Claude Code):

    使用stdio到HTTP代理:

    {
      "mcpServers": {
        "postgres": {
          "command": "<path-to-project>/.venv/bin/postgres-mcp-proxy",
          "args": ["--server-url", "http://127.0.0.1:8080/mcp"]
        }
      }
    }
    

标准模式(用于简单设置)

直接执行

克劳德桌面版 (~/Library/Application Support/Claude/claude_desktop_config.json):

{
  "mcpServers": {
    "postgres": {
      "command": "<path-to-project>/.venv/bin/postgres-mcp",
      "args": [
        "--host", "localhost",
        "--port", "5432",
        "--database", "mydb",
        "--user", "admin",
        "--password", "secret"
      ]
    }
  }
}

克劳德代码:

{
  "mcpServers": {
    "postgres": {
      "command": "<path-to-project>/.venv/bin/postgres-mcp",
      "args": [
        "--host", "localhost",
        "--port", "5432",
        "--database", "mydb",
        "--user", "admin",
        "--password", "secret"
      ]
    }
  }
}

发展

在开发模式下安装

pip install -e .

项目结构

db-mcp/
├── pyproject.toml
├── README.md
├── run.sh                   # AWS RDS launcher script
└── src/
    └── postgres_mcp/
        ├── __init__.py
        ├── __main__.py      # CLI entry point
        ├── database.py      # Connection pool management
        ├── server.py        # MCP server implementation
        └── proxy.py         # Stdio-to-HTTP proxy for Claude Code