forkable-mcp
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@forkable-mcpwhat's for lunch this week?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
forkable-mcp
Order and manage your Forkable corporate lunches from Claude, Cursor, or any MCP client. See your week, browse and search menus, get personalized picks, and set / skip / confirm meals — all from chat.
Unofficial, not affiliated with Forkable. It acts on your behalf using your own Forkable session. Use your own account, at your own risk.
Features
📅 See upcoming deliveries — status, cutoff, copay, and what's already picked
🍱 Browse and search menus, and get personalized meal recommendations
✏️ Set, batch-set, remove, skip, and confirm meals
🤖 Runs over stdio (your client launches it); headless-friendly for agents
Related MCP server: FoodDash
Quick start
Requires Bun 1.3+ (bunx runs it — no clone needed).
1. Authenticate (imports your logged-in browser session on macOS; see Auth for other options)
bunx forkable-mcp --auth --chrome2. Add it to your MCP client
Client | Add it |
Claude Code |
|
Codex |
|
Claude Desktop / Cursor | add the JSON below to the config (under |
VS Code | add the JSON below to |
{
"mcpServers": {
"forkable": { "command": "bunx", "args": ["forkable-mcp"] }
}
}Then ask your client things like "what's for lunch this week?" or "set Tuesday to the chicken bowl."
From source instead?
git clone+bun install, authenticate withbun run auth --chrome, and point your client atbun run --cwd /path/to/forkable-mcp start.
Tools
Tool | Does | |
📅 |
| Upcoming deliveries: date, status, what's picked, editing cutoff, copay |
🍱 |
| Items for a delivery (pass |
🔎 |
| Keyword search across a delivery's menus |
✨ |
| Personalized picks, and why the current meal was chosen |
👤 |
| The authenticated user |
✅ |
| Set the meal for a day (or several days at once) |
➖ |
| Remove a meal, or skip a whole day |
🔒 |
| Confirm (or unconfirm) a delivery |
Auth
There's no API key: the server reuses a real Forkable web session. Pick one of the four below. From a clone,
use bun run auth … in place of bunx forkable-mcp --auth ….
Email + password
bunx forkable-mcp --auth --login --email you@co.com --password '…'
# or set FORKABLE_EMAIL / FORKABLE_PASSWORD (+ FORKABLE_MFA), then: bunx forkable-mcp --auth --loginThe only method that survives expiry: on a 401 the server logs back in and retries. SSO-only accounts can't use it and fail fast with a message saying so. The cookie methods below cover those, but you have to re-run them whenever the session expires.
Import from your browser (macOS)
Log in at forkable.com, then pull the cookie out of the browser. Decrypting it needs your login Keychain, so approve the macOS prompt when it appears.
bunx forkable-mcp --auth --chrome
bunx forkable-mcp --auth --chrome --browser arc # brave, edge, vivaldi, opera, chromium,
# chrome-beta, chrome-dev, chrome-canaryEvery profile is searched and the most recently used Forkable session wins; the CLI prints which one
it picked. Pin a specific profile with its directory name, not its display name:
--profile "Profile 1".
Copy as cURL
"Copy as cURL" is a DevTools command: right-click a request in the Network tab, pick Copy → Copy as
cURL, and DevTools puts that entire request on your clipboard as a runnable curl — URL, body, and
every header, cookie included. Paste the whole thing; only the cookie: header is read.
forkable.com → DevTools (⌥⌘I / F12) → Network, reload the page.
Filter for
graphql, right-click aPOST https://forkable.com/api/v2/graphqlrow → Copy → Copy as cURL. Use a GraphQL request, since those are authenticated calls and always carry the session. (Windows:Copy as cURL (bash). Firefox:Copy Value → Copy as cURL.)pbpaste | bunx forkable-mcp --auth, or save it and use--file ./forkable.curl.
What lands on your clipboard, truncated:
curl 'https://forkable.com/api/v2/graphql' \
-H 'accept: application/json' \
-H 'x-csrf-token: …' \
-H 'cookie: _easyorder_session=abc123…; _ga=GA1.2…' \
--data-raw '{"query":"…"}'Paste the cookie header
Same idea, one header instead of the whole blob. Useful on Linux/Windows, or when the browser import
can't find your profile. Follow steps 1–2 above, but click the request instead of right-clicking it,
then copy the whole cookie: value under Headers → Request Headers. It's a long
name=value; name=value; … string and must contain _easyorder_session.
FORKABLE_COOKIE='_easyorder_session=…; other=…' bunx forkable-mcp --authThe session is stored at ~/.forkable-mcp/session.json (mode 0600) and is never logged.
Configuration
All settings are environment variables (.env is auto-loaded by Bun — see .env.example). Everything
is optional; with none set you authenticate interactively and there's no spend cap.
Variable | Default | Description |
| — | Email for headless password login. With |
| — | Password for headless login (pair with |
| — | MFA code, if your account requires one for password login. |
| — | Headless auth for SSO-only accounts: a full forkable.com Cookie header (see Auth). Provisioned on startup if no session exists. |
| — | Pin a CSRF token instead of the auto-fetched one (rarely needed). |
| — | Hard spend cap in dollars: a write whose total exceeds it is refused (no confirm-token). Unset = no cap; the preview just notes when a meal is over your company's daily coverage. |
| per-install | HMAC key for write confirm-tokens. Auto-generated and stored in the session file if unset; set it to pin one across machines. |
|
| Directory for the on-disk session (mode |
Development
bun test # unit tests
bun run check # lint + format + typecheck + testLicense
MIT © Colin D'Souza
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
- AlicenseAqualityFmaintenanceMCP server for CookUnity meal delivery service. Browse menus, manage carts, confirm orders, skip/unskip deliveries, and view order history.1697MIT
- Flicense-qualityCmaintenanceAn MCP server and app that enables users to browse restaurants, view menus, manage shopping carts, and place food orders with live status tracking. It serves as a reference implementation for MCP Apps SDK patterns like tool visibility, lifecycle hooks, and structured content.
- Flicense-qualityDmaintenanceEnables interaction with Uber Eats for food ordering and delivery management through natural language, acting as a proof-of-concept MCP integration.
- Flicense-qualityBmaintenanceEnables coffee shop order management via MCP, including menu lookup, order creation, and status tracking.
Related MCP Connectors
Recipes MCP — wraps TheMealDB API (free tier, no auth)
take-the-meeting MCP — wraps StupidAPIs (requires X-API-Key)
Business Feeds MCP.
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/colinds/forkable-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server