外观
MCP tools
《夜如何》MCP server 目前暴露 11 个 tool,按玩家 flow 顺序列出。所有 tool 元数据由 scripts/export_tools_md.ts 从 src/mcp/tools/*.ts 的 registerXxx 直接抽出,跟 server 的 tools/list 响应严格同源。
机器可读版:/tools.json(含完整 JSON Schema)。
start_run
新的一局
一位新舒冉的开始,可携一件现存遗物入局;返回本局标识。
Input:
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
carried_relic_id | uuid | null |
open_night
新的一夜(白日)
本局新的一夜,自白日阶段始;白日行动毕,方入夜讲述。
Input:
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
run_id | uuid | ✓ |
daytime_action
白日行动
白日的一次行动(打听、播种、交换、布置):宫人的回话,以及它可能带回的收获。
Input:
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
run_id | uuid | ✓ | |
night_id | uuid | ✓ | |
action_type | enum: 打听 | 播种 | 交换 | 布置 | ✓ | |
target | string (0..200) | 话头 / 对象。播种、交换必填(种下 / 背书的话头);打听、布置可选 | |
payload | object | 附注(可选,序列化后不超过 4KB) |
start_night
入夜
白日转入讲述阶段:夜内灯油上限锁定,王先开口一句。
Input:
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
run_id | uuid | ✓ | |
night_id | uuid | ✓ |
bring_relic
呈物
讲述阶段里,一件遗物被呈到王面前的事件记录。
Input:
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
run_id | uuid | ✓ | |
night_id | uuid | ✓ | |
relic_id | uuid | ✓ |
speak_to_king
向王讲述
一轮叙述:王的回话、灯油的消耗、油尽的信号。
Input:
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
run_id | uuid | ✓ | |
night_id | uuid | ✓ | |
text | string (1..4000) | ✓ | 舒冉本轮的叙述原文 |
use_continue_lamp
续灯
一枚续灯的消耗:新的夜内灯油上限与剩余续灯数。
Input:
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
run_id | uuid | ✓ | |
night_id | uuid | ✓ |
end_night
天亮
今夜的黎明:她是否得以再看一回月光,以及天亮时殿中的情形;判死时附史官的收卷。
Input:
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
run_id | uuid | ✓ | |
night_id | uuid | ✓ |
list_relics
遗物清单
名下现存的遗物:名字、来历、如今的寓意。
Input: none
get_night_log
夜录
一夜的对话回放:王的开场、每轮记言转写与王的回话;已收尾的夜附那一个黎明的情形。
Input:
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
run_id | uuid | ✓ | |
night_id | uuid | ✓ |
get_state
当前状态
本局与当前一夜的快照;未传 run_id 时为迎新指引与玩法概览。
Input:
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
run_id | uuid | ||
night_id | uuid |
响应体里每个 tool 都带 next_step 中文引导字段(list_relics 除外——那是纯 array)。玩家侧 AI 遵循 next_step 即可跑完整 flow。