@laplace.live/persona-mcpはPersona公式のMCPサーバーで、プラグインAPIをAIアシスタントに渡します。シーンの切り替え、モデルの読み込みと配置、表情の切り替え、モーションの再生、オートメーションの実行、そして編集の結果を確かめるためのステージのスクリーンショットができます
WebコンソールやStream Deckプラグインと同じAPIを使い、それ以上のものは何も開きません。デスクトップアプリのコードには一切触れないので、これができることはすべてプラグインAPIでもできます
前提条件
| 必要なもの | 説明 |
|---|---|
| MCPクライアント | Claude Desktop、Claude Code、Cursor、Codex、その他任意のMCPクライアント |
| Node.js | 24以降。npxがこのパッケージを実行するのに必要 |
| LAPLACE Persona | 起動中で、プラグインAPIが有効になっていること |
| APIキー | 設定 → プラグインAPIで1つ作成し、PERSONA_TOKENとして渡す |
セットアップ
次のブロックをMCPクライアントの設定に追加します。Claude Desktopのclaude_desktop_config.jsonもCursorのmcp.jsonもこの形式です:
{
"mcpServers": {
"persona": {
"command": "npx",
"args": ["-y", "@laplace.live/persona-mcp"],
"env": { "PERSONA_TOKEN": "psk_…" }
}
}
}Claude Codeならコマンド1つで済みます:
claude mcp add persona -e PERSONA_TOKEN=psk_… -- npx -y @laplace.live/persona-mcp環境変数は2つです:
| 変数 | 入力する内容 |
|---|---|
PERSONA_TOKEN | Personaで作成したキーのトークン。必須 |
PERSONA_ADDRESS | 空欄ならこのマシンの127.0.0.1:25034。ホスト、ホスト:ポート、あるいは完全なws:// URLも受け付ける |
起動時に失敗することはありません。MCPクライアントはPersonaが開く前にサーバーを立ち上げることが多いため、最初のツール呼び出しまで接続しません。トークン未設定、アプリ未起動、キーの失効はいずれもクラッシュではなく、何を直せばよいかをアシスタントに伝えるテキストとして返ります
接続すると、Personaの接続中のクライアントにPersona MCPという行が現れます。括弧内はクライアントが自己申告した名前で、開発元はLAPLACEです
トークンはパスワードと同じです。これを持つアシスタントはシーンを切り替え、モデルを読み込み、ステージを変更し、さらにステージの見た目を見ることもできます。ローカルネットワークからのアクセスを許可をオンにしない限り、サーバーはループバックのみを待ち受けます
ツール
ツールはプロトコルのメソッドごとに1つ包むのではなく、タスク単位で20個ほどにまとめてあります——一覧が長いほどモデルは選び損ね、毎ターンのコンテキストも食うからです。読み取り専用のツールにはすべてreadOnlyHintが付き、delete_sceneとremove_itemにはdestructiveHintが付くので、破壊的な呼び出しを確認するクライアントでは確認が入ります
| ツール | 何をするか |
|---|---|
get_state | アプリのバージョンとケイパビリティ、すべてのシーン、アクティブなシーンの各アイテムのid・種類・表示状態・配置。最初に呼ぶ |
capture_stage | ステージのスクリーンショット。アシスタントが結果を実際に「見る」ためのもの |
activate_scene create_scene | シーンを切り替える/空のシーンを追加してそこへ切り替える |
rename_scene delete_scene | 名前を変更する/シーンとその中身をすべて削除する。最後の1つは削除できない |
list_models add_model | 読み込めるモデルの一覧/モデルをステージに置く、または既存のレイヤーをその場で差し替える |
describe_model | 1つのアイテムの詳細。配置とケイパビリティ、モデルなら全表情と全モーション、再生中のもの |
remove_item set_visible | アクティブなシーンから取り除く/削除せずに表示・非表示だけ切り替える |
set_placement reset_placement | 移動・スケール・回転/元の位置へ戻す。渡したフィールドだけが変わり、そのアイテムが受け取れないフィールドは無視したものとして返る |
set_expression | 表情を名前で1つオンまたはオフにする。すでにその状態なら何もしない |
play_motion stop_motion | グループとインデックスでモーションを再生する/再生中のものをフェードアウトさせ、アイドルを再開させる |
list_automations run_automation | オートメーションとアクティブなモデルのホットキーの一覧/idで1つ実行する |
trigger_hotkey | アクティブなモデルのショートカットを実行する |
call_api | プラグインAPIの任意のメソッドを直接呼ぶ。パラメータはそのまま転送される |
2Dアイテムの配置はステージ中心を原点としたピクセル(+yが下)で、回転はラジアンです。3Dアイテムはメートルとラジアンです。これらはツール自身の説明に書かれているので、アシスタントが推測する必要はありません
ステージを見る
capture_stageの背後にあるのが新しいstage.captureメソッドです。ステージウィンドウの表示そのままを、透過付きのPNGとして返します。最長辺はデフォルトで1024px、最大2048pxで、拡大は行いません。アプリがstage-captureケイパビリティを報告している必要があり——0.55.0以降です——それより古い場合はツールが更新を促します
1回のキャプチャごとにステージは1フレーム止まるので、結果を確かめたい場面でだけ使い、定期的に回すものではありません
補完としてのcall_api
他のツールが扱わないもの——カメラ、ライティング、環境、レイヤーエフェクト、オブジェクトとウェブページ、プロップのスポーン、トラッキングソース、リップシンク、音声、設定——はcall_apiから呼びます。メソッド名とパラメータのオブジェクトを渡すだけです。知らないメソッド名もそのまま転送するので、Personaを更新すれば、このパッケージの追従を待たずに新しいメソッドが使えます
パラメータが不正なときは、どのフィールドかを示すエラーが返ります。プロトコルレベルのエラーには、正しい値をどのツールから取ればよいかというヒントも付きます
最終更新日:2026年9月20日