Swolvy について
SwolvyはHTMLページを共有リンクとして公開し、任意でパスワードを設定できます。アカウントなしで利用でき、公開後もリンクを変えずにページを差し替えられるため、AIクライアントで生成したページの公開に向いています。
主な機能
- 01HTMLを共有リンクとして公開
- 02任意のパスワード保護
- 03リンクを維持したページ差し替え
- 04大容量ファイル用アップロードセッション
- 05アカウントとチームの管理ツール
活用シーン
- 01AIクライアントが生成したHTMLページの共有
- 02パスワードが必要なページの公開
- 03リンクを変えずに公開ページを更新
- 04アカウント内の公開ページ管理
MCP 対応
`https://swolvy.com/api/mcp` のリモートMCPサーバーはHTML公開ツールを提供し、アカウント連携時にはアカウントやチームの管理ツールも利用できます。Streamable HTTPとOAuth 2.1を使用します。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://swolvy.com/api/mcpclaude mcp add --transport http com-swolvy https://swolvy.com/api/mcp{"mcpServers":{"com-swolvy":{"type":"http","url":"https://swolvy.com/api/mcp"}}}Cursor で開く{"servers":{"com-swolvy":{"type":"http","url":"https://swolvy.com/api/mcp"}}}VS Code で開く{"mcpServers":{"com-swolvy":{"type":"http","url":"https://swolvy.com/api/mcp"}}}{"mcpServers":{"com-swolvy":{"serverUrl":"https://swolvy.com/api/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
詳細
Swolvy MCP サーバーとスキル:Claude、ChatGPT、Gemini、コーディングエージェントから HTML を公開する
Swolvy は HTML ファイルを共有可能なリンクに変換します。swolvy.com にファイルをドロップするか、AI アシスタント(Claude、ChatGPT、Gemini)やコーディングエージェントに公開を任せると、必要に応じてパスワード保護も設定できる短いリンクを取得できます。登録は不要です。リンクを変えずに後からページを差し替えることもでき、Swolvy Pro では有効期限のないページ、最大 100 MB のファイル、独自ドメインが利用できます。
このリポジトリは、AI アシスタントが Swolvy を通じて公開する 2 つの方法を公開しています。
- Claude、ChatGPT、Gemini、Claude Code、Cursor、その他の MCP クライアントに対応する、
https://swolvy.com/api/mcpのリモート MCP サーバー - HTTP API を利用する Claude Code 向けの
swolvyスキル。場所はskills/swolvyです
Swolvy 本体はこのリポジトリには含まれていません。server.json は MCP Registry の形式でサーバーを記述しています。
MCP サーバーを追加する
1 つのアドレスで、OAuth サインインが可能です。API キーは不要です。Swolvy アカウントがなくてもサーバーを利用できます。匿名でアップロードすると、リンクと編集トークンが返されます。サインイン時にコネクターを Swolvy アカウントにリンクすることもでき、その場合はページがダッシュボードに保存され、以下のアカウントツールも追加されます。
https://swolvy.com/api/mcp
トランスポートは、OAuth 2.1(動的クライアント登録と PKCE)を使用した Streamable HTTP です。
Claude(claude.ai とデスクトップ)
- 「Settings」を開き、「Connectors」を選択します。
- 「Add custom connector」を選択します。
https://swolvy.com/api/mcpを貼り付けて確定します。- 求められたらサインインします。アカウントを使わずに続行するか、Swolvy アカウントをリンクできます。
Claude Code
claude mcp add --transport http swolvy https://swolvy.com/api/mcp
Claude Code 内で /mcp を実行して、OAuth サインインを完了します。すべてのプロジェクトでサーバーを利用できるようにするには、--scope user を追加します。
ChatGPT
chatgpt.com で「Plugins」、「+」、「Add custom MCP server」の順に選択します。アドレスを貼り付け、認証方式として OAuth を選択してから、プラグインをインストールします。デスクトップアプリの「Add MCP server」フォーム(Streamable HTTP)も利用できますが、アカウントのリンクには対応していません。
Cursor
プロジェクト内の .cursor/mcp.json にサーバーを追加するか、すべてのプロジェクトで利用する場合は ~/.cursor/mcp.json に追加します。
{
"mcpServers": {
"swolvy": {
"url": "https://swolvy.com/api/mcp"
}
}
}
Gemini
Gemini アプリで「Settings & help」、「Connected Apps」、「Add a custom app」の順に選択し、アドレスを貼り付けます。
Gemini CLI の場合は、~/.gemini/settings.json にサーバーを追加します。
{
"mcpServers": {
"swolvy": {
"httpUrl": "https://swolvy.com/api/mcp"
}
}
}
その他の MCP クライアント
同じアドレスを使用して、リモートサーバー(Streamable HTTP)を追加します。OAuth に対応するクライアントでは、ブラウザーからサインインできます。サーバーのメタデータは https://swolvy.com/.well-known/oauth-protected-resource/api/mcp で公開されています。
ツール
すべてのコネクターで、公開用の 4 つのツールを利用できます。Swolvy アカウントにリンクしたコネクターでは、アカウントツールも利用できます。アカウントが Swolvy Team に属している場合は、チームツールと workspace パラメーターも表示されます。
公開ツール(常に利用可能)
| ツール | 用途 | 主なパラメーター |
|---|---|---|
upload_to_swolvy | 小さな HTML ページ(約 80 KB 未満)を一度の呼び出しで公開し、リンクを取得します | html_content(必須)、filename(必須、1~100 文字)、password(4~100 文字)、generate_password、replace_id + replace_edit_token、remove_password、path、title、description、workspace |
start_swolvy_upload | 大きなページのアップロードセッションを開始します。upload_id、upload_url、max_bytes を返します | filename(必須)、および upload_to_swolvy と同じオプションフィールド |
append_swolvy_chunk | HTTP リクエストを送信できないクライアント向けの代替手段です。ページを Base64 チャンクで送信します | upload_id(必須)、chunk_base64(必須、チャンクあたり約 50 KB の生バイトデータ)、is_final |
finish_swolvy_upload | コンテンツの送信後、セッションを終了します。リンク、expires_at、edit_token を返します | upload_id(必須) |
大きなファイルをアップロードする場合は、start_swolvy_upload を実行し、続いてファイル全体を upload_url に 1 回の PUT で送信して(例:curl -X PUT -H 'Content-Type: text/html' --data-binary @page.html <upload_url>)、最後に finish_swolvy_upload を実行する方法を推奨します。
パスワードの扱い:ユーザーがパスワードを指定した場合は password を渡し、保護のみを求めた場合は generate_password: true を渡します。すると Swolvy が覚えやすいパスワード(amber-river-42 など)を選び、password として返します。アシスタントはそのパスワードをユーザーに伝えます。ページは replace_id と replace_edit_token を使って最大 10 回置き換えられます。新しい password または remove_password: true が指定されない限り、新しいバージョンには現在のパスワードが引き継がれます。
アカウントツール(Swolvy アカウントに接続されたコネクター)
| ツール | 用途 | 主なパラメーター |
|---|---|---|
list_my_files | アカウント内のページを、ID、リンク、パス、名前、閲覧数、サイズ、パスワードの状態、有効期限とともに一覧表示します | なし |
update_my_file | ページの HTML を置き換えます。リンクはそのままで、編集トークンは不要です | id、html_content(必須)、filename |
rename_my_file | ページの表示名を変更します | id、filename(必須) |
set_my_file_path | アカウントのカスタムドメイン上でページのパスを変更します | id、path(必須) |
set_my_file_metadata | Pro:リンクプレビュー用のタイトル、説明、画像を設定します | id(必須)、title、description、preview_image_base64、remove_preview_image |
set_my_file_password | ページのパスワードを設定、変更、または削除します | id(必須)、password(文字列または null)、generate_password |
delete_my_file | ページを完全に削除します | id(必須) |
get_my_plan | プラン(Free または Pro)、使用中のストレージ、更新日、アップグレードリンクを表示します。クーポンも確認します | coupon_code |
get_my_domain | Pro:カスタムドメイン、公開状態、追加が必要な DNS レコードを表示します | なし |
connect_my_domain | Pro:所有するドメインを接続します。追加する CNAME レコードと TXT レコードを返します | hostname(必須) |
set_my_branding | Pro:デフォルトのリンクプレビュー画像を設定します。カスタムドメインを使用する場合は、サイト名とファビコンも設定します | site_name、favicon_base64、remove_favicon、preview_image_base64、remove_preview_image |
set_my_name | ダッシュボードに表示される名前を設定します | name(必須) |
チームツール(Swolvy Teams)
| ツール | 用途 | 主なパラメーター |
|---|---|---|
list_my_teams | アカウントが所属するチームを、ロール、プラン、ドメイン、ダッシュボードリンクとともに一覧表示します | なし |
get_my_workspace | アクティブなワークスペース(個人またはチーム)を表示します | なし |
set_my_workspace | ウェブサイトと、接続されているすべての AI のアクティブなワークスペースを切り替えます | workspace(必須):"personal"、org_abc123 のようなチーム ID、またはチームのスラッグ |
HTTP API でアップロードする
MCP サーバーを追加するよりも、HTTP リクエストを 1 回送信したいスクリプト、CI ジョブ、コーディングエージェント向けです。
リクエスト
JSON ボディ、または同じフィールド名(HTML ファイル自体の file を含む)を使用した multipart/form-data ボディで、POST https://swolvy.com/api/v1/upload を送信します。
| フィールド | 必須 | 説明 |
|---|---|---|
html | はい(フォームでは file) | 完全な HTML ドキュメント。サイズは最大 2 MB です |
filename | はい | ページ名。最大 100 文字です |
password | いいえ | 4~100 文字。閲覧者は入力が必要です |
generate_password | いいえ | true:Swolvy がパスワードを生成して返します |
replace_id, replace_edit_token | いいえ | 既存のページを置き換え、リンクを維持します |
remove_password | いいえ | 置き換え時にページのパスワードを削除します |
path | いいえ | API キーを使用する場合、アカウント内のページのパスです |
title, description | いいえ | Pro アカウントの場合:リンクプレビューのテキストです |
workspace | いいえ | チーム内で API キーを使用する場合は、"personal"、"team"、またはチーム ID かスラッグを指定します(X-Swolvy-Workspace ヘッダーでも指定できます) |
認証は任意です。認証なしの場合、匿名でアップロードされます。Authorization: Bearer swk_...(ダッシュボードの AI & API にある API キー)を指定すると、ページはアカウントに保存されます。
curl
curl -X POST https://swolvy.com/api/v1/upload \
-H "Content-Type: application/json" \
-d '{"html":"<!DOCTYPE html><h1>Hello</h1>","filename":"Hello.html"}'
または、ディスク上のファイルを送信します。
curl -X POST https://swolvy.com/api/v1/upload \
-F "[email protected]" -F "filename=index.html"
レスポンス
{
"url": "https://swolvy.com/abc123",
"id": "abc123",
"expires_at": "2026-11-21T10:00:00.000Z",
"edit_token": "...",
"password_protected": false
}
該当する場合、その他のフィールドも含まれます:password(generate_password を使用した場合)、never_expires: true(Pro)、replaced: true、path、title、description、custom_url(カスタムドメイン上のページリンク)、workspace、viewer_warning(サインインフォームのように見えるページの前に、訪問者に短い注意書きが表示されます)。エラーは {"error": "..."} という 1 つのフィールドを持つ JSON です。
edit_token は必ず保存してください。匿名ページを後から置き換える唯一の方法です。
Python
import requests
r = requests.post(
"https://swolvy.com/api/v1/upload",
json={"html": open("index.html").read(), "filename": "index.html"},
)
r.raise_for_status()
page = r.json()
print(page["url"], page["edit_token"])
Node
import { readFile } from "node:fs/promises";
const res = await fetch("https://swolvy.com/api/v1/upload", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({ html: await readFile("index.html", "utf8"), filename: "index.html" }),
});
const page = await res.json();
if (!res.ok) throw new Error(page.error);
console.log(page.url, page.edit_token);
ページを置き換える
最初のレスポンスに含まれる ID と編集トークンを指定して、新しい HTML を送信します。リンクは変わらず、30 日間の期限がリセットされます。
curl -X POST https://swolvy.com/api/v1/upload \
-H "Content-Type: application/json" \
-d '{"html":"<!DOCTYPE html><h1>Hello again</h1>","filename":"Hello.html","replace_id":"abc123","replace_edit_token":"..."}'
大きなファイル(アップロードセッション)
1 回のリクエストで送信できるサイズは最大 2 MB です。Pro アカウントでは、セッションを使って最大 100 MB のページを送信できます。現在のプランで許可されるサイズは、レスポンスの max_bytes で確認できます。
{"filename": "report.html"}と、上記の任意フィールド(password、generate_password、replace_id、replace_edit_token、remove_password、path、title、description、workspace)を指定して、POST https://swolvy.com/api/v1/upload/sessionを送信します。Pro アカウントの場合はAuthorization: Bearer swk_...を指定します。レスポンス:{"upload_id", "upload_url", "finish_url", "max_bytes"}。- 生の HTML を
upload_urlにPUTします:curl -X PUT -H "Content-Type: text/html" --data-binary @report.html <upload_url>。 finish_url(/api/v1/upload/session/{id}/finish)にPOSTします。レスポンスには/api/v1/uploadと同じフィールドが含まれます。
レート制限
アップロードは IP アドレスごとに 1 時間あたり 10 回までに制限されており(HTTP 429)、すべての呼び出し元を対象とする全体の上限もあります。サイズ制限を超えるボディは 413 を返します。
Claude Code スキル
swolvy スキルは Claude Code に上記の API 呼び出しを教えるため、「このページを公開して」や「この HTML へのリンクを教えて」といった依頼を一度の操作で実行できるようにします。
スキルフォルダーを Claude Code のスキルディレクトリにコピーしてインストールします。
git clone https://github.com/enahmedsamy/swolvy-mcp.git
mkdir -p ~/.claude/skills
cp -r swolvy-mcp/skills/swolvy ~/.claude/skills/swolvy
または、.claude/skills/swolvy/ に配置して、1 つのプロジェクトだけに追加できます。その後、Claude Code に HTML ファイルを公開するよう依頼するか、/swolvy を実行します。スキルファイルは skills/swolvy/SKILL.md です。
curl よりもツール呼び出しを使いたい場合は、代わりに Claude Code に MCP サーバーを追加してください(上記を参照)。どちらを使っても同じリンクが得られます。
制限とプラン
| Free | Swolvy Pro | |
|---|---|---|
| 価格 | $0、登録不要 | 月額 $3 または年額 $18 |
| ファイルサイズ | 最大 2 MB | 最大 100 MB(ストレージ合計 2 GB) |
| 有効期限 | 最後のアップロードから 30 日間。新しいバージョンをアップロードすると 30 日間にリセットされます | なし |
| パスワード保護 | はい | はい |
| 同じリンクでの置き換え | はい、編集トークンを使って(最大 10 回)、またはダッシュボードから | はい |
| カスタムドメイン | いいえ | はい、アカウントごとに 1 つ |
| リンクプレビュー(タイトル、説明、画像) | 自動生成 | カスタマイズ可能 |
無料アカウント(メールで届くコードを使ってサインイン)を作成すると、ダッシュボード、閲覧数、API キーが利用できるほか、AI アシスタントをアカウントにリンクできます。パスワードはハッシュとしてのみ保存されます。swolvy.com のページは検索エンジンに登録されません。Swolvy がホストするのは、ページごとに単一の HTML ファイルです。複数ファイルのサイト、ZIP アーカイブ、サーバーサイドコードはホストしません。
リンク
- ウェブサイト:https://swolvy.com
- MCP サーバーガイド:https://swolvy.com/mcp
- API ガイド:https://swolvy.com/developers
- Claude Code、Cursor、Codex から公開:https://swolvy.com/share-html-from-claude-code
- llms.txt:https://swolvy.com/llms.txt
- 料金:https://swolvy.com/pricing
ライセンス
MIT。LICENSE を参照してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。