dishmath について
dishmathは、飲食店向けのローカル計算サーバーです。食材原価、VAT込みのメニュー価格、レシピの分量調整、EUのアレルゲン確認を本機で行い、MCPとコマンドラインから利用できます。
主な機能
- 01食材ごとの料理原価計算
- 02VATと丸めを含む価格設定
- 03レシピの分量と原価の調整
- 0414品目のEUアレルゲン表
活用シーン
- 01料理の原価と目標販売価格の算出
- 02VAT込みメニュー価格の設定
- 03人数に合わせた食材量の調整
- 04アレルゲンを含む料理の確認
MCP 対応
MCPクライアントに `food_cost_calculator`、`menu_price_calculator`、`recipe_scaler`、`allergen_matrix` を提供します。入力値に基づく計算は本機で行われます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
4掲載時のツール一覧 · 1 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| currency | string | いいえ | 通貨コード(例:USD)。 |
| ingredients | array | はい | この呼び出しの食材。 |
| current_price | number | いいえ | 現在の価格値。 |
| target_food_cost_percent | number | いいえ | この呼び出しの目標食材原価率。 |
詳細
dishmath
すべてお使いのマシン上で実行されるレストランの計算ツールです。料理の原価、販売価格、ポーション数に応じたレシピの変更、アレルギーのあるお客様が避けるべき料理を計算できます。アカウントもキーもネットワーク通信も不要です。すべての結果は、渡された数値をもとにローカルで計算されます。
4種類の計算
- 食材原価 — 料理の食材原価を1つずつ合計します。皿あたりの原価に加えて、目標食材原価率に合わせた販売価格と、現在の価格で実際に適用されている食材原価率も計算できます。
- メニュー価格 — 皿あたりの原価と目標食材原価率を指定します。税抜価格、VAT加算後の価格、指定した単位(0.50、1.00、…)で切り上げた価格、税抜きの皿あたり粗利益、丸めた価格での実際の食材原価率が得られます。
- レシピのスケーリング — あるポーション数向けに書かれたレシピを指定すると、別のポーション数に合わせて各材料の分量を書き換えます。材料に単価が設定されている場合は、バッチ全体の原価とポーションあたりの原価も計算します。
- アレルゲンマトリックス — 各料理に含まれるアレルゲンを指定すると、EU規則1169/2011(附属書II)に基づく料理別・アレルゲン別の表と、14種類の各アレルゲンを避けるべき料理の一覧が得られます。英語名とイタリア語名のどちらも受け付け、一般的な呼び名も使えます。「shrimp」は甲殻類、「dairy」は乳として扱われます。このツールは料理名からアレルゲンを推測しません。アレルゲンが何も指定されていない料理は、そのように報告されます。
金額は四捨五入して小数点以下2桁、割合は小数点以下1桁で表示されます。任意のISO通貨コード(既定値は EUR)を指定すると、金額の表示形式のみが変わります。
計算例:皿あたりの原価が€3.20、目標食材原価率が30%、VATが10%、丸め単位が0.50の場合:
Net price (before tax): €10.67
Price incl. 10% tax: €11.74
Menu price (rounded up to 0.5): €12.00
Gross profit per plate (net of tax): €7.71
Real food cost after rounding: 29.3%
CLI
npx @reneturcios/dishmath menu_price_calculator '{"plate_cost":3.20,"target_food_cost_percent":30,"vat_percent":10,"rounding_step":0.50}'
npx @reneturcios/dishmath food_cost_calculator '{"ingredients":[{"name":"flour","quantity":0.5,"unit":"kg","unit_cost":1.20}],"target_food_cost_percent":30}'
npx @reneturcios/dishmath recipe_scaler '{"ingredients":[{"name":"flour","quantity":500,"unit":"g"}],"original_portions":4,"target_portions":6}'
npx @reneturcios/dishmath allergen_matrix '{"dishes":[{"name":"Shrimp pasta","allergens":["shrimp","gluten"]}]}'
npx @reneturcios/dishmath --version
各ツールのサブコマンドは、単一のJSON引数文字列を受け取り、結果をプレーンテキストで出力します。終了コード:成功時は0、計算エラーまたは検証エラー時は1、使用方法のエラー時は2です。
MCP
npx -y @reneturcios/dishmath mcp
MCP クライアントの設定:
{
"mcpServers": {
"dishmath": {
"command": "npx",
"args": ["-y", "@reneturcios/dishmath", "mcp"]
}
}
}
MCP 経由で公開されるツール:food_cost_calculator、menu_price_calculator、recipe_scaler、allergen_matrix。
Docker
docker run -i ghcr.io/cloudcorprecords/dishmath
docker run --rm ghcr.io/cloudcorprecords/dishmath menu_price_calculator '{"plate_cost":3.20,"target_food_cost_percent":30,"vat_percent":10,"rounding_step":0.50}'
コンテナの既定のコマンドは mcp です。そのため、最初の形式ではstdio MCP サーバーが起動し、それ以外の引数はCLIに渡されます。
開発
npm install
npm run build
npm test
npm run dev
ライセンス
MIT — LICENSE を参照してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。