MCP Demo App
About
A simple Node.js/Express API server using TypeScript for managing products and orders, with Model Context Protocol (MCP) integration.
Details
- Author
- sameerfa
- Downloads
- 269
- Categories
- Developer Tools, API
Jump to
- RESTful API for products and orders
- Bearer token authentication
- Data stored in JSON files
- MCP server with four query tools
- TypeScript for type safety
Install dependencies with npm install, then build using npm run build. Run the REST API server with npm run dev (development) or npm start (production). Run the MCP server separately with npm run mcp. All API endpoints except /health require a valid Bearer token in the Authorization header.
MCP Demo App
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.





