使用说明
PostgreSQL的MCP服务器
PostgreSQL的模型上下文协议(MCP)服务器实现,提供了一个通过MCP与PostgreSQL数据库交互的简单接口。
特性
- 使用参数化输入执行SQL查询
- 运行INSERT/UPDATE/DELETE操作
- 创建新数据库
- 创建或更新表架构
- 调试PostgreSQL连接
- 使用Docker进行容器化,便于部署
- 基于环境的配置
先决条件
- Python 3.8+
- PostgreSQL 10+
- Docker(可选,用于容器化部署)
- Docker Compose(可选,用于开发)
安装
使用Docker(推荐)
-
克隆存储库:
git clone https://github.com/asadudin/mcp-server-postgres.git cd mcp-server-postgres -
复制示例环境文件:
cp .env.example .env -
更新
.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 -
使用Docker Compose启动服务:
docker-compose up -d
手动安装
-
克隆存储库:
git clone https://github.com/asadudin/mcp-server-postgres.git cd mcp-server-postgres -
创建并激活虚拟环境:
python -m venv venv source venv/bin/activate # On Windows: .\venv\Scripts\activate -
安装依赖项:
pip install -r requirements.txt -
复制示例环境文件并更新:
cp .env.example .env # Edit .env with your configuration -
运行服务器:
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许可证获得许可-请参阅 许可证 文件以获取详细信息。