mcpField
S
Stacktree

Stacktree

远程服务
stacktr.ee云与基础设施02 周前更新

关于 Stacktree

Stacktree 是用于将 HTML 页面发布到私密、难以猜测的 URL 并持续维护的 MCP 服务,面向需要分享页面和管理访问权限的 Agent 与 MCP 客户端。其工具还支持收集反馈、修订页面及管理版本。

主要功能

  1. 01发布到难以猜测的 URL
  2. 02保留 URL 更新页面
  3. 03密码与邮箱域名访问限制
  4. 04管理有效期、版本与恢复
  5. 05收集并处理页面反馈

适用场景

  1. 01向客户分享私密 HTML 内容
  2. 02更新已发布页面且不更换链接
  3. 03按密码或邮箱域名限制访问
  4. 04收集评论并跟踪审批

MCP 相关

Stacktree 向 MCP 客户端提供发布和页面管理工具,并支持 stdio 桥接及 https://api.stacktr.ee/mcp 托管端点。

配置

远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。

服务地址https://api.stacktr.ee/mcp
一键复制安装命令
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。

安装包
npmstacktree-mcp0.8.3

工具

21
参数类型必填说明
contentstring是要发布的完整 HTML。
filenamestring否
passwordstring否
expires_in_hoursany否
burn_after_readboolean否
agentationboolean否
public_slugstring否
pii_checkenum否off | warn | block
clientstring否
client_pathstring否

详细介绍

stacktree-mcp

适用于 stacktr.ee 的 MCP 服务。从任意 MCP 客户端(Claude Desktop、Claude Code、Cursor、Continue 等)发布 HTML 产物。

使用 Agent 设置

如果你已打开编码 Agent,把这一行交给它,它就会处理剩下的事 — 安装、验证连接,并了解工具的使用方式:

Fetch and follow the setup instructions at https://stacktr.ee/prompt.md

适用于任何能获取 URL 的 Agent。说明采用纯 Markdown 编写; 你也可以先阅读。

安装

添加到 MCP 客户端配置中:

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

在 https://app.stacktr.ee 生成 API 密钥。

你可能不需要这个软件包

这是 stdio 桥接程序,适用于无法使用可流式传输 HTTP 的客户端。 如果你的客户端可以使用,则直接连接托管服务: https://api.stacktr.ee/mcp。它提供相同的 42 个工具,并使用相同的密钥:

curl -sS -X POST https://api.stacktr.ee/mcp \
  -H "Authorization: Bearer $STACKTREE_API_KEY" \
  -H 'accept: application/json, text/event-stream' \
  -H 'content-type: application/json' \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}'

无需浏览器,也不需要 OAuth 流程:stk_live_ 密钥可作为 MCP 端点的有效凭据,就像在 REST API 中一样。对于代表已登录用户行事的连接器,也接受带动态客户端注册的 OAuth 2.1;不接受会话 Cookie。请发送一种凭据。

没有密钥,也没有人可以询问?发送 POST https://api.stacktr.ee/provision,通过 x402 获取密钥。附近有人但没有浏览器?发送 POST https://api.stacktr.ee/api-keys/device-code,向对方显示返回的 verification_url_complete,然后轮询 /api-keys/device-code/poll,直到返回密钥(RFC 8628)。

工具

