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/mcpClaude Code
claude mcp add --transport http --scope user traypage https://tray.page/api/mcp追加後、Claude Code 内で /mcp → traypage を選択して認証します。ブラウザが開き、サインインとアクセス許可(ワークスペース・アクセスできるプロジェクト・既定プロジェクトの選択)を行えば完了です。
この設定はユーザー全体で使えるため、普段使いにはこの形を推奨します。リポジトリごとに利用する TrayPage のワークスペースやプロジェクトを分けたい場合や、設定をリポジトリに閉じたい場合は、代わりに --scope project を指定します。
claude mcp add --transport http --scope project traypage https://tray.page/api/mcpCodex
codex mcp add traypage --url https://tray.page/api/mcp
codex mcp login traypagecodex 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.json で serverUrl を使うクライアントでは、次の形で登録します。
{
"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_url と share_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 | ✓ | ページのタイトル |
content | ✓ | HTML または Markdown の全文 |
content_type | text/html(デフォルト)または text/markdown | |
folder_path | プロジェクト内のフォルダパス | |
changelog | この版の変更内容 |
Markdown でページやバージョンを作成した場合は、表示時に TrayPage がスタイル付きの HTML に変換します。変換には marked を使っており、GitHub Flavored Markdown(GFM)の記法 — テーブル・打ち消し線・タスクリスト・コードブロックなど — に対応しています。
create_page_version
既存のページに新しい下書きバージョンを追加します。共有 URL は、publish_version を呼ぶまで現在の公開中バージョンを表示し続けます。
| 引数 | 必須 | 説明 |
|---|---|---|
page_id | ✓ | 対象ページの ID |
content | ✓ | HTML または Markdown の全文 |
content_type | text/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 | フォルダで絞り込み | |
archived | true の場合はアーカイブ済みページを一覧。省略時は通常のページだけを一覧 |
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 |
visibility | ✓ | private(非公開)/ project_members(プロジェクトメンバー)/ organization_domain_users(会社ドメインのユーザー)/ public_link(リンクを知っている全員) |
share_expires_at | 共有リンクの有効期限。ISO 8601 文字列、null、または省略。省略時は既存設定を維持し、通常は無期限 |
get_page_comments
ページのレビューコメントを取得します。
| 引数 | 必須 | 説明 |
|---|---|---|
page_id | ✓ | 対象ページの ID |
version_number | 特定のバージョンに絞り込み | |
status | open(デフォルト)または resolved |
reply_page_comment
レビューコメントのスレッドに返信します。依頼された修正を反映した後の補足や、ページ変更ではなく回答が適切な質問コメントへの返信に使います。対象ページの comment.write 権限が必要です。
| 引数 | 必須 | 説明 |
|---|---|---|
thread_id | ✓ | get_page_comments で取得したコメントスレッド ID |
body | ✓ | 返信本文 |
resolve_page_comment
レビューコメントのスレッドを解決済みにします。依頼された修正が完了した後、または質問への回答が済んだ後にだけ resolve してください。対象ページの comment.resolve 権限が必要です。
| 引数 | 必須 | 説明 |
|---|---|---|
thread_id | ✓ | get_page_comments で取得したコメントスレッド ID |
get_page_revision_prompt
未解決コメントから、AI に渡せる修正指示を組み立てて返します。
| 引数 | 必須 | 説明 |
|---|---|---|
page_id | ✓ | 対象ページの ID |
version_number | 特定のバージョンを基準にする | |
language | ja または 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 が許可されているか確認してください。