Connects Claude to Hostsmith's hosting platform so agents can deploy static sites and get back live HTTPS URLs without touching a repo or CI pipeline. Exposes site CRUD, domain management, account queries, and two deployment paths: inline file upload for small artifacts or a chunked upload flow for binaries. Authentication is OAuth only, no static tokens. Supports EU and US data residency with partition selection baked into the tool calls. Ships as stdio for most editors, remote streamable HTTP for Claude Desktop and Cursor, or self-hosted HTTP if you want to run it locally. Built for the workflow where an agent generates an HTML report or demo page and you want it live in seconds.
Public tool metadata for what this MCP can expose to an agent.
list_sitesList Hostsmith sites in the user's account. Returns each site's `siteId`, `subdomain`, `domain`, and current status - feed `siteId` into `get_site`, `deploy_files`, `deploy_create_upload`, or `delete_site`. This is the source of truth for "does the user already have a site at...1 paramsList Hostsmith sites in the user's account. Returns each site's `siteId`, `subdomain`, `domain`, and current status - feed `siteId` into `get_site`, `deploy_files`, `deploy_create_upload`, or `delete_site`. This is the source of truth for "does the user already have a site at...
partitionstringus · eulist_domainsList domains the user can host sites under. Returns shared hosting domains (e.g. `hostsmith.link`, available to everyone) and custom domains owned by the user's organization. Use this to pick a `domain` value before calling `create_site`. By default queries all partitions and...2 paramsList domains the user can host sites under. Returns shared hosting domains (e.g. `hostsmith.link`, available to everyone) and custom domains owned by the user's organization. Use this to pick a `domain` value before calling `create_site`. By default queries all partitions and...
sharedbooleanpartitionstringus · euget_accountGet the user's account: organization details (`orgId`, `orgName`), the calling user's home partition under `user.homePartition`, current subscription plan with its limits (max sites, max domains, storage, bandwidth), and current usage counts. Use to check how much headroom the...Get the user's account: organization details (`orgId`, `orgName`), the calling user's home partition under `user.homePartition`, current subscription plan with its limits (max sites, max domains, storage, bandwidth), and current usage counts. Use to check how much headroom the...
No parameter schema in public metadata yet.
get_siteGet full details of a specific Hostsmith site by ID, including its public URL (`https://<subdomain>.<domain>`), current deployment status, and configuration. Use after `list_sites` to inspect a single site, or after `deploy_files` / `deploy_finalize` to confirm the site is liv...2 paramsGet full details of a specific Hostsmith site by ID, including its public URL (`https://<subdomain>.<domain>`), current deployment status, and configuration. Use after `list_sites` to inspect a single site, or after `deploy_files` / `deploy_finalize` to confirm the site is liv...
siteIdstringpartitionstringus · eucreate_siteCreate a new Hostsmith site and return its `siteId`, full URL, and configuration. Use when the user wants to publish or host new content and no suitable site already exists. After creation, deploy content with `deploy_files` (small inline text) or `deploy_create_upload` + `dep...3 paramsCreate a new Hostsmith site and return its `siteId`, full URL, and configuration. Use when the user wants to publish or host new content and no suitable site already exists. After creation, deploy content with `deploy_files` (small inline text) or `deploy_create_upload` + `dep...
domainstringpartitionstringus · eusubdomainstringdelete_sitePermanently delete a Hostsmith site and all of its deployed files. **Destructive - only call after explicit user confirmation.** The site URL becomes unreachable immediately and the content cannot be recovered. The user must pass `confirm: true` for the deletion to proceed; ot...3 paramsPermanently delete a Hostsmith site and all of its deployed files. **Destructive - only call after explicit user confirmation.** The site URL becomes unreachable immediately and the content cannot be recovered. The user must pass `confirm: true` for the deletion to proceed; ot...
siteIdstringconfirmbooleanpartitionstringus · eudeploy_filesPublish in-memory file contents to a Hostsmith site without writing to disk. Use when you have just generated content (an HTML page, a report, JSON data) and the user wants it live. Returns the deployment version and status; call `get_site` afterwards if you need the public UR...3 paramsPublish in-memory file contents to a Hostsmith site without writing to disk. Use when you have just generated content (an HTML page, a report, JSON data) and the user wants it live. Returns the deployment version and status; call `get_site` afterwards if you need the public UR...
filesarraysiteIdstringpartitionstringus · eudeploy_create_uploadStart a direct-to-S3 upload for binary or large files. Use this instead of `deploy_files` for binaries (PDF, image, video, zip) or any file > ~1 MB. The MCP server has no access to the user's filesystem and `deploy_files` ships content inline through Lambda (capped at ~6 MB JS...3 paramsStart a direct-to-S3 upload for binary or large files. Use this instead of `deploy_files` for binaries (PDF, image, video, zip) or any file > ~1 MB. The MCP server has no access to the user's filesystem and `deploy_files` ships content inline through Lambda (capped at ~6 MB JS...
filesarraysiteIdstringpartitionstringus · eudeploy_finalizeCommit a deploy started with `deploy_create_upload`. Pass the `versionId` from the start response and a `completions` array containing the agent-collected ETags for each multi-part file (single-part uploads - those whose start response had an empty `uploadId` - do not need a c...4 paramsCommit a deploy started with `deploy_create_upload`. Pass the `versionId` from the start response and a `completions` array containing the agent-collected ETags for each multi-part file (single-part uploads - those whose start response had an empty `uploadId` - do not need a c...
siteIdstringpartitionstringus · euversionIdstringcompletionsarrayOfficial Model Context Protocol server for the Hostsmith hosting platform.
Static hosting for agents - give it a file, get a live URL. Claude Code shipping an HTML report. Cursor previewing a generated demo. Claude Desktop publishing a one-pager. One MCP call → public HTTPS URL in seconds. No repo, no CI, no build step. Custom domains, private sites, EU or US data residency.

| Tool | Description |
|---|---|
list_sites | List all sites in your account for a given data partition |
get_site | Get details of a specific site |
create_site | Create a new site |
delete_site | Delete a site |
list_domains | List available domains (shared and custom) |
get_account | Get account info, subscription plan, and usage |
deploy_files | Deploy inline file contents to a site |
deploy_create_upload | Start a direct upload for binaries / large files |
deploy_finalize | Commit a deploy started with deploy_create_upload |
Authentication is via OAuth 2.0. Static access tokens are not supported.
Open Settings → Connectors → Add custom connector and enter:
https://mcp.hostsmith.net/mcp
Claude Desktop runs the OAuth flow in your browser to authorize the connector against your Hostsmith account.
Add this entry to your MCP client's config:
{
"mcpServers": {
"hostsmith": {
"command": "npx",
"args": ["-y", "@hostsmith/mcp-server"]
}
}
}
The first tool call triggers an OAuth flow in your browser to authorize the server against your Hostsmith account.
Any MCP client that supports remote Streamable HTTP transport can point directly at the hosted server:
{
"mcpServers": {
"hostsmith": {
"url": "https://mcp.hostsmith.net/mcp"
}
}
}
The client handles the OAuth flow automatically - you'll be redirected to Hostsmith to authorize access.
Click the badge to add the remote Hostsmith server (https://mcp.hostsmith.net/mcp) to Cursor. The first tool call triggers OAuth in your browser.
Run the server in HTTP mode and have your MCP client perform OAuth against it:
npx @hostsmith/mcp-server http
{
"mcpServers": {
"hostsmith": {
"url": "http://localhost:3100/mcp"
}
}
}
| Variable | Default | Description |
|---|---|---|
HOSTSMITH_URL | https://hostsmith.net | Hostsmith app URL (OAuth endpoints). |
HOSTSMITH_API_DOMAIN | - | Override the upstream API domain across both partitions. The server prepends us.api. and eu.api. to the value you set. Example: HOSTSMITH_API_DOMAIN=staging.example.com routes calls to https://us.api.staging.example.com and https://eu.api.staging.example.com. Use this to point at a staging or proxied API host. |
HOSTSMITH_BASE_URL | - | Override the API base URL with a single fixed value, bypassing partition selection entirely. |
PORT | 3100 | HTTP server port. |
MCP_BASE_URL | http://localhost:$PORT | Public URL of the MCP server, used in OAuth metadata. |
The MCP transport and OAuth flow run in your client's app process and need no agent-sandbox configuration - if your MCP client connected, those paths are working.
The one place sandboxed agents commonly fail is the upload PUT during deploy_create_upload + deploy_finalize: the bytes go from the agent's shell to the partition API host. From the agent terminal, allow outbound HTTPS (port 443) to:
us.api.hostsmith.net (for sites in the us partition)eu.api.hostsmith.net (for sites in the eu partition)Sandbox-specific snippets (Cursor sandbox.json, Claude Code settings.json, Codex config.toml, generic firewall guidance) live in the Network access docs.
MCP_BASE_URL matches the URL your MCP client uses to reach the server.partition arg; if you omit it, the partition is inferred from your access token.npx @modelcontextprotocol/inspector npx -y @hostsmith/mcp-server http to browse tools interactively.Deeper material lives at hostsmith.net/docs/mcp.
See CONTRIBUTING.md (including the Releases section for the version-stamping flow). Security issues: see SECURITY.md.
HOSTSMITH_URLdefault: https://hostsmith.netHostsmith app URL (OAuth endpoints).
HOSTSMITH_API_DOMAINOverride the upstream API domain across both partitions; 'us.api.' and 'eu.api.' are prepended to this value.
HOSTSMITH_BASE_URLOverride the API base URL with a single fixed value, bypassing partition selection entirely.