Skip to main content
Glama

publish_app

Publish one self-contained HTML document to Postapp (postapp.win), a permissionless app library. No review, no queue, no account: the app is live at https://.postapp.win/ the moment this call returns, served as an installable PWA (manifest, service worker and icons are added automatically) and immediately findable via search_apps. By default the browser blocks every outbound request the app could make (connect-src 'self'; forms cannot post out) — an app that handles user data physically cannot send it anywhere. Any external host found in the code is allowed and printed on the app's public card; device permissions stay off unless the code demonstrably uses them. Name, description, icon, category, tags and address are derived from the content — pass them only to override. Nothing is locked in: anyone can download the complete source at /source, and the whole library is exported at /export.json. Ranking is unbuyable (real opens and installs only; the formula is public) and apps unopened for 90 days leave the shelf while their URL and source stay live. Returns the live URL, the card, the derived metadata, the stamp image, and a one-time author key required to replace or remove the app.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
urlNoInstead of html: fetch this page and serve a copy of it.
htmlNoThe complete HTML document. One self-contained file, up to 2MB.
nameNoOptional. Overrides the name worked out from the content.
slugNoOptional. The address: lowercase ascii letters, digits and hyphens. Names that impersonate others are refused.
tagsNoOptional. Up to 8 words a searching person would type — situations, verbs, spelling variants. This is how the app is found.
aboutNoOptional. Two or three sentences.
taglineNoOptional. One line, what it does.
categoryNoOptional. One of: tools reading writing calc play learn make life health other
link_onlyNoWith url: only list it in the index, do not copy or serve it. No install, no source download.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.5/5.0
Behavior5/5

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

With no annotations, the description carries the full burden of behavioral disclosure and excels. It details the security model (browser blocks outbound requests, external hosts allowed), privacy (device permissions off unless used), live deployment, PWA auto-adding, source availability, ranking formula, and the 90-day removal policy. This is exceptionally transparent about side effects and limitations.

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 information-dense; every sentence conveys a meaningful behavior or constraint. It is front-loaded with the core purpose and then details security and persistence. While it could be seen as verbose, the complexity of the tool justifies the length and there is no wasted text.

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

Completeness4/5

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

Given 9 parameters and no output schema, the description covers nearly all aspects: what it returns, security behavior, derived metadata, override semantics, and removal policy. The only gap is that it never explicitly states that one of html or url is required (though the prefix 'Instead of html' implies it). Overall, it is very complete for the tool's complexity.

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 descriptions cover 100% of parameters, so the baseline is 3. The description adds value by explaining that metadata (name, icon, category, tags) is derived from content and passed only to override, clarifying the optional nature and purpose of these parameters. This enhances understanding beyond the schema.

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: 'Publish one self-contained HTML document to Postapp' and clearly states the destination. It differentiates from sibling tools by mentioning that published apps are 'immediately findable via search_apps' and the existence of remove_app for removal. The purpose is unmistakable.

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 implies when to use this tool: to publish an HTML app to Postapp. It contrasts with search_apps (finding apps) and remove_app (removing apps) indirectly. However, it does not explicitly state conditions for not using it, such as needing server-side code or inappropriate content, but overall the context is clear.

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