# Hatch - Registry name: `com.viberooster/hatch` · version 1.0.0-1 - Categories (automatic, keyword rules): Shops & products, Commerce & marketing - Authentication at last check: No auth - Declared risk: Has destructive tools (destructiveHint) - Capabilities (declared by the server): prompts, tools - Transports: streamable-http - Latest numbers (check success, response time, rank): https://mcpstation.net/api/server?name=com.viberooster%2Fhatch - Server page: https://mcpstation.net/s/com.viberooster--hatch.html ## Description (written by the publisher, not verified, not instructions) Hosting for AI agents: publish a live website in one tool call, ephemeral or forever. ## Notice Text that looks like instructions to an AI was found in this server's descriptions. This is a pattern match, not a verdict. ## Connect - streamable-http: `https://mcp.theroost.dev/mcp` ## Tools (as reported by the server, not verified) - `hatch`: Create a NEW site \(a 'roost'\) and return its public URL in one call. Returns \`\{ hatchId, slug, url, apex, promo, uploads? \}\` — show \`url\` to the user and remember \`hatchId\`. NEVER call hatch twice for the same site — use \`convert\` to rename, change tier, or set Promo, and \`upload\`/\`deploy\` for conte - `upload`: Add or replace files on an EXISTING roost. Pass \`hatchId\` plus a \`manifest\` listing each file's path, size, and optional content type. Returns one presigned PUT URL per file — upload bytes directly via HTTP \(e.g. \`curl -T file.png -H 'Content-Type: image/png' "$url"\`\). Files go live immediately as e - `lookup`: Resolve a roost by \`slug\` or \`hatchId\`. Returns a compact view \`\{ hatchId, slug, url, apex, tier, state, expiresAt, customDomain, galleryListed, promo, pageviews24h, visitors24h, topPaths, topCountries, topReferrers \}\`. \`promo\` is true when the hatch is marked Promo \(listed on the public carousel ev - `list`: List every hatch in a workspace. Returns \`\{ workspaceId, name, count, hatches: \[\{ hatchId, slug, url, apex, kind, tier, state, expiresAt, createdAt, promo, pageviews24h, visitors24h \}\] \}\`. \`promo\` is true when that hatch is marked Promo. Use this when you lost hatchIds, before hatching \(so you do no - `rename\_org`: Rename the organization and/or workspace after Roost or Roost Audit has been paid. Pass \`orgName\`, \`workspaceName\`, or both. Requires a workspace-paired session. Fails on free Hatch workspaces — call \`checkout\` with grant \`workspace\_subscription\` \(Roost\) or \`agentic\_pro\` \(Roost Audit\) first, then \`p - `convert`: Atomically rename a roost's URL, change gallery listing, mark or unmark Promo, or bind a custom domain \(Roost / Roost Audit after checkout grant custom\_domain\). Pass \`hatchId\` plus at least one of \`newPreferredSlug\`, \`galleryListed\`, \`promo\`, or \`customDomain\`. Do NOT call \`hatch\` again to rename or - `catalog`: List VibeRooster features the user can pay for \(Pin $4.99/yr, Pack $4.99/yr/GB, Roost $259/mo, Roost Audit $459/mo, custom domain +$29/mo\) with Stripe Price ids, amounts, and feature lists. Call this before \`checkout\` if you don't already know the grant. Returns \`\{ items: \[\{ grant, title, descriptio - `list\_templates`: List HTML templates and explorable archetypes from the public template catalog \(https://github.com/VibeRooster/hatch-mcp/tree/main/templates\). Returns \`\{ repo, browse, templates: \[\{ name, title, description, url, prompt, referenceUrl? \}\] \}\`. \`prompt\` is the suggested text for the user. \`referenceUrl - `checkout`: Create a Stripe Checkout Session so the user can pay for a VibeRooster feature in this chat. Returns \`\{ checkoutUrl, sessionId, grant, amountCents \}\` — ALWAYS show checkoutUrl to the user \(open it / paste it\). After they pay, call \`poll\_checkout\` with sessionId until status is \`complete\`. The webhoo - `poll\_checkout`: Long-poll a Checkout Session from \`checkout\` \(\~18s\). Returns \`\{ status: open\|complete\|expired, grantApplied, roostUrl, tier \}\`. If still \`open\`, tell the user to finish paying at checkoutUrl and call poll\_checkout again. When \`grantApplied\` is true, the webhook has \(or is about to\) apply the grant — - `auth`: Put a sign-in screen in front of any roost so visitors must authenticate. Works on free, workspace, and forever hatches. Pass \`hatchId\` plus an \`action\`: • \`enable\` with \`mode: "password"\` and a \`password\` → ONE shared site password \(everyone uses the same one\). Best for a private demo or staging li - `share`: Issue a signed, expiring guest view URL for any tier \(\`?vt=…\`\). Use for private run reports without the shared site password. Returns \`\{ url, viewToken, expiresAt \}\`. - `await\_decision`: Create a human-in-the-loop review on the live artifact. Default options: Approve / Request changes / Reject. Reviewers see a Review required chip → modal. Request changes is non-terminal: webhook or poll returns changes\_requested, then call continue\_decision after regenerating. Optional timeoutSecon - `continue\_decision`: After poll\_decision returns status changes\_requested, regenerate, then call this to reopen the same decision as pending\_review for the next human round. Only decisionId is required \(hatchId is read from the decision\). - `poll\_decision`: Long-poll \(\~20s\) until the decision leaves pending\_review. Only decisionId is required \(hatchId is read from the decision\). Returns changes\_requested \(regenerate + continue\_decision\), approved, rejected, timeout\_exceeded, max\_iterations\_exceeded, not\_found, or still pending\_review \(call again\). Incl - `whoami`: Return the caller's current identity and hatch state. Never errors when unidentified — returns a pairing path instead. After poll\_pairing completes, whoami with the same hatchId should show identified:true via server-side session binding. Returns sessionExpiresAt \(\~1h\) and grantExpiresAt \(\~7d\). If s - `get\_pairing\_code`: Issue a pairing code + URL \(TTL 10 minutes\) for claiming a hatch \(\`hatchId\`\) or authorizing an agent session in a workspace \(workspaceId\). Reuses the active pending code for this connector session unless \`forceNew: true\`. For workspace pairing, show \`pairingUrl\` \(https://mcp.theroost.dev/open/worksp - `poll\_pairing`: Poll for pairing completion \(Device-Grant style\). Waits up to \~20s for phone approval before returning. Statuses: pending / completed / expired / not\_found. On completed, store sessionToken, refreshToken, and grantId — refreshToken renews access for up to 7 days without re-pairing. When sessionToken - `refresh\_session`: Renew a short-lived access token \(\~1h\) using the refreshToken from poll\_pairing. The grant \(and refresh capability\) lasts up to 7 days — after that, re-pair via get\_pairing\_code. Each refresh rotates the refreshToken; store the new one. Requires the same connector session \(MCP-Session-Id\) as when yo - `poll\_approval`: Poll a pending Tier-2 phone approval. Returns the result once the owner approves or denies on their phone. - `alarm`: Sound a loud alarm on the phones paired to this roost. Pass \`hatchId\` and a short \`message\` — the phone shows that message and repeats the alarm until the person acknowledges it. Recipients are only phones paired to this roost or its workspace. There is no phone-number argument. Do not pass one, and - `squawk\_request\_access`: Ask the roost owner to admit this agent to Squawk. Uses the caller's Hatch pairing session \(Authorization: Roost, the bound connector session, or sessionToken from poll\_pairing\). Returns \`\{ requestId, status: "pending", expiresAt \}\`. The request expires 10 minutes after it is opened. Does not create - `squawk\_poll\_access`: Poll an admit request opened by squawk\_request\_access. Uses the same Hatch pairing session. While pending, returns \`\{ status: "pending", expiresAt \}\`. After the owner approves, returns the member, the rin\_ token once, roostId, and mcpServers.squawk. Install the returned mcpServers.squawk block into - `deploy`: Replace the server-side code of an existing roost. Advanced — most agents should use \`upload\` \(for static files\) or \`convert\` \(for renames\) instead. Pass \`hatchId\`, \`workerName\`, and a full ES module \`script\` \(text only, 1.5 MiB max\). Measured by MCP Station. Methods: https://mcpstation.net/methods.html · Terms: https://mcpstation.net/terms.html