メインコンテンツまでスキップ

Remote MCP

Remote MCP は読み取り専用です。 write tools は提供していません。

概要

LLM / agent runtime (Claude, Cursor, Codex, OpenClaw, etc.) が Model Context Protocol (MCP) の HTTP transport で TAS-CHA をツール / リソース / プロンプト源として扱えるようにする。

仕様: https://modelcontextprotocol.io/specification/2025-06-18

項目
Endpointhttps://api.tas-cha.com/mcp (POST, streamable HTTP / single JSON)
AuthOAuth bearer (audience 必須) または API key (server-to-server 用)
AudienceOAuth token は https://api.tas-cha.com/mcp に pin。 不一致は 403
必要 scopemcp:tools + tool ごとの resource scope (rooms:read 等)
既存 RBACPublic API と同じ policy engine (room membership / DM deny / BOLA 404)

.well-known/oauth-protected-resource が公開され、 MCP HTTP authorization spec に準拠する。

Tools (read-only)

Toolscopeunits
tascha.rooms.searchrooms:read2
tascha.rooms.getrooms:read2
tascha.tasks.listtasks:read2
tascha.records.listrecords:read2
tascha.records.getrecords:read2
tascha.messages.searchmessages:read2
tascha.files.searchfiles:read2

tascha.records.summarize は提供しない (要約は OpenClaw connector 側で提供)。 write tools は提供していない。 quota 状態は tool result の _meta["tascha.dev/rateLimit"] で返り、 429 は JSON-RPC error -32000 (data に retryAfterSeconds 等) に変換される。

Resources

URI内容
tascha://rooms/{roomId}Room メタ
tascha://rooms/{roomId}/tasksタスクコレクション
tascha://rooms/{roomId}/records/{recordId}議事録 1 件
tascha://rooms/{roomId}/messages直近メッセージ

Prompts (テンプレート)

ID用途引数
daily_room_summaryルームの 1 日サマリroomId
meeting_record_to_tasks議事録から TODO 案roomId, recordId
approval_risk_review承認依頼のリスク抽出roomId, recordId

prompts/get は read-only ツールの使い方を含む定型プロンプトを返す (units 消費なし)。

制限事項

  • 読み取り専用。 write tools は提供していない
  • API units は MCP read tool = 2, MCP write tool = 5
  • mcpToolCallsPerMinute: 120 で burst 制御
  • MCP は agent 向け。 人間 UI の内部 API 代替には使わない

認証手順 (typical)

  1. クライアント (Claude Desktop / Cursor / OpenClaw) が /.well-known/oauth-protected-resource を fetch
  2. OAuth 2.1 + PKCE で TAS-CHA の認可 endpoint へ
  3. resource=https://api.tas-cha.com/mcp を audience として token を取得
  4. Authorization: Bearer tcha_at_… で MCP endpoint に接続
  5. token の scope 内で tools / resources を呼ぶ

RBAC との関係

scope だけで許可しない。 必ず:

  • 認証 ⇒ actor (user/app/agent) 解決
  • scope 検査
  • ドメイン RBAC (Room membership / Org membership / DM deny)
  • 月次 API units 予約

MCP は外部 Public API と同じ policy engine を通る。 同じトークンが REST と MCP で同じ範囲のリソースを見る。

検証クライアント (期待)

  • Claude Desktop
  • Cursor
  • Codex / Continue
  • OpenClaw

やってはいけないこと

  • MCP tool が呼ぶ TAS-CHA の権限を、 connector の scope より広く扱う
  • audience を /v1 側 token と混用する (resource indicator はそれ自体が認可境界)
  • prompt injection の対象になる外部入力 (Web 検索結果 / メール本文) をそのまま write tool に渡す