TrayPage Docs

MCP / Skill

MCP サーバーの接続方法、TrayPage agent skill、認証(OAuth / API トークン)、ツールリファレンス。

TrayPage へのページ作成・公開・取得は MCP(Model Context Protocol)経由で行えます。まず MCP サーバーを接続し、投稿・レビュー・コメント反映・新しいバージョン作成までを AI エージェントに安定して任せたい場合は TrayPage の agent skill も追加します。MCP を使えない環境やスクリプトでは CLI を使えます。

MCP server

TrayPage MCP は Streamable HTTP のエンドポイントとして公開されています。対応クライアントでは次の URL を登録します。

https://tray.page/api/mcp

Claude Code

claude mcp add --transport http --scope user traypage https://tray.page/api/mcp

追加後、Claude Code 内で /mcptraypage を選択して認証します。ブラウザが開き、サインインとアクセス許可(ワークスペース・アクセスできるプロジェクト・既定プロジェクトの選択)を行えば完了です。

この設定はユーザー全体で使えるため、普段使いにはこの形を推奨します。リポジトリごとに利用する TrayPage のワークスペースやプロジェクトを分けたい場合や、設定をリポジトリに閉じたい場合は、代わりに --scope project を指定します。

claude mcp add --transport http --scope project traypage https://tray.page/api/mcp

Codex

codex mcp add traypage --url https://tray.page/api/mcp
codex mcp login traypage

codex mcp login traypage でブラウザ認証を完了します。CLI と IDE 拡張は同じ ~/.codex/config.toml を使うため、一度設定すれば両方で利用できます。リポジトリごとに利用する TrayPage のワークスペースやプロジェクトを分けたい場合や、リポジトリに閉じた設定にしたい場合は、リポジトリ内の .codex/config.toml に同じ設定を置きます。

設定ファイルに直接書く場合は次の形です。

[mcp_servers.traypage]
url = "https://tray.page/api/mcp"

Cursor

Cursor Settings → MCP から追加するか、~/.cursor/mcp.json(全ワークスペース)または .cursor/mcp.json(現在のプロジェクト)に次を追加します。

{
  "mcpServers": {
    "traypage": {
      "url": "https://tray.page/api/mcp"
    }
  }
}

保存後、Cursor を再読み込みし、初回利用時の OAuth フローを完了します。

VS Code(GitHub Copilot Agent mode)

コマンドパレットで MCP: Add Server を実行して HTTP サーバーとして追加するか、.vscode/mcp.json に次を追加します。

{
  "servers": {
    "traypage": {
      "type": "http",
      "url": "https://tray.page/api/mcp"
    }
  }
}

ワークスペースではなくユーザー全体に入れる場合は、コマンドパレットの MCP: Open User Configuration から同じ設定を追加します。

claude.ai / Claude Desktop

Settings → Connectors → Add custom connector で URL に https://tray.page/api/mcp を入力します。接続時にブラウザで同じ認可フローが走ります。

ChatGPT

Settings → Connectors からカスタムコネクタを追加し、MCP server URL に https://tray.page/api/mcp を入力します。組織やプランによって、カスタム MCP コネクタの利用可否・公開範囲・管理者承認の要件が異なる場合があります。

Windsurf / Antigravity

Windsurf や Antigravity のように mcp_config.jsonserverUrl を使うクライアントでは、次の形で登録します。

{
  "mcpServers": {
    "traypage": {
      "serverUrl": "https://tray.page/api/mcp"
    }
  }
}

保存後、MCP 設定画面で refresh / authenticate を実行し、ブラウザ認証を完了します。

その他の MCP クライアント

Streamable HTTP と OAuth 2.1 に対応したクライアントであれば、URL https://tray.page/api/mcp を登録するだけで接続できます。OAuth に対応していないクライアントや自動化からは、後述の API トークンをヘッダで渡してください。

claude mcp add --transport http --scope user traypage https://tray.page/api/mcp \
  --header "Authorization: Bearer tp_xxx"

Agent skill

TrayPage MCP だけでもページ作成と公開はできますが、AI コーディングエージェントに「投稿 → レビュー → 公開 → コメント反映 → 新しいバージョン投稿」の流れを安定して実行させるには、公開スキルも追加します。スキルの公開レポジトリは 8d-inc/traypage-skills です。

