article
README
🚀 MCP PostgreSQL 演示
本项目是一个 FastMCP 服务器,可让大型语言模型(LLMs)连接并与 PostgreSQL 数据库进行交互。它展示了如何利用模型上下文协议(MCP),使语言模型能够查询和探索数据库架构与表格。
✨ 主要特性
- 架构探索:可检索有关数据库架构的元数据。
- 表检查:能获取特定表的详细结构信息。
- 数据库查询:可对数据库执行 SQL 查询。
- YAML 格式:结果以 YAML 格式返回,方便 LLM 消费。
📦 安装指南
先决条件
- Python 3.12 或更高版本
- PostgreSQL 数据库
- UV 包管理器(推荐)
安装步骤
- 克隆仓库:
git clone <repository-url>
cd mcp-demo
- 创建虚拟环境:
python -m venv .venv
source .venv/bin/activate # 在 Windows 上:.venv\Scripts\activate
- 安装 UV(如果尚未安装):
pip install uv
- 使用 UV 安装依赖:
uv sync
- 配置环境变量:
- 复制
.env.example到.env - 根据 PostgreSQL 配置更新值
📚 详细文档
资源
服务器公开以下 MCP 资源:
database://{schema}- 获取指定架构中所有表格的信息database://{schema}/tables/{table}- 获取特定表的详细信息
工具
query_database- 对数据库执行 SQL 查询(仅限 SELECT 查询)
提示
服务器包含以下预定义提示:
prompt_schema_description- 请求某个数据库架构的描述prompt_table_description- 请求某个特定表格的描述prompt_query_database- 请求从特定表中获取数据
配置
应用程序使用以下环境变量进行配置: | 变量名 | 描述 | 默认值 | |-----------|------------------|----------| | APP_NAME | 应用程序名称 | mcp-demo | | DB_HOST | PostgreSQL 主机 | localhost| | DB_PORT | PostgreSQL 端口 | 5432 | | DB_USER | PostgreSQL 用户名 | postgres | | DB_PASSWORD| PostgreSQL 密码 | postgres | | DB_NAME | PostgreSQL 数据库名| postgres |
💻 使用示例
基础用法
- 首先,在
src/main.py文件底部,取消注释以下内容以启用调试模式:
# from debugpy import _input, _output
- 现在你可以运行项目了。
高级用法
如果你想使用 Docker 运行项目,可以按照以下步骤操作:
- 将项目文件夹压缩为
.tar.gz文件:
tar -czvf mcp-demo.tar.gz .
- 使用以下 Dockerfile 构建镜像:
# 基础镜像
FROM python:3.8-slim
# 作者信息
LABEL maintainer="Ricardo Santos <ricardo.santos.diaz@gmail.com>"
# 安装依赖
EXPOSE 5000
RUN mkdir -p /app
WORKDIR /app
COPY . .
RUN pip install --no-cache-dir -r requirements.txt
# 运行命令
CMD ["python", "main.py"]
- 构建镜像并运行:
docker build -t mcp-demo:latest .
docker run -p 5000:5000 --name mcp_demo mcp-demo:latest
📄 许可证
[在此处添加你的许可信息]
贡献者
- Ricardo Santos ricardo.santos.diaz@gmail.com
微信扫一扫