Back to Discover

stacktree-mcp

connector

stevysmith

Stacktree: publish agent-made HTML to a private, gated URL, filed under a client space.

View on GitHub
0 starsSynced Aug 17, 2026

Install to Claude Code

/plugin marketplace add stevysmith/stacktree-mcp

README

stacktree-mcp

MCP server for stacktr.ee. Publish HTML artifacts from any MCP client (Claude Desktop, Claude Code, Cursor, Continue, etc).

Install

Add to your MCP client config:

{
  "mcpServers": {
    "stacktree": {
      "command": "npx",
      "args": ["-y", "stacktree-mcp"],
      "env": { "STACKTREE_API_KEY": "stk_live_..." }
    }
  }
}

Generate an API key at https://app.stacktr.ee.

Tools

ToolWhat it does
publish_htmlPublish HTML; returns { url, id, expires_at, ... }. Pass client to file it under a client space.
update_siteReplace the HTML of an existing site in place; URL is preserved.
get_siteRead a site's current HTML source — edit it, then update_site.
set_passwordAdd or clear a passcode gate. Paid plans only.
set_expirySet hours-from-now expiry, or null for never. Clamped to the plan ceiling.
set_email_gateRestrict viewers to an email domain (one-time magic-link verify). Paid plans only.
set_agentationToggle the on-page Agentation feedback toolbar.
list_sitesList sites owned by this API key. Paged (has_more + cursor); filter with client.
delete_siteHard delete a site.
link_walletLink your wallet so pages you publish are owned by your account.
list_feedbackRead viewer annotations left via the Agentation toolbar; unresolved first.
resolve_feedbackMark a feedback item addressed, with an optional note.
set_clientFile a page under a client space by name or slug (auto-created), or null to detach.
list_client_spacesThe client spaces on the account: page counts, bound hostname, portal state.
create_client_spaceCreate a space up front. Rarely needed — publishing with client creates one.
update_client_spaceRename, archive, or set the space-wide viewer gate every page under it inherits.
delete_client_spaceRemove a space. Its pages detach and keep their URLs.
get_design_guideThe house design guide — read it before generating or restyling a page.

Linking a wallet

If your agent pays for publishes from its own wallet (x402 / MPP), link that wallet to your Stacktree account so every page it publishes — past and future — is owned there:

  1. Your human generates a link code at https://app.stacktr.ee/wallets.
  2. link_wallet({ code }) → returns the exact message to sign.
  3. Sign it with your wallet (personal_sign).
  4. link_wallet({ code, wallet, signature }) → links the wallet and adopts the pages it already published.

Reading feedback

Turn on the on-page toolbar with set_agentation and viewers can annotate the page; their comments are stored with the site. list_feedback returns them, unresolved first (comment, annotated element, selected text, intent, severity). Fix the page in place with update_site (same URL), then resolve_feedback to mark each item addressed, with an optional note.

Privacy defaults

Every site gets an unguessable https://stacktr.ee/p/{token}/ URL. Pass public_slug to opt into https://{slug}.stacktr.ee/.

pii_check defaults to block — uploads matching common secrets and PII shapes (emails, SSNs, credit cards, OpenAI/GitHub/Stripe API-key prefixes) are refused. Pass warn to publish anyway (matches are flagged in the response), or off to skip the scan.

What the free plan gives you

A key on the free plan publishes 3 pages in total, and each one expires 7 days after it is published. The count is lifetime, not concurrent: deleting a page or letting it expire does not give the slot back. expires_in_hours: "never" is clamped to the 7-day ceiling rather than refused, so always read expires_at off the response.

Passcodes (set_password), email gates (set_email_gate) and viewer numbers are on paid plans. Hitting a ceiling returns HTTP 402 with a stable plan_* code in error:

CodeMeans
plan_lifetime_limit_exceededAll 3 free pages used. Deleting one does not help.
plan_site_limit_exceededActive-page cap reached.
plan_password_not_availablePasscodes are not on this plan.
plan_viewer_gate_not_availableEmail gates are not on this plan.
plan_domain_not_availableCustom domains are not on this plan.

GET /me returns the calling key's own limits object. Read caps from there rather than hard-coding them. Current plans and prices: https://stacktr.ee/pricing.md.

Rendered live from stevysmith/stacktree-mcp's GitHub README — not stored, always reflects the source repo.

2 Install Methods

NameDescriptionCategorySource
npm packageInstall via npm (stdio transport)mcp-serverstacktree-mcp
streamable-http remoteHosted streamable-http endpointmcp-serverhttps://api.stacktr.ee/mcp

0 Comments

Login required
Log in to post a comment or update on this repo.

No comments yet — be the first to share an update.