00:00 / 00:00

Persona

MCP 服务器

@laplace.live/persona-mcp 是 Persona 官方的 MCP 服务器,把 插件 API 接给 AI 助手:切换场景、加载与摆放模型、开关表情、播放动作、运行自动化,以及截取舞台画面来确认改动的效果

它和 Web 控制台Stream Deck 插件 走的是同一套 API,没有额外开放任何东西。它自己不碰桌面应用的代码,能做的事插件 API 全都能做

前置条件

需要说明
MCP 客户端Claude Desktop、Claude Code、Cursor、Codex,或其他任意 MCP 客户端
Node.js24 或更高版本,npx 要用它来跑这个包
LAPLACE Persona正在运行,并且 插件 API 已开启
API 密钥设置 → 插件 API 里创建一把,填进客户端配置的 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 用一条命令就行:

claude mcp add persona -e PERSONA_TOKEN=psk_… -- npx -y @laplace.live/persona-mcp

两个环境变量:

变量填什么
PERSONA_TOKEN你在 Persona 里创建的那把密钥的令牌。必填
PERSONA_ADDRESS留空即本机的 127.0.0.1:25034。也接受 主机主机:端口,或一整条 ws:// URL

启动时它不会失败:MCP 客户端往往在 Persona 打开之前就把服务器拉起来了,所以它直到第一次工具调用才去连。令牌没填、应用没开或者密钥已经吊销,都会变成一段告诉助手该改什么的文字,而不是一声崩溃

连上之后,Persona 的 已连接的客户端 里会出现一行 Persona MCP,括号里是客户端自报的名字,开发者是 LAPLACE

工具

工具是按任务划分的,一共二十来个,而不是给每个协议方法都包一层——清单太长反而会让模型选不准,每轮对话也更费上下文。所有只读工具都带 readOnlyHint 标记,delete_sceneremove_itemdestructiveHint,会在支持的客户端里触发一次确认

工具作用
get_state应用版本与能力、全部场景,以及当前场景里每个项目的 id、格式、可见性和位置。先调它
capture_stage截一张舞台画面,助手直接「看」结果
activate_scene create_scene切换到某个场景;新建一个空场景并切过去
rename_scene delete_scene重命名;删除场景及其中的一切。最后一个场景删不掉
list_models add_model列出能加载的全部模型;把某个模型加到舞台,或原地替换已有的那一层
describe_model单个项目的细节:位置、能力,以及模型的全部表情和动作、当前在播的是哪一段
remove_item set_visible从当前场景移除;只切换可见性而不移除
set_placement reset_placement移动、缩放、旋转;恢复原位。只有传了的字段会变,模型接不了的字段会被原样报告为已忽略
set_expression按名字开关一个表情。已经是这个状态就什么都不做
play_motion stop_motion按分组和序号播放一段动作;淡出当前动作,让待机动画接回来
list_automations run_automation列出 自动化 和当前模型的热键;按 id 运行一条自动化
trigger_hotkey触发当前模型的某个 快捷键
call_api直接调用插件 API 的任意方法,参数原样转发

2D 项目的位置是以舞台中心为原点的像素(+y 向下),旋转用弧度;3D 项目用米和弧度。这些约定都写在工具说明里,助手不必猜

查看舞台

capture_stage 背后是新的 stage.capture 方法:把舞台窗口当前的样子截成一张带透明通道的 PNG,最长边默认 1024 像素,最大 2048,且从不放大。它需要应用报告 stage-capture 能力——0.55.0 起提供,更早的版本会直接告诉助手去升级

每截一张,舞台都要停下一帧,所以它只该在需要确认结果时调用,而不是拿来轮询

兜底的 call_api

其余工具没覆盖到的——相机、灯光、环境、图层 特效、物体与网页、生成道具、捕捉来源、口型同步、语音、设置——都从 call_api 走:给它方法名和参数对象即可。它不认识的方法名也照样转发,所以更新了 Persona 之后,新方法不必等这个包跟进就能用

参数不对时,返回的错误会说明是哪个字段;协议层面的错误还会附上一句提示,告诉助手正确的值该从哪个工具拿

最后更新于 2026年9月20日

Tech otakus destroy the world