工具功能说明
publish_html发布 HTML;返回 { url, id, expires_at, ... }。传入 client 可将其归入某个客户空间。
update_site原位替换现有网站的 HTML;URL 保持不变。
get_site读取网站当前的 HTML 源码 — 编辑后调用 update_site。
set_password添加或清除密码保护。所有套餐均可使用。
set_expiry设置从现在起算的过期小时数,或设为 null 表示永不过期。过期时间会限制在套餐上限内。
set_email_gate限制只有特定电子邮件域名的用户才能查看(通过一次性魔法链接验证)。仅限付费套餐。
set_client_feedback让你发送页面的对象发表评论(文字、图片、视频)并作出回应,无需账号。
set_agentation较旧的开发者标注工具栏。建议使用 set_client_feedback。
list_sites列出此 API 密钥拥有的网站。支持分页(has_more + 游标);可按 client 筛选。
delete_site下线页面。链接会立即失效;内容保留 30 天后销毁。
restore_site在 30 天保留期内,将已删除或过期的页面恢复到原 URL。
claim_site使用页面的 claim_token,认领在未登录账号时发布的页面。URL 不变;认领计为一次发布。
get_content以 html(完全按存储内容返回,可编辑)或 text(去除格式,读取成本低)的形式读取页面。
get_me此密钥对应账号的套餐、用量和强制执行的 limits。请从此处读取限制,切勿根据描述推断。
link_wallet关联你的钱包,使你发布的页面归你的账号所有。
list_feedback读取客户端评论,未解决的排在前面;每条评论都会显示相关内容及其是否仍在页面上。
create_share_link创建一个发给特定对象的链接 — 每次通过该链接打开页面,都会归因到该对象的姓名。
list_share_links列出页面的链接、归因的打开次数以及每个链接的最近打开时间。
revoke_share_link使单个链接失效;页面和其他所有链接仍可正常使用。
resolve_feedback将一条反馈标记为已处理,可附带备注。
set_client按名称或 slug 将页面归入某个客户空间(不存在时会自动创建),或设为 null 以解除关联。
list_client_spaces列出账号中的客户空间:页面数量、绑定的主机名和门户状态。
create_client_space提前创建空间。通常无需使用 — 发布时传入 client 会自动创建空间。
update_client_space重命名、归档空间,或设置该空间下所有页面继承的统一查看限制。
delete_client_space删除空间。其页面会解除关联,URL 保持不变。
get_design_guide产品的设计指南 — 生成页面或调整页面样式前请先阅读。
get_passcode显示你拥有的页面的密码,以便再次发送给客户(2026 年 9 月 13 日之后设置的密码)。
list_versions列出页面的历史版本,按时间从新到旧排列:每次更新对应一个快照。
restore_version更新出错后,将较早的版本恢复到原 URL。
whos_it_for记录页面面向的对象,并获取他们专属的链接。不会发送任何内容。
unopened_pages列出发出一小时后仍未打开的页面及指定对象。
get_revision_brief获取页面收到的所有反馈,作为下一版本的修改概要。
publish_revision原位替换页面,并一次性解决所回应的评论。
resolve_comments一次解决多条评论,并为每条添加审核者可见的备注。
request_approval邀请指定对象审批页面;每人获得一个专属链接。
get_approval_status查看哪些人已批准当前发布的版本,按章节列出。
list_responses查看读者通过页面上标记的表单提交的内容。
resolve_addressed_notes关闭更新已回应的审核者备注,每条附上一行说明。
open_html_file在 ChatGPT 桌面版的文件查看器中打开 .html 文件。此处只会原样返回该文件。
stacktree_pages你最近的 25 个页面:ChatGPT 的页面面板。数据与 list_sites 相同。
publish_card_status刷新 ChatGPT 和 Claude 中的发布卡片。此处会返回页面详情。
publish_card_open发布卡片上的“打开”按钮:生成一个有效期为 15 分钟的页面所有者预览链接。

链接钱包

如果你的 Agent 使用自己的钱包支付发布费用(x402 / MPP),请将该钱包链接到你的 Stacktree 账户,这样它发布的每个页面(包括过去和未来发布的页面)都会归属于该账户:

  1. 由你的人工用户在 https://app.stacktr.ee/wallets 生成链接代码。
  2. link_wallet({ code }) → 返回要签名的确切消息。
  3. 使用你的钱包对其签名(personal_sign)。
  4. link_wallet({ code, wallet, signature }) → 链接钱包,并接管它已发布的页面。

阅读反馈