npx skills add 8d-inc/traypage-skills -g

-g はユーザー全体への追加です。Claude Code / Codex / Cursor など普段使いの複数リポジトリから TrayPage を使う場合は、この形を推奨します。特定のリポジトリにだけ閉じたい場合は -g を外し、対話プロンプトでリポジトリ内への追加を選びます。

このスキルは MCP サーバーのセットアップそのものではなく、create_page / create_page_version / publish_version / get_page_comments / reply_page_comment / resolve_page_comment / get_page_revision_prompt を使った実作業の進め方をエージェントに教えるものです。MCP ツールを優先して使うこと、/viewer ではなく review_urlshare_url をユーザーに返すこと、下書き投稿と公開を分けること、公開後は CLI が使える場合にレビューセッションを立ち上げること、CLI がない場合は CLI とレビューセッションの利点を案内すること、レビューを受け取ったら修正版を作ることを含みます。

レビューセッションを使う場合は、セッション起動時に表示される URL をユーザーに伝え、その URL から開いてもらいます。先に通常のレビュー画面を開いてから後で CLI のレビューセッションを開始しても、その既存タブはセッションに自動接続されません。

認証

方式向いている用途手順
OAuth 2.1(推奨)普段使いの AI ツール接続時にブラウザで認可。トークン管理は不要
API トークン(tp_ プレフィックス)CI・スクリプト・OAuth 非対応クライアントプロジェクトのページで発行し、Authorization: Bearer tp_xxx ヘッダで渡す

OAuth の認可時には、アクセスを許可するワークスペース、プロジェクト範囲(選択したプロジェクトのみ / すべてのプロジェクト)、既定プロジェクトを確認する画面が表示されます。API トークンはプロジェクト単位で発行され、そのプロジェクトの中だけで有効です。プロジェクトを指定せずに create_page を呼ぶと、トークンのプロジェクト(OAuth では既定プロジェクト)に投稿されます。

スコープは次のとおりです。OAuth でスコープ未指定の場合は、通常のページ作成・公開・閲覧に必要な既定スコープが付与されます。プロジェクトやワークスペースの管理操作は、対応する write スコープが明示的に必要です。

スコープ許可される操作
page:readページ・バージョンの取得
page:write下書きページの作成・新しいバージョンの追加・バージョンの公開・ページのアーカイブ / 復元・公開範囲の変更・コメント返信・コメント解決
comment:readレビューコメントの取得
revision_prompt:read修正指示の取得
project:readプロジェクト一覧の取得
project:writeプロジェクト設定・プロジェクトメンバー・API トークンの管理
organization:readワークスペース設定・メンバー・監査ログの閲覧
organization:writeワークスペース設定・メンバー・許可ドメインの管理
folder:readフォルダ一覧の取得

どの方式・どのスコープでも、最終的な認可はページごとの権限(仕組み § 権限)で判定されます。

ツールリファレンス

このセクションでは、AI エージェントや MCP クライアントが実際に渡すツール名・引数名・値をそのまま code 表記で載せています。通常の使い方や画面上の意味は、各説明文で日本語のプロダクト表現に置き換えています。

create_page

HTML または Markdown から新しいページを作成します。最初のバージョンは下書きとして作成され、レビュー URL と共有 URL を返します。共有 URL で本文を表示するには、確認後に publish_version を呼びます。

引数必須説明
organization_id投稿先ワークスペースの ID(省略時はトークンのワークスペース)
project_id投稿先プロジェクトの ID(省略時はトークン / OAuth の既定プロジェクト)
page_titleページのタイトル
contentHTML または Markdown の全文
content_typetext/html(デフォルト)または text/markdown
folder_pathプロジェクト内のフォルダパス
changelogこの版の変更内容

Markdown でページやバージョンを作成した場合は、表示時に TrayPage がスタイル付きの HTML に変換します。変換には marked を使っており、GitHub Flavored Markdown(GFM)の記法 — テーブル・打ち消し線・タスクリスト・コードブロックなど — に対応しています。

create_page_version

既存のページに新しい下書きバージョンを追加します。共有 URL は、publish_version を呼ぶまで現在の公開中バージョンを表示し続けます。

