Swolvy

com.swolvy由 swolvy.com 發布官方發布者v1.0.0更新於 Oct 26, 2026

Publish HTML from Claude, ChatGPT, Gemini or any MCP client and get a shareable link. No account.

已驗證Streamable HTTP可網頁執行效率與工作流檔案與儲存

概覽

AI 產生的概覽

Swolvy 讓 AI 助理把 HTML 頁面發布成可分享的短連結,可選擇密碼保護,並提供取代、管理與刪除頁面的工具。

可以做什麼
  • 發布 HTML 頁面並取得短連結,可設定密碼或自動產生密碼
  • 為較大的頁面啟動、分塊上傳並完成上傳工作階段
  • 在已連結的帳號中列出、取代、重新命名、變更路徑與刪除頁面,設定密碼或連結預覽資訊
  • 查看方案與儲存用量、連接自有網域、設定品牌資訊
  • 列出所屬團隊並切換目前工作區
適用情境
適合讓助理把產生的 HTML 檔案、報告或原型變成可直接分享的連結,而不必自行架設託管。也適合之後在同一個連結上更新頁面,或管理已發布到 Swolvy 帳號的頁面。
執行需求
遠端 Streamable HTTP 端點,使用 OAuth 2.1 登入(動態用戶端註冊與 PKCE),MCP 伺服器本身不需 API 金鑰。登入時可不註冊帳號,或連結 Swolvy 帳號以啟用帳號與團隊工具。需要能連線至該服務的網路。
安裝前請注意
未設定密碼的頁面預設公開,任何取得連結的人都能查看。匿名頁面 30 天後過期,且只能用上傳時回傳的編輯權杖取代,因此需妥善保存該權杖。帳號工具可永久刪除頁面,並變更密碼、路徑與網域。自訂網域、更大檔案等 Pro 功能需要付費方案。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Swolvy,將其新增到工作區。
  2. 連接 所需的 憑證。它們會被私密儲存,絕不會在公開頁面上展示。
  3. 為需要使用其工具的對話啟用該服務。

Web executable,透過 Streamable HTTP。 遠端服務在工作區中設定後即可從網頁執行環境執行。

交給代理程式安裝

把這段提示詞貼上到 Claude Code、Codex、Cursor 等代理程式,或 SourceWeft 對話中。代理程式會讀取該伺服器的安裝指南,先向你展示發布者、端點和登入方式,經你同意後再把它新增到你的客戶端。金鑰不會寫進任何命令。

閱讀 https://sourceweft.com/mcp/com.swolvy%2Fmcp/install.md,並按其中說明把這個 MCP 伺服器接入我的客戶端。修改任何設定之前,先告訴我它的發布者、端點和登入方式,等我確認。不要把 API 金鑰寫進命令或我會提交的檔案;問我金鑰應從哪裡取得。

檢視代理程式所依據的安裝指南

其他 MCP 客戶端

把它新增到你客戶端的 mcpServers 設定中。 客戶端會在首次連接時完成 OAuth 登入。

{
  "mcpServers": {
    "swolvy": {
      "type": "http",
      "url": "https://swolvy.com/api/mcp"
    }
  }
}

README

Swolvy MCP server and skill: publish HTML from Claude, ChatGPT, Gemini and coding agents

Swolvy turns an HTML file into a shareable link. Drop a file on swolvy.com, or let your AI assistant (Claude, ChatGPT, Gemini) or coding agent publish it for you, and get a short link with optional password protection. No signup is needed. A page can be replaced later without changing its link, and Swolvy Pro adds pages that never expire, files up to 100 MB and your own domain.

This repository is the public home for the two ways AI assistants publish through Swolvy:

  • the remote MCP server at https://swolvy.com/api/mcp, for Claude, ChatGPT, Gemini, Claude Code, Cursor and any other MCP client
  • the swolvy skill for Claude Code, in skills/swolvy, built on the HTTP API

Swolvy itself is not in this repository. server.json describes the server in the MCP Registry format.

Add the MCP server

One address, OAuth sign-in, no API key. The server works without a Swolvy account: anonymous uploads return a link and an edit token. During sign-in you can also link the connector to a Swolvy account, so pages land in your dashboard and the account tools below are added.

https://swolvy.com/api/mcp

The transport is Streamable HTTP with OAuth 2.1 (dynamic client registration and PKCE).

Claude (claude.ai and desktop)

  1. Open Settings, then Connectors.
  2. Choose Add custom connector.
  3. Paste https://swolvy.com/api/mcp and confirm.
  4. Sign in when asked: continue without an account, or link your Swolvy account.

