Oh My Share

com.openanthropicPublished by openanthropic.comOfficial publisherv2.3.0Updated Nov 8, 2026

Publish HTML/code from your agent to openanthropic.com and get a shareable link.

VerifiedStreamable HTTPWeb executableFiles & StorageDeveloper Tools

Overview

AI-generated overview

Publishes HTML or code from an assistant to openanthropic.com and returns a public share link, with listing, viewing, deleting and gallery search.

What you can do
  • Upload a single HTML or code payload and get a share URL, id and edit token
  • Publish a multi-file static site from an authenticated account and get a site URL
  • List your own assets and fetch a single asset's content by id
  • Permanently delete one of your own assets
  • Search the public gallery by keyword or browse newest and most popular works
  • Read service metadata such as version, endpoints and rate limits
When to use it
Useful when an assistant produces an HTML page, snippet or small static site that someone should be able to open in a browser, or when you want to look up and read content already shared on the service.
Requirements
Remote streamable HTTP endpoint; no API key needed for anonymous single-file uploads. Publishing multi-file sites and listing your own assets require OAuth or an API key. Requests are rate-limited per IP.
Before you install
Uploaded content is public unless password-protected or client-encrypted, and anonymous links carry a badge and expire by default after 7 days. Delete is irreversible and the share URL stops working immediately. Keep the returned edit token private, since it allows changing the content at the same URL.

Installation

In SourceWeft

  1. Open Oh My Share in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/com.openanthropic%2Foh-my-share/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "oh-my-share": {
      "type": "http",
      "url": "https://openanthropic.com/mcp"
    }
  }
}

README

Oh My Share

[License: MIT] [MCP Registry] [Live]

Free, no-signup HTML & code sharing — for humans and AI agents.

Paste code (or drag in a .html file) at openanthropic.com, get back a link like https://openanthropic.com/view/<id> that renders in any browser. AI agents get the same ability over MCP, a JSON API, and an A2A endpoint: send HTML in, shareable link out.

中文简介:免费无注册的 HTML/代码分享工具,支持端到端加密、可编辑的永久链接、密码保护、过期时间与公开作品广场;同时内置 MCP 服务器与 A2A 端点,AI 代理可以直接发布内容。


Features

  • No account required — paste and share, works on mobile
  • Editable permanent links — every share has an editToken; update the content at the same URL while you iterate
  • Optional end-to-end encryption — encrypted in the browser, the server only ever stores ciphertext (registered accounts include a 3-day encryption trial)
  • Password protection and expiry (1 hour – 90 days)
  • Public gallery — publish works to /gallery, searchable by keyword, sortable by newest/popular
  • Abuse reporting — reported content is unpublished immediately (HTTP 451) pending review, with an appeal path
  • Referrer-Policy + sandboxed rendering — shared pages are served with no-referrer and a sandbox CSP so they can't touch your session

For humans

  1. Open https://openanthropic.com
  2. Paste code or drag a .html file in
  3. Copy the /view/<id> link

Advanced options (password, expiry, title, tags, publish-to-gallery) are in the same editor. Use the returned editToken to update the share later at POST /api/edit/<id>.

For AI agents

Three equivalent interfaces — no API key needed for the basic flows.

1. MCP server (streamable HTTP)

Endpoint: https://openanthropic.com/mcp Listed in the official MCP Registry as io.github.shisongsong/oh-my-share (v2.2.0). No API key required — anonymous clients can call every tool (OAuth metadata is also advertised for clients that prefer it); requests are rate-limited per IP.

Claude Code:

bash
claude mcp add --transport http oh-my-share https://openanthropic.com/mcp

Any MCP client that reads mcp.json (Cursor, VS Code, …):

json
{  "mcpServers": {    "oh-my-share": { "url": "https://openanthropic.com/mcp" }  }}

Tools:

ToolArgumentsDescription
uploadcontent (string), language?, filename?, password?, expiresIn? (1h/24h/7d/30d/90d, default 7d)Upload HTML or a code snippet; returns the share URL, id and edit token
list_assets–List assets uploaded in the current session
viewidFetch shared content by id
deleteidDelete an asset you own
get_info–Service info (name, version, endpoints)
search_galleryquery, sort? (new|hot), page?, limit? (≤20)Full-text search of the public gallery (title, description, tags, id)

2. JSON API (CORS-open)

bash
# publish HTML, get a share link backcurl -s https://openanthropic.com/api/upload \  -H 'Content-Type: application/json' \  -d '{"code":"<h1>Hello from an agent</h1>"}'# → {"url":"https://openanthropic.com/view/<id>","id":"<id>","editToken":"...","expiresAt":null}
# search the gallerycurl -s 'https://openanthropic.com/api/gallery?q=dashboard&sort=hot&page=1&limit=10'# → {"items":[…],"total":…,"page":1,"pages":…}

