htmldrop について
htmldropは、HTML、Markdown、PDF、画像を共有リンクとして公開するサービスです。Agentや人が作成した成果物を共有でき、リンクには個別のサブドメインや有効期限、パスワードを設定できます。
主な機能
- 01HTML、Markdown、PDF、画像の公開
- 02Markdown、テキスト、JSONの閲覧ページ化
- 03Open Graphプレビューカードの生成
- 04有効期限とパスワードの設定
- 05REST APIとセルフホストへの対応
活用シーン
- 01Agentが作成したレポートやチャートの共有
- 02リンクで閲覧できるデモの公開
- 03共有ファイルへの期限やパスワードの設定
MCP 対応
https://htmldrop.link/mcp のホスト型MCP サーバーは、HTML、Markdown、リモートページを公開する publish_html ツールを提供します。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://htmldrop.link/mcpclaude mcp add --transport http vin-spiegel-htmldrop https://htmldrop.link/mcp{"mcpServers":{"vin-spiegel-htmldrop":{"type":"http","url":"https://htmldrop.link/mcp"}}}Cursor で開く{"servers":{"vin-spiegel-htmldrop":{"type":"http","url":"https://htmldrop.link/mcp"}}}VS Code で開く{"mcpServers":{"vin-spiegel-htmldrop":{"type":"http","url":"https://htmldrop.link/mcp"}}}{"mcpServers":{"vin-spiegel-htmldrop":{"serverUrl":"https://htmldrop.link/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
1| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| url | string | いいえ | 取得して公開する HTML ページの URL。html、markdown、url のいずれかを指定してください。 |
| html | string | いいえ | 公開する HTML コンテンツ。html、markdown、url のいずれかを指定してください。 |
| title | string | いいえ | 公開する成果物の任意のページタイトル。 |
| markdown | string | いいえ | 公開する Markdown コンテンツ。スタイル付きのリーダーページにレンダリングされます。html、markdown、url のいずれかを指定してください。 |
| password | string | いいえ | 成果物を保護するための任意のパスワード。 |
| ttl_days | number | いいえ | 任意のカスタム TTL(日数)。匿名ティアのデフォルトは 7 日です。 |
| owner_key | string | いいえ | 上限の引き上げと所有権の確立に使用する任意の所有者キー。 |
詳細
htmldrop
エージェント向けに何でも公開できます — API を 1 回呼び出すだけ。MCP サーバーも含まれています。
英語 · 한국어 · 日本語 · 简体中文 · Español · Français · Deutsch
htmldrop を使えば、HTML、Markdown、PDF、画像のあらゆる成果物を、数秒で共有可能なリンクにできます。レポート、ダッシュボード、グラフ、デモなど、エージェント(または人間)が作成したものなら何でも共有できます。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)が設定されます。共有された成果物が永久に残ることはありません。
エージェントを接続する(MCP)
ホスト型 MCP サーバーは https://htmldrop.link/mcp(Streamable HTTP)で利用でき、1 つのツール 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 | string | 公開する HTML コンテンツ(または markdown / url を使用) |
markdown | string | Markdown コンテンツ — スタイル付きリーダーページにレンダリングされます |
url | string | 取得して公開するリモート HTML ページ |
title | string | メタデータとソーシャルカードに使用する任意のタイトル |
ttl_days | number | 成果物が期限切れになるまでの日数 |
password | string | 任意のパスワード保護 |
owner_key | string | より高い上限と長い TTL を利用するための任意のキー |
エージェント向けドキュメントの全文は AGENTS.md にあります。また、htmldrop.link/agents.md でも公開されています。
REST API
| エンドポイント | 本文 | 備考 |
|---|---|---|
POST /publish | JSON { html | markdown, title, ttl_days, password, url } | 主なエンドポイント |
POST /publish/raw | raw body: text/html, text/markdown, text/plain, application/json, text/csv, application/pdf, image/* | タイトルは x-htmldrop-title ヘッダーまたは ?title= で指定 |
POST /publish/from-url | JSON { url, title, ttl_days, password } | ページを取得して再公開します |
より高いレート制限と長いデフォルト TTL を利用するには、x-htmldrop-key ヘッダーに owner key を指定してください。(後方互換性のため、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_DOMAIN | localhost | アーティファクトのサブドメインに使用するベースドメインです。セルフホストする場合、ほとんどの方が設定する必要がある唯一の値です。 |
PORT | 3000 | HTTP ポート(通常はホスティング環境によって設定されます) |
NODE_ENV | development | デプロイ時は production に設定します |
CLOUDFLARE_R2_ENDPOINT | — | S3 互換エンドポイントです。オブジェクトストレージを使用する場合は R2 関連の 4 つの変数をすべて設定し、ファイルシステムを使用する場合はすべて空欄にします |
CLOUDFLARE_R2_ACCESS_KEY_ID | — | オブジェクトストレージのアクセスキー |
CLOUDFLARE_R2_SECRET_ACCESS_KEY | — | オブジェクトストレージのシークレットキー |
CLOUDFLARE_R2_BUCKET_NAME | — | バケット名 |
ANON_TTL_DAYS | 7 | 匿名で公開した場合の TTL |
KEY_TTL_DAYS | 30 | キーを使用して公開した場合の TTL |
MAX_HTML_SIZE_BYTES | 26214400 | アップロード上限(25 MiB) |
RATE_LIMIT_ANON_PER_MINUTE | 10 | IP ごとのレート制限 |
RATE_LIMIT_KEY_PER_MINUTE | 60 | オーナーキーごとのレート制限 |
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/
ライセンス
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。