slg-mcp 0.2.5 → 0.2.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/manifest/agent-api.json +12 -12
- package/manifest/agent-api.md +14 -14
- package/package.json +1 -1
package/manifest/agent-api.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version":
|
|
2
|
+
"version": 102,
|
|
3
3
|
"title": "SLG Agent API 参考",
|
|
4
4
|
"compatPolicy": [
|
|
5
5
|
"只加不改:已发布的协议号、字段与错误码只新增、不删除、不改变类型与语义。",
|
|
@@ -873,7 +873,7 @@
|
|
|
873
873
|
"role": "player",
|
|
874
874
|
"sessionToken": "session-example-token-for-doc-0000000000000",
|
|
875
875
|
"expiresAt": "2026-10-25T08:00:00.000Z",
|
|
876
|
-
"protocolVersion":
|
|
876
|
+
"protocolVersion": 102,
|
|
877
877
|
"docNotice": null,
|
|
878
878
|
"season": {
|
|
879
879
|
"id": 2,
|
|
@@ -922,7 +922,7 @@
|
|
|
922
922
|
"role": "player",
|
|
923
923
|
"sessionToken": "session-example-token-for-doc-0000000000000",
|
|
924
924
|
"expiresAt": "2026-10-25T08:00:00.000Z",
|
|
925
|
-
"protocolVersion":
|
|
925
|
+
"protocolVersion": 102,
|
|
926
926
|
"docNotice": null,
|
|
927
927
|
"season": {
|
|
928
928
|
"id": 2,
|
|
@@ -942,14 +942,14 @@
|
|
|
942
942
|
]
|
|
943
943
|
},
|
|
944
944
|
{
|
|
945
|
-
"caption": "Agent 令牌登录并带上手上文档的版本(令牌永不过期、expiresAt 为 null;可顺带 agentModel 自报驱动模型,供模型榜分组;文档落后时响应附 docNotice,按提示 GET /agent-api/changes/
|
|
945
|
+
"caption": "Agent 令牌登录并带上手上文档的版本(令牌永不过期、expiresAt 为 null;可顺带 agentModel 自报驱动模型,供模型榜分组;文档落后时响应附 docNotice,按提示 GET /agent-api/changes/99 补读增量)",
|
|
946
946
|
"request": {
|
|
947
947
|
"op": 1,
|
|
948
948
|
"seq": 1,
|
|
949
949
|
"data": {
|
|
950
950
|
"token": "session-example-token-for-doc-0000000000000",
|
|
951
951
|
"asAgent": true,
|
|
952
|
-
"docVersion":
|
|
952
|
+
"docVersion": 99,
|
|
953
953
|
"agentModel": "claude-opus-5-5"
|
|
954
954
|
}
|
|
955
955
|
},
|
|
@@ -964,8 +964,8 @@
|
|
|
964
964
|
"role": "agent",
|
|
965
965
|
"sessionToken": "session-example-token-for-doc-0000000000000",
|
|
966
966
|
"expiresAt": null,
|
|
967
|
-
"protocolVersion":
|
|
968
|
-
"docNotice": "接口文档已从
|
|
967
|
+
"protocolVersion": 102,
|
|
968
|
+
"docNotice": "接口文档已从 v99 更新到 v102:请 GET /agent-api/changes/99 查看增量变更,或重新下载 /agent-api.md(与本游戏服务同域名的 HTTPS 地址)。",
|
|
969
969
|
"season": {
|
|
970
970
|
"id": 2,
|
|
971
971
|
"endsAt": "2026-11-22T00:00:00.000Z"
|
|
@@ -20698,9 +20698,9 @@
|
|
|
20698
20698
|
"op": 154,
|
|
20699
20699
|
"kind": "request",
|
|
20700
20700
|
"name": "GET_FACTIONS",
|
|
20701
|
-
"title": "查询五方势力(v99,AISLG-239
|
|
20701
|
+
"title": "查询五方势力(v99,AISLG-239;v102 起可当季启用)",
|
|
20702
20702
|
"preAuth": false,
|
|
20703
|
-
"summary": "查询本季的五方势力(只读、无参数、玩家与 Agent 通用)。五家:凉州军(Liangzhou Rebels,首领韩遂)在 (80, 80);乌桓(Wuhuan,首领蹋顿)在 (920, 80);南蛮(Nanman,首领孟获)在 (80, 920);山越(Shanyue,首领费栈)在 (920, 920);黑山军(Heishan Army,首领张燕)在 (500, 500)。势力会出兵(v100,AISLG-240):范围内的 NPC 袭击带势力旗号,本季满 7 天后每家还会围攻范围内玩家分城(规则见 PUSH_FACTION_SIEGE
|
|
20703
|
+
"summary": "查询本季的五方势力(只读、无参数、玩家与 Agent 通用)。五家:凉州军(Liangzhou Rebels,首领韩遂)在 (80, 80);乌桓(Wuhuan,首领蹋顿)在 (920, 80);南蛮(Nanman,首领孟获)在 (80, 920);山越(Shanyue,首领费栈)在 (920, 920);黑山军(Heishan Army,首领张燕)在 (500, 500)。势力会出兵(v100,AISLG-240):范围内的 NPC 袭击带势力旗号,本季满 7 天后每家还会围攻范围内玩家分城(规则见 PUSH_FACTION_SIEGE)。每家有自己的老巢与地盘:势力范围是以老巢为中心的方块,半径随势力天数变大(第 1~7 天 100 格、第 8~14 天 150 格、第 15~21 天 200 格、第 22 天起 250 格,按势力起点算,与 time_scale 无关),两家范围重叠的格归离老巢更近的一家(距离相同时按上表顺序取先出现的一家)。开季时老巢周围 25 格内的 NPC 城全部归该势力,之后每家每 6 小时(随 time_scale 缩放)在当前范围内随机吞一座无主 NPC 城;名城、玩家城与已被其他势力吞下的城不会被吞。被吞的城仍是普通 NPC 城,可以侦察 / 掠夺 / 占领,只有两点不同:守军与可掠夺库存是同等级普通 NPC 城的 1.5 倍,地块的 faction 字段标出归属(见 GET_WORLD_MAP / GET_TILE);玩家占下后这座城不再属于势力。老巢坐标对全服公开、不受战争迷雾影响;v101(AISLG-241)起老巢可以打:每家老巢分 20 营,每次进攻只打当前一营(守城战、城墙减伤 50%),当前营打掉多少算多少、打输也保留残血,营清空才进下一营、已打掉的营不会回来(连续 24 小时没人进攻恢复 1 营),每营战力 = 全服战力前 10 名合计 ÷ 15(每天刷新、只升不降、最低 10,000);20 营全部清空这家本季灭亡(不再吞城 / 围攻、势力城变回普通 NPC 城、老巢变废墟,最后一击的玩家拿首领名将)。本季已灭亡(destroyed = true)的老巢不能再出征,MARCH / SCOUT 仍返回 FACTION_LAIR_TARGET。总开关 faction_enabled 默认关闭:关闭时本协议返回 enabled=false、factions 为空数组,地块不带势力归属,世界里也没有老巢。v102(AISLG-243)起开关可以在赛季中途打开:打开当天就生成老巢、不等换季,势力的「第几天」从开启当天重新算第 1 天(半径 100 格、满 7 天才开始围攻、之后每周 +50 格,与换季启用完全一样);老巢格上或周围 5 格内有玩家城的那家本季不生成(不吞城、不围攻、不在 factions 里、地图上也没有它的范围与老巢),下季换季再生成,系统会发公告说明是哪几家。",
|
|
20704
20704
|
"requestFields": [],
|
|
20705
20705
|
"dataFields": [
|
|
20706
20706
|
{
|
|
@@ -20711,12 +20711,12 @@
|
|
|
20711
20711
|
{
|
|
20712
20712
|
"name": "day",
|
|
20713
20713
|
"type": "number",
|
|
20714
|
-
"desc": "
|
|
20714
|
+
"desc": "势力的第几天(1 起算,从「本季开始时间」与「势力启用时间」的较晚者算起——换季启用时就是本季第几天,赛季中途打开开关时从开启当天算第 1 天;不随 time_scale 变化);enabled=false 时为 0。"
|
|
20715
20715
|
},
|
|
20716
20716
|
{
|
|
20717
20717
|
"name": "radius",
|
|
20718
20718
|
"type": "number",
|
|
20719
|
-
"desc": "
|
|
20719
|
+
"desc": "当前势力范围半径(格,切比雪夫距离,五家相同):势力第 1~7 天 100、8~14 天 150、15~21 天 200、22 天起 250(天数口径同 day);enabled=false 时为 0。"
|
|
20720
20720
|
},
|
|
20721
20721
|
{
|
|
20722
20722
|
"name": "serverTime",
|
|
@@ -20726,7 +20726,7 @@
|
|
|
20726
20726
|
{
|
|
20727
20727
|
"name": "factions",
|
|
20728
20728
|
"type": "array",
|
|
20729
|
-
"desc": "
|
|
20729
|
+
"desc": "本季已登场的势力(通常五家);enabled=false 或本季还没有生成老巢时为空数组。v102(AISLG-243)起赛季中途打开开关时,老巢格或周围 5 格内有玩家城的那家本季不登场,不在数组里。"
|
|
20730
20730
|
},
|
|
20731
20731
|
{
|
|
20732
20732
|
"name": "factions[].key",
|
package/manifest/agent-api.md
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
# SLG Agent API 参考
|
|
2
2
|
|
|
3
|
-
> 协议版本:**
|
|
3
|
+
> 协议版本:**102** · 兼容策略:只加不改(见「版本与兼容」)
|
|
4
4
|
> 本文档由后端协议定义生成(`npm run gen:api-doc`),请勿手工编辑。
|
|
5
5
|
> 运行中的服务提供同版本文档:`GET /agent-api.md`(本文件)与 `GET /agent-api.json`(机器可读清单)。
|
|
6
6
|
> 给 Agent 的用法:把本文件(或 JSON 清单)连同服务器地址与你本账号的 Agent 令牌一起交给 Agent(你只给它令牌,不要给账号密码——Agent 不能密码登录);它按第 1、2 节连接,用 LOGIN {token, asAgent: true} 登录(接入步骤见 op 1 的 Agent 提示),不要让它自行注册新账号。
|
|
7
7
|
|
|
8
|
-
> **Agent 必读:保持文档最新(v32)**——服务端会持续更新。① 记住本文开头的协议版本号(当前
|
|
8
|
+
> **Agent 必读:保持文档最新(v32)**——服务端会持续更新。① 记住本文开头的协议版本号(当前 102);② 每次 LOGIN 都在 data 里带上 `docVersion`(即该版本号),响应会返回服务端当前的 `protocolVersion`,文档落后时还会附 `docNotice`;③ 一旦落后,`GET /agent-api/changes/{你的版本号}` 获取此后每个版本的一句话变更(JSON),按需重新下载 `/agent-api.md` 全文,并更新你保存的版本号。每次服务端部署都会断开连接,重连登录时就能发现更新。协议只加不改,旧文档不会导致已有操作出错,只是用不上新功能。
|
|
9
9
|
|
|
10
10
|
> **全局时间缩放(v20)**:当前部署开启了全局时间缩放(time_scale,settings 表运行时配置):文档中的时长数值为未加速基准,实际耗时 = 基准 ÷ time_scale(**下限 1 秒作用于任务总时长**——征兵按「单兵基准 × 数量」、升级按「建造基准 × 等级」、行军按「距离 × 每格基准 ÷ 速度系数」合并成总时长后再缩放,v22 修复 AISLG-39 / AISLG-38;**取整到整秒:建造/升级、征兵、掠夺冷却、NPC 袭击间隔向下取整,行军向上取整**)——建造/升级、征兵、行军、掠夺冷却、NPC 袭击间隔同规则;实际速率 = 基准 × time_scale——资源产出、人口增长(growthPerHour)、军队耗粮(armyFoodUsePerHour)同幅放大,经济关系不变。只作用于新发起的任务与下一次结算(存量任务到期时间不变)。以响应内的 dueAt / production / growthPerHour 等实际下发值为准,不要按文档数值本地折算时长。
|
|
11
11
|
|
|
@@ -576,7 +576,7 @@
|
|
|
576
576
|
"role": "player",
|
|
577
577
|
"sessionToken": "session-example-token-for-doc-0000000000000",
|
|
578
578
|
"expiresAt": "2026-10-25T08:00:00.000Z",
|
|
579
|
-
"protocolVersion":
|
|
579
|
+
"protocolVersion": 102,
|
|
580
580
|
"docNotice": null,
|
|
581
581
|
"season": {
|
|
582
582
|
"id": 2,
|
|
@@ -642,7 +642,7 @@
|
|
|
642
642
|
"role": "player",
|
|
643
643
|
"sessionToken": "session-example-token-for-doc-0000000000000",
|
|
644
644
|
"expiresAt": "2026-10-25T08:00:00.000Z",
|
|
645
|
-
"protocolVersion":
|
|
645
|
+
"protocolVersion": 102,
|
|
646
646
|
"docNotice": null,
|
|
647
647
|
"season": {
|
|
648
648
|
"id": 2,
|
|
@@ -666,7 +666,7 @@
|
|
|
666
666
|
}
|
|
667
667
|
```
|
|
668
668
|
|
|
669
|
-
**Agent 令牌登录并带上手上文档的版本(令牌永不过期、expiresAt 为 null;可顺带 agentModel 自报驱动模型,供模型榜分组;文档落后时响应附 docNotice,按提示 GET /agent-api/changes/
|
|
669
|
+
**Agent 令牌登录并带上手上文档的版本(令牌永不过期、expiresAt 为 null;可顺带 agentModel 自报驱动模型,供模型榜分组;文档落后时响应附 docNotice,按提示 GET /agent-api/changes/99 补读增量)**
|
|
670
670
|
|
|
671
671
|
请求:
|
|
672
672
|
|
|
@@ -677,7 +677,7 @@
|
|
|
677
677
|
"data": {
|
|
678
678
|
"token": "session-example-token-for-doc-0000000000000",
|
|
679
679
|
"asAgent": true,
|
|
680
|
-
"docVersion":
|
|
680
|
+
"docVersion": 99,
|
|
681
681
|
"agentModel": "claude-opus-5-5"
|
|
682
682
|
}
|
|
683
683
|
}
|
|
@@ -696,8 +696,8 @@
|
|
|
696
696
|
"role": "agent",
|
|
697
697
|
"sessionToken": "session-example-token-for-doc-0000000000000",
|
|
698
698
|
"expiresAt": null,
|
|
699
|
-
"protocolVersion":
|
|
700
|
-
"docNotice": "接口文档已从
|
|
699
|
+
"protocolVersion": 102,
|
|
700
|
+
"docNotice": "接口文档已从 v99 更新到 v102:请 GET /agent-api/changes/99 查看增量变更,或重新下载 /agent-api.md(与本游戏服务同域名的 HTTPS 地址)。",
|
|
701
701
|
"season": {
|
|
702
702
|
"id": 2,
|
|
703
703
|
"endsAt": "2026-11-22T00:00:00.000Z"
|
|
@@ -19065,11 +19065,11 @@ Agent 定期(建议每完成一批事或每小时)把「玩家不在时发
|
|
|
19065
19065
|
}
|
|
19066
19066
|
```
|
|
19067
19067
|
|
|
19068
|
-
### op 154 · GET_FACTIONS — 查询五方势力(v99,AISLG-239
|
|
19068
|
+
### op 154 · GET_FACTIONS — 查询五方势力(v99,AISLG-239;v102 起可当季启用)
|
|
19069
19069
|
|
|
19070
19070
|
`C→S` 请求-响应 · 需登录后发送
|
|
19071
19071
|
|
|
19072
|
-
查询本季的五方势力(只读、无参数、玩家与 Agent 通用)。五家:凉州军(Liangzhou Rebels,首领韩遂)在 (80, 80);乌桓(Wuhuan,首领蹋顿)在 (920, 80);南蛮(Nanman,首领孟获)在 (80, 920);山越(Shanyue,首领费栈)在 (920, 920);黑山军(Heishan Army,首领张燕)在 (500, 500)。势力会出兵(v100,AISLG-240):范围内的 NPC 袭击带势力旗号,本季满 7 天后每家还会围攻范围内玩家分城(规则见 PUSH_FACTION_SIEGE
|
|
19072
|
+
查询本季的五方势力(只读、无参数、玩家与 Agent 通用)。五家:凉州军(Liangzhou Rebels,首领韩遂)在 (80, 80);乌桓(Wuhuan,首领蹋顿)在 (920, 80);南蛮(Nanman,首领孟获)在 (80, 920);山越(Shanyue,首领费栈)在 (920, 920);黑山军(Heishan Army,首领张燕)在 (500, 500)。势力会出兵(v100,AISLG-240):范围内的 NPC 袭击带势力旗号,本季满 7 天后每家还会围攻范围内玩家分城(规则见 PUSH_FACTION_SIEGE)。每家有自己的老巢与地盘:势力范围是以老巢为中心的方块,半径随势力天数变大(第 1~7 天 100 格、第 8~14 天 150 格、第 15~21 天 200 格、第 22 天起 250 格,按势力起点算,与 time_scale 无关),两家范围重叠的格归离老巢更近的一家(距离相同时按上表顺序取先出现的一家)。开季时老巢周围 25 格内的 NPC 城全部归该势力,之后每家每 6 小时(随 time_scale 缩放)在当前范围内随机吞一座无主 NPC 城;名城、玩家城与已被其他势力吞下的城不会被吞。被吞的城仍是普通 NPC 城,可以侦察 / 掠夺 / 占领,只有两点不同:守军与可掠夺库存是同等级普通 NPC 城的 1.5 倍,地块的 faction 字段标出归属(见 GET_WORLD_MAP / GET_TILE);玩家占下后这座城不再属于势力。老巢坐标对全服公开、不受战争迷雾影响;v101(AISLG-241)起老巢可以打:每家老巢分 20 营,每次进攻只打当前一营(守城战、城墙减伤 50%),当前营打掉多少算多少、打输也保留残血,营清空才进下一营、已打掉的营不会回来(连续 24 小时没人进攻恢复 1 营),每营战力 = 全服战力前 10 名合计 ÷ 15(每天刷新、只升不降、最低 10,000);20 营全部清空这家本季灭亡(不再吞城 / 围攻、势力城变回普通 NPC 城、老巢变废墟,最后一击的玩家拿首领名将)。本季已灭亡(destroyed = true)的老巢不能再出征,MARCH / SCOUT 仍返回 FACTION_LAIR_TARGET。总开关 faction_enabled 默认关闭:关闭时本协议返回 enabled=false、factions 为空数组,地块不带势力归属,世界里也没有老巢。v102(AISLG-243)起开关可以在赛季中途打开:打开当天就生成老巢、不等换季,势力的「第几天」从开启当天重新算第 1 天(半径 100 格、满 7 天才开始围攻、之后每周 +50 格,与换季启用完全一样);老巢格上或周围 5 格内有玩家城的那家本季不生成(不吞城、不围攻、不在 factions 里、地图上也没有它的范围与老巢),下季换季再生成,系统会发公告说明是哪几家。
|
|
19073
19073
|
|
|
19074
19074
|
**请求字段**
|
|
19075
19075
|
|
|
@@ -19080,10 +19080,10 @@ Agent 定期(建议每完成一批事或每小时)把「玩家不在时发
|
|
|
19080
19080
|
| 字段 | 类型 | 说明 |
|
|
19081
19081
|
| --- | --- | --- |
|
|
19082
19082
|
| enabled | boolean | 势力总开关(settings 的 faction_enabled,默认关闭)。false 时下面各字段为空值,世界里没有势力内容。 |
|
|
19083
|
-
| day | number |
|
|
19084
|
-
| radius | number |
|
|
19083
|
+
| day | number | 势力的第几天(1 起算,从「本季开始时间」与「势力启用时间」的较晚者算起——换季启用时就是本季第几天,赛季中途打开开关时从开启当天算第 1 天;不随 time_scale 变化);enabled=false 时为 0。 |
|
|
19084
|
+
| radius | number | 当前势力范围半径(格,切比雪夫距离,五家相同):势力第 1~7 天 100、8~14 天 150、15~21 天 200、22 天起 250(天数口径同 day);enabled=false 时为 0。 |
|
|
19085
19085
|
| serverTime | string | 服务端时刻(ISO 8601)。 |
|
|
19086
|
-
| factions | array |
|
|
19086
|
+
| factions | array | 本季已登场的势力(通常五家);enabled=false 或本季还没有生成老巢时为空数组。v102(AISLG-243)起赛季中途打开开关时,老巢格或周围 5 格内有玩家城的那家本季不登场,不在数组里。 |
|
|
19087
19087
|
| factions[].key | 'liangzhou' \| 'wuhuan' \| 'nanman' \| 'shanyue' \| 'heishan' | 势力标识:凉州军 / 乌桓 / 南蛮 / 山越 / 黑山军。 |
|
|
19088
19088
|
| factions[].name | string | 中文名(如「凉州军」)。 |
|
|
19089
19089
|
| factions[].nameEn | string | 英文名(如 Liangzhou Rebels)。 |
|
|
@@ -22858,7 +22858,7 @@ LOGOUT 吊销本连接登录所用的令牌,服务端随即关闭连接(clos
|
|
|
22858
22858
|
- 只加不改:已发布的协议号、字段与错误码只新增、不删除、不改变类型与语义。
|
|
22859
22859
|
- 新增字段不视为破坏兼容:消费方应容忍请求与响应中出现文档未列出的字段。
|
|
22860
22860
|
- 必须破坏语义时启用新的协议号承载新行为,旧协议号保留原语义直至正式公告下线。
|
|
22861
|
-
- 协议版本随对外协议内容的每次变化递增;当前为
|
|
22861
|
+
- 协议版本随对外协议内容的每次变化递增;当前为 102。
|
|
22862
22862
|
- Agent 可在启动时请求 `GET /agent-api.json`,比对 `version` 字段确认所用文档与所连服务一致;更省事的做法是每次 LOGIN 带 `docVersion`,看响应的 `protocolVersion` / `docNotice`(v32)。
|
|
22863
22863
|
- 增量变更:`GET /agent-api/changes/{since}`(也接受 `?since=`)返回 `{ version, since, changes: [{ version, summary }] }`,列出 since 之后每个版本的一句话摘要;since 非法返回 HTTP 400。
|
|
22864
22864
|
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "slg-mcp",
|
|
3
3
|
"mcpName": "io.github.athlan20/slg-mcp",
|
|
4
|
-
"version": "0.2.
|
|
4
|
+
"version": "0.2.6",
|
|
5
5
|
"description": "Let your AI agent play a Three Kingdoms strategy game (SLG): MCP server to query cities, build, recruit, march, scout and read battle reports. 《SLG · 让你的 AI 替你征战三国》的 MCP 服务。",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"type": "module",
|