Connect an agent
Model Context Protocol
LP Studio does no thinking of its own. It fetches, screenshots, measures, persists, does the survey arithmetic and serves the documents. Reading a site, writing a brand guide, inventing personas, answering the survey as one of them and deciding what to fix are all done by an agent, and reach the engine as MCP calls. This is how an agent gets there.
The endpoint
Bearer-authenticated, and served by Rails directly rather than through this site. An agent is configured with the address once and no person reads it, so routing tool calls through a serverless proxy would buy nothing and inherit its timeouts.
Add it
claude mcp add --transport http lp-studio http://localhost:3210/lp_studio/mcp \
--header "Authorization: Bearer YOUR_TOKEN"[mcp_servers.lp-studio]
url = "http://localhost:3210/lp_studio/mcp"
http_headers = { "Authorization" = "Bearer YOUR_TOKEN" }Replace YOUR_TOKEN with a token issued on the API side, by adding a token:Name entry to MCP_AGENT_TOKENS. This console never displays a live token — the commands above are templates, and a screenshot of one gives away nothing.
A session, start to finish
- 01
create_brandSlug, name and site URL. Every other tool addresses the brand by that slug. - 02
read_sitePull their storefront. Until this runs it is the only thing anyone knows about them. - 03
write_brand_guideWrite what the site said: voice, positioning, design tokens. A new version each time, so a panel written last month stays explainable. - 04
write_panelThe scope line, the panel note and five personas, sent together. The model refuses a panel that would render with a hole in it, and names the field. - 05
mint_shareReturns the URL that goes in the email. It refuses while the panel is not publishable, which is the one failure that would cost the account.
Open the link at the end and that page is what a stranger sees; nothing else is reachable from it. The audit and the built page hang off the same brand and can be minted the same way. Speed is independent of all of it — a measurement needs no personas and no guide.
The tools
create_brandRegister a brand so panels, pages and links can hang off it. Idempotent on the slug.list_brandsEvery brand and exactly what state it is in — what it has and what it still lacks.get_brandOne brand in full: the panel members, the newest guide, recent speed runs.read_siteFetch a public page and hand back its readable copy and metadata.
write_brand_guideStore a written reading of the brand as markdown. Every call writes a new version; nothing is edited in place.get_brand_guideRead a guide back. Defaults to the newest version, or name one.
write_panelWrite the scope line, the panel note and five personas. Replaces the whole panel atomically.get_panelRead the stored panel back exactly as it will render.
list_templatesEvery template available and how much there is to fill in each one.get_templateThe manifest for one template: every token, grouped into the sections of the page, each with an example.build_pageFill a template and store the result as a built page. Missing tokens come back in one refusal, all named.
get_surveyThe questionnaire: six statements in their exact wording, the five labelled points, the intent question, the verdicts.write_auditStore one whole reading of one page — headline, summary, ranked fixes, and one review per persona. One call writes the run.get_auditRead a run back: its scores, its fixes and every persona's answers.
run_speedMeasure a page with Lighthouse on mobile and desktop, and store the run.speed_historyPast measurements for a brand, newest first, with the performance delta on each.mint_shareMint the public link for a finished document. Refuses an unpublishable panel and says what is missing.
Templates lists what build_page can build from. Methodology is the questionnaire get_survey hands back.