Layout Documentation

Layout in Claude Code

Claude Code speaks MCP, so Layout works in it the same way it works anywhere else: one command to add the connector, one sign in, and then you can order food without leaving the terminal.

Add it

claude mcp add --transport http layout https://mcp.layout.link

That registers Layout for the current project. To have it everywhere instead:

claude mcp add --transport http -s user layout https://mcp.layout.link

There is a third scope, -s project, which writes the server into a .mcp.json your teammates share. That is fine for Layout: the file records the address, never a credential, and every person still signs in as themselves and spends their own limit.

Sign in

  1. Start the connection

    Run /mcp inside Claude Code and pick Layout, or run claude mcp login layout from the shell.

  2. Approve it in the browser

    A Layout page opens. Sign in with your phone, then read the one approval screen. It names the single permission the connection gets, order, which covers ordering and your own saved food preferences.

  3. Check it is connected

    claude mcp list shows Layout with a health check. claude mcp get layout shows the detail.

  4. Order something

    Back in the session: "order me a large cold brew from the Dutch Bros on Mangrove." Layout resolves the restaurant, reads their live menu, builds the cart and comes back with a total.

This spends real money

Claude Code is a terminal, but Layout is not a sandbox. A confirmed order is a real order at a real restaurant, paid with a real card, and it is final once placed. Nothing is charged until you confirm a total we show you, and you can require a texted code on top of that. See confirming and paying.

What you need first

  • A Layout account with a card saved, from account.layout.link. Layout is invite only while we are early. See set up your account.
  • Nothing else. No API key, no client id, no secret. The connector registers itself.

What is actually happening

Worth knowing if you are the kind of person who reads this section.

Layout is a Streamable HTTP MCP server at the root of mcp.layout.link. An unauthenticated call gets a 401 carrying a WWW-Authenticate challenge, which points at our protected resource metadata, which names our authorization server. Claude Code registers itself dynamically, runs authorization code with PKCE, and stores the token it gets back. There is no shared secret anywhere in that flow.

If you want to see it for yourself:

curl -s https://mcp.layout.link/.well-known/oauth-protected-resource
curl -s https://api.layout.link/.well-known/oauth-authorization-server

The full picture is in how the connector works, and the tools the connection exposes are listed in tools Layout exposes.

Removing it

claude mcp logout layout      # forget the credential, keep the server configured
claude mcp remove layout      # remove it entirely

Removing the connector does not close your account or delete your order history.

When it will not connect

  • It asks you to sign in again in a loop. The stored credential is stale. claude mcp logout layout then claude mcp login layout.
  • It connects but says you have no account. You signed in with a phone number that has not redeemed an invite yet.
  • A build takes two to three minutes. That is the normal answer at a restaurant we have not seen before, not a hang. Layout returns a tracking link while it works, and Claude can poll for the result.

Anything else: contact@layout.link, and tell us it was Claude Code.

Updated September 2, 2026