DevelopersChanges data

update_menu_item

API reference — one of six tools an AI assistant can call on an Avrosh account.

What it does

Change one menu item: name, price, category, description, dietary or allergen tags. Send ONLY the fields the human asked to change - omitted fields keep their value. For marking something sold out or back, use set_menu_item_availability instead. Returns the item as stored after the change.

This is the exact text the model reads before deciding to call.

Parameters

business_idstringrequired

The id returned by list_businesses.

item_idstringrequired

From list_menu_items.

namestringoptional

priceintegeroptional

Whole number in the business's own currency.

categorystringoptional

descriptionstringoptional

dietaryarrayoptional

allergensarrayoptional

Request

curl -X POST https://us.avrosh.com/mcp \
  -H "Authorization: Bearer $AVROSH_KEY" \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"update_menu_item","arguments":{"business_id":"926135ac-487d-4367-8bad-25397d0d4b87","item_id":"a41c…","price":50000}}}'

Response

The result arrives as an MCP content block; the JSON below is what the text field parses to.

{
  "item": {
    "id": "a41c…",
    "name": "Nasi goreng spesial",
    "priceIdr": 50000
  }
}

Authentication

Every request carries Authorization: Bearer avk_…. Create a key in the Avrosh dashboard under Docs; it is shown once, because only its hash is stored.

One key reaches every business on the account that made it, and no others. There are no scopes to configure and nothing to switch on — a connected assistant receives the whole toolset. What bounds it is whose account the key belongs to, which is enforced in the database rather than by a permission anybody sets.

curl https://us.avrosh.com/mcp \
  -H "Authorization: Bearer $AVROSH_KEY"