Stacktree について
Stacktreeは、HTMLページを推測しにくい非公開URLで公開し、管理するMCPサーバーです。ページ共有やアクセス制御が必要なエージェントやMCPクライアント向けに、フィードバックや改訂のためのツールも提供します。
主な機能
- 01推測しにくいURLでHTMLを公開
- 02URLを維持したページ更新
- 03パスワード・メールドメイン制限
- 04有効期限、バージョン、復元の管理
- 05ページのフィードバック収集と対応
活用シーン
- 01クライアントに非公開HTMLを共有
- 02リンクを変えずに公開ページを改訂
- 03パスコードやメールドメインで閲覧を制限
- 04コメント収集と承認状況の追跡
MCP 対応
StacktreeはMCPクライアントに公開・ページ管理ツールを提供します。stdioブリッジと https://api.stacktr.ee/mcp のホスト型エンドポイントを利用できます。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://api.stacktr.ee/mcpclaude mcp add --transport http stacktree https://api.stacktr.ee/mcp{"mcpServers":{"stacktree":{"type":"http","url":"https://api.stacktr.ee/mcp"}}}Cursor で開く{"servers":{"stacktree":{"type":"http","url":"https://api.stacktr.ee/mcp"}}}VS Code で開く{"mcpServers":{"stacktree":{"type":"http","url":"https://api.stacktr.ee/mcp"}}}{"mcpServers":{"stacktree":{"serverUrl":"https://api.stacktr.ee/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
21| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| content | string | はい | 公開する HTML 全体。 |
| filename | string | いいえ | |
| password | string | いいえ | |
| expires_in_hours | any | いいえ | |
| burn_after_read | boolean | いいえ | |
| agentation | boolean | いいえ | |
| public_slug | string | いいえ | |
| pii_check | enum | いいえ | off | warn | block |
| client | string | いいえ | |
| client_path | string | いいえ |
詳細
stacktree-mcp
stacktr.ee 用の MCP サーバーです。任意の MCP クライアント(Claude Desktop、Claude Code、Cursor、Continue など)から HTML アーティファクトを公開できます。
エージェントを使ったセットアップ
コーディングエージェントを開いている場合は、次の行を渡すだけで、あとはエージェントが行います。 インストール、接続の検証、ツールの仕様の把握まで行います。
Fetch and follow the setup instructions at https://stacktr.ee/prompt.md
URL を取得できるエージェントであれば、どれでも動作します。手順は通常の Markdown なので、 必要であれば先にお読みください。
インストール
MCP クライアントの設定に追加します。
{
"mcpServers": {
"stacktree": {
"command": "npx",
"args": ["-y", "stacktree-mcp"],
"env": { "STACKTREE_API_KEY": "stk_live_..." }
}
}
}
https://app.stacktr.ee で API キーを生成します。
このパッケージは不要かもしれません
これは、ストリーミング可能な HTTP を利用できないクライアント向けの stdio ブリッジです。
利用できる場合は、同じ 42 個のツールを公開し、同じキーを使うホスト型サーバー
https://api.stacktr.ee/mcp に直接接続してください。
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_ キーは REST API とまったく同じように、MCP エンドポイントで有効な認証情報です。ログイン済みの人間に代わって動作するコネクター向けに、Dynamic Client Registration を使った OAuth 2.1 も受け付けます。セッション Cookie は拒否されます。認証情報は 1 つ送信してください。
キーがなく、尋ねる相手もいませんか? 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 | 閲覧者をメールドメインで制限します(1 回限りのマジックリンク認証)。有料プランのみ利用できます。 |
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 | 1 人に宛てたリンクを発行します。そのリンクから開くたびに、その人の名前に紐付けて記録されます。 |
list_share_links | ページ上のリンク、紐付けられた閲覧数、各リンクが最後に開かれた日時を一覧表示します。 |
revoke_share_link | 1 つのリンクを無効にします。ページや他のリンクは引き続き利用できます。 |
resolve_feedback | フィードバック項目を対応済みにし、任意でメモを追加します。 |
set_client | 名前またはスラッグを指定してページをクライアントスペースに保存します(スペースは自動作成されます)。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 | ページの以前のバージョンを新しい順に表示します。更新ごとにスナップショットが 1 つあります。 |
restore_version | 更新に問題があった場合、以前のバージョンを同じ URL に復元します。 |
whos_it_for | ページの送信先を記録し、その人専用のリンクを取得します。何も送信されません。 |
unopened_pages | 送信から 1 時間経っても開かれていないページと、まだ開いていない宛名付きの相手を表示します。 |
get_revision_brief | ページに寄せられた内容をすべて、次のバージョン向けの要約として取得します。 |
publish_revision | ページをその場で置き換え、対応したコメントを同時に解決済みにします。 |
resolve_comments | 複数のコメントをまとめて解決し、レビュー担当者に表示されるメモをそれぞれ追加します。 |
request_approval | 名前を指定した相手にページの承認を依頼します。それぞれに専用の非公開リンクが 1 つ発行されます。 |
get_approval_status | 現在公開中のバージョンについて、セクションごとに誰が承認したかを確認できます。 |
list_responses | ページ上のフォームを通じて読者から送信された内容を表示します。 |
resolve_addressed_notes | 更新で対応したレビュー担当者のメモを、それぞれ 1 行のコメントを付けてクローズします。 |
open_html_file | ChatGPT デスクトップのファイルビューアーで .html ファイルを開きます。ここではファイルをそのまま返すだけです。 |
stacktree_pages | 最新 25 件のページを表示します。ChatGPT のページパネルです。list_sites と同じデータが返されます。 |
publish_card_status | ChatGPT と Claude の公開カードを更新します。ここではページの詳細が返されます。 |
publish_card_open | 公開カードの「開く」ボタンです。ページの所有者向けの 15 分間有効なプレビューリンクを返します。 |
ウォレットのリンク
エージェントが自分のウォレットで公開の支払いを行う場合(x402 / MPP)、そのウォレットを Stacktree アカウントにリンクすると、過去および今後に公開するすべてのページがそのアカウントの所有になります。
- 人間が https://app.stacktr.ee/wallets でリンクコードを生成します。
link_wallet({ code })→ 署名する正確なメッセージが返されます。- ウォレットで署名します(
personal_sign)。 link_wallet({ code, wallet, signature })→ ウォレットをリンクし、すでに公開済みのページをそのアカウントに移します。
フィードバックの確認
set_client_feedback でコメントを有効にすると、リンクを送った相手は単語を選択したり、画像、動画、セクションをクリックしたりして、所有者だけが見られるコメントを残せます。list_feedback は、未解決のものを先に、各項目の1行の target と on_page(ページ内にまだ存在するか、編集後に削除されたか)とともに返します。同じ URL のまま update_site でページを修正できます。レスポンスには、未解決のコメントのうち新しいバージョンに一致しなくなったものが一覧表示されます。回答したコメントごとに resolve_feedback を実行し、短いメモを添えると、クライアントは自分のコメントの横にそのメモを確認できます。
プライバシーポリシー
ポリシー全文:https://stacktr.ee/privacy。要約は次のとおりです。
- 収集する情報。 このサーバーは、公開するよう依頼された内容(HTML とファイル)およびツール呼び出しを、Stacktree API キーで認証して
https://api.stacktr.eeに送信します。それ以外にお使いのマシンから情報を収集することはなく、ローカルデータも保持しません。 - 利用方法と保存方法。 ページを配信するため、公開ファイルは Cloudflare R2 に、ページのメタデータ(URL、公開範囲、有効期限、パスワードのハッシュ、閲覧回数)は Cloudflare D1 に保存されます。デザイン調整、Ask this page、ページ動画など、ページごとに有効にするオプション機能では、そのページのテキストがポリシーに記載された AI サービスに送信されます。これらのサービスは、送信されたテキストを学習に使用しない利用条件に従います。
- 共有。 Stacktree は個人データを販売しません。サービスの運営に必要なサブプロセッサーとのみデータを共有します。サブプロセッサーはポリシーに記載されています(例:Cloudflare、サインイン用の Clerk、請求用の Stripe)。
- 保持期間。 ページは有効期限が切れるか削除されるまで保持されます。その後、復元できるようコンテンツは30日間保持され、以降は破棄されます。配信ログは、IP アドレスをハッシュ化したうえで30日間保持されます。
- お問い合わせ先。 [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)と閲覧者数の確認は有料プランで利用できます。上限に達すると、errorに安定したplan_*コードが含まれるHTTP 402が返ります。
| コード | 意味 |
|---|---|
plan_lifetime_limit_exceeded | 無料プランで利用できる3ページをすべて使用しました。ページを削除しても解決しません。 |
plan_site_limit_exceeded | 有効なページ数の上限に達しました。 |
plan_password_not_available | このプランではパスコードを利用できません(Freeでは利用できますが、利用できないプランもあります)。 |
plan_viewer_gate_not_available | このプランではメールゲートを利用できません。 |
plan_domain_not_available | このプランではカスタムドメインを利用できません。 |
GET /me、またはget_meツールを使うと、呼び出し元のキー自身のlimitsオブジェクトが返されます。上限をハードコードせず、そこから読み取ってください。現在のプランと料金については、こちらをご覧ください:https://stacktr.ee/pricing.md。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。