PostgreSQL MCP服务器

一个为PostgreSQL数据库提供MCP协议接口的服务,支持SQL查询、数据操作、数据库创建和表结构管理。

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

使用说明

PostgreSQL的MCP服务器

PostgreSQL的模型上下文协议(MCP)服务器实现,提供了一个通过MCP与PostgreSQL数据库交互的简单接口。

特性

  • 使用参数化输入执行SQL查询
  • 运行INSERT/UPDATE/DELETE操作
  • 创建新数据库
  • 创建或更新表架构
  • 调试PostgreSQL连接
  • 使用Docker进行容器化,便于部署
  • 基于环境的配置

先决条件

  • Python 3.8+
  • PostgreSQL 10+
  • Docker(可选,用于容器化部署)
  • Docker Compose(可选,用于开发)

安装

使用Docker(推荐)

  1. 克隆存储库:

    git clone https://github.com/asadudin/mcp-server-postgres.git
    cd mcp-server-postgres
    
  2. 复制示例环境文件:

    cp .env.example .env
    
  3. 更新 .env 使用PostgreSQL凭据的文件:

    PG_HOST=postgres
    PG_PORT=5432
    PG_USER=postgres
    PG_PASSWORD=your_password
    PG_DATABASE=your_database
    HOST=0.0.0.0
    PORT=8056
    
  4. 使用Docker Compose启动服务:

    docker-compose up -d
    

手动安装

  1. 克隆存储库:

    git clone https://github.com/asadudin/mcp-server-postgres.git
    cd mcp-server-postgres
    
  2. 创建并激活虚拟环境:

    python -m venv venv
    source venv/bin/activate  # On Windows: .\venv\Scripts\activate
    
  3. 安装依赖项:

    pip install -r requirements.txt
    
  4. 复制示例环境文件并更新:

    cp .env.example .env
    # Edit .env with your configuration
    
  5. 运行服务器:

    python mcp_server_postgres.py
    

用法

MCP服务器提供以下端点:

sql_query

运行SELECT查询并以JSON格式返回结果。

参数:

  • query:SQL查询字符串
  • params:查询参数的可选JSON字符串(列表或字典)

例子:

{
  "query": "SELECT * FROM users WHERE id = $1",
  "params": [1]
}

sql_execute

执行INSERT/UPDATE/DELETE语句。

参数:

  • query:SQL语句
  • params:查询参数的可选JSON字符串(列表或字典)

例子:

{
  "query": "INSERT INTO users (name, email) VALUES ($1, $2)",
  "params": ["John Doe", "john@example.com"]
}

create_database

创建一个新的PostgreSQL数据库。

参数:

  • database_name:要创建的数据库的名称

create_or_update_table

创建或更新表架构。

参数:

  • sql:CREATE TABLE或ALTER TABLE SQL语句

debug_postgres_connection

调试PostgreSQL连接。

环境变量

变量 默认值 描述
PG_HOST 本地主机 PostgreSQL主机
PG_PORT 5432 PostgreSQL端口
PG_USER postgres PostgreSQL用户名
PG_PASSWORD PostgreSQL密码
PG_DATABASE postgres 默认数据库名称
HOST 0.0.0.0 将MCP服务器绑定到的主机
PORT 8056 运行MCP服务器的端口

发展

运行测试

# Install test dependencies
pip install -r requirements-dev.txt

# Run tests
pytest

构建Docker镜像

docker build -t mcp-server-postgres .

API文档

有关API的详细文档,请参阅 OpenAPI规范.

贡献

欢迎投稿!请随时提交拉取请求。

许可证

此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。

致谢