Install Marea in your AI client in 60 seconds
The Marea MCP server runs athttps://mcp.mareaalcalina.com/mcp and exposes the catalog API as 7 marea.* tools that AI clients can call directly. Install once with your developer key and the user’s AI client will route catalog calls through MCP instead of REST — gaining MCP elicitation prompts (explicit user confirmation on publish, ToS, and plan upgrades) for free.
Step 1 — Generate a developer key
Sign in at mareaalcalina.com/developers/keys and create anmk_dev_* key with at least the developer:bootstrap scope.
Keep the key secret. The MCP client passes it to the Marea server on every call.
Step 2 — Add Marea to your client
Marea speaks streamable HTTP MCP athttps://mcp.mareaalcalina.com/mcp. Most clients today still expect a stdio MCP server, so the install bridges the remote HTTP endpoint via mcp-remote — a small published npm shim that pipes stdio ↔ remote HTTP.
- Claude Desktop
- Cursor
- Continue.dev
Open Restart Claude Desktop. The
~/Library/Application Support/Claude/claude_desktop_config.json on macOS (or %APPDATA%\Claude\claude_desktop_config.json on Windows) and add the marea entry:marea.* tools appear in the tool picker.Step 3 — Confirm the install
Ask your AI client: “List the Marea tools you have.” You should see exactly seven:
Verification is REST-only.
POST /v1/users/:userId/verify and POST /v1/users/:userId/resendVerification are deliberately not exposed as MCP tools — the agent calls them directly with the restricted mk_user_* it received from marea.bootstrap_user. The 6-digit code flow needs the user in the loop; an MCP tool round-trip would add latency without changing the UX.
Step 4 — Try it
After the restart, ask your AI client these prompts in order. Each one validates a different layer of the install.1
Verify the connection
Prompt: “List the Marea tools you have available and tell me which account I’m using via
marea.whoami.”What you should see: the agent enumerates the 7 tools and reports back an email, plan tier (or free if pre-paywall), rpm/rpd quota, and a key prefix.If the agent reports fewer than 7 tools or says “I don’t have Marea tools,” the install didn’t load — restart Claude Desktop fully (Cmd-Q) and try again. See Troubleshooting.2
Bootstrap a test merchant (only with a dev key)
Prompt: “Bootstrap a Marea account for
test+demo@example.com with display name ‘Demo Tacos’ and source agent ‘my-agent-name’.”What you should see: a verification email lands in the test inbox, and the agent reports back a userId, a userKey (the restricted mk_user_*), and a verificationExpiresAt timestamp.This step is rejected (403 insufficient_scope) if you installed with an mk_user_* key — bootstrap requires developer:bootstrap, which only dev keys carry.3
Create + publish a storefront
Prompt: “Create a Marea storefront called ‘Demo Tacos’ in MXN with Mexican-Spanish settings. Add a product ‘Taco al pastor’ for 35 pesos. Then publish the storefront.”What you should see:
- The agent calls
marea.create_storefront, thenmarea.create_product, thenmarea.publish_storefront. - Before the publish call, your AI client pops an explicit confirmation dialog with the message “Publishing this storefront makes it publicly visible at <publicUrl>…”. This is the MCP elicitation primitive — you must accept it for publish to proceed.
- If the account hasn’t accepted Marea’s terms, publish returns
451 tos_not_acceptedwith anextActions[].urlpointing to the dashboard ToS modal. The agent will surface that link verbatim. - If the account’s plan can’t publish (e.g.
NO_ACTIVOpre-paywall), publish returns402 plan_limitwith anupgrade.upgradeUrlto the upgrade flow.
What each tool does
Common errors and what they mean
When a tool fails, the agent surfaces a structured error envelope (see Errors for the full schema). The most common ones:
The
marea.publish_storefront confirmation dialog is always shown before the REST call fires, even if the underlying account is fully eligible — publishing is destructive and user-visible by design.
Choosing dev vs user key for the install
Most readers will install with theirmk_dev_* key — it unlocks all 7 tools including marea.bootstrap_user. A few cases prefer a mk_user_* instead:
- Sharing a sandbox: you want the install scoped to a single account so the agent can only see that account’s storefronts. Use a
mk_user_*—marea.bootstrap_userreturns403 insufficient_scopebut the other 6 tools work normally. - Personal scripting: you’re a developer managing your own Marea account and don’t want to bootstrap a synthetic test user. Use a
mk_user_*for your real account — issued from the dashboard’s “Personal API key” path (or viaPOST /v1/users/:userId/keyswith your dev key + your ownuserId).
Discovery
Clients that support MCP discovery can find the server via the well-known endpoint:Authorization: Bearer mk_dev_* or Bearer mk_user_*). Example response:
tools/list call once the client connects, not in this well-known doc — that’s the canonical MCP discovery path. The well-known is for HTTP-layer crawlers that need only the server location + auth handshake.
MCP-only meta arguments
Every write tool (marea.bootstrap_user, marea.create_storefront, marea.update_storefront, marea.create_product, marea.update_product, marea.publish_storefront) accepts two optional underscore-prefixed arguments that don’t appear in the REST body:
marea.publish_storefront adds a third meta argument used only when the client lacks the MCP elicitation capability:
Agents that need bulletproof retries should supply
_idempotencyKey themselves rather than relying on the server-side default; the auto-generated key changes on every call, so an auto-retry on a network blip would be treated as a NEW request.
Troubleshooting
- “Cannot find
mcp-remote” — bump to npm ≥ 7 and Node ≥ 18;npx -ywill fetch on first run. - “401 missing_authorization” — the
--headerargument was dropped during JSON-edit (common when editors strip backslashes). Re-paste from this page exactly. - “403 insufficient_scope” on
marea.bootstrap_user— your dev key lacksdeveloper:bootstrap. Re-issue at mareaalcalina.com/developers/keys. - Claude Desktop doesn’t see the tools — restart Claude Desktop fully (Cmd-Q on macOS); a tab reload isn’t enough.
Next steps
- Bootstrap a user — same flow, narrated for the REST surface (verify is REST-only in MCP too).
- Add and edit products — the calls behind
marea.create_productandmarea.update_product. - Publish a storefront — including the 402 / 422 / 451 gates that
marea.publish_storefrontsurfaces via MCP elicitation.