mcp-recipe-shopping-list
Recipe Shopping List — MCPサーバー
MCPサーバー(Model Context Protocol)で、以下のことができます:
food.ruのレシピを読む — リンクから材料、手順、カロリー・栄養成分(КБЖУ)を取得
magnit.ruで商品を検索 — 特定の店舗を指定して検索
買い物リストを作成 — レシピに合わせて価格付きの商品を見つけ、合計を計算
店舗情報を表示 — 店舗コードから情報を取得
結果:レシピのリンクを渡すと、マグニットの価格と商品への直接リンク付きの 買い物リストが完成します。
🎓 学習用プロジェクト: このプロジェクトは、小売チェーンのカテゴリーマネージャーに MCPサーバーの作成を教えるために使用されました。アイデアと技術仕様から、 AIアシスタントが使用する実働するMCPサーバーまで、完全なサイクルを備えた 実践的なケースです。参加者はAIエージェントの助けを借りて、実際に動作する アプリケーション(food.ruのレシピパーサー、magnit.ruの商品検索、価格付きの 買い物リスト)を構築し、1回のセッションで成果を得られます。
🌐 ウェブ版: MCPインターフェースに加えて、ローカルのウェブインターフェースも あります。MCPクライアントは不要で、ブラウザで動作します。起動は1コマンド:
./start.sh # запустить и открыть страницу в браузере (http://127.0.0.1:8000)
./stop.sh # остановить серверウェブ版では、レシピのリンクを貼り付けて買い物リストの表を取得し、 Excelに保存できます。詳細は「ウェブインターフェース」セクションを参照してください。
インストール
簡単な方法:インストーラー install.py
スクリプト install.py(Python標準ライブラリのみ使用 — 追加のインストールは
不要)がすべて自動で行います:仮想環境の作成、依存関係とPlaywright用ブラウザの
インストール、.envの作成、選択したMCPクライアントへのサーバー登録、
動作確認まで行います。
Python 3.11+が必要です(uvを推奨 — インストーラーはuvと
通常のPythonの両方を見つけます)。
python install.py # или: python3 install.pyすべてのフラグはオプションです:
フラグ | 機能 |
| すべての質問にデフォルト値で回答 |
| マグニットの店舗コード(デフォルト:543440) |
| 店舗タイプ(デフォルト:dostavka) |
| サーバーを登録するMCPクライアント(カンマ区切り) |
| Chromiumブラウザをダウンロードしない |
|
|
| 環境の確認のみ行う — 変更はしない |
| プロジェクトフォルダ(デフォルト:インストーラーのフォルダ) |
例:
python install.py --check # проверка окружения без изменений
python install.py --yes # установка «на все по умолчанию»
python install.py --shop-code 992301 --clients opencode,claude手動インストール
Python 3.11+が必要です(uvを推奨)。
# 1. Виртуальное окружение и зависимости
uv venv --python 3.11 .venv
uv pip install --python .venv/bin/python -r requirements.txt
# 2. Браузер для Playwright (оба сайта — SPA, без браузера никак)
.venv/bin/python -m playwright install chromium
# 3. Секреты
cp .env.example .env # при необходимости поправь код магазина по умолчаниюRelated MCP server: Recipe Commerce Intelligence MCP
起動
.venv/bin/python src/server.pyサーバーはstdio経由のMCPプロトコルで動作します — AIアシスタント (Claude Desktop、LM Studioなど)が呼び出します。単体では ターミナルで「沈黙」したままです。
ウェブインターフェース
MCPクライアントを接続したくない人のためのローカルウェブページ: レシピのリンクを貼り付けると、買い物リストの表とExcel保存ボタンが表示されます。
起動(サーバーが自動的にブラウザでページを開きます):
./start.sh # запустить и открыть браузер
./stop.sh # остановить серверサーバー稼働中に再度./start.shを実行すると、ページが開くだけです。
手動で起動する場合(スクリプトが使えない場合):
.venv/bin/python src/web/server.pyブラウザで開く:http://127.0.0.1:8000
ページでできること:
food.ruのレシピリンクを貼り付けてボタンを押す — サーバーが買い物リストを 作成します(サイトへのリクエストに30〜90秒かかります。ローディングインジケーターが表示されます);
表を表示:材料、数量、マグニットの商品、価格、購入数量、合計、商品へのリンク;
「Excelに保存」ボタンでリストをExcelファイルに保存。
Excelファイルはプロジェクトルートのexports/フォルダに保存されます
(ファイル名形式:shopping_list_<レシピ>_<日付>.xlsx)。
OpenCodeへの接続
~/.config/opencode/opencode.jsonc(グローバル)またはプロジェクトルートの
opencode.jsonに、mcpセクションを追加してください — 形式が
Claude Desktopとは異なります(キーはmcp、commandは配列、
変数はenvironment):
{
"mcp": {
"recipe-shopping-list": {
"type": "local",
"command": [
"/ПОЛНЫЙ/ПУТЬ/К/MCP_rec/.venv/bin/python",
"/ПОЛНЫЙ/ПУТЬ/К/MCP_rec/src/server.py"
],
"environment": {
"MAGNIT_SHOP_CODE": "543440",
"MAGNIT_SHOP_TYPE": "dostavka",
"LOG_LEVEL": "INFO"
},
"enabled": true
}
}
}OpenCodeを再起動すると、サーバーがMCPリストに表示されます(アプリ内で/mcpコマンド)。
ターミナルからの確認(opencode mcp list)は、OpenCode.app経由のインストールでは
機能しません — CLIはElectronラッパーであるためです。
Claude Desktopへの接続
claude_desktop_config.jsonに追加します(パスは絶対パスである必要があります):
{
"mcpServers": {
"recipe-shopping-list": {
"command": "/ПОЛНЫЙ/ПУТЬ/К/MCP_rec/.venv/bin/python",
"args": ["/ПОЛНЫЙ/ПУТЬ/К/MCP_rec/src/server.py"],
"env": {
"MAGNIT_SHOP_CODE": "543440",
"MAGNIT_SHOP_TYPE": "dostavka",
"LOG_LEVEL": "INFO"
}
}
}
}ツール
ツール | 機能 |
| food.ruのレシピ:材料、手順、カロリー・栄養成分 |
| magnit.ruでの商品検索 |
| 価格と合計付きの買い物リスト |
| 店舗情報 |
例
「レシピはこちら:https://food.ru/recipes/269806-sous-iz-iogurta-s-ukropom-i-chesnokom-1766588076」
エージェントはget_shopping_listを呼び出し、以下を返します:
Греческий йогурт — 100г → Йогурт греческий Teos 2% 140г — 89,90 ₽ [ссылка]
Чеснок — 2 зубчик =10г → Чеснок свежий 100г — 45,00 ₽ [ссылка]
...
Итого: 356,70 ₽ · 6 товаровテスト
ロジックの高速テスト(サイトにはアクセスしません — パーサーはモックに置き換えられます):
.venv/bin/python -m pytest tests/ -v実環境の統合テスト — 実際にPlaywright経由でfood.ruとmagnit.ruを開きます (実稼働サーバーと同様、約1分、リクエスト間に待機時間あり):
.venv/bin/python -m pytest -m integration -v実環境テストのルール:サイトにアクセスできない場合(ネットワーク)— テストはスキップ; サイトは応答したが構造が異なる場合 — テストは失敗(レイアウトが変更されたため、 セレクターを更新してLESSONS.mdにレッスンを記録する時期です)。
構造
src/
├── server.py # Точка входа MCP-сервера
├── tools/ # MCP-инструменты (бизнес-логика)
├── integrations/ # Парсеры сайтов (Playwright)
├── models/ # Pydantic-модели
├── utils/ # Кэш, ограничитель запросов, валидаторы
└── config/ # Настройки (.env) и селекторы重要な注意点
両サイト(food.ru、magnit.ru)はSPAです:データはJavaScriptで読み込まれます。 そのため、パーサーは単純なHTTPではなくPlaywright(ヘッドレスブラウザ)経由で動作します。
サイトへのリクエスト間には2〜5秒の待機時間があり、結果はキャッシュされます (レシピは24時間、商品は15分)。
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseAqualityCmaintenanceMCP server for the Pepesto API — give your agent the ability to turn any recipe (a URL, plain text, or a photo) into a matched basket of real supermarket products with live prices, across 26 European supermarkets. The MCP covers the recipe → matched cart half of the grocery shopping workflow (parse / search / map ingredients to SKUs / check catalogs).7815MIT
- AlicenseAqualityDmaintenanceExtracts branded ingredients and kitchen tools from recipes, matches them to affiliate products, and generates shoppable ingredient lists to turn recipes into affiliate revenue.3481MIT
- FlicenseNot gradedqualityDmaintenanceEnables cross-store price comparison and recipe-driven cart automation for Israeli grocery stores Shufersal and Tiv Taam, with an extensible architecture for additional stores.
- AlicenseNot gradedqualityFmaintenanceEnables automated weekly meal planning and grocery price comparison across Swedish supermarkets through a Claude/GPT interface.3MIT
Related MCP Connectors
Search direct grocery storefronts and create product-link pickup handoffs.
Shopping MCP for AI agents: search, compare, Amazon buy links. Auto-register.
Agent-native product catalog for AI shopping agents. 296M+ products, 28 countries.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/KrivchenkoEgor/mcp-recipe-shopping-list'
If you have feedback or need assistance with the MCP directory API, please join our Discord server