项目简介

本项目是Cymbal Superstore微服务应用的一部分,提供了一个基于TypeScript实现的、符合Model Context Protocol (MCP) 规范的库存管理后端服务。它允许大型语言模型 (LLM) 客户端通过标准化的JSON-RPC协议,以工具调用的方式访问和操作库存数据,例如查询商品信息或初始化数据库。

主要功能点

  • 获取所有商品: 允许LLM客户端调用工具来检索库存中所有商品的详细信息。
  • 根据ID获取商品: 提供按商品唯一ID查询特定商品信息的功能。
  • 初始化数据库: 提供工具来清空并重新填充库存数据库,用于测试或重置数据。
  • API根路径问候: 返回一个简单的问候语,确认服务正在运行。

安装步骤

  1. 克隆仓库:
    git clone https://github.com/xbill9/gemini-cli-codeassist.git
    cd gemini-cli-codeassist
  2. 切换到TypeScript MCP服务目录:
    cd mcp-ts
  3. 安装依赖:
    npm install
  4. 配置环境变量: 创建 '.env' 文件或在运行环境中设置以下环境变量:
    • 'PORT': MCP服务器监听的端口,默认为 '3000'。
    • 'PROJECT_ID': 您的Google Cloud项目ID,用于连接Firestore数据库。 确保您已正确配置Google Cloud SDK和Firestore数据库。
  5. 构建并运行服务:
    npm run build # 编译TypeScript代码
    npm start     # 启动Node.js服务器
    或者直接使用Node.js运行编译后的文件 (假设编译到'dist'目录):
    node dist/index.js

服务器配置(供MCP客户端使用)

MCP客户端连接此MCP服务器时,需要配置以下信息:

  • server name: 'inventory-server'
  • command: 启动MCP服务器进程的命令。例如,如果您通过Node.js运行编译后的JavaScript文件(假设是'dist/index.js'),则命令可以是 'node'。
  • args: 传递给 'command' 的参数。例如,对于上述情况,参数可以是 '["dist/index.js"]'。
  • env: 必要的环境变量,通常包括 'PORT' (MCP服务器监听的端口,默认为3000) 和 'PROJECT_ID' (您的Google Cloud项目ID,用于连接Firestore数据库)。
  • url: MCP服务器的端点URL,例如 'http://localhost:3000/mcp',或指示其他传输协议(如'stdio'、'websocket'等)。

基本使用方法

  1. 启动MCP服务器: 按照上述安装步骤,确保Cymbal Superstore库存MCP服务正在运行。
  2. MCP客户端连接: 您的LLM应用或MCP客户端通过JSON-RPC协议连接到服务器的 '/mcp' 端点。
  3. 调用工具: 客户端可以调用服务器注册的工具,例如:
    • 'get_products()': 获取所有商品列表。
    • 'get_product_by_id(id: string)': 根据商品ID获取特定商品。
    • 'seed_database()': 初始化或重置数据库。

例如,LLM客户端可能会发送一个JSON-RPC请求来调用 'get_products' 工具,服务器将返回一个包含所有商品数据的JSON-RPC响应。

信息

分类

数据库与文件