mcpField
H
htmldrop

htmldrop

远程服务
htmldrop.link文件与存储1313 周前更新

关于 htmldrop

htmldrop 将 HTML、Markdown、PDF 和图片发布为可分享链接,适用于 Agent 或个人分享生成的内容。它提供过期时间、密码保护和独立子域名。

主要功能

  1. 01发布 HTML、Markdown、PDF 和图片
  2. 02Markdown、文本和 JSON 渲染为阅读页
  3. 03为链接生成 Open Graph 预览卡
  4. 04设置过期时间和密码保护
  5. 05提供 REST API 和自托管选项

适用场景

  1. 01分享 Agent 生成的报告或图表
  2. 02发布可通过链接访问的演示内容
  3. 03为共享文件设置到期时间或访问密码

MCP 相关

托管的 MCP 服务位于 https://htmldrop.link/mcp,并提供 publish_html 工具,可发布 HTML、Markdown 或远程网页。

配置

远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。

服务地址https://htmldrop.link/mcp
一键复制安装命令
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。

工具

1
参数类型必填说明
urlstring否要获取并发布的 HTML 页面的 URL。请提供 html、markdown 或 url 中的一项。
htmlstring否要发布的 HTML 内容。请提供 html、markdown 或 url 中的一项。
titlestring否发布内容的可选页面标题。
markdownstring否要发布的 Markdown 内容;将其渲染为带样式的阅读页面。请提供 html、markdown 或 url 中的一项。
passwordstring否用于保护内容的可选密码。
ttl_daysnumber否可选的自定义 TTL 天数。匿名层级默认有效期为 7 天。
owner_keystring否用于提高限额和确立所有权的可选所有者密钥。

详细介绍

htmldrop 标志

htmldrop

为 Agent 发布任何内容 — 只需一次 API 调用,并内置 MCP 服务。

htmldrop.link CI npm MIT

English · 한국어 · 日本語 · 简体中文 · Español · Français · Deutsch


htmldrop 能在几秒内将任意 HTML、Markdown、PDF 或图像内容转换为可分享的链接。报告、仪表板、图表、演示——无论是 Agent(或人类)创建的任何内容。Markdown、文本和 JSON 会渲染为简洁的阅读页面;PDF 和图像则原样提供。无需 git、无需构建、无需仪表板。

立即试用:htmldrop.link — 拖放 HTML 文件、粘贴 HTML 源码,或向 API 发送 POST 请求。

工作原理

curl -X POST https://htmldrop.link/publish \
  -H "Content-Type: application/json" \
  -d '{"html":"<h1>Hello agents</h1>","title":"Demo"}'
{
  "url": "https://happy-otter-42.htmldrop.link",
  "id": "...",
  "subdomain": "happy-otter-42",
  "expires_at": "2026-07-17T00:00:00.000Z"
}

每个链接都有独立的子域名、自动生成的 Open Graph 预览卡片和 TTL — 分享的内容不会永远保留。

连接你的 Agent(MCP)

托管的 MCP 服务位于 https://htmldrop.link/mcp(Streamable HTTP),并提供 一个工具:publish_html。

Claude Code
claude mcp add --transport http htmldrop https://htmldrop.link/mcp
Claude Desktop

Claude Desktop 使用 stdio,因此可通过 mcp-remote 连接到托管服务。在 claude_desktop_config.json 中:

{
  "mcpServers": {
    "htmldrop": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "https://htmldrop.link/mcp"]
    }
  }
}
Cursor

Cursor 可直接连接远程 MCP URL。在 .cursor/mcp.json 中:

{
  "mcpServers": {
    "htmldrop": { "url": "https://htmldrop.link/mcp" }
  }
}
Codex CLI

在 ~/.codex/config.toml 中:

[mcp_servers.htmldrop]
command = "npx"
args = ["-y", "mcp-remote", "https://htmldrop.link/mcp"]
自托管实例(npm,stdio)

正在运行你自己的 htmldrop?htmldrop-mcp 软件包是一个本地 stdio MCP 服务,可将内容发布到你自己的存储和 域名:

