mcpField
H
HTML Cloud

HTML Cloud

Local
html.cloudFiles & Storage0Updated 1d ago

About HTML Cloud

HTML Cloud is an MCP server for AI assistants that need to share generated HTML privately. It encrypts pages locally before upload and lets existing shares be updated without changing their links.

Key features

  1. 01Share inline HTML or a local HTML file
  2. 02Encrypt pages with AES-256-GCM locally
  3. 03Set links to expire after 7 or 30 days, or never
  4. 04Update a page while keeping its share link
  5. 05Return separate share and edit links

Use cases

  1. 01Privately share an AI-generated report page
  2. 02Publish a slide-style page with an expiry
  3. 03Revise a shared page without sending a new link

MCP support

The server exposes `share_html` and `update_html` tools to MCP clients. It sends only encrypted page content to html.cloud.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

mcp.json · Universal config
{
"mcpServers": {
"cloud-html-html-cloud": {
"command": "npx",
"args": [
"-y",
"html-cloud-mcp"
]
}
}
}
Run commandnpx -y html-cloud-mcp

Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.

Packages
npmhtml-cloud-mcp0.6.0

Tools

2

Saved tool list · updated 1d ago

ParameterTypeRequiredDescription
htmlstringNoThe full, self-contained HTML document to share. Use path instead for large documents.
pathstringNoAbsolute path of a local .html file to share instead of passing html inline.
expiresenumNoDays until the link expires. Defaults to 30.7 | 30 | never
link_namestringNoA short, human-readable name added to the share link so it says what it is, e.g. "Q3 sales report" gives https://html.cloud/v/{id}/q3-sales-report. Unlike the page, this name is not encrypted: it is visible in the link and to the server. Use a generic description, and leave it out when the title itself is confidential (names of people, clients, deals, medical or legal matters).

Details

From the project README

html-cloud-mcp

An MCP server that lets Claude and other AI assistants share the HTML they generate as a private, end-to-end encrypted link — no account, no public URL.

The assistant calls one tool, share_html, to share — and update_html to change a page it already shared, at the same link. The HTML is encrypted locally with AES-256-GCM before anything is uploaded; html.cloud stores only ciphertext and cannot read it.

"Make me a one-page summary of this and share it privately." → the assistant generates the HTML, calls share_html, and replies with a link.

"Actually, add a section on next steps." → the assistant revises the HTML, calls update_html with the edit link, and the link you already sent shows the new version.

Install

Claude Desktop (one-click)

Download the packaged extension (a .mcpb file) from html.cloud/mcp and double-click it. If Claude Desktop doesn't offer to install it, open Settings → Extensions, click Advanced settings, and use Install Extension… under Extension Developer to pick the file — dragging the file into the window is unreliable and may just attach it to the chat.

