Restaurant Backend MCP Server
by PasanIS
README.md
# Restaurant Backend MCP Server
### MCP (Model Context Protocol) server for interacting with the Restaurant FastAPI backend.
## Installation
cd mcp-servers/backend-mcp
uv sync
## Configuration
Update the BASE_URL in src/backend_mcp/server.py to match your FastAPI backend URL:
(python)
BASE_URL = "http://localhost:8000" # Change this to your backend URL
## Available Tools
### Menu Management
- get_menu_items - Browse menu items with filters
- get_menu_item_details - Get detailed item information
- create_menu_item - Add new menu items (staff only)
- update_menu_item - Update existing items (staff only)
### Order Management
- create_order - Place new orders
- get_order_details - Get order information
- get_customer_orders - Get all orders for a customer
- get_orders_by_status - Filter orders by status
- update_order_status - Update order status
- get_order_journey - View order status history
- get_filtered_orders - Advanced order filtering
### Customer Management
- register_customer - Create new customer account
- get_customer_profile - Get customer information
- update_customer_profile - Update customer details
- customer_login - Authenticate customer
### Promo Codes
- apply_promo_code - Validate and calculate discounts
- get_promo_details - Get promo code information
### Reviews
- get_order_reviews - Get order reviews
- create_review - Submit a review
### Analytics
- get_dashboard_stats - Overall statistics
- get_popular_items - Most ordered items
- get_revenue_stats - Revenue analysis
### Staff Operations
- staff_login - Staff authentication
### System
- check_backend_health - Backend health check
## Running the Server
### For Development/Testing
uv run python -m backend_mcp.server
### As MCP Server (for Claude Desktop)
#### Add to your Claude Desktop config:
(.json)
{
"mcpServers": {
"restaurant-backend": {
"command": "uv",
"args": [
"--directory",
"/path/to/mcp-servers/backend-mcp",
"run",
"backend-mcp"
]
}
}
}
### Testing
uv run python test_server.py
**Make sure your FastAPI backend is running before testing.
### Environment Variables
You can override the backend URL using environment variables:
export BACKEND_URL="http://<your-backend-url>:8000"
## Architecture
Chatbot (Claude)
↓ (MCP Protocol)
Backend MCP Server
↓ (HTTP/REST)
FastAPI Backend
↓
Database
## Next
- Create Database MCP Server for direct SQL operations
Implement authentication/authorization
- Add error handling and retry logic
- Add caching for frequently accessed dataTDQS
D1.9/5.0
Scored across 24 tools
Disambiguation4/5
Most tools target distinct resources and actions, but get_orders_by_status and get_filtered_orders could overlap, and get_order_details vs get_order_journey might cause confusion.
Naming Consistency4/5
Predominantly uses verb_noun snake_case, but inconsistencies like singular/plural (menu_items vs menu_item_details) and 'staff_login' (noun-style) break the pattern slightly.
Tool Count4/5
24 tools cover multiple domains (menu, orders, customers, etc.) reasonably; slightly high but not excessive given the scope.
Completeness4/5
Covers CRUD for most entities but lacks delete operations for menu items, promotions, and reviews; minor gaps but overall comprehensive.
Maintenance
ActivityInactive
ResponsivenessNo issues