MCP · OAuth 2.1 + refresh tokens · Claude, ChatGPT, Cursor, and any MCP-aware agent

Let Claude or ChatGPT build websites on your account.

Template Vault is a hosted MCP server. Connect it once and your AI can interview you, generate, preview, and publish real customer-ready websites — same quotas, same dashboard as the web UI. Authorize once, stay connected for ~90 days.

Free tier: 5 generations / monthOAuth 2.1 + PKCETool annotations (safe/destructive)Content policy →

Setup

Three official paths. Claude.ai and Claude Code work over native HTTP — easiest setup. Claude Desktop uses stdio and needs a local Node.js; we publish a small npm adapter for it.

In Claude (claude.ai)

Recommended

Pro plan or above. Native HTTP, no install. Mobile app inherits the connector after web setup.

  1. 1Open claude.ai → Settings → Connectors Add custom connector.
  2. 2

    Paste the URL — leave OAuth client ID/secret empty:

    https://www.the-template-vault.com/api/mcp
  3. 3Click Add → sign in to Template Vault → click Allow access. You’ll be bounced back to Claude with the connector live.
  4. 4Open a new chat, toggle the Template Vault connector on, and ask Claude to build something.

In Claude Code (CLI)

Native HTTP transport. OAuth handled by the CLI. Same Template Vault account.

  1. 1

    Register the connector:

    claude mcp add --transport http template-vault https://www.the-template-vault.com/api/mcp
  2. 2

    Verify:

    claude mcp list
  3. 3Start a session with claude. The first tool call triggers an OAuth browser flow — sign in, click Allow, return to the CLI.

In ChatGPT

Pro / Team / Enterprise plan. Same URL — MCP is a shared standard.

  1. 1Open Settings → Connectors Add custom connector.
  2. 2Paste the same URL — leave OAuth fields empty.
  3. 3Walk through the Template Vault OAuth consent. Done.

Claude Desktop, Cursor, Windsurf — via npm adapter

Stdio clients can’t speak HTTP natively, so they go through a small wrapper we publish on npm: template-vault-mcp. Requires Node.js 20+ installed on your machine.

  1. 1Make sure Node.js is installed — nodejs.org → LTS installer. On Windows, log out and back in after install so npx lands in PATH.
  2. 2

    Edit your client’s MCP config. For Claude Desktop: Settings → Developer → Edit Config. Add:

    {
      "mcpServers": {
        "template-vault": {
          "command": "npx",
          "args": ["-y", "template-vault-mcp"]
        }
      }
    }

    The same config works in Cursor (~/.cursor/mcp.json) and Windsurf.

  3. 3Fully quit and reopen the client. First tool call opens a browser for OAuth.
Known caveat: The stdio path relies on mcp-remote opening a local callback server (localhost:43082) to complete OAuth. Corporate networks with TLS-intercepting proxies, or strict Windows firewall rules on localhost, can break that loop. If you hit it, use claude.ai or Claude Code instead — both speak HTTP natively and don’t need the loopback.

What the agent can do

Six tools, designed to compose into a guided workflow: discover → personality → generate → poll → publish. Every tool carries MCP readOnlyHint / destructiveHint annotations so clients can prompt for confirmation on the right ones.

  • discover_business_needsread-onlyFree

    Returns the niche-aware question script the AI uses to interview the user before generating. Always called first.

  • list_personalitiesread-onlyFree

    Browse the six visual personalities — classic, minimal, gradient, zen, immersive, glass — before generating.

  • generate_sitedestructive1 generation

    Generate a full website from a populated business profile. Returns a jobId; build runs async ~30-90s.

  • get_generation_statusread-onlyFree

    Poll the async generation job. Returns status (pending → processing → completed) + preview URL once ready.

  • list_user_sitesread-onlyFree

    List the sites already in your Template Vault account.

  • publish_sitedestructiveFree

    Deploy a site to production at slug.the-template-vault.com (or your custom domain on paid tiers).

Example conversation

Once the connector is on, you talk to the AI as you would for any other task. It calls our tools when it makes sense.

I just opened a pool cleaning business in Hialeah, Florida — Aqua Brio Pools. I want a bilingual website with WhatsApp + Instagram. Build it.

→ discover_business_needs (asks pool-specific questions: service area, licensing, photos)

→ list_personalities (picks classic — warm + trustworthy)

→ generate_site (quota -1, async)

→ get_generation_status × 6 (waiting ~60s)

→ publish_site

Done — Aqua Brio Pools is live at https://aqua-brio-pools.the-template-vault.com. Bilingual EN+ES, click-to-call, WhatsApp button, Instagram embed. Keep editing in the dashboard.

Content moderation

generate_site runs a phrase pre-filter before burning a generation. We decline categories like adult content, hate speech, scams, illegal goods, CSAM, and impersonation/phishing. Defense in depth via the Anthropic Sonnet model’s own safety layer.

Full content policy →

Open source adapter

The stdio adapter is open source (MIT). The hosted server stays closed — but you can fork the wrapper, audit it, or self-host the bridge if you prefer.

Troubleshooting

The connector form gives a vague error after I paste the URL.

The URL must include www. — the apex hostname the-template-vault.com 308-redirects to www., which not all MCP clients follow.

Claude says it can't access Template Vault even though I set it up.

Each conversation must have the connector toggled on. Open a new chat, click the tools/connectors button in the composer, enable Template Vault, and try again.

I generated a site but I don't see it on Vercel.

generate_site creates a draft in Supabase. To go live you also need to call publish_site — just ask the AI “now publish it.”

Claude Desktop / Cursor: 'spawn npx ENOENT'.

Node.js isn’t in your client’s PATH. Install Node.js 20+ from nodejs.org, log out and back in (Windows), fully quit and reopen the client.

Claude Desktop: 'unable to get local issuer certificate' or 'fetch failed'.

Corporate network with TLS-intercepting proxy (Zscaler / Symantec / Cloudflare Gateway). Node uses its own CA store and doesn’t trust the corporate root. Test from a personal network, or set NODE_EXTRA_CA_CERTS to your corporate CA bundle path. Claude.ai and Claude Code don’t hit this — their HTTP path uses the system trust store.

Claude Desktop: OAuth callback page loads then 'localhost refused to connect'.

mcp-remote opens a local callback server on localhost:43082; the redirect back from our OAuth carries the auth code, but the local server is unreachable (firewall, killed mid-flow, or proxy intercepting loopback). Easiest fix: use claude.ai or Claude Code instead — both speak HTTP natively. We’re tracking the stdio loopback reliability as a follow-up.

Authentication failed / 401 after a few hours.

Shouldn’t happen — we issue OAuth refresh tokens with a 90-day window, rotated on every use. If you do hit a persistent 401, sign out + remove + re-add the connector. If a connector was set up before June 2026, remove + re-add once to get the refresh-token grant.

It worked on desktop, but my phone doesn't see the connector.

The mobile Claude / ChatGPT app inherits connectors from your account, but you have to enable the connector inside a fresh conversation on mobile too. Look for the tools icon in the message composer.

Try it now

Free tier includes 5 AI generations per month. Sign up, add the connector once, and let Claude or ChatGPT do the rest.