本项目是一个演示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功能,请按照以下步骤操作:

  1. 安装 Node.js: 确保你的机器上安装了 Node.js 22 或更高版本。
  2. 启动依赖服务: 在项目根目录打开终端,运行 Docker Compose 命令启动 PostgreSQL, Kafka, S3模拟等依赖服务。
    docker compose up -d
  3. 安装应用依赖: 安装Node.js应用的依赖包。
    npm install --omit=optional
  4. 启动主应用: 启动Node.js商品目录服务。
    npm run dev
    服务将在端口 '3000' 启动。

服务器配置

此项目不是一个独立的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功能。

基本使用方法

  1. 完成上述安装步骤,确保所有依赖和主应用正在运行。
  2. 在你的MCP客户端(例如,GitHub Copilot Chat在Visual Studio Code中),确保已配置并激活了对应的'Postgres MCP'服务器。
  3. 在聊天界面中,选择该MCP服务器作为Agent。
  4. 向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。

信息

分类

数据库与文件