引数必須説明
page_id対象ページの ID
contentHTML または Markdown の全文
content_typetext/html(デフォルト)または text/markdown
changelogこの版の変更内容

publish_version

指定したバージョンを公開中にし、安定した共有 URL で表示される内容にします。対象ページの page.publish 権限が必要です。公開中にできるバージョンは1つだけで、新しいバージョンを公開すると前の公開中バージョンは下書きに戻ります。この操作は公開範囲を変更しません。

引数必須説明
page_id対象ページの ID
version_number公開中にするバージョン番号

list_pages

プロジェクト内のページを一覧します。

引数必須説明
organization_idワークスペースの ID(省略時はトークンのワークスペース)
project_idプロジェクトの ID(省略時はトークン / OAuth の既定プロジェクト)
folder_pathフォルダで絞り込み
archivedtrue の場合はアーカイブ済みページを一覧。省略時は通常のページだけを一覧

archive_page

ページをアーカイブします。アーカイブ済みページは通常の一覧から隠れ、アクティブページ数の枠を空けます。ページ本文やバージョンは削除されません。対象ページの page.manage_access 権限が必要です。

引数必須説明
page_id対象ページの ID

unarchive_page

アーカイブ済みページを復元します。復元するとアクティブページ数の枠を消費するため、プラン上限に達している場合は失敗します。対象ページの page.manage_access 権限が必要です。

引数必須説明
page_id対象ページの ID

set_page_visibility

ページの公開範囲を変更します。対象ページの page.manage_access 権限が必要です。公開範囲は「誰が共有 URL を開けるか」を決める設定で、どのバージョンを共有 URL に表示するかは publish_version で決めます。

引数必須説明
page_id対象ページの ID
visibilityprivate(非公開)/ project_members(プロジェクトメンバー)/ organization_domain_users(会社ドメインのユーザー)/ public_link(リンクを知っている全員)
share_expires_at共有リンクの有効期限。ISO 8601 文字列、null、または省略。省略時は既存設定を維持し、通常は無期限

get_page_comments

ページのレビューコメントを取得します。

引数必須説明
page_id対象ページの ID
version_number特定のバージョンに絞り込み
statusopen(デフォルト)または resolved

reply_page_comment

レビューコメントのスレッドに返信します。依頼された修正を反映した後の補足や、ページ変更ではなく回答が適切な質問コメントへの返信に使います。対象ページの comment.write 権限が必要です。

引数必須説明
thread_idget_page_comments で取得したコメントスレッド ID
body返信本文

resolve_page_comment

レビューコメントのスレッドを解決済みにします。依頼された修正が完了した後、または質問への回答が済んだ後にだけ resolve してください。対象ページの comment.resolve 権限が必要です。

引数必須説明
thread_idget_page_comments で取得したコメントスレッド ID

get_page_revision_prompt

未解決コメントから、AI に渡せる修正指示を組み立てて返します。

引数必須説明
page_id対象ページの ID
version_number特定のバージョンを基準にする
languageja または en。省略時は接続元の言語設定に合わせる

修正指示は、コメントを機械的な修正依頼として扱いません。質問や確認コメントで、正しい対応がファイル変更ではなく回答である場合は、ページを変更せずに回答するよう指示します。

トラブルシューティング

  • 認証画面が開かない / 401 が続く — Claude Code で /mcp から再認証してください。直らない場合は claude mcp remove traypage してから追加し直します。
  • Organization not found — ワークスペース ID が正しいか、OAuth 認可時にそのワークスペースへのアクセスを許可したかを確認してください。ID はアプリの URL(/app/organizations/{organization-id})で確認できます。
  • Project not found / project_restricted — トークンは発行したプロジェクト専用です。別のプロジェクトにページを作成するには、そのプロジェクトのトークンを発行するか、OAuth の認可でそのプロジェクトへのアクセスを許可してください。
  • 投稿や公開はできるがコメントが取れない — API トークンのスコープに comment:read が含まれているか確認してください。
  • コメント返信や resolve が失敗する — API トークンのスコープに page:write が含まれているか、ページ上の権限でコメント・resolve が許可されているか確認してください。

On this page