modelscope·@LostInBrittany/RAGmonsters-mcp-pg
暂无描述。
本仓库展示了一种更高级的方法,通过模型上下文协议(MCP)将大型语言模型(LLMs)与数据库集成。虽然通用的 MCP PostgreSQL 服务器允许 LLMs 通过原始 SQL 查询来探索数据库,但此项目采取了不同的方法,创建了一个自定义 MCP 服务器,提供针对应用程序需求量身定制的特定领域 API。
该实现使用了 FastMCP,这是一种高性能的 Model Context Protocol 实现,为基于工具的 LLM 交互提供了更高的效率和可靠性。
该项目以 RAGmonsters 数据集为基础。RAGmonsters 是一个开源项目,提供了一个丰富的虚构怪物数据集,包含各种属性、能力和关系——特别设计用于演示和测试检索增强生成(RAG)系统。
通用 MCP PostgreSQL 服务器为 LLMs 提供了一个 query 工具,使它们能够:
尽管这种方法有效,但在实际应用中存在几个限制:
RAGmonsters 是一个专门为测试和演示检索增强生成(RAG)系统而设计的开放数据集。它包含了具有丰富属性、能力和关系的虚构怪物信息——非常适合自然语言查询演示。
PostgreSQL 版本的 RAGmonsters 提供了一个结构良好的关系型数据库,包含多个表和关系,包括:
这个丰富且相互关联的数据集非常适合展示特定领域的 API 与通用 SQL 访问相比的优势。
该项目展示了如何构建一个自定义 MCP 服务器,为 RAGmonsters 数据集提供更高层次的特定领域 API。我们的 MCP 服务器不暴露原始 SQL 功能,而是提供专门构建的功能,这些功能:
该项目包括两个主要界面,用于与 RAGmonsters 数据集进行交互:
一个专注于数据的界面,通过 MCP API 探索和过滤 RAGmonsters 数据集:
一个自然语言界面,用于与 RAGmonsters 数据集进行交互:

此界面允许用户:
用户: "哪些是最强攻击力量且对火属性脆弱的前3个怪物?"
LLM: (必须理解模式、连接和 SQL 语法)
用户: "哪些是最强攻击力量且对火属性脆弱的前3个怪物?"
LLM: (使用我们的特定领域 API)
├── .env.example # 环境变量示例 ├── package.json # Node.js 项目配置 ├── README.md # 本文档 ├── img/ # 文档图片 ├── scripts/ │ ├── testMcpServer.js # MCP 服务器测试脚本 │ └── testLogger.js # 测试脚本日志记录器 ├── src/ │ ├── index.js # 主应用程序服务器 │ ├── mcp-server/ # 使用 FastMCP 实现的自定义 MCP 服务器 │ │ ├── index.js # 服务器入口点 │ │ ├── tools/ # 特定领域的工具 │ │ │ ├── index.js # 工具注册 │ │ │ └── monsters.js # 怪物相关操作 │ │ └── utils/ # 辅助工具 │ │ └── logger.js # 日志功能 │ ├── llm.js # LLM 的 LangChain 集成 │ └── public/ # Web 界面文件 │ ├── index.html # 怪物浏览器界面 │ └── chat.html # 用于 LLM 交互的聊天界面
npm install3. 将 .env.example 复制为 .env 并配置您的 PostgreSQL 连接字符串和 LLM API 密钥npm run testnpm run test:llmnpm startMCP 服务器提供了以下工具:
getMonsters - 获取怪物列表,可选过滤、排序和分页
getMonsterById - 根据 ID 获取特定怪物的详细信息
add - 简单的工具用于添加两个数字(用于测试)
该项目使用现代方法将 LLM 与特定领域的工具集成:
应用程序使用了 LangGraph 的 ReAct(推理和行动)代理模式,该模式:
项目包括一个测试脚本,演示如何使用 LangChain.js 将 LLM 与 MCP 服务器集成:
npm run test:llm
此脚本:
您可以在脚本中修改测试查询以探索系统的不同功能。脚本位于 scripts/testLlmWithMcpServer.js。
创建一个 .env 文件,并设置以下变量:
POSTGRESQL_ADDON_URI=postgres://username:password@host:port/database
LLM_API_KEY=your_openai_api_key LLM_API_MODEL=gpt-4o-mini LLM_API_URL=https://api.openai.com/v1
应用程序支持任何与 OpenAI 兼容的 API,包括自托管模型和替代提供商。
安装 Clever Cloud CLI: bash npm install -g clever-tools
登录您的 Clever Cloud 账户: bash clever login
创建一个新的应用程序: bash clever create --type node <APP_NAME>
添加您的域名(可选但推荐): bash clever domain add <YOUR_DOMAIN_NAME>
创建 PostgreSQL 插件并将其链接到您的应用程序: bash clever addon create <APP_NAME>-pg --plan dev clever service link-addon <APP_NAME>-pg
这将自动在您的应用程序中设置 POSTGRESQL_ADDON_URI 环境变量。
设置所需的环境变量: bash clever env set LLM_API_KEY "your-openai-api-key" clever env set LLM_API_MODEL "gpt-4o-mini" # 可选,默认为 gpt-4o-mini clever env set LLM_API_URL "https://api.your-llm-provider.com" # 可选,用于替代 OpenAI 兼容提供商
部署您的应用程序: bash clever deploy
打开您的应用程序: bash clever open### 使用Clever Cloud控制台
您也可以直接从[Clever Cloud控制台](https://console…
审计 npm 包依赖项以查找安全漏洞,提供详细的报告和修复建议,并集成 MCP。
通过API层将克劳德桌面版直接连接到数据库,使其能够探索数据库结构、编写SQL查询、分析数据集和创建报告。该API层还包含用于表探索和查询执行的工具。
DBCode 是一个 Visual Studio Code 扩展,允许你管理许多数据库,包括 PostgreSQL、MySQL、SQL Server、DuckDB、Redis、MongoDB 等更多数据库。 DBCode 提供了运行 MCP 服务器的选项,可以访问这些数据库、它们的模式以及执行查询的能力。
AI 首选的统一数据访问通道,支持30多种数据源(阿里云全系/主流数据库/数仓)的安全访问。
后端服务,实现了模型控制面板协议,可连接到 Apache Doris 数据库,允许用户执行 SQL 查询、管理元数据,并且有可能利用大语言模型(LLMs)完成自然语言到 SQL 的转换等任务。
提供对Excel文件的操纵功能。此服务器启用工作簿创建、数据操纵、格式设置和高级Excel功能。