本项目是一个演示Node.js商品目录服务的示例,集成了多种服务和现代开发实践。特别之处在于,它提供了“Postgres MCP”功能,允许兼容MCP协议的LLM客户端(如GitHub Copilot Chat)访问和查询商品目录数据库的数据。
主要功能点
- 商品管理: 提供REST API用于创建、获取商品信息。
- 外部服务集成: 整合库存服务(模拟)、S3存储服务(模拟)、Kafka消息队列。
- 容器化开发: 利用Docker Compose搭建开发环境,包含PostgreSQL, Kafka, LocalStack (S3模拟), WireMock (库存模拟)等。
- MCP数据访问: 通过配置MCP,允许LLM客户端直接查询商品目录数据库(PostgreSQL)的数据。
安装步骤
要运行此项目并体验MCP功能,请按照以下步骤操作:
- 安装 Node.js: 确保你的机器上安装了 Node.js 22 或更高版本。
- 启动依赖服务: 在项目根目录打开终端,运行 Docker Compose 命令启动 PostgreSQL, Kafka, S3模拟等依赖服务。
docker compose up -d - 安装应用依赖: 安装Node.js应用的依赖包。
npm install --omit=optional - 启动主应用: 启动Node.js商品目录服务。
服务将在端口 '3000' 启动。npm run dev
服务器配置
此项目不是一个独立的MCP服务器进程,而是通过MCP客户端的配置来暴露其部分能力(主要是数据库访问)。在你的MCP客户端(例如,配置了MCP的Visual Studio Code),你需要添加一个服务器配置来连接到此运行中的服务。
配置的关键信息通常需要指定如何启动或连接到此服务的MCP能力。根据项目说明,你需要先确保 依赖服务 和 主应用 都已启动 ('docker compose up' 和 'npm run dev' 运行后)。然后,在你的MCP客户端配置中,指定服务器名称(例如:“Postgres MCP”),并配置它如何与已运行的服务交互。
- 服务器名称: 'Postgres MCP' (建议使用,与项目文档一致)
- 连接方式: 通常通过MCP客户端(如VS Code的'mcp.json'文件)来启动或连接到此服务的MCP接口。你需要根据你的客户端文档配置指向此服务的方式。项目文档中提到点击'mcp.json'中的“Start”来启动。
请注意:MCP客户端配置(如'command', 'args'等)是针对你的具体MCP客户端环境的,通常用于告诉客户端如何启动MCP服务器进程或连接到已有的MCP接口。对于本项目,你需要确保Node.js应用已运行,然后通过客户端的UI或配置激活对应的MCP功能。
基本使用方法
- 完成上述安装步骤,确保所有依赖和主应用正在运行。
- 在你的MCP客户端(例如,GitHub Copilot Chat在Visual Studio Code中),确保已配置并激活了对应的'Postgres MCP'服务器。
- 在聊天界面中,选择该MCP服务器作为Agent。
- 向Agent提问与商品目录数据库相关的问题,例如:
- 'List the data from the products table' (列出 products 表中的数据)
- 'Show me products with price less than 50' (显示价格低于 50 的商品)
- 'Find product with UPC 100000000001' (查找 UPC 为 100000000001 的商品)
该MCP接口将解释你的请求,查询运行中的商品目录服务所连接的数据库,并将结果返回给LLM。
信息
分类
数据库与文件