Skip to main content
Glama

Write a page (HTML → anew.page URL)

anew_write

Encode a self-contained HTML document (or fragment, or plain text) into an anew.page URL and return that URL. Each encoding path is deterministic: the same input through the same path always produces the same URL. Different paths use different Brotli encoders, though, so the same HTML may mint different — equally valid — URLs; compare pages by their decoded HTML, never by slug. Inline all CSS, JS, and images (data: URIs, inline SVG, CSS gradients, or emoji) — the page should render alone forever, and each external reference gambles it on someone else's host staying up. One accepted exception: a webfont is far too large to inline, so a font may load from a durable CDN with a system-stack fallback; do not fight a user who asks for one. The HTML should stay ≤ 160000 UTF-8 bytes and the encoded URL ≤ 4000 bytes — the recommended share-safe budgets, not walls: a page past either still mints, renders and serves, up to the physical ceilings (65000 URL bytes, where the edge severs the request line; 163839 decoded bytes, the server's decode cap), it may just break in some apps — the response says so with a warning. Past a ceiling the endpoint refuses with an actionable error (code url_over_budget or content_too_large). Brotli slugs (the endpoint, or a local brotli mint) put a typical page in a few hundred URL bytes; raw base64 fits only ~2900 HTML bytes share-safe — know which budget you are drafting to, and never cut page content to fit before checking the brotli path. Returns the URL as plain text — return it to the user verbatim. To revise an existing anew page, its URL is its source: read it, edit that HTML, write it again. The new URL is a separate page and the original keeps working. Read it with anew_read first, then call this with the edited HTML.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
htmlYesA self-contained HTML document, fragment, or plain text. Encoded into the returned URL.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
urlYesThe anew.page URL — return verbatim.
bytesYesEncoded URL length in bytes.
limitYesUnfurl-safe URL threshold (4000); headroom = limit - bytes. Past it the URL still works (hard ceiling 65000), it may just break in some apps.
warningNoPresent when the page minted past a share-safe budget (URL over the share-safe budget, or content over the recommended byte budget): the URL works and serves, with the stated caveat. Relay it to the user with the URL.
decoded_bytesYesThe submitted HTML in UTF-8 bytes.
decoded_limitYesRecommended decoded-byte budget (160000).

TDQS

A4.9/5.0
Behavior5/5

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

Annotations signal readOnlyHint=false, openWorldHint=true, idempotentHint=false, and destructiveHint=false. The description goes well beyond these to explain determinism per encoding path, variability across Brotli encoders, overflow behavior with warnings, error codes, and the fact that the original page keeps working after a revision. This substantially enriches the agent's behavioral model of the tool.

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 description is long but densely informative; the core purpose is front-loaded in the first sentence and every subsequent clause addresses a real invocation concern. It lacks bullet-point structure and could be slightly tighter, but it earns its length by covering determinism, budgets, warnings, error codes, and the revision workflow without waste.

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?

Given the tool's nuance — encoding paths, size limits, self-contained content requirements, return format, and revision semantics — the description is exceptionally complete. It covers error codes, physical ceilings, and even instructs the agent to return the URL verbatim. The output schema exists, so not re-explaining return values is appropriate.

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

Parameters5/5

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

Although schema coverage is 100%, the description adds extensive meaning to the html parameter: it must be self-contained, must inline resources, should respect budget ceilings, and can be a document, fragment, or plain text. This goes far beyond the schema's minimal description and materially helps an agent prepare valid input.

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 opens with a specific verb and resource: 'Encode a self-contained HTML document (or fragment, or plain text) into an anew.page URL and return that URL.' This clearly distinguishes the write operation from its sibling anew_read. It also immediately clarifies the input-to-output transformation, leaving no ambiguity about what the tool does.

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?

The description gives explicit guidance on when to use this tool, including a revision workflow: 'Read it with anew_read first, then call this with the edited HTML.' It also provides actionable constraints such as inlining all CSS/JS/images, size budgets, and when a webfont CDN exception is acceptable. This tells an agent not just what the tool does, but how to invoke it correctly in context.

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.

TDQS

A4.9/5.0
Disambiguation5/5

The server exposes exactly two operations with fully distinct roles: one decodes an anew URL into HTML, the other encodes HTML into an anew URL. There is no overlap or boundary ambiguity between read and write.

Naming Consistency5/5

Both tool names follow the identical anew_<verb> pattern: anew_read and anew_write. The naming convention is perfectly consistent and immediately signals each tool's action.

Tool Count5/5

The server's domain is a narrow encode/decode utility, and two tools fully cover it; each tool is essential and earns its place. The count is appropriate even though it is below the typical 3-15 range because the scope is intentionally minimal.

Completeness5/5

The read/write pair covers the full lifecycle of this URL-encoded page format, including the documented read-edit-write revision workflow. No obvious operations are missing: URLs are immutable by design, so delete is not applicable and no listing/search is needed for self-contained URLs.

Resources