Quickstart: MCP Server

Add custom domain provisioning to any MCP-compatible agent (Claude Desktop, Claude Code, etc.) in under 5 minutes.

1. Get a Platform API Key

Sign up at thin.host/platform to get your API key. For testing, you can use the free tier (3 domains, 100 API calls/day).

2. Configure Claude Desktop

Add the thin.host MCP server to your Claude Desktop config (claude_desktop_config.json):

{
  "mcpServers": {
    "thin-host": {
      "command": "python",
      "args": ["-m", "app.mcp_server"],
      "cwd": "/path/to/thin-host",
      "env": {
        "THINHOST_API_URL": "https://thin.host/v1",
        "THIN_HOST_API_KEY": "th_live_your_key_here"
      }
    }
  }
}

3. Use It

In a Claude conversation, ask Claude to set up a custom domain:

"I just deployed my site to https://myapp.vercel.app. Can you set up myportfolio.com as a custom domain?"

Claude will call provision_domain, get back a claim URL, and share it with you. You visit the claim page, pay, configure DNS, and the domain goes live.

Available Tools

ToolDescription
provision_domainCreate a new custom domain with payment/claim flow
check_domain_statusPoll domain provisioning progress
update_originChange the target URL for a domain
release_domainTear down a provisioned domain
list_domainsList all domains with optional filtering

Example Flow

# Agent provisions a domain
result = await mcp.call("provision_domain", {
    "domain": "mysite.com",
    "origin_url": "https://myapp.vercel.app",
    "user_email": "user@example.com"
})
# → { provision_id, status: "pending_payment", claim_url, dns_instructions }

# Agent shares the claim_url with the user
# User pays and configures DNS

# Agent checks status
status = await mcp.call("check_domain_status", {
    "provision_id": result["provision_id"]
})
# → { status: "active", ready: true }

See the MCP Tool Reference for full parameter and response documentation.