MCP Demo App
About
A simple Node.js/Express API server using TypeScript for managing products and orders, with Model Context Protocol (MCP) integration.
Explore
- RESTful API for products and orders
- Bearer token authentication
- Data stored in JSON files
- MCP server exposing tools for product/order queries
- TypeScript for type safety
- Node.js (v16+ recommended)
- npm
npm install
All API endpoints (except /health) require a Bearer token. Example valid tokens:
- valid_token_123
- client_abc_token
Include the token in the Authorization header:
Authorization: Bearer valid_token_123
The MCP server (src/mcpServer.ts) exposes the following tools:
- getProductInfo(productId) — Get product details and related orders
- listProducts() — List all products
- getProductOrders(productId) — Get all orders for a product
- searchProducts(query) — Search products by name or category
A simple Node.js/Express API server using TypeScript for managing products and orders, with Model Context Protocol (MCP) integration.
Features
- RESTful API for products and orders - Bearer token authentication - Data stored in JSON files - MCP server exposing tools for product/order queries - TypeScript for type safetyProject Structure
├── 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
Getting Started
Prerequisites
- Node.js (v16+ recommended) - npmInstall Dependencies
npm install
Build the Project
npm run build
Run the API Server
npm run dev # For development (with nodemon)
npm start # For production (after build)
Run the MCP Server
npm run mcp
Authentication
All API endpoints (except/health) require a Bearer token. Example valid tokens:
- valid_token_123
- client_abc_token
Include the token in the Authorization header:
Authorization: Bearer valid_token_123
API Endpoints
Health Check
-GET /health — Returns { status: 'ok' }
Products
-GET /products — List all products
- GET /products/:productId — Get product by ID
Orders
-GET /orders — List all orders (optionally filter by customerId)
- GET /orders/:orderId — Get order by ID
MCP Server Tools
The MCP server (src/mcpServer.ts) exposes the following tools: -getProductInfo(productId) — Get product details and related orders
- listProducts() — List all products
- getProductOrders(productId) — Get all orders for a product
- searchProducts(query) — Search products by name or category
Example Data
Products (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 }
]
Orders (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" }
]
Development Notes
- TypeScript config: seetsconfig.json
- Ignored files: dist/, node_modules/
- Data is persisted in JSON files in src/data/
License
MITSign in to leave a review
Use Google, GitHub, or an email account so ratings stay tied to real people.
No reviews posted yet.



