§ for developers
A hosted home for things your code made.
MCP over Streamable HTTPS with OAuth 2.1. OpenAPI for Custom GPTs. A small REST surface for everything else. No SDK required — every endpoint is one curl.
What it is
A serving layer for HTML you generate from any LLM-backed surface. Publish a string of HTML, get a URL. Republish, the URL stays. The page sits behind your handle on livehost.run.
- MCP server speaking Streamable HTTPS
- OAuth 2.1 with PKCE — bring-your-own-tenant friendly
- OpenAPI 3.1 spec for Custom GPT actions
- REST API · 9 endpoints, all idempotent
Install in Claude
In Claude Desktop, paste this into the connector add command. The model can then call publish, update, list, read, delete.
# in Claude Desktop > settings > connectors > add custom
name: makeitrun
transport: streamable-https
url: https://mcp.livehost.run/v1
auth: oauth2 pkce · scope publish:write read:own
Install in ChatGPT
In ChatGPT Developer Mode, paste the OpenAPI spec URL. ChatGPT will discover the actions and prompt the user for auth on first use.
# developer mode > actions > import from url
https://app.livehost.run/.well-known/openapi.yaml
From your own code
One POST publishes a page. Pass HTML in the body, get back the URL and a QR. PATCH the same slug to update.
curl -X POST https://app.livehost.run/api/v1/publish \ -H "Authorization: Bearer $MIR_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "slug": "menu", "title": "Hank'\''s cocktail list", "access": "public", "html": "<!doctype html>…" }'
Returns:
{ "url": "https://hanks.livehost.run/menu", "qr": "https://app.livehost.run/qr/hanks_menu.png", "version": 2, "updated_at": "2026-05-19T16:12:09Z" }
Webhooks
We'll fire page.viewed, page.expired, page.reported. Signed with HMAC-SHA256. Retry with exponential back-off.
Open source
The MCP server, the docs site, and the example .claude/agents/ are all on GitHub. PRs welcome.
questions → [email protected]