3. A2A endpoint (Agent2Agent, v1.0 JSON-RPC)

  • Endpoint: POST https://openanthropic.com/a2a
  • Agent card: https://openanthropic.com/.well-known/agent-card.json
  • Registered at a2aregistry.org as com.openanthropic.oh_my_share
  • Stateless: completed tasks are synthesized from stored shares, so GetTask works for any share id
bash
curl -s https://openanthropic.com/a2a \  -H 'Content-Type: application/json' \  -d '{    "jsonrpc":"2.0","id":1,    "method":"SendMessage",    "params":{"message":{"messageId":"m1","parts":[{"text":"<h1>Hi</h1>"}]}}  }'# → completed task whose artifacts carry the /view/<id> URL

GetTask, /search <query> and a plain-text help reply (for anything that isn't HTML) are supported too; streaming/cancel methods return standard A2A "not supported" errors.

Self-hosting

Requirements: Node.js 18+, a Cloudflare account (Workers, D1, R2), wrangler (installed via npm install).

bash
git clone https://github.com/shisongsong/oh-my-share.gitcd oh-my-sharenpm install
# create the storage (once)npx wrangler d1 create oh-my-share-db        # put the returned database_id into wrangler.jsoncnpx wrangler r2 bucket create oh-my-share-bucket
# apply schema migrationsnpx wrangler d1 migrations apply oh-my-share-db --remote
# local development (uses the same bindings)npm run dev
# tests (19 unit/integration tests, Cloudflare Workers pool)npm test
# build + deploynpm run deploy

Notes for your own deployment:

  • Remove or edit the routes entry in wrangler.jsonc (it points at the production custom domain)
  • The daily cron (triggers.crons) runs the stats snapshot/IndexNow job — optional
  • monitor/ holds an optional shell-based analytics/uptime monitor (monitor/README.md); copy monitor/.env.example to fill in your Cloudflare API token

Architecture

  • Cloudflare Workers — one worker: routing, SSR pages, MCP server, JSON API, A2A endpoint
  • D1 (SQLite) — metadata: shares, sessions, subscriptions, gallery index, reports
  • R2 — content objects (HTML/code/encrypted blobs)
  • Web Crypto — password hashing and client-side end-to-end encryption (keys never leave the browser except in the URL fragment)

Agent-facing files: llms.txt · robots.txt · sitemap · MCP server card · A2A agent card

Contributing

Issues and PRs are welcome. Run npm test before submitting — CI parity matters more than style nits.

License

MIT © shisongsong

Source: README.md at commit d5991a8

Tools

7

upload

Upload Content

Upload one HTML/code payload and get a public share URL plus an edit token. Each call creates a new asset unless idempotencyKey is reused. Anonymous uploads are rate-limited to 10/hour and 50/day per IP; authenticated uploads are limited per account. Content is public unless password-protected and expires after expiresIn (default 7d). Use upload_site for multi-file sites, view to read back, list_assets for your own files, or delete to remove one.

ParameterstagstitlecontentrequiredfilenamelanguagepasswordexpiresIndescriptionidempotencyKey

upload_site

Upload Static Site

Publish a multi-file static site from an authenticated account. Pass files as an array of {path, content} strings; the root must contain index.html or index.htm. Returns a /s/<id>/ URL that serves HTML/CSS/JS/assets. Limits: 200 files, 20 MB total, 5 MB per file. Requires OAuth or an API key; site links never show the anonymous badge. Use idempotencyKey to make retries safe.

ParameterstagsfilesrequiredtitleexpiresIndescriptionidempotencyKey

list_assets

List Assets

List up to 50 assets owned by the authenticated user, newest first, with id, filename, timestamps and share URL. Requires an API key or signed-in session; read-only, and results are capped at 50 with no pagination. Use search_gallery for public works from other users, or view to open one of your assets.

Takes no parameters.

view

View Content

Fetch a single asset by id and return its content, filename, creation time and share URL. Read-only and safe to retry; public assets need no auth, password-protected assets return an error with the share URL, and client-encrypted content is returned as stored. Use search_gallery to find an id, or list_assets for your own uploads.

Parametersidrequired

delete

Delete Asset

Permanently delete one of your own assets by id. Irreversible: the share URL stops working immediately and the content cannot be restored. Requires authentication and ownership; ids you do not own return an error. Use list_assets to find the id; there is no bulk delete.

Parametersidrequired

get_info

Service Info

Return Oh My Share service metadata: version, REST and MCP endpoints, feature list, and per-IP rate limits (10 uploads/hour, 500 views/hour). Read-only, no auth, cheap to call. Use it once at startup to discover capabilities; use list_assets or search_gallery for actual content.

Takes no parameters.

Version history

1
  1. v2.3.0LatestNov 8, 2026

Score

100% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts

Other Openanthropic integrations