Skip to main content
Glama

Publish anonymous page

publish_anonymous_page

Publish a public web page without an account or API key. It is deleted 48 hours after publishing unless the user opens the returned claimUrl and signs in. Returns the page URL, the claimUrl and tellUser: always relay tellUser and the claimUrl, and tell the user to keep the page before sending it to anyone. If the user gives an email address, pass it as reminderEmail: the claim link is emailed now and again before deletion.

Input Schema

NameRequiredDescriptionDefault
slugNoOptional address label, 3-40 lowercase letters, digits or hyphens. Random when omitted.
filesYesFiles of the page. The complete resulting page includes index.html at the top level.
siteNameNoName shown to the user and recipients, e.g. "Q3 report".
reminderEmailNoOptional. The user's email address, only if they give it: we email them the claim link now and before the page is deleted.

Output Schema

NameRequiredDescriptionDefault
urlNoPublic page address (works for 48 hours).
siteIdNoPage id.
claimUrlNoShow to the user: opening it while signed in keeps the page.
tellUserNoTell the user this, with the claimUrl: when the page is deleted and how to keep it.
deletesAtNoWhen the page is deleted, for people to read (UTC).
expiresAtNoWhen the page is deleted (ms since epoch).
fileCountNoFiles published.
reminderEmailSentNoPresent when reminderEmail was given.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed5 schema fields changed
    • addedInput schema / properties / reminderEmail
      Added value: +{
      +  "description": "Optional. The user's email address, only if they give it: we email them the claim link now and before the page is deleted.",
      +  "type": "string"
      +}
    • addedOutput schema / properties / deletesAt
      Added value: +{
      +  "description": "When the page is deleted, for people to read (UTC).",
      +  "type": "string"
      +}
    • changedOutput schema / properties / expiresAt / description
      Previous value: -"When the page expires (ms since epoch)."New value: +"When the page is deleted (ms since epoch)."
    • addedOutput schema / properties / reminderEmailSent
      Added value: +{
      +  "description": "Present when reminderEmail was given.",
      +  "type": "boolean"
      +}
    • addedOutput schema / properties / tellUser
      Added value: +{
      +  "description": "Tell the user this, with the claimUrl: when the page is deleted and how to keep it.",
      +  "type": "string"
      +}
  2. Changed6 schema fields changed
    • addedInput schema / properties / files / items / properties / content / description
      Added value: +"File contents: text, or base64 when encoding is base64."
    • addedInput schema / properties / files / items / properties / encoding / description
      Added value: +"utf8 (default) for text files, base64 for images and other binary files."
    • addedInput schema / properties / files / items / properties / path / description
      Added value: +"Path inside the page, e.g. index.html or assets/logo.png."
    • addedInput schema / properties / siteName / description
      Added value: +"Name shown to the user and recipients, e.g. \"Q3 report\"."
    • addedInput schema / properties / slug / description
      Added value: +"Optional address label, 3-40 lowercase letters, digits or hyphens. Random when omitted."
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "properties": {
      +    "claimUrl": {
      +      "description": "Show to the user: opening it while signed in keeps the page.",
      +      "type": "string"
      +    },
      +    "expiresAt": {
      +      "description": "When the page expires (ms since epoch).",
      +      "type": "number"
      +    },
      +    "fileCount": {
      +      "description": "Files published.",
      +      "type": "number"
      +    },
      +    "siteId": {
      +      "description": "Page id.",
      +      "type": "string"
      +    },
      +    "url": {
      +      "description": "Public page address (works for 48 hours).",
      +      "type": "string"
      +    }
      +  },
      +  "type": "object"
      +}
  3. First observed

TDQS

A4.4/5.0
Behavior5/5

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

Annotations only declare readOnlyHint=false and destructiveHint=false; the description adds the critical lifecycle facts a caller cannot infer — the page is deleted after 48 hours unless claimed via claimUrl, and the agent must relay tellUser and the claimUrl. That is exactly the sort of consequence disclosure annotations cannot carry.

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?

Front-loads purpose and the 48-hour deadline, then parameter guidance. The middle clause ('always relay tellUser and the claimUrl, and tell the user to keep the page before sending it to anyone') is a run-on that stacks two instructions, costing a little clarity.

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?

Complete despite an output schema being present: the description still surfaces the load-bearing obligations (relay tellUser, relay claimUrl, warn the user before sharing) that govern correct invocation, and the retention window is stated explicitly.

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

Parameters3/5

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

Schema description coverage is 100%, so slug, files, and siteName are fully documented in the schema; the description adds only the conditional rule for reminderEmail, which the schema already states. Baseline 3 applies since the schema does the heavy lifting.

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?

Specific verb and resource ('Publish a public web page') plus a distinguishing constraint ('without an account or API key') that separates it from the sibling publish_page/publish_document tools, which presumably require auth.

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?

Clear usage context: use when publishing anonymously, with conditional instructions for reminderEmail ('If the user gives an email address, pass it as reminderEmail'). It never explicitly names publish_page or publish_document as the alternative for logged-in users, so the boundary is inferred rather than 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