🍽️ MCP Restaurant Ordering API Server
@sachnaror
MCP API server example : where customers can order from a fun dummy restaurant menu, track order status (success/failed), and view order history. Fully RESTful, plug-and-play, and perfect for testing MCP integrations.
Overview
What is MCP Restaurant Ordering API Server?
It is an MCP-compatible Restaurant API built with Django and Django REST Framework that simulates customer orders from a dummy restaurant menu and tracks their status in real time. It follows the Model‑Context‑Protocol pattern and is ideal for integration with any MCP server.
How to use MCP Restaurant Ordering API Server?
Clone the repository, set up a Python virtual environment, install dependencies from requirements.txt, configure a SECRET_KEY and DEBUG in .env, run migrations, and start the development server with python manage.py runserver. Use cURL or any HTTP client to interact with the RESTful endpoints at http://localhost:8000/api/, for example POST /api/orders/ to place an order or GET /api/orders/recent/?hours=2 to retrieve recent orders.
Key features of MCP Restaurant Ordering API Server
- Follows Model‑Context‑Protocol (MCP) pattern
- Simulates customer orders from a dummy menu
- Tracks order status in real time
- Provides six RESTful API endpoints
- Built with Python 3.11+, Django 5.x, and Django REST Framework
- Uses SQLite as the development database
Use cases of MCP Restaurant Ordering API Server
- Testing restaurant ordering and status workflows
- Integrating structured order data into AI or automation pipelines
- Prototyping order management dashboards
- Demonstrating the MCP pattern in educational contexts
FAQ from MCP Restaurant Ordering API Server
What dependencies does it require?
Python 3.11+, Django 5.x, Django REST Framework, SQLite, and python‑dotenv.
Does it include user authentication?
Not currently. Token‑based user authentication is listed on the roadmap as an optional future feature.
Which database is used?
SQLite is used as the development database (defined in settings and stored as db.sqlite3).
How do I place a new order?
Send a POST request to /api/orders/ with a JSON payload containing item_name and status, for example { "item_name": "Pizza", "status": "success" }.
What API endpoints are available?
Base URL is /api/. Endpoints include POST /orders/ (create), GET /orders/ (list), GET /orders/{id}/ (detail), PUT /orders/{id}/ (update), DELETE /orders/{id}/ (delete), and GET /orders/recent/?hours=2 (recent orders).