Claude Code

sh
claude mcp add --transport http swolvy https://swolvy.com/api/mcp

Run /mcp inside Claude Code to complete the OAuth sign-in. Add --scope user to make the server available in every project.

ChatGPT

On chatgpt.com: Plugins, then +, then Add custom MCP server. Paste the address, choose OAuth as the authentication, then install the plugin. The desktop app's Add MCP server form (Streamable HTTP) works too, but without account linking.

Cursor

Add the server to .cursor/mcp.json in your project, or to ~/.cursor/mcp.json for every project:

json
{  "mcpServers": {    "swolvy": {      "url": "https://swolvy.com/api/mcp"    }  }}

Gemini

In the Gemini app: Settings & help, then Connected Apps, then Add a custom app, and paste the address.

For Gemini CLI, add the server to ~/.gemini/settings.json:

json
{  "mcpServers": {    "swolvy": {      "httpUrl": "https://swolvy.com/api/mcp"    }  }}

Any other MCP client

Add a remote server (Streamable HTTP) with the same address. Clients that support OAuth sign in through the browser; the server advertises its metadata at https://swolvy.com/.well-known/oauth-protected-resource/api/mcp.

Tools

Every connector gets the four publishing tools. A connector linked to a Swolvy account also gets the account tools. The team tools and the workspace parameter appear when the account belongs to a Swolvy Team.

Publishing tools (always available)

ToolPurposeKey parameters
upload_to_swolvyPublish a small HTML page (under about 80 KB) in one call and get the linkhtml_content (required), filename (required, 1-100 chars), password (4-100 chars), generate_password, replace_id + replace_edit_token, remove_password, path, title, description, workspace
start_swolvy_uploadStart an upload session for a large page; returns upload_id, upload_url and max_bytesfilename (required), plus the same optional fields as upload_to_swolvy
append_swolvy_chunkFallback for clients that cannot make HTTP requests: send the page as base64 chunksupload_id (required), chunk_base64 (required, about 50 KB of raw bytes per chunk), is_final
finish_swolvy_uploadFinish a session after the content was sent; returns the link, expires_at and edit_tokenupload_id (required)

The preferred large-file flow is: start_swolvy_upload, then one PUT of the whole file to upload_url (for example curl -X PUT -H 'Content-Type: text/html' --data-binary @page.html <upload_url>), then finish_swolvy_upload.

Password handling: pass password when the user named one, or generate_password: true when they only asked for protection. Swolvy then picks a memorable password (like amber-river-42) and returns it as password; the assistant tells the user. Pages can be replaced up to 10 times with replace_id and replace_edit_token; the new version keeps the current password unless a new password or remove_password: true is given.

Account tools (connector linked to a Swolvy account)

ToolPurposeKey parameters
list_my_filesList the account's pages with id, link, path, name, views, size, password state and expirynone
update_my_fileReplace a page's HTML; the link stays the same, no edit token neededid, html_content (required), filename
rename_my_fileChange a page's display nameid, filename (required)
set_my_file_pathChange the page's path on the account's custom domainid, path (required)
set_my_file_metadataPro: title, description and image for link previewsid (required), title, description, preview_image_base64, remove_preview_image
set_my_file_passwordSet, change or remove a page's passwordid (required), password (string or null), generate_password
delete_my_filePermanently delete a pageid (required)
get_my_planShow the plan (Free or Pro), storage used, renewal and the upgrade link; checks a couponcoupon_code
get_my_domainPro: show the custom domain, whether it is live, and DNS records still to addnone
connect_my_domainPro: connect a domain you own; returns the CNAME and TXT records to addhostname (required)
set_my_brandingPro: default link-preview image, and with a custom domain the site name and faviconsite_name, favicon_base64, remove_favicon, preview_image_base64, remove_preview_image
set_my_nameSet the name shown in the dashboardname (required)

Team tools (Swolvy Teams)

ToolPurposeKey parameters
list_my_teamsList the teams the account belongs to, with role, plan, domain and dashboard linknone
get_my_workspaceShow the active workspace: personal or a teamnone
set_my_workspaceSwitch the active workspace for the website and every connected AIworkspace (required): "personal", a team id such as org_abc123, or a team slug

Upload with the HTTP API

For scripts, CI jobs and coding agents that would rather make one HTTP request than add an MCP server.

Request

POST https://swolvy.com/api/v1/upload with a JSON body, or a multipart/form-data body with the same field names (plus file for the HTML file itself).

