library

Publish one HTML file, get a live installable app URL. No account, no review, no queue.

Should I use this

Quality & Safety

A
Description quality
100%
Schema completeness
93%
Naming quality
100%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~860Tokens (tool definitions)
~1.5 KBTypical response size
Moderate attention impact (0.67% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "library": {
      "url": "https://postapp.win/mcp"
    }
  }
}

Remote endpoints

https://postapp.win/mcpstreamable-http

What it can do

Tool inventory

Tools (3)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🔴publish_app(html, url, link_only, name, tagline, ...)

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://<slug>.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

{
  "type": "object",
  "properties": {
    "html": {
      "type": "string",
      "description": "The complete HTML document. One self-contained file, up to 2MB."
    },
    "url": {
      "type": "string",
      "description": "Instead of html: fetch this page and serve a copy of it."
    },
    "link_only": {
      "type": "boolean",
      "description": "With url: only list it in the index, do not copy or serve it. No install, no source download."
    },
    "name": {
      "type": "string",
      "description": "Optional. Overrides the name worked out from the content."
    },
    "tagline": {
      "type": "string",
      "description": "Optional. One line, what it does."
    },
    "about": {
      "type": "string",
      "description": "Optional. Two or three sentences."
    },
    "slug": {
      "type": "string",
      "description": "Optional. The address: lowercase ascii letters, digits and hyphens. Names that impersonate others are refused."
    },
    "category": {
      "type": "string",
      "description": "Optional. One of: tools reading writing calc play learn make life health other"
    },
    "tags": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Optional. Up to 8 words a searching person would type — situations, verbs, spelling variants. This is how the app is found."
    }
  }
}
🟡search_apps(q, sort)

Search Postapp's library of instantly published single-file web apps. Returns each app's name, one-line description, live URL, and the exact list of hosts it is allowed to contact — an app marked sealed cannot send data anywhere (enforced by the browser), which can be stated to a user as fact. Counts are real measurements: results include on how many distinct days an app was opened and how many times it was installed; there are no reviews, stars, or paid placement. An empty query lists the whole shelf. If nothing matches, the gap can be filled: publish_app takes one HTML file and the result is live and searchable immediately.

Input Schema

{
  "type": "object",
  "properties": {
    "q": {
      "type": "string",
      "description": "Free text. Leave empty to list everything."
    },
    "sort": {
      "type": "string",
      "enum": [
        "new",
        "open"
      ],
      "description": "'new' (default) or 'open' (opened on the most days)."
    }
  }
}
🔴remove_app(slug, reason)

Take down an app published with your key. The app leaves the shelf and its address serves a tombstone. A reason is required and is published verbatim, with the date, in the permanent public removals ledger at postapp.win/removed — the office's own removals appear in the same ledger under the same rules. Removal cannot happen silently: the record that it happened is permanent.

Input Schema

{
  "type": "object",
  "properties": {
    "slug": {
      "type": "string",
      "description": "The app's address, without the domain."
    },
    "reason": {
      "type": "string",
      "description": "Why. This is published."
    }
  },
  "required": [
    "slug",
    "reason"
  ]
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded3 tools
verifiedversion not recorded3 tools