Back to MCP directory
publicPublicdnsLocal runtime

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

Runtime guide

cloud

Hosted runtime

Hosted servers run from a provider-managed environment. You usually connect the MCP client to the hosted endpoint or follow the provider's authorization flow, without keeping a local process alive

  1. Open provider connection page
  2. Authorize or copy endpoint
  3. Connect from your MCP client
terminal

Local runtime / other methods

Local servers run on your own machine or infrastructure. You normally copy the server_config into your MCP client, install the required package, and provide env variables from env_schema when needed

  1. Copy server_config
  2. Install required package
  3. Fill env variables and restart client