mcpField
S
Swolvy

Swolvy

远程服务
swolvy.com云与基础设施06 天前更新

关于 Swolvy

Swolvy 可将 HTML 页面发布为可分享链接,并可选择设置密码,无需账户。它面向需要发布生成页面的用户和 AI 客户端,也支持更新页面而保留原链接。

主要功能

  1. 01将 HTML 发布为分享链接
  2. 02可选密码保护
  3. 03保留链接替换页面
  4. 04大文件上传会话
  5. 05账户与团队管理工具

适用场景

  1. 01分享 AI 客户端生成的 HTML 页面
  2. 02发布需要密码保护的页面
  3. 03保持链接不变并更新页面
  4. 04管理账户中的已发布页面

MCP 相关

远程 MCP 服务 `https://swolvy.com/api/mcp` 提供 HTML 发布工具;关联账户后还可使用账户和团队管理工具。它使用 Streamable HTTP 和 OAuth 2.1。

配置

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

服务地址https://swolvy.com/api/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 配置后重启。需要授权的服务会在首次连接时提示登录。

工具

详细介绍

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 和桌面应用)
  1. 打开 Settings,然后选择 Connectors。
  2. 选择 Add custom connector。
  3. 粘贴 https://swolvy.com/api/mcp 并确认。
  4. 根据提示登录:选择不使用账户继续,或关联你的 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_bytesfilename(必填),以及与 upload_to_swolvy 相同的可选字段
append_swolvy_chunk为无法发起 HTTP 请求的客户端提供备用方案:以 base64 分块发送页面upload_id(必填)、chunk_base64(必填,每块约为 50 KB 原始字节)、is_final
finish_swolvy_upload内容发送完毕后结束会话;返回链接、expires_at 和 edit_tokenupload_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_metadataPro:设置链接预览的标题、描述和图片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_domainPro:显示自定义域名、域名是否已启用,以及仍需添加的 DNS 记录无
connect_my_domainPro:连接你拥有的域名;返回要添加的 CNAME 和 TXT 记录hostname(必填)
set_my_brandingPro:设置默认链接预览图片;使用自定义域名时,还可设置站点名称和网站图标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 会显示当前套餐允许的上限。

  1. 发送 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"}。
  2. 将原始 HTML 上传到 upload_url:curl -X PUT -H "Content-Type: text/html" --data-binary @report.html <upload_url>。
  3. 向 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 压缩包或服务器端代码。

链接

许可证

MIT。参见 LICENSE。

评论

支持 Markdown

第一次接触 MCP?

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

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