Skip to main content
Glama
ifood-mcp

ifood-mcp

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

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 logged in → DevTools → Network → any marketplace.ifood.com.br request → copy Authorization, then:

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

Stdio snippet. Do not set IFOOD_ALLOW_MUTATIONS here:

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

Related MCP server: 99 MCP

Skill or MCP

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

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)

npx -y ifood-mcp-unofficial --http

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

Tests

npm test

No live iFood login required.

Available Tools

33 tools
ifood_add_to_cartAdd items to iFood cartC
Destructive

POST /v1/carts on cw-marketplace (401 JSON no-jwt). Item subpaths 404. Dual-gated. Does not checkout.

Inputs: items (required), merchant_id (required), address_id, response_format, +1 more.

ifood_benefitsiFood benefitsB
Read-onlyIdempotent

Wallet benefits and coupons. Read-only. Does not apply a coupon.

Inputs: privacy_mode, response_format.

ifood_capabilitiesiFood capabilitiesB
Read-onlyIdempotent

What this unofficial MCP can read and which writes stay gated.

Inputs: response_format.

ifood_categoriesiFood categoriesB
Read-onlyIdempotent

Top-level categories near a point. Read-only.

Inputs: latitude (required), longitude (required), privacy_mode, response_format.

ifood_checkoutPlace iFood orderA
Destructive

FAIL-CLOSED. Charges money on wsloja checkout. Requires IFOOD_ALLOW_MUTATIONS and explicit_user_intent.

Inputs: cart_id (required), checkout_payload (required), response_format, explicit_user_intent.

ifood_connection_statusiFood connection statusC
Read-onlyIdempotent

Local doctor: token present, mutations off by default, unofficial consumer surface.

Inputs: response_format.

ifood_contact_methodsiFood contact methodsB
Read-onlyIdempotent

Verified emails and phones. Redacted by default.

Inputs: privacy_mode, response_format.

ifood_create_addressCreate iFood addressC
Destructive

POST /v1/customers/me/addresses (401 JSON no-jwt). Requires explicit_user_intent. PUT/DELETE :id 404.

Inputs: latitude (required), longitude (required), city, number, +5 more.

ifood_create_cartCreate iFood cartA
Destructive

Gated write on cw-marketplace. Requires IFOOD_ALLOW_MUTATIONS and explicit_user_intent. Does not checkout.

Inputs: items (required), merchant_id (required), address_id, response_format, +1 more.

ifood_customer_meiFood profileB
Read-onlyIdempotent

Authenticated customer profile. Identity redacted by default.

Inputs: privacy_mode, response_format.

ifood_filter_optionsiFood search filtersB
Read-onlyIdempotent

Public filter catalog (200 without auth). Read-only.

Inputs: privacy_mode, response_format.

ifood_get_cartGet iFood cartB
Read-onlyIdempotent

Inspect a cart on cw-marketplace. Read-only.

Inputs: cart_id (required), privacy_mode, response_format.

ifood_get_orderGet iFood orderB
Read-onlyIdempotent

One order by id (v3). Read-only.

Inputs: order_id (required), privacy_mode, response_format.

ifood_get_order_etaiFood order ETAB
Read-onlyIdempotent

Dedicated /eta URL 404. Reads the live order payload. Read-only.

Inputs: order_id (required), privacy_mode, response_format.

ifood_get_order_invoiceiFood order invoiceC
Read-onlyIdempotent

Dedicated /invoice /nfe URLs 404. Reads the live order payload. Read-only.

Inputs: order_id (required), privacy_mode, response_format.

ifood_get_order_receiptiFood order receiptA
Read-onlyIdempotent

Dedicated /receipt URL 404. Reads the live order payload. Read-only.

Inputs: order_id (required), privacy_mode, response_format.

ifood_homeiFood home feedB
Read-onlyIdempotent

Localized home cards. Read-only. May WAF from datacenter IPs.

Inputs: latitude (required), longitude (required), privacy_mode, response_format.

ifood_identitiesiFood external identitiesB
Read-onlyIdempotent