About the install warning: Claude Desktop shows the same red "access to everything on your computer" box for every extension installed from a file rather than from its built-in directory. It is a statement about how extensions run, not about this one. The server is the ~500 lines in bin/ and lib/ of this directory, with no third-party dependencies (it speaks MCP's stdio JSON-RPC itself, in lib/stdio-server.js); it talks to a single host (html.cloud), and it uploads only ciphertext. Extensions installed from Claude's directory don't show the warning; getting listed there is in progress.

Cowork: the extension also works in Cowork sessions that are linked to the computer it is installed on — the desktop app proxies it into the session. A Cowork session running purely in the cloud, with no linked computer, will not see it.

Other MCP clients

Add it to your MCP client. For Claude Desktop, in claude_desktop_config.json:

{
  "mcpServers": {
    "html-cloud": {
      "command": "npx",
      "args": ["-y", "html-cloud-mcp"]
    }
  }
}

For Claude Code:

claude mcp add html-cloud -- npx -y html-cloud-mcp

Requires Node.js 20+.

The tools

share_html
ArgumentTypeDescription
htmlstringThe full, self-contained HTML document to share.
pathstringPath of a local .html file to share instead of passing html inline.
expires7 | 30 | neverDays until the link expires. Default 30.
link_namestringOptional readable name added to the share link, e.g. "Q3 sales report" gives /v/{id}/q3-sales-report. Not encrypted — visible in the link and to the server. Max 80 characters.

Pass exactly one of html or path. path is for large pages: MCP hosts cap the size of a tool argument, so a long report that the assistant has written to disk is shared from the file rather than squeezed through the call. Only .html/.htm files are accepted — the server shares web pages, not arbitrary files from your computer.

Returns a share link (give it to anyone you want to read the file) and a private edit link (update the file, change the expiry, or delete it).

update_html
ArgumentTypeDescription
edit_linkstring (required)The private edit link share_html returned.
htmlstringThe complete HTML document that replaces the current one.
pathstringPath of a local .html file whose content replaces the current page.
link_namestringThe link_name given to share_html for this page, if any, so the returned share link matches the one already handed out.

As with share_html, pass exactly one of html or path.

Replaces the content behind an existing share. The share link stays the same and the expiry is untouched, so anyone who already has the link sees the new version. The edit key unwraps the document's existing view key locally, the new HTML is encrypted under that same key, and only ciphertext is sent — the server never sees the content, before or after.

Example prompts

  • "Make a one-page summary of this report as HTML and share it privately."
  • "Turn these notes into a slide-style page and give me a link that expires in 7 days."
  • "Add a next-steps section to the page you shared earlier." (the same link shows the new version)

How the encryption works

  • Keys are generated inside this server process and never sent anywhere except inside the links it returns.
  • The HTML is encrypted with AES-256-GCM before any network request. Only ciphertext is uploaded.
  • The decryption key sits after the # in the share link — that part of a URL is never transmitted to a server.

This is the same zero-knowledge model as the html.cloud website and CLI, using the same crypto module (imported from the html-cloud package — never reimplemented). Full explainer: html.cloud/security.

Configuration

Env varDescriptionDefault
HTML_CLOUD_PREFERWhen Claude should pick html.cloud over its built-in artifact publishing. sensitive: for confidential content and anything going outside your organisation; built-in artifacts stay fine for casual pages. always: for every share.sensitive
HTML_CLOUD_URLServer base URL (for self-hosted instances)https://html.cloud

The Claude Desktop extension asks this as a switch, Always share through html.cloud, when you install it. For npx setups, set the env var in the client config:

{
  "mcpServers": {
    "html-cloud": {
      "command": "npx",
      "args": ["-y", "html-cloud-mcp"],
      "env": { "HTML_CLOUD_PREFER": "always" }
    }
  }
}

For Claude Code: claude mcp add html-cloud -e HTML_CLOUD_PREFER=always -- npx -y html-cloud-mcp.

Privacy Policy

Full policy: html.cloud/mcp-privacy.

  • Collection. The server handles only the HTML the assistant passes to share_html or update_html — inline, or as the one .html file whose path the assistant passes. It reads nothing else from your computer and nothing from the conversation beyond the tool arguments.
  • Use and storage. The HTML is encrypted locally with AES-256-GCM. What is sent to html.cloud: the ciphertext, the chosen expiry, a copy of the page key encrypted with the edit key, and a hash of the edit key that authorises later updates (updates send the page id, the new ciphertext, and that proof). None of it lets the server read the page. Keys exist only in the links returned to you.
  • Sharing. No third parties. The server talks to exactly one host, html.cloud, and only when you share or update a page. Each request says it comes from the MCP server, so html.cloud can keep daily totals; nothing per page or per person. No analytics, no telemetry, no account.
  • Retention. A page is unavailable from the moment its link expires (7 or 30 days, or never if you chose that) and its ciphertext is permanently deleted by a daily clean-up; deleting via the edit link removes it at once.
  • Contact. Email [email protected] or open an issue at github.com/viljamilaurila/html-cloud.

Honest threat model

Anyone with the share link can read the file — the link is the credential. The server can expire or delete ciphertext but can never read it. See html.cloud/security for details and limitations.

Source: github.com/viljamilaurila/html-cloud · MIT

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.