目录服务API

一个提供目录功能的MCP服务器,通过REST API层实现产品搜索、详情获取、分类浏览等功能,适用于电子商务和产品管理系统。

  • by artemkdr
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 artemkdr/mcp-server-catalog-with-api

使用说明

带API的MCP服务器目录

模型上下文协议(MCP)服务器,通过REST API层提供目录功能。该项目演示了一种适当的体系结构,其中MCP服务器充当目录API的客户端,而不是直接访问数据。

建筑

Claude/MCP Client → MCP Server → REST API Server → Mock Data
  • MCP服务器 (src/index.ts):使用REST API的MCP协议服务器
  • API客户端 (src/api-client.ts):用于与REST API通信的HTTP客户端
  • REST API服务器 (src/server-example/api-server.ts):API标准目录,包括产品的端点,
  • 模拟数据 (src/server-example/mock-data.ts):示例产品和类别数据类别、搜索等。

特性

MCP工具

  • search_products -搜索带有过滤器和分页的产品
  • get_product_details -获取详细的产品信息
  • get_categories -获取具有层次结构的产品类别
  • get_product_recommendations -获取产品推荐
  • check_product_availability -检查产品可用性和库存
  • get_popular_products -通过评分获取热门产品
  • get_price_range -获取类别的价格范围信息

REST API端点

  • GET /api/v1/products -列出具有过滤和分页功能的产品
  • GET /api/v1/products/search -搜索具有方面的产品
  • GET /api/v1/products/:id -获取产品详细信息
  • GET /api/v1/products/:id/recommendations -获取产品推荐
  • GET /api/v1/products/:id/availability -检查产品可用性
  • GET /api/v1/products/popular -获取热门产品
  • GET /api/v1/categories -列出具有层次结构的类别
  • GET /api/v1/categories/:id -获取类别详细信息
  • GET /api/v1/categories/:id/products -在类别中获取产品
  • GET /api/v1/categories/:id/price-range -获取类别的价格范围

入门指南

先决条件

安装

bun install

运行系统

  1. 启动API服务器 (1号航站楼):
bun api-server

这将启动上的REST API服务器http://localhost:3001

  1. 启动MCP服务器 (2号航站楼):
bun mcp-server

这将启动连接到API服务器的MCP服务器

发展

  • 带热重载的API服务器:
bun api-server
  • 跑linting:
bun lint
bun lint:fix

测试API

您可以直接测试REST API:

# Get all products
curl "http://localhost:3001/api/v1/products"

# Search products
curl "http://localhost:3001/api/v1/products/search?q=laptop"

# Get product details
curl "http://localhost:3001/api/v1/products/1"

# Get categories
curl "http://localhost:3001/api/v1/categories"

健康检查

检查API服务器是否正在运行:

curl "http://localhost:3001/health"

配置

API服务器

  • 端口: 3001 (可通过以下方式配置 PORT 环境变量)
  • CORS:为所有来源启用
  • 请求日志记录:已启用

MCP服务器

  • 协议:stdio传输
  • API客户端基础URL: http://localhost:3001

示例用法

两台服务器都运行后,您可以将MCP服务器与Claude或其他MCP客户端一起使用,以:

  1. 搜索产品:“查找1000美元以下的笔记本电脑”
  2. 获取推荐:“显示与产品ID 1相似的产品”
  3. 查看可用性:“产品5有库存吗?”
  4. 浏览类别:“有哪些可用的产品类别?”
  5. 查找热门商品:“给我看看最受欢迎的电子产品”