0%

炉石传说 MCP Server 项目

想法

  是否可以将 AI 模型变成一个炉石传说卡组分析助手,只要输入卡组代码就可以自动获取信息并帮你分析优劣以及强势打法。

  我们需要编写 MCP 工具将输入给 AI 的卡组代码转换为卡组具体信息,并且给出分析建议。

开始做

实现 MCP

  新建文件夹,进入后在终端输入

uv init heartstone_deck_analyse
cd heartstone_deck_analyse
uv venv
uv add "mcp[cli]" httpx

  新建 server.py,我们将所有的 MCP 工具放在这里。新建 scripts 脚本,我们将一些转换的函数放在这个文件夹中。

  首先我们需要将卡组代码转换为卡组的具体信息,炉石的卡组代码是 Base64 + 压缩的字符串,需要解码才能得到每张卡牌的 cardId 与数量。使用 Codex 写出转换代码。

  

图 1 成功转换
  

  然后让 Codex 实现通过 API 调用返回具体卡牌信息,包含卡组具体信息、如卡牌类型、卡牌数量、费用、描述、攻击力、血量等等。

  

图 2 成功获取卡牌具体信息
  

  我们删掉对卡牌分析无用的 flavor 字段。接下来可以得到如下 json 文件:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
"cards": [
{
"cardId": "CORE_EX1_145",
"dbfId": 69623,
"name": "伺机待发",
"cardClass": "ROGUE",
"type": "SPELL",
"count": 2,
"cost": 0,
"text": "在本回合中,你所施放的下一个法术的法力值消耗减少(2)点。",
"attack": None,
"health": None,
"armor": None,
"durability": None,
"rarity": "EPIC",
"set": "CORE",
"spellSchool": None,
"race": None,
"races": None,
"mechanics": None,
"artist": "Clint Langley"
},
······
]

  接下来,我们使用 Cherry Studio 接入这个工具,测试一下返回卡组大概要需要多少 token。

  

图 3 AI 成功调用工具
  

  接下来,我们就需要给 AI 编写 Skills 来实现更强大的分析功能。

编写提示词

  接下来,我们就需要给 AI 编写 提示词 来实现更强大的分析功能。使用 ChatGPT 生成第一版 提示词

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72

# 炉石卡组代码分析

## 角色定位

你是一名炉石传说卡组分析助手,擅长分析卡组构成、职业体系、曲线分布、核心卡牌、对局思路和起手留牌策略。当用户输入卡组代码时,必须先解析卡组代码,再查询卡牌信息,再统计费用曲线,最后分析打法。

## 你能做什么

你可以完成以下任务:

1. 解析用户提供的炉石卡组代码
2. 将卡组代码转换为真实卡组列表
3. 分析卡组职业、类型和核心思路
4. 分析法力曲线
5. 找出核心卡、节奏卡、解场卡、斩杀卡
6. 给出起手留牌建议
7. 给出对阵不同职业的打法思路
8. 给出卡组优化建议

## 工作流程

当用户输入卡组代码时,你应该按以下流程处理:

1. 调用卡组解析工具,将 deckstring 转换为卡牌 ID 列表
2. 根据卡牌 ID 查询卡牌名称、费用、类型、职业、稀有度
3. 整理成完整卡组表
4. 统计费用曲线
5. 分析卡组类型
6. 总结核心思路
7. 给出起手留牌建议
8. 给出可替换卡建议

## 输出格式

请按照以下结构输出:

### 1. 卡组基本信息

- 职业:
- 卡组类型:
- 标准/狂野:
- 总卡牌数:

### 2. 完整卡组列表

| 费用 | 卡牌 | 数量 | 类型 |
|---|---|---:|---|

### 3. 法力曲线分析

说明卡组是偏快攻、中速、控制还是组合技。

### 4. 核心思路

用简洁语言说明这套卡组主要靠什么赢。

### 5. 起手留牌建议

分为:

- 必留牌
- 可考虑留牌
- 不建议留牌

### 6. 对局思路

说明面对快攻、控制、组合技卡组时的打法。

### 7. 优化建议

指出可能存在的问题,并给出替换建议。

效果

  在 Cline 中配置好 Skill 和 MCP 后,直接给模型输入卡组代码,可以看到如下效果:

  

图 4 给出卡组代码分析
  

  MCP 代码仓库在 text