Publish HTML/code from your agent to openanthropic.com and get a shareable link.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
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.
12-character asset id you own (from list_assets).
The server marks this tool as destructive. Running it may delete or overwrite data on the server or in any account you connected with your headers.
Pick your client. Values in capitals, like YOUR_TOKEN, are yours to fill in.
Run in a terminal
claude mcp add --transport http oh-my-share https://openanthropic.com/mcp
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.
| Argument | Type | Description |
|---|---|---|
| id* | string | 12-character asset id you own (from list_assets). |
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"description": "12-character asset id you own (from list_assets)."
}
}
}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.
No arguments.
{
"type": "object",
"properties": {}
}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.
No arguments.
{
"type": "object",
"properties": {}
}Search public gallery works by keyword across title, description, tags and id; omit query to browse the newest works. Returns a paginated result set (items, total, page, pages) where each item has id, title, views and URLs. sort is new (newest) or hot (most liked and viewed); limit is capped at 20. No auth required. Use view to open a result, or list_assets for your own uploads.
| Argument | Type | Description |
|---|---|---|
| page | integer | 1-based page number. Default 1. |
| sort | string | new = newest first; hot = most liked and viewed. |
| limit | integer | Results per page, 1 to 20. Default 10. |
| query | string | Keyword matched against title, description, tags and id; empty returns the newest works. |
{
"type": "object",
"properties": {
"page": {
"type": "integer",
"default": 1,
"minimum": 1,
"description": "1-based page number. Default 1."
},
"sort": {
"enum": [
"new",
"hot"
],
"type": "string",
"default": "new",
"description": "new = newest first; hot = most liked and viewed."
},
"limit": {
"type": "integer",
"default": 10,
"maximum": 20,
"minimum": 1,
"description": "Results per page, 1 to 20. Default 10."
},
"query": {
"type": "string",
"description": "Keyword matched against title, description, tags and id; empty returns the newest works."
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| tags | string | Optional comma-separated tags. |
| title | string | Optional title shown in the viewer and gallery metadata. |
| content* | string | HTML or code to publish (required, max 500 KB). |
| filename | string | Optional display filename used in the title and download name (max 200 chars). |
| language | string | Content language hint, e.g. html, css, js, json, markdown. Default html. |
| password | string | Optional password; the web view asks for it before showing content. |
| expiresIn | string | Retention: 1h, 24h, 7d, 30d, 90d, or 0 for permanent. Default 7d. |
| description | string | Optional description for the asset. |
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.
| Argument | Type | Description |
|---|---|---|
| tags | string | Optional comma-separated tags. |
| files* | array | Site files. Paths are relative and must not contain .. or absolute paths. |
| title | string | Optional site title; defaults to "site". |
| expiresIn | string | Retention: 1h, 24h, 7d, 30d, 90d, or 0 for permanent. Default 7d. |
| description | string | Optional description. |
| idempotencyKey | string | Optional 1-128 char retry key. Reusing it with the same payload returns the original site; the edit token is only returned to the original caller. |
{
"type": "object",
"required": [
"files"
],
"properties": {
"tags": {
"type": "string",
"description": "Optional comma-separated tags."
},
"files": {
"type": "array",
"items": {
"type": "object",
"required": [
"path",
"content"
],
"properties": {
"path": {
"type": "string",
"description": "Relative path, e.g. index.html or assets/app.css."
},
"content": {
"type": "string",
"description": "UTF-8 file content."
}
}
},
"maxItems": 200,
"minItems": 1,
"description": "Site files. Paths are relative and must not contain .. or absolute paths."
},
"title": {
"type": "string",
"description": "Optional site title; defaults to \"site\"."
},
"expiresIn": {
"type": "string",
"default": "7d",
"description": "Retention: 1h, 24h, 7d, 30d, 90d, or 0 for permanent. Default 7d."
},
"description": {
"type": "string",
"description": "Optional description."
},
"idempotencyKey": {
"type": "string",
"description": "Optional 1-128 char retry key. Reusing it with the same payload returns the original site; the edit token is only returned to the original caller."
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| id* | string | 12-character asset id returned by upload or search_gallery. |
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"description": "12-character asset id returned by upload or search_gallery."
}
}
}We read every tool's name, description and inputs the way the model will, looking for instructions hidden from you. A clean result means no warning signs, not a guarantee. Scanned Nov 8, 2026.
Takes a password, API key or token as an argument, so the secret passes through the model's context and chat logs.
Fix: Read credentials from the server's own configuration (environment, OAuth) instead of a tool argument.
| idempotencyKey | string | Optional 1-128 char retry key. Reusing it with the same payload returns the original asset; the edit token is only returned to the original caller. |
{
"type": "object",
"required": [
"content"
],
"properties": {
"tags": {
"type": "string",
"description": "Optional comma-separated tags."
},
"title": {
"type": "string",
"description": "Optional title shown in the viewer and gallery metadata."
},
"content": {
"type": "string",
"description": "HTML or code to publish (required, max 500 KB)."
},
"filename": {
"type": "string",
"description": "Optional display filename used in the title and download name (max 200 chars)."
},
"language": {
"type": "string",
"default": "html",
"description": "Content language hint, e.g. html, css, js, json, markdown. Default html."
},
"password": {
"type": "string",
"description": "Optional password; the web view asks for it before showing content."
},
"expiresIn": {
"type": "string",
"default": "7d",
"description": "Retention: 1h, 24h, 7d, 30d, 90d, or 0 for permanent. Default 7d."
},
"description": {
"type": "string",
"description": "Optional description for the asset."
},
"idempotencyKey": {
"type": "string",
"description": "Optional 1-128 char retry key. Reusing it with the same payload returns the original asset; the edit token is only returned to the original caller."
}
}
}