---
name: publish-html2web
description: Publish generated or local HTML and Markdown as temporary browser links with the HTML2WEB Remote MCP. Use when the user asks to share, preview, host temporarily, turn into a URL, or send an .html, .htm, .md, or .markdown file or source without setting up a repository or deployment.
---

# Publish with HTML2WEB

Use the HTML2WEB Remote MCP to turn HTML or Markdown into a short-lived, noindex browser URL. Keep the user's content unchanged unless they explicitly ask for edits.

## Connect the MCP

Check whether the client exposes the HTML2WEB publishing tools before doing any work. The public Streamable HTTP endpoint is:

```text
https://html2web.iill.dev/mcp
```

Free publishing does not require an API key, bearer token, or sign-in. If the tools are unavailable, give the user the endpoint and ask them to add it to their MCP client. Do not fabricate a published URL or silently fall back to another hosting service.

## Publish safely

1. Identify whether the source is HTML or Markdown.
2. Inspect it for passwords, API keys, access tokens, private URLs, personal data, and other material the user may not intend to make reachable by link. Stop and ask for redaction when sensitive content is present or likely.
3. Make local dependencies self-contained when needed. A remote MCP cannot read local file paths or localhost assets. Embed required styles and assets, or explain what will not render.
4. Choose the tool:
   - Use `publish_html` for an HTML string.
   - Use `publish_markdown` for Markdown. Raw HTML is disabled in rendered Markdown.
   - Use `publish_html_file` for a local `.html`, `.htm`, `.md`, or `.markdown` file only after reading it as UTF-8 and base64-encoding its bytes. The tool does not accept a local file path.
5. Use the default `1h` expiry unless the user requests or clearly needs `30m` or `24h`. Add a password only when requested.
6. Publish once. Do not retry a successful request or create duplicate links.
7. Open the returned public URL and verify that it loads and that the expected title or key content is visible.

## Report the result

Return the public `url`, `expiresAt`, and whether it is password protected. Treat `manageToken`, `manageUrl`, and `creatorPreviewUrl` as private ownership credentials. Never paste them into public output or ordinary chat. Provide a private management URL only when the user explicitly requests ownership controls, and warn that anyone with it can modify or delete the share.

If a quota error includes `resetAt`, state when publishing can resume. If it also includes `upgradeUrl`, present waiting and upgrading as separate choices; do not claim that checkout has already upgraded the current connection.

## Manage an existing share

Use `update_share`, `delete_share`, `set_password`, `set_expiry`, or `get_share_status` only when the user explicitly asks to manage an existing share and the required private credentials are available. Confirm destructive intent before deleting. Do not retrieve, expose, or infer page content through the status tool.
