Skip to main content
Glama

Publish website

publish_site

Publish HTML/CSS/JS or any static files to a live public HTTPS URL at .chorus.host in one call. No account or API key needed. Use it when the user asks to publish, host, deploy or share a page, website, landing page, report, dashboard, portfolio, game or demo, or wants a link to something you made. Send every file with its path (index.html is served at the root) and its content: plain text for HTML, CSS, JS, SVG, JSON and Markdown, or base64 with encoding='base64' for images, fonts and other binary files. Each call publishes the complete site: files you leave out are removed. Limits: 4 MB of file content per call without an API key, 10 MB with one, and 1,000 files. Anonymous sites stay live for 24 hours; the result has a claim_url to give the user so they can keep the site for free, and a claim_token to save. To update a site, call again with the same slug and its claim_token.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
slugNoOptional. Subdomain to publish to (3-63 lowercase letters, digits and hyphens). Leave empty for a random one. To update an existing site, pass its slug together with its claim_token.
filesYesEvery file of the site. Each call replaces all files of the site.
titleNoOptional human-readable title saved with the site.
claim_tokenNoThe claim_token (ctk_...) returned when the site was first published. Required to update an anonymous site.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
urlYesLive URL of the site root.
slugYes
updatedYesTrue when an existing site got a new version.
page_urlYesURL to open: the site root, or the only HTML page when there is no index.html.
warningsNo
anonymousYesTrue when the site is not owned by an account and will expire unless claimed.
claim_urlNoLink for the user to keep the site: they open it and sign in with their email.
expires_atNoWhen the site will be deleted (RFC 3339), unless claimed.
file_countYes
next_stepsYesNotes for you, the agent.
version_idYes
claim_tokenNoSecret needed to update this anonymous site later. Save it; never put it on the page.
total_bytesYes
tell_the_userYesPlain-English message to relay to the user.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses behavior that contradicts the annotations: it states 'Each call publishes the complete site: files you leave out are removed,' which is a destructive replacement of existing content, while the annotations declare destructiveHint=false (only additive updates). The remaining disclosures (24-hour anonymous lifetime, 4 MB/10 MB limits, 1,000 files, claim_url/claim_token) are genuinely useful, but the destructive-vs-additive contradiction is material.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The definition is dense but front-loaded: what it does and where it lands comes first, then triggers, then file-passing mechanics, then limits and the claim flow. It is long (a single large paragraph covering many facets), but each sentence carries distinct operational information; only minor tightening is possible.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a publish/deploy tool with a nested files array, limits, expiry and a claim flow, the description covers everything an agent needs: content types and encoding, replacement semantics, size/file limits, anonymous lifetime, and the fields present in the result (claim_url, claim_token). An output schema exists, so return-value documentation beyond those flags is unnecessary.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is already 100%, so the baseline is 3, and the description adds real meaning on top: index.html is served at the root, plain text vs base64 (encoding='base64') selection for binary assets, and the slug+claim_token pairing needed to update rather than create. It does not restate the schema's format constraints on slug, which keeps it from being exhaustive.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb (publish) and resource (HTML/CSS/JS or any static files) plus the concrete outcome (a live public HTTPS URL at <slug>.chorus.host in one call). It is immediately distinguishable from the read-oriented siblings get_docs and get_site without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit when-to-use triggers are listed ('when the user asks to publish, host, deploy or share a page, website, landing page, report, dashboard, portfolio, game or demo, or wants a link to something you made'), and the update path is spelled out ('call again with the same slug and its claim_token'). No inference is required about the situation that selects this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources