Skip to main content
Glama
thinhost

thinhost-mcp

Official
by thinhost
README.md
# thinhost-mcp

The [thin.host](https://thin.host) MCP server: publish static sites (Docusaurus, Astro, Vite,
Next export, hand-written HTML), provision custom domains, and send transactional email —
from Claude Code, Claude Desktop, or any MCP client.

Prefer nothing to install? The same tools are hosted at `https://thin.host/mcp` (OAuth or a
bearer API key): `claude mcp add --transport http thin-host https://thin.host/mcp`.

## Install (local server, reads your build folder directly)

Create an API key in the thin.host dashboard (Settings → Create API key), then:

```bash
claude mcp add thin-host \
  -e THINHOST_API_URL=https://thin.host/v1 \
  -e THIN_HOST_API_KEY=th_live_your_key \
  -- uvx thinhost-mcp
```

Claude Desktop (`claude_desktop_config.json`):

```json
{{ "mcpServers": {{ "thin-host": {{ "command": "uvx", "args": ["thinhost-mcp"],
  "env": {{ "THINHOST_API_URL": "https://thin.host/v1", "THIN_HOST_API_KEY": "th_live_your_key" }} }} }} }}
```

## Tools

| Tool | What it does |
|---|---|
| `publish_website` | Publish an HTML file, folder, ZIP or static build folder as a live site (big builds batched automatically) |
| `update_website` | Push changes; `sync=true` prunes files the new build no longer ships |
| `publish_website_from_url` / `update_website_from_url` | Same, from a public .zip/.html URL |
| `list_websites` | List the account's hosted sites |
| `provision_domain` / `check_domain_status` / `update_origin` / `release_domain` / `list_domains` | Custom domains with a hosted claim + DNS flow |
| `send_email` | Transactional email (allowlist + verified sending domain required) |

Docusaurus users: see the [recipe](https://thin.host/docs/static-sites) and the drop-in Claude
skill in [`skills/thin-host-docusaurus`](skills/thin-host-docusaurus/SKILL.md).

## Development

This repo is exported from the thin.host application repo (`scripts/export_mcp_package.py`
there) so the package can never drift from the deployed server; edit it there, re-export, and
push. Releases are built by GitHub Actions and published to PyPI with trusted publishing when a
`v*` tag is pushed.

TDQS

A4.1/5.0

Scored across 11 tools

Disambiguation4/5

Tools target mostly distinct resources and actions: website publishing/listing/updating, domain provisioning/status/update/release/listing, and email. The only real overlap is between publish_website/update_website and their _from_url variants; descriptions clarify the source-path vs URL distinction, but an agent could still hesitate between them.

Naming Consistency5/5

All tool names use consistent snake_case and follow a predictable verb_noun or verb_noun_suffix pattern. The _from_url variants also use a consistent suffix convention.

Tool Count5/5

11 tools is well-scoped for a hosting, domain, and transactional email platform. Each tool covers a distinct operation without excessive surface area.

Completeness3/5

Domain lifecycle is complete: provision, check status, update origin, release, and list. Website lifecycle covers publish, update, and list, but lacks an obvious delete/unpublish or get-detail operation, which is a notable gap for a hosting service.

Maintenance

ActivityMaintained
ResponsivenessNo issues