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
- Start the connection
Run
/mcpinside Claude Code and pick Layout, or runclaude mcp login layoutfrom the shell. - 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. - Check it is connected
claude mcp listshows Layout with a health check.claude mcp get layoutshows the detail. - 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 layoutthenclaude 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