FieldRequiredMeaning
htmlyes (or file in a form)The complete HTML document, up to 2 MB
filenameyesThe page's name, up to 100 characters
passwordno4-100 characters; viewers must enter it
generate_passwordnotrue: Swolvy picks the password and returns it
replace_id, replace_edit_tokennoReplace an existing page and keep its link
remove_passwordnoWith a replace: drop the page's password
pathnoWith an API key: the page's path in the account
title, descriptionnoPro accounts: link-preview text
workspacenoWith an API key in a team: "personal", "team", or a team id or slug (also the X-Swolvy-Workspace header)

Authentication is optional. Without it the upload is anonymous. With Authorization: Bearer swk_... (an API key from the dashboard, under AI & API) the page is saved to your account.

curl

sh
curl -X POST https://swolvy.com/api/v1/upload \  -H "Content-Type: application/json" \  -d '{"html":"<!DOCTYPE html><h1>Hello</h1>","filename":"Hello.html"}'

Or send a file from disk:

sh
curl -X POST https://swolvy.com/api/v1/upload \  -F "[email protected]" -F "filename=index.html"

Response

json
{  "url": "https://swolvy.com/abc123",  "id": "abc123",  "expires_at": "2026-11-21T10:00:00.000Z",  "edit_token": "...",  "password_protected": false}

Other fields appear when they apply: password (when generate_password was used), never_expires: true (Pro), replaced: true, path, title, description, custom_url (the page's link on a custom domain), workspace, and viewer_warning (visitors see a short notice before a page that looks like a sign-in form). Errors are JSON with one field: {"error": "..."}.

Keep the edit_token: it is the only way to replace an anonymous page later.

Python

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

js
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);

Replace a page

Send the new HTML with the id and edit token from the first response. The link does not change and the 30-day clock restarts.

sh
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":"..."}'

Large files (upload sessions)

One request carries up to 2 MB. Pro accounts can send pages up to 100 MB through a session; the response's max_bytes says what the current plan allows.

  1. POST https://swolvy.com/api/v1/upload/session with {"filename": "report.html"} and the same optional fields as above (password, generate_password, replace_id, replace_edit_token, remove_password, path, title, description, workspace). Send Authorization: Bearer swk_... for a Pro account. Response: {"upload_id", "upload_url", "finish_url", "max_bytes"}.
  2. PUT the raw HTML to upload_url: curl -X PUT -H "Content-Type: text/html" --data-binary @report.html <upload_url>.
  3. POST to finish_url (/api/v1/upload/session/{id}/finish). The response has the same fields as /api/v1/upload.

Rate limits

Uploads are limited to 10 per hour per IP address (HTTP 429), with a global cap across all callers. Bodies over the size limit return 413.

Claude Code skill

The swolvy skill teaches Claude Code the API call above so that "publish this page" or "give me a link to this HTML" works in one step.

Install it by copying the skill folder into your Claude Code skills directory:

sh
git clone https://github.com/enahmedsamy/swolvy-mcp.gitmkdir -p ~/.claude/skillscp -r swolvy-mcp/skills/swolvy ~/.claude/skills/swolvy

Or add it to one project only, under .claude/skills/swolvy/. Then ask Claude Code to publish an HTML file, or run /swolvy. The skill file is skills/swolvy/SKILL.md.

If you would rather use tool calls than curl, add the MCP server to Claude Code instead (see above). Both give the same link.

Limits and plans

FreeSwolvy Pro
Price$0, no signup$3 a month or $18 a year
File sizeup to 2 MBup to 100 MB (2 GB of storage in total)
Expiry30 days after the last upload; a new version restarts the 30 daysnever
Password protectionyesyes
Replace on the same linkyes, with the edit token (up to 10 times) or from the dashboardyes
Custom domainnoyes, one per account
Link previews (title, description, image)generatedcustom

A free account (sign in with an emailed code) adds a dashboard, view counts, API keys and linking your AI assistants to the account. Passwords are stored only as a hash. Pages on swolvy.com are not listed in search engines. Swolvy hosts a single HTML file per page; it does not host multi-file sites, ZIP archives or server-side code.

Links

License

MIT. See LICENSE.

來源:README.md,提交 a77c170

工具

0
該伺服器需要登入,因此 SourceWeft 無法在沒有帳號的情況下讀取其工具,也未收錄。已連接帳號所能看到的內容可能因帳號及其權限而異。

版本歷史

1
  1. v1.0.0最新Oct 22, 2026

評分

已滿足適用檢查項的 85%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通必需25 分
  • 已宣告認證方式必需10 分
  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分