关于 Swolvy
Swolvy 可将 HTML 页面发布为可分享链接,并可选择设置密码,无需账户。它面向需要发布生成页面的用户和 AI 客户端,也支持更新页面而保留原链接。
主要功能
- 01将 HTML 发布为分享链接
- 02可选密码保护
- 03保留链接替换页面
- 04大文件上传会话
- 05账户与团队管理工具
适用场景
- 01分享 AI 客户端生成的 HTML 页面
- 02发布需要密码保护的页面
- 03保持链接不变并更新页面
- 04管理账户中的已发布页面
MCP 相关
远程 MCP 服务 `https://swolvy.com/api/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 和编码 Agent 发布 HTML
Swolvy 可将 HTML 文件转换为可分享的链接。将文件拖放到 swolvy.com,或者让 AI 助手(Claude、ChatGPT、Gemini)或编码 Agent 代为发布,即可获得可选密码保护的短链接。无需注册。之后可以替换页面,而不必更改链接;Swolvy Pro 还提供永不过期的页面、最大 100 MB 的文件以及自定义域名。
本仓库是 AI 助手通过 Swolvy 发布内容的两种方式的公开主页:
- 位于
https://swolvy.com/api/mcp的远程 MCP 服务,适用于 Claude、ChatGPT、Gemini、Claude Code、Cursor 和其他任何 MCP 客户端 - 适用于 Claude Code 的
swolvy技能,位于skills/swolvy,基于 HTTP API 构建
Swolvy 本身不在本仓库中。server.json 按照 MCP Registry 格式描述此服务。
添加 MCP 服务
只需一个地址,通过 OAuth 登录,无需 API 密钥。无需 Swolvy 账户也能使用该服务:匿名上传会返回链接和编辑令牌。登录时,你也可以将连接器关联到 Swolvy 账户,这样页面就会显示在你的控制面板中,并且会添加下文所述的账户工具。
https://swolvy.com/api/mcp
传输方式为 Streamable HTTP,并使用 OAuth 2.1(动态客户端注册和 PKCE)。
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 发布其元数据。
工具
每个连接器都可使用四种发布工具。关联了 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,然后通过一次 PUT 将整个文件发送到 upload_url(例如 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"、团队 id(例如 org_abc123)或团队 slug |
使用 HTTP API 上传
适用于脚本、CI 任务和更倾向于发起一次 HTTP 请求而非添加 MCP 服务的编码 Agent。
请求
使用 JSON 请求体发送 POST https://swolvy.com/api/v1/upload,也可以使用 multipart/form-data 请求体,字段名相同(另加用于上传 HTML 文件本身的 file)。
| 字段 | 必填 | 含义 |
|---|---|---|
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 或 slug(也可使用 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(访问者会在看到类似登录表单的页面前看到一条简短提示)。错误会以包含一个字段的 JSON 返回:{"error": "..."}。
请妥善保存 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);
替换页面
发送新的 HTML,并附上首次响应中的 ID 和编辑令牌。链接不会改变,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":"..."}'
大文件(上传会话)
单个请求最多可上传 2 MB。Pro 账户可通过会话发送最大 100 MB 的页面;响应中的 max_bytes 会显示当前套餐允许的上限。
- 发送
POST https://swolvy.com/api/v1/upload/session,请求体为{"filename": "report.html"},并可附带上述相同的可选字段(password、generate_password、replace_id、replace_edit_token、remove_password、path、title、description、workspace)。Pro 账户请发送Authorization: Bearer swk_...。响应:{"upload_id", "upload_url", "finish_url", "max_bytes"}。 - 将原始 HTML 上传到
upload_url: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 地址每小时最多上传 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/ 下。然后让 Claude Code 发布一个 HTML 文件,或运行 /swolvy。技能文件位于 skills/swolvy/SKILL.md。
如果你更愿意使用工具调用而非 curl,也可以将 MCP 服务添加到 Claude Code(见上文)。两种方式生成的链接相同。
限制和套餐
| 免费版 | Swolvy Pro | |
|---|---|---|
| 价格 | $0,无需注册 | 每月 $3 或每年 $18 |
| 文件大小 | 最大 2 MB | 最大 100 MB(总存储空间为 2 GB) |
| 到期时间 | 最后一次上传后 30 天;上传新版本会重新开始计算 30 天 | 永不过期 |
| 密码保护 | 是 | 是 |
| 使用同一链接替换 | 是,使用编辑令牌(最多 10 次)或通过控制面板 | 是 |
| 自定义域名 | 否 | 是,每个账户一个 |
| 链接预览(标题、描述、图片) | 自动生成 | 自定义 |
免费账户(使用通过电子邮件发送的代码登录)可使用控制面板、查看次数、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 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。