Unofficial MCP server for Forkable — order and manage corporate lunches from any MCP client.
Forkable-mcp has well-structured tool definitions with consistent naming (verb_noun pattern), comprehensive parameter schemas using Zod, and clear descriptions. All 11 tools follow the verb-first convention (confirm_, get_, list_, rate_, remove_, search_, set_). Descriptions are present and actionable (avg ~120 chars). However, several tools lack output schema documentation, error handling guidance is minimal, and some parameter descriptions could be more explicit about constraints and formats. The write-gate pattern (preview + confirmToken) is well-designed for safety but underdocumented in tool descriptions.
Confirm a delivery to be ordered. Returns a preview and confirmToken. Call again with the same arguments plus that token to send the change.
Get the status of a delivery including orders, pieces, and ratings.
Get available menus for a delivery.
Get the current user's profile information including name, email, MFA status, and auto-order settings.
List upcoming and past deliveries.
Rate a meal with a score and optional feedback. Returns a preview and confirmToken. Call again with the same arguments plus that token to send the rating.
Output schemas not documented. Tool descriptions state what is returned (e.g., 'Returns a preview and confirmToken') but the actual response structure is not formally specified. LLMs cannot plan downstream calls without knowing field names and types.
Error handling lacks recovery guidance. The guard() function catches ReauthRequiredError and generic errors, but tool descriptions do not explain what errors are possible or what the LLM should do next (retry, ask user, etc.).
Parameter constraints not fully documented. 'days' in list_deliveries has no min/max bounds stated in description. 'level' in rate_meal states '1-5' but no enum constraint. 'compliments' and 'issues' arrays lack cardinality limits.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 62 | 2025-06-18+ | v2 |
Get meal recommendations for a delivery based on dietary preferences and past ratings.
Remove a meal from a delivery. Returns a preview and confirmToken. Call again with the same arguments plus that token to send the change.
Search for menu items by name or dietary attributes.
Set a specific meal for a delivery, replacing an existing meal. Returns a preview and confirmToken. Call again with the same arguments plus that token to send the change.
Set meals for all members in a delivery. Returns a preview and confirmToken. Call again with the same arguments plus that token to send the change.
Confirmation pattern (preview + confirmToken) is powerful but underdocumented. Tool descriptions mention 'Returns a preview and confirmToken' but do not explain that the LLM must call the tool twice or what the preview contains.
Pagination not implemented. list_deliveries accepts 'days' but does not support limit/offset or return a total count. Large result sets could exhaust context.