> ## Documentation Index
> Fetch the complete documentation index at: https://docs.livlive.ai/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> This is livlive's documentation. An agent reaches livlive from outside through the `livlive` CLI or the livlive MCP server (see /developers/install, /developers/cli and /developers/mcp). The person links it to livlive once, in the browser: `livlive login`, the local MCP's `livlive_login` tool, or the remote MCP at https://backstage.livlive.ai/api/mcp signing in by OAuth; a personal token made in livlive's settings is for CI. Pages marked 準備中 describe parts not decided yet: do not guess their behaviour.

# 仕組み

> エージェントがスキルを読み、外からの入口の操作を呼ぶ仕組みと、ブラウザでの連携の仕組みです。

## スキルと操作

livlive の外から仕事をするとき、エージェントは二つのものを使います。

| もの | 役目 |
| - | - |
| スキル | livlive の決まりごとと、仕事の進め方。エージェントが最初に読みます |
| 操作 | 外からの入口で呼べる、名前のついた操作。それぞれ入力の形(JSON Schema)を持ちます |

スキルの入れ方と、作り手のためのスキルの一覧は[インストールと連携](https://docs.livlive.ai/developers/install.md)にあります。

## 外からの入口

| 呼び方 | すること |
| - | - |
| `GET /api/ops` | 呼べる操作の一覧と、それぞれの入力の形を返します |
| `POST /api/ops/<操作の名前>` | 操作を一つ呼びます。本文は `{ "project": "...", "input": { ... } }` です。部屋の要らない操作では `project` を省きます |
| `POST /api/mcp` | リモート MCP です。同じ操作を、MCP の道具として出します |

CLI・ローカル MCP・リモート MCP は、この一覧をそのまま写します。それぞれのために書いた操作はありません。CLI では操作の名前がそのままサブコマンドになり(`livlive room.read`)、MCP では `.` を `_` にした道具になります(`room_read`)。

呼べる操作のすべては[操作の一覧](https://docs.livlive.ai/developers/reference/ops.md)にあります。

### 答えの形

操作は、断るときも同じ形で答えます。

| 項目 | 意味 |
| - | - |
| `ok` | 残ったことが無ければ `true` です |
| `done` | 済んだこと。一つずつ、手順の名前(`step`)と、人に向けた言葉(`say`)を持ちます |
| `left` | 残ったこと。`say` が理由を人の言葉で言い、`why` が止まった理由を名前で言います |
| `notes` | 断らずに添えること。前のバージョンから残っている直す所などです |
| `made` | 書いたものの id。バージョン、素材、調べたことなどです |
| `data` | 読んだものや作ったものの中身。操作によって違います |
| `problems` | ステージの入口が断ったときの、問題ごとのコード(`code`)と言葉(`words`)。コードの意味は[エンジンのリファレンス](https://docs.livlive.ai/developers/reference/engine.md)にあります |

`left` に残ったことは、その理由を直して、もう一度呼びます。

| HTTP の状態 | とき |
| - | - |
| `200` | 操作が動きました。`ok` が `false` なら、`left` に残ったことがあります |
| `303` | 答えが 40 秒を過ぎました。待ちの入口へのリダイレクトで、たどると答えが届きます(CLI とローカル MCP は自分でたどります) |
| `400` | 本文が読めないか、`project` が無いか、入力が形に合いません |
| `401` | トークンが無いか、正しくありません |
| `404` | その名前の操作が無いか、部屋が見つかりません |
| `413` | 本文が大きすぎます |
| `502` | 部屋を読めませんでした。もう一度呼びます |

## 連携の仕組み

* どの入口の連携も、livlive の同じ頁で人が「連携する」を押して、同じ個人のトークンを渡します。手で作るトークンと同じもので、できることも同じです。
* 渡し方は、OAuth 2.1 の認可コードと PKCE(`S256`)です。CLI とローカル MCP は、この PC の `127.0.0.1` で戻りを受け取ります。`livlive login --device` は、ブラウザの無い端末のための流れ(RFC 8628)で、livlive の CLI だけが使えます。
* リモート MCP のクライアントは、`/.well-known/oauth-protected-resource/api/mcp` と `/.well-known/oauth-authorization-server` で入口を見つけ、自分を登録してからサインインします。戻り先にできるのは、`https` のアドレスか、この PC の `http` のアドレスだけです。
* リフレッシュトークンはありません。トークンの期限が切れたら、もう一度連携します。
* livlive はトークンをハッシュだけで持ち、呼ばれるたびに確かめます。無効にしたトークンは、次の呼び出しから断られます。


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.