Skip to main content
Glama

Publish to dochost

publish

Publish HTML or Markdown as a hosted web page and return a shareable URL. Use when the user asks to share an HTML quiz, calculator, report or Markdown document as a link. HTML JavaScript runs in a sandbox. Free links expire after seven days, or three days when published with public set to false; paid link lifetime and options follow account entitlements. For revisions of an existing page, use update_page to keep the same link. Results report expiry and any ignored options; relay ignoredOptions/ignoredNote instead of claiming all requested settings were applied. New links use the account primary host; get_account reports it.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "body": "<body>"
    },
    "name": "publish"
  }
}

Input Schema

NameRequiredDescriptionDefault
bodyYesComplete HTML or Markdown source to publish, preserving scripts and styles. Pass the content itself, not a summary, file path, URL or surrounding Markdown code fence. Single-file HTML must inline assets or use publicly accessible asset URLs.
formatNoUse html for HTML source and markdown for Markdown. Omit only when you want automatic format detection.
publicNoWhether the page is discoverable on Explore (default true). False does not password-protect the link; readers with its URL can still access an unprotected page.
passwordNoRequested reader password, subject to plan entitlement. Omit unless requested; check ignoredOptions/ignoredNote before claiming password protection.
customSlugNoRequested custom URL slug, subject to plan entitlement and availability. Omit unless the user requests one.
noBrandingNoOmit to use the plan default: paid plans hide branding, free plans keep it. Set false if the user wants to keep the dochost mark.

Output Schema

NameRequiredDescriptionDefault
urlYesThe shareable page URL, on the account's primary host (custom domain, subdomain, or dochost.co/d). Relay it verbatim.
noteNoFree-tier only: expiry warning + upgrade link. Relay this to the user.
slugYes
formatYes
expiresAtNoISO timestamp, or null when the link is permanent.
permanentYes
ignoredNoteNoPlain-language consequence of ignoredOptions. Relay it instead of reporting plain success.
iterateHintNoHow to revise this page later. Follow it instead of publishing a second time.
ignoredOptionsNoPaid options this account does not have, which were dropped. Present only when non-empty — the publish still succeeded, but NOT as asked.
firstPublishWelcomeNoPresent only on the account's first publish: relay the link and offer the one next step it describes.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • addedOutput schema / properties / firstPublishWelcome
      Added value: +{
      +  "description": "Present only on the account's first publish: relay the link and offer the one next step it describes.",
      +  "type": "string"
      +}
  2. Changed6 schema fields changed
    • addedInput schema / properties / body / description
      Added value: +"Complete HTML or Markdown source to publish, preserving scripts and styles. Pass the content itself, not a summary, file path, URL or surrounding Markdown code fence. Single-file HTML must inline assets or use publicly accessible asset URLs."
    • addedInput schema / properties / customSlug / description
      Added value: +"Requested custom URL slug, subject to plan entitlement and availability. Omit unless the user requests one."
    • addedInput schema / properties / format / description
      Added value: +"Use html for HTML source and markdown for Markdown. Omit only when you want automatic format detection."
    • addedInput schema / properties / noBranding / description
      Added value: +"Omit to use the plan default: paid plans hide branding, free plans keep it. Set false if the user wants to keep the dochost mark."
    • addedInput schema / properties / password / description
      Added value: +"Requested reader password, subject to plan entitlement. Omit unless requested; check ignoredOptions/ignoredNote before claiming password protection."
    • addedInput schema / properties / public / description
      Added value: +"Whether the page is discoverable on Explore (default true). False does not password-protect the link; readers with its URL can still access an unprotected page."
  3. Changed2 schema fields changed
    • addedOutput schema / properties / ignoredNote
      Added value: +{
      +  "description": "Plain-language consequence of ignoredOptions. Relay it instead of reporting plain success.",
      +  "type": "string"
      +}
    • addedOutput schema / properties / ignoredOptions
      Added value: +{
      +  "description": "Paid options this account does not have, which were dropped. Present only when non-empty — the publish still succeeded, but NOT as asked.",
      +  "items": {
      +    "enum": [
      +      "noBranding",
      +      "password",
      +      "customSlug",
      +      "searchable"
      +    ],
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
  4. Changed1 schema field changed
    • changedOutput schema / properties / url / description
      Previous value: -"The shareable dochost.co page URL."New value: +"The shareable page URL, on the account's primary host (custom domain, subdomain, or dochost.co/d). Relay it verbatim."
  5. Changed1 schema field changed
    • addedOutput schema / properties / iterateHint
      Added value: +{
      +  "description": "How to revise this page later. Follow it instead of publishing a second time.",
      +  "type": "string"
      +}
  6. Changed1 schema field changed
    • addedOutput schema / properties / note
      Added value: +{
      +  "description": "Free-tier only: expiry warning + upgrade link. Relay this to the user.",
      +  "type": "string"
      +}
  7. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "expiresAt": {
      +      "description": "ISO timestamp, or null when the link is permanent.",
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "format": {
      +      "enum": [
      +        "markdown",
      +        "html"
      +      ],
      +      "type": "string"
      +    },
      +    "permanent": {
      +      "type": "boolean"
      +    },
      +    "slug": {
      +      "type": "string"
      +    },
      +    "url": {
      +      "description": "The shareable dochost.co page URL.",
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "url",
      +    "slug",
      +    "format",
      +    "permanent"
      +  ],
      +  "type": "object"
      +}
  8. First observed

TDQS

A4.9/5.0
Behavior5/5

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

Beyond the annotations it discloses high-value behavior an agent could not infer: JS runs in a sandbox, free links expire in seven days (three with public=false), paid lifetime follows entitlements, new links land on the account primary host, and ignored options are reported rather than silently dropped. It even prescribes the follow-up action ('relay ignoredOptions/ignoredNote instead of claiming all requested settings were applied').

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

Conciseness5/5

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

Purpose and required input lead; usage, constraints, sibling routing and result-handling guidance follow in short declarative sentences. Every sentence carries an operational fact (sandboxing, expiry, host, ignored options) with no restatement of the tool name or filler.

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 write tool with an output schema, the description covers everything an agent needs: what it produces, where it is hosted, how long it lasts, which options can silently fail, and what to do with the result. Nothing material is left to inference from the annotations or schema.

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 coverage is 100%, so the baseline is 3, but the description adds real semantics: it attaches the three-day expiry to publishing with public=false, warns that password/customSlug are entitlement-gated and may be ignored, and clarifies that public=false is not password protection. The remaining parameters are left entirely to the schema, so it is an increment rather than a full account.

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?

Opens with a specific verb and resource plus the outcome: 'Publish HTML or Markdown as a hosted web page and return a shareable URL.' It then names the sibling it is not (update_page) for revisions, so an agent can route between them without opening either 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?

Gives an explicit trigger ('Use when the user asks to share an HTML quiz, calculator, report or Markdown document as a link') and an explicit exclusion with the alternative named: 'For revisions of an existing page, use update_page to keep the same link.' Both the when and the when-not are stated.

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