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
| 項目 | 値 |
|---|---|
| Endpoint | https://api.tas-cha.com/mcp (POST, streamable HTTP / single JSON) |
| Auth | OAuth bearer (audience 必須) または API key (server-to-server 用) |
| Audience | OAuth token は https://api.tas-cha.com/mcp に pin。 不一致は 403 |
| 必要 scope | mcp:tools + tool ごとの resource scope (rooms:read 等) |
| 既存 RBAC | Public API と同じ policy engine (room membership / DM deny / BOLA 404) |
.well-known/oauth-protected-resource が公開され、 MCP HTTP authorization spec に準拠する。
Tools (read-only)
| Tool | scope | units |
|---|---|---|
tascha.rooms.search | rooms:read | 2 |
tascha.rooms.get | rooms:read | 2 |
tascha.tasks.list | tasks:read | 2 |
tascha.records.list | records:read | 2 |
tascha.records.get | records:read | 2 |
tascha.messages.search | messages:read | 2 |
tascha.files.search | files:read | 2 |
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)
- クライアント (Claude Desktop / Cursor / OpenClaw) が
/.well-known/oauth-protected-resourceを fetch - OAuth 2.1 + PKCE で TAS-CHA の認可 endpoint へ
resource=https://api.tas-cha.com/mcpを audience として token を取得Authorization: Bearer tcha_at_…で MCP endpoint に接続- 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 に渡す