Allowlisted GET /v1/customers/me/external-identities. Identity redacted. Read-only.

Inputs: privacy_mode, response_format.

ifood_list_active_ordersList active iFood ordersB
Read-onlyIdempotent

GET /v4/customers/me/orders?status=ONGOING (401 JSON without jwt). Read-only.

Inputs: page, size, privacy_mode, response_format.

ifood_list_addressesList iFood addressesB
Read-onlyIdempotent

Saved delivery addresses. Street/phone/email redacted by default.

Inputs: privacy_mode, response_format.

ifood_list_ordersList iFood ordersC
Read-onlyIdempotent

Past orders (v4). Read-only.

Inputs: page, size, privacy_mode, response_format.

ifood_list_payment_methodsList iFood payment methodsB
Read-onlyIdempotent

Saved wallet methods. Last-four redacted. Does not charge.

Inputs: privacy_mode, response_format.

ifood_logoutLogout iFood MCPA
DestructiveIdempotent

Clears ~/.ifood-mcp/tokens.json. Requires explicit_user_intent.

Inputs: response_format, explicit_user_intent.

ifood_loyalty_cardsiFood loyaltyC
Read-onlyIdempotent

Club / stamps. Read-only.

Inputs: privacy_mode, response_format.

ifood_merchant_infoiFood merchant infoA
Read-onlyIdempotent

Fees, hours, rating via unofficial GraphQL. Read-only. May WAF from datacenter IPs.

Inputs: merchant_id (required), privacy_mode, response_format.

ifood_merchant_payment_methodsMerchant payment methodsC
Read-onlyIdempotent

How a restaurant accepts payment. Read-only.

Inputs: merchant_id (required), privacy_mode, response_format.

ifood_previous_itemsPrevious items at merchantC
Read-onlyIdempotent

Items you ordered before at this merchant. Read-only.

Inputs: merchant_id (required), privacy_mode, response_format.

ifood_privacy_auditiFood privacy auditC
Read-onlyIdempotent

Redaction defaults and fail-closed checkout.

Inputs: response_format.

ifood_reviewsiFood reviewsC
Read-onlyIdempotent

Merchant reviews. Read-only.

Inputs: merchant_id (required), privacy_mode, response_format.

ifood_set_delivery_methodSet iFood delivery methodC
Destructive

Gated cart write. DEFAULT / PRIORITY / TAKEOUT.

Inputs: method (required), cart_id (required), response_format, explicit_user_intent.

ifood_set_payment_methodSet iFood cart paymentA
Destructive

Gated cart write. Does not charge.

Inputs: cart_id (required), payment_method_ids (required), response_format, explicit_user_intent.

ifood_track_orderTrack iFood orderB
Read-onlyIdempotent

Dedicated /tracking URLs 404. Reads the live GET /v3/customers/me/orders/:id payload instead. Read-only.

Inputs: order_id (required), privacy_mode, response_format.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    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

    ActivityNo data
    ResponsivenessOutdated data

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      C
      quality
      B
      maintenance
      Lets users search nearby stores and products, inspect their Rappi cart, manage saved addresses, and track orders locally, with payment and checkout actions disabled by default unless explicitly enabled and confirmed. It uses an undocumented Rappi API and protects privacy through redaction and local token storage.
      42
      25 npm
      MIT
    • A
      license
      B
      quality
      B
      maintenance
      Enables AI agents to get 99Pop and 99Moto fare estimates, ride history, and live tracking while keeping credentials local and ride requests fail-closed by default.
      14
      32 npm
      1
      MIT
    • A
      license
      C
      quality
      B
      maintenance
      Provides AI agents with access to Zé Delivery's product catalog, search, and order tracking, with order placement and cancellation available only after explicit user consent and opt-in.
      22
      35 npm
      MIT
    • A
      license
      A
      quality
      C
      maintenance
      Enables an AI assistant to browse restaurants and menus, manage a cart, reorder past orders, review checkout details, and place food delivery orders, returning a payment link to complete payment.
      13
      MIT