Skip to main content
Glama

Publish to dochost

publish

Publish Markdown or HTML as a hosted dochost page and get a shareable URL. Respects your plan: link lifetime, password protection, custom slug, and branding all follow your account entitlements. Paid plans publish without dochost branding by default — pass noBranding: false to keep the mark. When the account cannot have an option you asked for, the publish still succeeds and the result carries ignoredOptions + ignoredNote — relay that instead of reporting plain success. The link is issued on the account's primary host (a custom domain or subdomain when one is set in Settings › Domains, otherwise dochost.co/d); get_account reports which.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
bodyYes
formatNo
publicNo
passwordNo
customSlugNo
noBrandingNo

Output Schema

TableJSON 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.

Schema Changelog

Changes observed during successful MCP inspections.

  1. 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"
      +}
  2. 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."
  3. 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"
      +}
  4. 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"
      +}
  5. 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"
      +}
  6. First observed

TDQS

A4.7/5.0
Behavior5/5

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

Beyond annotations, the description discloses plan-sensitive behavior, branding defaults, partial success with ignoredOptions + ignoredNote, and host selection based on account settings. It also points to get_account for host confirmation. This is rich behavioral context and aligns with openWorldHint=true.

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?

Four dense sentences, each earning its place: core purpose, plan entitlements, branding caveat, partial-success behavior, and host resolution. Information is front-loaded and there is no 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?

The description covers the essential operational context: what content is accepted, how entitlements affect options, what happens when options are ignored, and where the link is hosted. An output schema exists, so return-value details do not need to be repeated. For a 6-parameter publish tool, this is complete.

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 0%, so the description must compensate. It explains format via 'Markdown or HTML', customSlug via 'custom slug', password via 'password protection', and noBranding explicitly with default behavior. The public parameter is not explained, and body is only implied as the content being published, leaving a small gap.

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?

Description opens with a specific verb and resource: 'Publish Markdown or HTML as a hosted dochost page and get a shareable URL.' This clearly differentiates publish from siblings like update_page, delete_page, and get_page by focusing on creation of a new hosted page with a shareable link.

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

Usage Guidelines4/5

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

The description clearly conveys the main use case: creating a new hosted page from Markdown or HTML. It also explains when plan limitations matter and tells the agent to relay ignoredOptions/ignoredNote instead of plain success, which is actionable usage guidance. It does not explicitly name alternative tools, but the creation-focused language makes the use case unambiguous.

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.