MCP Restaurant Ordering API Server
by sachnaror
README.md
# ๐ฝ๏ธ MCP Restaurant Ordering API Server




Welcome to the **MCP-compatible Restaurant API** built with Django + Django REST Framework.
Simulate customer orders from a dummy restaurant menu and track their **status** in real-time .
Ideal for integration with any MCP server.
---
## ๐ง Why MCP Server?
We call this an **MCP server** because it follows the **Model-Context-Protocol** pattern:
- **Model** โ The `Order` model defines the data structure (items, status, time).
- **Context** โ Recent queries like `/recent/?hours=2` give contextual insights (e.g., last 2 hours).
- **Protocol** โ RESTful APIs define a structured communication protocol.
Think of it like a food court AI assistant:
๐ **Model** = What's on the menu
โฐ **Context** = What's trending now
๐ก **Protocol** = How it communicates with you (API)
This makes it ideal for plugging into larger AI/automation pipelines where structured data, temporal context, and clean APIs matter.
## ๐ Project Directory
```
โโโ mcp_server/
โ โโโ requirements.txt
โ โโโ db.sqlite3
โ โโโ README.md
โ โโโ .env
โ โโโ manage.py
โ โโโ orders/
โ โ โโโ models.py
โ โ โโโ serializers.py
โ โ โโโ apps.py
โ โ โโโ admin.py
โ โ โโโ tests.py
โ โ โโโ urls.py
โ โ โโโ views.py
โ โโโ mcp_server/
โ โ โโโ asgi.py
โ โ โโโ settings.py
โ โ โโโ urls.py
โ โ โโโ wsgi.py
```
---
## ๐ Quickstart
```
# 1. Clone the repo
git clone https://github.com/sachnaror/restaurant-mcp-server.git
cd restaurant-mcp-server
# 2. Setup environment
python -m venv venv
source venv/bin/activate
pip install -r requirements.txt
# 3. Add secrets to `.env`
echo "SECRET_KEY=your_django_secret_key" > .env
echo "DEBUG=True" >> .env
# 4. Run DB & server
python manage.py migrate
python manage.py runserver
```
---
## ๐งช Example Usage (cURL)
```
# Create a new order
curl -X POST http://localhost:8000/api/orders/ \
-H "Content-Type: application/json" \
-d '{"item_name": "Biryani", "status": "success"}'
# Get recent orders in last 2 hours
curl http://localhost:8000/api/orders/recent/?hours=2
```
---
## ๐ API Endpoints
Base URL: `http://localhost:8000/api/`
| Method | Endpoint | Description | Sample Payload |
|----------|-----------------------------------|------------------------------------|--------------------------------------------|
| `POST` | `/api/orders/` | ๐ Place a new order | `{ "item_name": "Pizza", "status": "success" }` |
| `GET` | `/api/orders/` | ๐ List all orders | โ |
| `GET` | `/api/orders/{id}/` | ๐ Get single order by ID | โ |
| `PUT` | `/api/orders/{id}/` | โ๏ธ Update an order | `{ "item_name": "Burger", "status": "failed" }` |
| `DELETE` | `/api/orders/{id}/` | ๐๏ธ Delete an order | โ |
| `GET` | `/api/orders/recent/?hours=2` | โฑ๏ธ Get orders from last 2 hours | โ |
---
## ๐ง Tech Stack
- ๐ Python 3.11+
- ๐งฑ Django 5.x
- ๐ Django REST Framework
- ๐ SQLite (Dev DB)
- ๐ฆ python-dotenv
---
## ๐ Roadmap (Ideas)
- ๐ Token-based user authentication (optional)
- ๐ Dashboard for order analytics
- ๐ฅ Webhook or async order processing simulation
- ๐ง OpenAI GPT integration for dynamic menu or chat
---
## ๐ธ Screenshots
<img src="screenshots/11.png" width="600" height="400"/>
<img src="screenshots/12.png" width="600" height="400"/>
---
## ๐ฉ Contact
| Name | Details |
|------------------|-------------------------------------|
| **๐จโ๐ป Developer** | Sachin Arora |
| **๐ง Email** | [sachnaror@gmail.com](mailto:sachnaror@gmail.com) |
| **๐ Location** | Noida, India |
| **๐ GitHub** | [github.com/sachnaror](https://github.com/sachnaror) |
| **๐ Website** | [https://about.me/sachin-arora](https://about.me/sachin-arora) |
| **๐ฑ Phone** | [+91 9560330483](tel:+919560330483) |
---
This server cannot be deployed
Maintenance
ActivityInactive
ResponsivenessNo issues