Skip to main content
Glama
sachnaror

MCP Restaurant Ordering API Server

by sachnaror
README.md


# ๐Ÿฝ๏ธ MCP Restaurant Ordering API Server

![Python](https://img.shields.io/badge/python-3.11+-blue.svg)
![Django](https://img.shields.io/badge/django-5.x-green.svg)
![License](https://img.shields.io/badge/license-MIT-orange)
![Build](https://img.shields.io/badge/build-passing-brightgreen)

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) |

---