Skip to main content
Shareable ships an MCP server so your agent can publish and manage pages directly in a conversation.

Setup

Two ways to connect. The hosted server is just a URL (nothing to install); the local server runs via npx.

Hosted server (URL)

Shareable runs a hosted MCP server. Add it as a remote server with this URL and your API key as a bearer token:
https://useshareable.com/api/mcp
claude mcp add --transport http shareable https://useshareable.com/api/mcp \
  --header "Authorization: Bearer sm_your_key"
Claude’s web connectors and ChatGPT apps currently only accept OAuth (no bearer-token field), so use the local server below in those for now — OAuth support for the hosted server is on the way.

Local server (npx)

Works in Claude Desktop, Claude Code, and Cursor. Add to your client’s MCP config:
~/.claude/mcp.json
{
  "mcpServers": {
    "shareable": {
      "command": "npx",
      "args": ["-y", "@shareable/mcp"],
      "env": {
        "SHAREABLE_API_KEY": "sm_your_key",
        "SHAREABLE_API_URL": "https://useshareable.com"
      }
    }
  }
}
SHAREABLE_API_URL is optional and defaults to the hosted Shareable. Restart your MCP client after editing the config so it loads the server.

Tools

publish_page
html, title?, access?, allowed_emails?, password?
Publish a self-contained HTML page and get a shareable URL. Goes live immediately. With access: "password", pass a password (or one is generated and returned).
publish_deck
files, entry?, title?, access?, allowed_emails?, password?
Publish a multi-page deck — several self-contained HTML files that link to each other (investor deck, docs site, sectioned report) — under one shareable URL. files is an array of { path, html }; link between pages with relative (team.html) or root-relative (/team.html) paths. entry picks the landing page (defaults to index.html).
update_page
id, html?, title?, access?, allowed_emails?, password?
Replace a single page’s HTML as a draft. Call publish_changes to push it live.
update_deck
id, files, entry?
Replace a deck’s files as a draft. Pass the full set of { path, html } — files not included are removed. Call publish_changes to push it live.
publish_changes
id
Publish a page or deck’s current draft, updating the live URL.
unpublish_page
id
Take a page offline — its shared link stops working until you publish again.
list_pages
List all pages in your account (drafts and published).
list_versions
id
List a page or deck’s saved versions (one is saved on each publish and each edit), newest first.
get_version
id, version
Read a specific version’s metadata and content (html for a page, files[] for a deck).
restore_version
id, version, publish?
Restore a previous version into the draft. Pass publish: true to also push it live.
delete_page
id
Permanently delete a page.

Example

Once connected, just ask in natural language:
"Publish my Q3 revenue dashboard and invite dana@acme.com and mira@acme.com."
Your agent calls publish_page with access: "people" and the two emails, then hands back the live link.