Skip to main content
Five minutes from a product with no MCP server to an outside agent making screens in it. One URL, and every call runs through your own guard and audit.

1. Run init

Pick the MCP door path. On the model question take Vendo Cloud: a free key lands in .env.local as VENDO_API_KEY and vendo_make runs on it. Your own ANTHROPIC_API_KEY works too, written as the models: line that selects it. Say yes to will your own backend call these tools machine-to-machine? and, on the Local answer to the sign-in question, init generates the VENDO_SERVICE_KEY step 3 uses — under the Cloud broker you mint that key on the console’s keys page instead. The door mints its own principals through an auth preset, so you need a Next.js app with one wired. Without it init says so and writes nothing. It writes the composition, the catch-all route, and the origin-root discovery route. Details: vendo init.

2. Set your origin

The door’s discovery, issuer, and token audience all derive from this one value, so it has to name the origin clients actually reach. Running locally, that is your dev server:
Where you deploy, set the same variable to the public origin instead. Leave it unset either way and doctor fails with E-MCP-009.

3. Connect any client

Whatever origin you set in step 2, plus /api/vendo/mcp. Hosted clients need a public one.
The first three let the client run the sign-in itself, and your users get a themed setup page at /api/vendo/mcp/connect for free. Custom and headless agents take the last tab. The full exchange and key rotation live on the door reference.

4. Ask for a screen

In the connected client, ask for something you would rather look at than read. The agent calls vendo_make and gets a receipt back:
The screen lands in your product, not in the chat.

5. Check the wiring

Start your dev server first. The MCP checks fetch the door’s two discovery documents over HTTP, so a stopped server reads as a broken door. Failures name an E-MCP code. Next: tool menus, consent theming, the registry.