使用 set_client_feedback 开启评论。你分享链接的对象可以选中文字,或点击图片、视频或某个版块并发表评论;只有所有者能看到这些评论。list_feedback 会返回评论,未解决的排在前面,每条评论都包含一行 target 和 on_page(目标内容仍在页面中,还是已因编辑而消失)。使用 update_site 在原处修复页面(URL 不变):响应会列出哪些未解决的评论与新版本不再匹配。然后对每条已处理的评论调用 resolve_feedback,并附上一条简短说明,客户端会在评论旁看到这条说明。

隐私政策

完整政策:https://stacktr.ee/privacy。简而言之:

  • 收集内容。 此服务会将你要求发布的内容(HTML 和文件)以及你的工具调用发送到 https://api.stacktr.ee,并使用你的 Stacktree API 密钥进行身份验证。除此之外,它不会收集你设备上的任何信息,也不会在本地存储数据。
  • 用途和存储方式。 发布的文件存储在 Cloudflare R2 中,页面元数据(URL、可见性、过期时间、密码哈希、浏览量)存储在 Cloudflare D1 中,以便提供页面服务。你为每个页面单独开启的可选功能(例如设计优化、询问此页面和页面视频)会将该页面的文本发送给政策中列出的 AI 服务,并遵循排除将其用于训练的条款。
  • 共享。 Stacktree 不出售个人数据。它仅与运行服务所需的子处理商共享数据,这些子处理商列于政策中(例如用于登录的 Cloudflare、Clerk,以及用于账单处理的 Stripe)。
  • 保留期限。 页面会保留到过期或被删除为止;之后,内容会保留 30 天以便恢复,随后销毁。服务日志会保留 30 天,其中的 IP 地址经过哈希处理。
  • 联系。 [email protected]

默认隐私设置

每个站点都会获得一个无法猜测的 https://stacktr.ee/p/{token}/ URL。传入 public_slug 即可选择使用 https://{slug}.stacktr.ee/。

pii_check 默认为 block——拒绝上传与常见机密信息和个人身份信息特征相符的内容(邮箱、SSN、信用卡信息、OpenAI/GitHub/Stripe API 密钥前缀)。传入 warn 即可仍然发布(匹配项会在响应中标记),传入 off 则跳过扫描。

免费套餐包含的内容

免费套餐的密钥总共可发布 3 个页面,每个页面在发布 7 天后过期。次数按生命周期计算,而非按同时存在的页面数计算:删除页面或等待页面过期,都不会返还名额。

对于限制页面有效期的套餐,expires_in_hours: "never" 会被拒绝,而不会悄悄缩短有效期:返回 409 expiry_clamped,不发布任何内容,并在响应正文中附上页面原本会获得的日期。传入 accept_clamp: true 即表示接受有效期上限,或者告知用户该套餐无法生成永久链接。超过上限的数字会被缩短,而非拒绝,响应中会包含 expiry_clamped: true。无论哪种情况,都要从响应中读取 expires_at_iso 并引用其中的值,切勿引用你请求的值。

密码(set_password)在所有套餐中均可用,包括免费套餐。邮件验证门(set_email_gate)和查看者数量限制仅适用于付费套餐。达到上限时会返回 HTTP 402,error 中包含稳定的 plan_* 代码:

代码含义
plan_lifetime_limit_exceeded免费套餐的 3 个页面名额已用完。删除页面也无济于事。
plan_site_limit_exceeded已达到活跃页面上限。
plan_password_not_available此套餐不提供密码功能(免费套餐提供此功能;某些套餐仍可能不提供)。
plan_viewer_gate_not_available此套餐不提供邮件验证门。
plan_domain_not_available此套餐不提供自定义域名。

GET /me — 或 get_me 工具 — 会返回调用密钥自身的 limits 对象。请从中读取上限,而不要将其硬编码。当前套餐和价格:https://stacktr.ee/pricing.md。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。