Forkable
Arcade tools for Forkable — list this week's meals, browse menus, and pick what you want delivered
1.0.1Forkable is a workplace meal delivery service; this toolkit lets agents and users browse weekly menus, inspect dietary restrictions, and manage picks (swap or skip) entirely through code.
Capabilities
- Weekly schedule visibility — retrieve upcoming delivery days, current pick state (open / locked / delivered), and linked menu IDs in one call.
- Menu browsing — fetch full menu details (sections, items, prices, modifiers, IDs) for one or more menus at once.
- Meal selection & modification — swap an existing allocated meal with any available menu item, receiving the refreshed pick and updated amount due.
- Skip management — remove an assigned meal from an open (unlocked) delivery day.
- Dietary safety checks — validate a prospective item + modifier combination against the signed-in user's dietary restrictions before committing a pick.
Secrets
This toolkit requires credentials for a Forkable account. No OAuth flow is used — authentication is performed with a registered email and password.
-
FORKABLE_EMAIL— The email address associated with your Forkable account. This is the same address used to log in at forkable.com. No special account tier is required. -
FORKABLE_PASSWORD— The password for that Forkable account. Retrieve or reset it via the Forkable login/account page. Store it as a secret rather than hardcoding it — never expose it in prompts or logs.
Store both secrets in the Arcade secrets manager. See the Arcade secrets docs for setup instructions, or manage them directly at https://api.arcade.dev/dashboard/auth/secrets.
Available tools(5)
| Tool name | Description | Secrets | |
|---|---|---|---|
Check whether picking this item (with the given modifier selections) would
conflict with the signed-in user's dietary restrictions.
Returns the list of conflict tags (e.g. `["dairy_free"]`) — empty if the
item is safe. Call this before `pick_meal` to warn the user, or to let the
agent pick a different item. | 2 | ||
Fetch the full menu (sections, items, prices, modifiers) for one or more menu IDs.
Each item ships with the `item_id` and `menu_id` you'll need to pass to `pick_meal`. | 2 | ||
List your upcoming Forkable delivery days and what's currently picked for each.
Each entry shows the delivery date, current state (open / locked / delivered),
the meal currently assigned to you (`my_pick`), and the menu IDs you can swap to
via `list_menu_items` + `pick_meal`. Results are sorted by delivery date.
An entry whose `my_pick.piece_id` is empty has no meal allocated to you yet —
`pick_meal` cannot operate on it (it only swaps existing picks). | 2 | ||
Replace your assigned meal on one delivery with a different menu item.
Only works on deliveries that already have a meal allocated to you (a
non-empty `my_pick.piece_id`). Forkable's `replacePiece` mutation swaps an
existing pick; it can't create one from nothing — initial allocation
happens on the Forkable side.
The mutation returns the refreshed delivery; this tool surfaces the new pick
and the updated amount due. | 2 | ||
Skip a day — removes your assigned meal from a Forkable order.
Use only when the delivery is still open for changes (`locked: false`
and not `past_late_order_deadline`). | 2 |
Selected tools
No tools selected.
Click "Show all tools" to add tools.
Requirements
Select tools to see requirements
Forkable.CheckMealRestrictions
Execution hints
Signals for MCP clients and agents about how this tool behaves.
Reads data without modifying any state in the target system.
May permanently delete or overwrite data in the target system.
Repeated calls with the same inputs produce no additional effect.
Communicates with external APIs, databases, or other services.
Check whether picking this item (with the given modifier selections) would conflict with the signed-in user's dietary restrictions. Returns the list of conflict tags (e.g. `["dairy_free"]`) — empty if the item is safe. Call this before `pick_meal` to warn the user, or to let the agent pick a different item.
Parameters
| Parameter | Type | Req. | Description |
|---|---|---|---|
menu_id | string | Required | The menu the item belongs to — the `menu_id` from a `list_menu_items` entry. |
item_id | string | Required | The menu item to check — the `item_id` from a `list_menu_items` entry. |
selections | json | Optional | Modifier picks as { modifier_id: [option_id, ...] }. Omit if the item has no modifiers. |
Requirements
Output
json— No description provided.Forkable.ListMyMealsThisWeek
Execution hints
Signals for MCP clients and agents about how this tool behaves.
Reads data without modifying any state in the target system.
May permanently delete or overwrite data in the target system.
Repeated calls with the same inputs produce no additional effect.
Communicates with external APIs, databases, or other services.
List your upcoming Forkable delivery days and what's currently picked for each. Each entry shows the delivery date, current state (open / locked / delivered), the meal currently assigned to you (`my_pick`), and the menu IDs you can swap to via `list_menu_items` + `pick_meal`. Results are sorted by delivery date. An entry whose `my_pick.piece_id` is empty has no meal allocated to you yet — `pick_meal` cannot operate on it (it only swaps existing picks).
Parameters
| Parameter | Type | Req. | Description |
|---|---|---|---|
from_date | string | Optional | First day of the window in YYYY-MM-DD format. Leave empty to start at Monday of the current week. |
days | integer | Optional | How many days from `from_date` to include in the window (1-31). Defaults to 7. |
Requirements
Output
json— No description provided.Forkable.PickMeal
Execution hints
Signals for MCP clients and agents about how this tool behaves.
Reads data without modifying any state in the target system.
May permanently delete or overwrite data in the target system.
Repeated calls with the same inputs produce no additional effect.
Communicates with external APIs, databases, or other services.
Replace your assigned meal on one delivery with a different menu item. Only works on deliveries that already have a meal allocated to you (a non-empty `my_pick.piece_id`). Forkable's `replacePiece` mutation swaps an existing pick; it can't create one from nothing — initial allocation happens on the Forkable side. The mutation returns the refreshed delivery; this tool surfaces the new pick and the updated amount due.
Parameters
| Parameter | Type | Req. | Description |
|---|---|---|---|
delivery_id | string | Required | The Forkable delivery ID — the `delivery_id` from a `list_my_meals_this_week` entry. |
piece_id | string | Required | Your current piece ID for that delivery — the `my_pick.piece_id` from a `list_my_meals_this_week` entry. This is what gets replaced. If `my_pick.piece_id` is empty, this delivery has no meal allocated to you yet and there is nothing to replace. |
item_id | string | Required | The menu item you want — the `item_id` from a `list_menu_items` entry. |
menu_id | string | Required | The menu the chosen item belongs to — the `menu_id` from a `list_menu_items` entry. |
instructions | string | Optional | Free-text note to the venue (e.g. 'no onions'). Leave empty for none. |
selections | json | Optional | Modifier picks as { modifier_id: [option_id, ...] }. Omit if the item has no modifiers. |
Requirements
Output
json— No description provided.Forkable.SkipMeal
Execution hints
Signals for MCP clients and agents about how this tool behaves.
Reads data without modifying any state in the target system.
May permanently delete or overwrite data in the target system.
Repeated calls with the same inputs produce no additional effect.
Communicates with external APIs, databases, or other services.
Skip a day — removes your assigned meal from a Forkable order. Use only when the delivery is still open for changes (`locked: false` and not `past_late_order_deadline`).
Parameters
| Parameter | Type | Req. | Description |
|---|---|---|---|
order_id | string | Required | The order ID for the delivery you want to skip — the `order_id` from a `list_my_meals_this_week` entry. |
piece_id | string | Required | Your current piece ID for that order — the `my_pick.piece_id` from a `list_my_meals_this_week` entry. |
Requirements
Output
json— No description provided.