{
  "mcpServers": {
    "htmldrop": {
      "command": "npx",
      "args": ["-y", "htmldrop-mcp"],
      "env": {
        "BASE_DOMAIN": "your-domain.example",
        "CLOUDFLARE_R2_ENDPOINT": "...",
        "CLOUDFLARE_R2_ACCESS_KEY_ID": "...",
        "CLOUDFLARE_R2_SECRET_ACCESS_KEY": "...",
        "CLOUDFLARE_R2_BUCKET_NAME": "..."
      }
    }
  }
}
publish_html 工具
参数类型描述
html字符串要发布的 HTML 内容(或使用 markdown / url)
markdown字符串Markdown 内容 — 渲染为样式化的阅读页面
url字符串要抓取并发布的远程 HTML 页面
title字符串可选标题,用于元数据和社交卡片
ttl_days数字内容过期前的天数
password字符串可选的密码保护
owner_key字符串可选密钥,用于提高限额并延长 TTL

面向 Agent 的完整文档见 AGENTS.md,也可在 htmldrop.link/agents.md 查看。

REST API

端点请求体说明
POST /publishJSON { html | markdown, title, ttl_days, password, url }主要端点
POST /publish/raw原始请求体:text/html、text/markdown、text/plain、application/json、text/csv、application/pdf、image/*通过 x-htmldrop-title 标头或 ?title= 指定标题
POST /publish/from-urlJSON { url, title, ttl_days, password }抓取并重新发布页面

在 x-htmldrop-key 标头中传入所有者密钥,可提高速率限制并延长默认 TTL。(仍接受 x-pin-key,以保持向后兼容。)

自托管

git clone https://github.com/vin-spiegel/htmldrop.git
cd htmldrop
pnpm install
cp .env.example .env   # defaults work out of the box
pnpm dev               # http://localhost:3000

你只需设置 BASE_DOMAIN 这一个变量。 其他所有设置都有可用的默认值。如果未配置对象存储,存储将回退到本地文件系统(./data)——无需数据库。

环境变量
变量默认值描述
BASE_DOMAINlocalhost产物子域名的基础域名。大多数自托管用户必须设置的唯一值。
PORT3000HTTP 端口(通常由主机设置)
NODE_ENVdevelopment部署时设置为 production
CLOUDFLARE_R2_ENDPOINT—兼容 S3 的端点。设置全部 4 个 R2 变量以使用对象存储;全部留空则使用文件系统
CLOUDFLARE_R2_ACCESS_KEY_ID—对象存储访问密钥
CLOUDFLARE_R2_SECRET_ACCESS_KEY—对象存储密钥
CLOUDFLARE_R2_BUCKET_NAME—存储桶名称
ANON_TTL_DAYS7匿名发布的 TTL
KEY_TTL_DAYS30使用密钥发布的 TTL
MAX_HTML_SIZE_BYTES26214400上传大小上限(25 MiB)
RATE_LIMIT_ANON_PER_MINUTE10每个 IP 的速率限制
RATE_LIMIT_KEY_PER_MINUTE60每个所有者密钥的速率限制

CLOUDFLARE_R2_* 变量支持任何兼容 S3 的存储服务(Cloudflare R2、AWS S3、MinIO 等)。在临时性/容器主机上,请使用对象存储, 或将持久卷挂载到 ./data,否则重新部署时产物会丢失。

生产环境需要一条指向服务的通配符 DNS 记录(*.your-domain), 以便解析产物子域名。

部署到 Railway
railway login
railway init --name htmldrop
railway up

然后在 Railway 控制面板中设置 BASE_DOMAIN 和(可选的)R2 变量,并绑定你的域名及其通配符域名。

安全默认设置

  • 产物使用 X-Robots-Tag: noindex, nofollow, noarchive 提供
  • 新的 HTML 产物使用带版本的 CSP 沙箱:内联脚本可正常运行,但会阻止 外部网络请求/资源、表单、弹出窗口和顶层导航
  • 按 IP 和密钥实施速率限制
  • 所有内容都会通过 TTL 过期
  • 可选择为每个产物设置密码保护

如需报告漏洞和滥用行为,请参阅 SECURITY.md。

开发

pnpm dev        # run with tsx
pnpm test       # vitest
pnpm run build  # tsc -> dist/

许可证

MIT

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。