返回 MCP 目录
public公开dns本地运行

mcp-postgresql-demo

一个基于FastMCP的服务,允许语言模型连接并操作PostgreSQL数据库,提供模式探索、表结构查询和数据库查询功能。

article

README

🚀 MCP PostgreSQL 演示

本项目是一个 FastMCP 服务器,可让大型语言模型(LLMs)连接并与 PostgreSQL 数据库进行交互。它展示了如何利用模型上下文协议(MCP),使语言模型能够查询和探索数据库架构与表格。

✨ 主要特性

  • 架构探索:可检索有关数据库架构的元数据。
  • 表检查:能获取特定表的详细结构信息。
  • 数据库查询:可对数据库执行 SQL 查询。
  • YAML 格式:结果以 YAML 格式返回,方便 LLM 消费。

📦 安装指南

先决条件

  • Python 3.12 或更高版本
  • PostgreSQL 数据库
  • UV 包管理器(推荐)

安装步骤

  1. 克隆仓库:
git clone <repository-url>
cd mcp-demo
  1. 创建虚拟环境:
python -m venv .venv
source .venv/bin/activate  # 在 Windows 上:.venv\Scripts\activate
  1. 安装 UV(如果尚未安装):
pip install uv
  1. 使用 UV 安装依赖:
uv sync
  1. 配置环境变量:
  • 复制 .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 |

💻 使用示例

基础用法

  1. 首先,在 src/main.py 文件底部,取消注释以下内容以启用调试模式:
# from debugpy import _input, _output
  1. 现在你可以运行项目了。

高级用法

如果你想使用 Docker 运行项目,可以按照以下步骤操作:

  1. 将项目文件夹压缩为 .tar.gz 文件:
tar -czvf mcp-demo.tar.gz .
  1. 使用以下 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"]
  1. 构建镜像并运行:
docker build -t mcp-demo:latest .
docker run -p 5000:5000 --name mcp_demo mcp-demo:latest

📄 许可证

[在此处添加你的许可信息]

贡献者

help

运行方式说明

cloud

托管运行

托管运行通常表示这个 MCP Server 由服务方环境承载,用户一般按页面提供的连接方式或授权流程接入,不需要在本地长期启动一个 MCP 进程

  1. 打开服务方连接页
  2. 完成授权或复制端点
  3. 在 MCP 客户端中连接
terminal

本地运行 / 其它方式

本地运行通常需要用户在自己的电脑或服务器上安装依赖,把 server_config 复制到 MCP 客户端,并按 env_schema 补齐环境变量、密钥或其它配置

  1. 复制 server_config
  2. 安装所需依赖
  3. 补齐环境变量后重启客户端