🍽️ MCP Restaurant Ordering API Server について
MCP Restaurant Ordering API Serverは、Django REST Frameworkで構築されたレストラン注文APIのサンプルで、APIとMCPの連携テスト向けです。架空のメニューを使い、注文の作成、照会、更新、状態追跡を行えます。
主な機能
- 01注文の作成と管理
- 02注文の詳細と履歴の取得
- 03期間を指定した最近の注文検索
- 04成功・失敗状態の追跡
活用シーン
- 01レストラン注文API連携のテスト
- 02指定期間内の注文を確認
- 03注文の成功・失敗フローをシミュレーション
MCP 対応
RESTful APIをMCPパターンに沿った例として説明していますが、MCPクライアント向けのツールや接続方法はREADMEに記載されていません。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
🍽️ MCP レストラン注文 API サーバー
Django + Django REST Framework で構築された MCP 対応レストラン API へようこそ。
ダミーのレストランメニューからの注文をシミュレートし、注文のステータスをリアルタイムで追跡します。 あらゆる MCP サーバーとの連携に最適です。
🧠 なぜ MCP サーバーなのか?
Model-Context-Protocol パターンに従っているため、これを MCP サーバー と呼んでいます。
- モデル →
Orderモデルがデータ構造(商品、ステータス、時刻)を定義します。 - コンテキスト →
/recent/?hours=2のような最近のクエリから、コンテキストに基づく情報(例:直近 2 時間)を取得できます。 - プロトコル → RESTful API が構造化された通信プロトコルを定義します。
フードコートの AI アシスタントのようなものだと考えてください。
🍔 モデル = メニューに何があるか
⏰ コンテキスト = 今何が人気か
📡 プロトコル = どのように通信するか(API)
これにより、構造化データ、時間的なコンテキスト、整備された API が重要となる、より大規模な AI/自動化パイプラインへの組み込みに最適です。
📁 プロジェクトディレクトリ
├── 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
🚀 クイックスタート
# 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
🧪 使用例(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 エンドポイント
ベース URL:http://localhost:8000/api/
| メソッド | エンドポイント | 説明 | ペイロード例 |
|---|---|---|---|
POST | /api/orders/ | 📝 新しい注文を行う | { "item_name": "Pizza", "status": "success" } |
GET | /api/orders/ | 📋 すべての注文を一覧表示する | – |
GET | /api/orders/{id}/ | 🔍 ID で注文を 1 件取得する | – |
PUT | /api/orders/{id}/ | ✏️ 注文を更新する | { "item_name": "Burger", "status": "failed" } |
DELETE | /api/orders/{id}/ | 🗑️ 注文を削除する | – |
GET | /api/orders/recent/?hours=2 | ⏱️ 直近 2 時間の注文を取得する | – |
🧠 技術スタック
- 🐍 Python 3.11+
- 🧱 Django 5.x
- 🌐 Django REST Framework
- 📁 SQLite(開発用データベース)
- 📦 python-dotenv
🏁 ロードマップ(アイデア)
- 🔐 トークンベースのユーザー認証(任意)
- 📊 注文分析用ダッシュボード
- 📥 Webhook または非同期注文処理のシミュレーション
- 🧠 動的なメニューまたはチャットのための OpenAI GPT 連携
📸 スクリーンショット
📩 お問い合わせ
| 名前 | 詳細 |
|---|---|
| 👨💻 開発者 | Sachin Arora |
| 📧 メール | [email protected] |
| 📍 所在地 | Noida, India |
| 📂 GitHub | github.com/sachnaror |
| 🌐 ウェブサイト | https://about.me/sachin-arora |
| 📱 電話 | +91 9560330483 |
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。