项目简介
本项目是Cymbal Superstore微服务应用的一部分,提供了一个基于TypeScript实现的、符合Model Context Protocol (MCP) 规范的库存管理后端服务。它允许大型语言模型 (LLM) 客户端通过标准化的JSON-RPC协议,以工具调用的方式访问和操作库存数据,例如查询商品信息或初始化数据库。
主要功能点
- 获取所有商品: 允许LLM客户端调用工具来检索库存中所有商品的详细信息。
- 根据ID获取商品: 提供按商品唯一ID查询特定商品信息的功能。
- 初始化数据库: 提供工具来清空并重新填充库存数据库,用于测试或重置数据。
- API根路径问候: 返回一个简单的问候语,确认服务正在运行。
安装步骤
- 克隆仓库:
git clone https://github.com/xbill9/gemini-cli-codeassist.git cd gemini-cli-codeassist - 切换到TypeScript MCP服务目录:
cd mcp-ts - 安装依赖:
npm install - 配置环境变量:
创建 '.env' 文件或在运行环境中设置以下环境变量:
- 'PORT': MCP服务器监听的端口,默认为 '3000'。
- 'PROJECT_ID': 您的Google Cloud项目ID,用于连接Firestore数据库。 确保您已正确配置Google Cloud SDK和Firestore数据库。
- 构建并运行服务:
或者直接使用Node.js运行编译后的文件 (假设编译到'dist'目录):npm run build # 编译TypeScript代码 npm start # 启动Node.js服务器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'等)。
基本使用方法
- 启动MCP服务器: 按照上述安装步骤,确保Cymbal Superstore库存MCP服务正在运行。
- MCP客户端连接: 您的LLM应用或MCP客户端通过JSON-RPC协议连接到服务器的 '/mcp' 端点。
- 调用工具: 客户端可以调用服务器注册的工具,例如:
- 'get_products()': 获取所有商品列表。
- 'get_product_by_id(id: string)': 根据商品ID获取特定商品。
- 'seed_database()': 初始化或重置数据库。
例如,LLM客户端可能会发送一个JSON-RPC请求来调用 'get_products' 工具,服务器将返回一个包含所有商品数据的JSON-RPC响应。
信息
分类
数据库与文件