Skip to main content
Glama
davidmosiah

ifood-mcp

README.md
<h1 align="center">iFood MCP</h1>

<h3 align="center">
  Give your AI agent your iFood orders, addresses, restaurants and cart.<br>
  Local-first MCP &mdash; <strong>credentials never leave your machine</strong>.<br>
  Checkout is <strong>fail-closed</strong> unless you opt in twice.
</h3>

> **Unofficial.** Not affiliated with, endorsed by, or supported by iFood. Not the merchant-api Partners portal. The consumer web surface can change without notice.

> **Never pays by default.** `ifood_checkout` does nothing unless `IFOOD_ALLOW_MUTATIONS` is enabled **and** `explicit_user_intent` is true.

> **WAF:** `www.ifood.com.br/site-api` is Cloudflare-blocked from Node. Search/home/GraphQL may get Akamai Access Denied from datacenter IPs even when a home-browser JWT works. Those are not shipped as 401-verified routes.

## Setup in 60 seconds

```bash
npx -y ifood-mcp-unofficial setup
npx -y ifood-mcp-unofficial auth start --email you@email.com
npx -y ifood-mcp-unofficial auth complete --code 123456 --email you@email.com
npx -y ifood-mcp-unofficial doctor
```

Fallback (no OTP): open [ifood.com.br](https://www.ifood.com.br) logged in → DevTools → Network → any `marketplace.ifood.com.br` request → copy `Authorization`, then:

```bash
npx -y ifood-mcp-unofficial auth --from-header "Bearer eyJ…"
```

Stdio snippet. Do **not** set `IFOOD_ALLOW_MUTATIONS` here:

```json
{
  "mcpServers": {
    "ifood": {
      "command": "npx",
      "args": ["-y", "ifood-mcp-unofficial"]
    }
  }
}
```

## Skill or MCP

Same package, two doors. MCP registers tools on stdio/HTTP. The [skill](skill/SKILL.md) is the workflow (orders/search → stop before checkout) and can drive the **same** tools through the CLI when the client has no MCP:

```bash
npx -y ifood-mcp-unofficial call ifood_list_orders --json '{}'
```

Gates are identical. Copy `skill/SKILL.md` into your agent skills dir (`~/.agents/skills/ifood/` or Claude/Grok equivalent).

## Tools

| Kind | Tools |
| --- | --- |
| Read · me | `ifood_customer_me`, `ifood_list_addresses`, `ifood_contact_methods`, `ifood_identities`, `ifood_list_payment_methods`, `ifood_loyalty_cards`, `ifood_benefits` |
| Read · orders | `ifood_list_orders`, `ifood_list_active_orders`, `ifood_get_order`, `ifood_track_order`, `ifood_get_order_eta`, `ifood_get_order_receipt`, `ifood_get_order_invoice`, `ifood_previous_items`, `ifood_get_cart` |
| Read · browse | `ifood_search`, `ifood_home`, `ifood_categories`, `ifood_merchant_info`, `ifood_filter_options`, `ifood_reviews`, `ifood_merchant_payment_methods` |
| Meta | `ifood_connection_status`, `ifood_capabilities` (includes `honest_gaps`), `ifood_privacy_audit` |
| Gated cart | `ifood_create_cart`, `ifood_add_to_cart`, `ifood_set_delivery_method`, `ifood_set_payment_method` |
| Gated pay | `ifood_checkout` |
| Intent only | `ifood_logout`, `ifood_create_address` |

## HTTP (optional, loopback)

```bash
npx -y ifood-mcp-unofficial --http
```

Binds `127.0.0.1` and checks `Origin`. DNS-rebinding mitigation, not a public server.

## Tests

```bash
npm test
```

No live iFood login required.

TDQS

C2.8/5.0

Scored across 33 tools

Disambiguation4/5

Most tools target distinct resources or actions, and the descriptions clarify boundaries. The order-related tools (list_orders, get_order, track_order, get_order_eta, get_order_receipt, get_order_invoice) overlap somewhat since several read the same live order payload, though each extracts a different slice.

Naming Consistency3/5

All tools share the ifood_ prefix and snake_case, but the verb_noun pattern is inconsistent: some use action verbs (list_orders, get_order, create_cart), while many read-only tools are bare nouns (ifood_benefits, ifood_reviews, ifood_categories, ifood_merchant_info). The naming is readable but not uniform.

Tool Count2/5

33 tools is substantially above the well-scoped range, and many are narrow read-only variations around orders and customer data. While iFood is a broad domain, the surface feels heavier than necessary and could be consolidated.

Completeness3/5

The server covers customer profile, addresses, orders, search, cart, and checkout well, including gated writes. However, there are notable gaps such as no cart item removal, no order cancellation, and no update/delete for addresses, which limits common lifecycle workflows.

Maintenance

ActivityMaintained
ResponsivenessNo issues