MCP演示应用程序
一个简单的Node.js/Express API服务器,使用TypeScript管理产品和订单,并集成模型上下文协议(MCP)。
特性
- 用于产品和订单的RESTful API
- 承载令牌身份验证
- 存储在JSON文件中的数据
- MCP服务器公开产品/订单查询工具
- TypeScript用于类型安全
项目结构
├── src/
│ ├── server.ts # Main Express API server
│ ├── mcpServer.ts # MCP server exposing tools
│ └── data/
│ ├── products.json # Product data
│ └── orders.json # Order data
├── dist/ # Compiled JS output
├── package.json # Project metadata and scripts
├── tsconfig.json # TypeScript config
└── .gitignore # Ignored files入门指南
先决条件
- Node.js(建议使用v16+)
- npm
再进行
npm install构建项目
npm run build运行API服务器
npm run dev # For development (with nodemon)
npm start # For production (after build)运行MCP服务器
npm run mcp认证
所有API端点(除 /health)需要不记名代币。有效令牌示例:
valid_token_123client_abc_token
将令牌包含在 Authorization 头球
Authorization: Bearer valid_token_123API终点
健康检查
GET /health--退货{ status: 'ok' }
产品
GET /products--列出所有产品GET /products/:productId--按ID获取产品
订单
GET /orders--列出所有订单(可选按以下条件筛选customerId)GET /orders/:orderId--按ID获取订单
MCP服务器工具
MCP服务器(src/mcpServer.ts)公开了以下工具:
getProductInfo(productId)--获取产品详细信息和相关订单listProducts()--列出所有产品getProductOrders(productId)--获取产品的所有订单searchProducts(query)--按名称或类别搜索产品
示例数据
产品中心(src/data/products.json)
[
{ "id": "p1", "name": "Cloud Widget", "category": "Widgets", "price": 99.99 },
{ "id": "p2", "name": "Data Analyzer", "category": "Analytics", "price": 199.99 },
{ "id": "p3", "name": "API Gateway", "category": "Infrastructure", "price": 149.99 }
]订单(src/data/orders.json)
[
{ "id": "o101", "productId": "p1", "customerId": "cust_abc", "quantity": 2, "orderDate": "2023-10-26T10:00:00Z", "status": "shipped" },
{ "id": "o102", "productId": "p2", "customerId": "cust_xyz", "quantity": 1, "orderDate": "2023-10-27T15:30:00Z", "status": "processing" },
{ "id": "o103", "productId": "p3", "customerId": "cust_abc", "quantity": 3, "orderDate": "2023-10-28T09:15:00Z", "status": "delivered" }
]开发说明
- TypeScript配置:请参阅
tsconfig.json - 忽略的文件:
dist/,node_modules/ - 数据保存在JSON文件中
src/data/
许可证
麻省理工学院
