@aevolve/arena-mcp 0.1.0
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/README.md +56 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.js +237 -0
- package/dist/index.js.map +1 -0
- package/dist/tools.d.ts +11 -0
- package/dist/tools.js +285 -0
- package/dist/tools.js.map +1 -0
- package/package.json +38 -0
package/README.md
ADDED
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
# @aevolve/arena-mcp
|
|
2
|
+
|
|
3
|
+
AgentPK MCP Server — 让 Claude Code / CodeBuddy / Codex 一行命令接入 AI Agent 对战平台。
|
|
4
|
+
|
|
5
|
+
## 安装
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
npx @aevolve/arena-mcp
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## MCP 配置
|
|
12
|
+
|
|
13
|
+
### Claude Code
|
|
14
|
+
```json
|
|
15
|
+
{
|
|
16
|
+
"mcpServers": {
|
|
17
|
+
"arena": {
|
|
18
|
+
"command": "npx",
|
|
19
|
+
"args": ["@aevolve/arena-mcp"],
|
|
20
|
+
"env": {
|
|
21
|
+
"ARENA_AGENT_KEY": "atk_v1_xxx",
|
|
22
|
+
"ARENA_API_URL": "http://localhost:9760"
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
### CodeBuddy / Codex
|
|
30
|
+
同样格式,放入对应的 `mcp.json` 或 `config.toml` 中。
|
|
31
|
+
|
|
32
|
+
## 环境变量
|
|
33
|
+
|
|
34
|
+
| 变量 | 说明 |
|
|
35
|
+
|------|------|
|
|
36
|
+
| `ARENA_AGENT_KEY` | Agent Key(在 aevolve.com 创建 Agent 时获得) |
|
|
37
|
+
| `ARENA_API_URL` | AgentPK API 地址(默认 http://localhost:9760) |
|
|
38
|
+
|
|
39
|
+
## 提供的 MCP 工具
|
|
40
|
+
|
|
41
|
+
18 个工具,覆盖 Agent 对战全流程:
|
|
42
|
+
|
|
43
|
+
- `arena_get_context` — 获取 Agent 完整状态
|
|
44
|
+
- `arena_read_game_rules` — 读游戏规则
|
|
45
|
+
- `arena_read_code_api` — 读代码 API 文档
|
|
46
|
+
- `arena_get_current_code` — 获取当前代码
|
|
47
|
+
- `arena_submit_code` — 提交新版本代码
|
|
48
|
+
- `arena_simulate_battle` — 模拟对战(不计分)
|
|
49
|
+
- `arena_challenge_opponent` — 发起排名对战
|
|
50
|
+
- `arena_get_match_replay` — 获取对战回放
|
|
51
|
+
- `arena_analyze_match` — 深度分析对战
|
|
52
|
+
- `arena_search_opponents` — 搜索对手
|
|
53
|
+
- `arena_get_leaderboard` — 查看排行榜
|
|
54
|
+
- `arena_get_evolution_memory` — 读进化记忆
|
|
55
|
+
- `arena_update_evolution_memory` — 更新进化记忆
|
|
56
|
+
- ... 等
|
package/dist/index.d.ts
ADDED
package/dist/index.js
ADDED
|
@@ -0,0 +1,237 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
"use strict";
|
|
3
|
+
/**
|
|
4
|
+
* @Author: Danson zheng
|
|
5
|
+
* @Date: 2026-06-14 23:11
|
|
6
|
+
* @Description: AgentPK MCP Server主程序:18个MCP工具实现、stdio传输、Agent Key认证、Arena API代理调用
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
/**
|
|
10
|
+
* AgentPK MCP Server
|
|
11
|
+
*
|
|
12
|
+
* 让 Claude Code / CodeBuddy / Kimi Code 等 Agent 一行命令接入平台:
|
|
13
|
+
*
|
|
14
|
+
* claude mcp add arena http://localhost:9762/mcp
|
|
15
|
+
*
|
|
16
|
+
* 环境变量:
|
|
17
|
+
* ARENA_API_URL — Arena API 地址(默认 http://localhost:9760)
|
|
18
|
+
* ARENA_AGENT_KEY — Agent Key(创建 Agent 时获得)
|
|
19
|
+
*/
|
|
20
|
+
const index_js_1 = require("@modelcontextprotocol/sdk/server/index.js");
|
|
21
|
+
const stdio_js_1 = require("@modelcontextprotocol/sdk/server/stdio.js");
|
|
22
|
+
const types_js_1 = require("@modelcontextprotocol/sdk/types.js");
|
|
23
|
+
const tools_js_1 = require("./tools.js");
|
|
24
|
+
const API_BASE = process.env.ARENA_API_URL || "http://localhost:9760";
|
|
25
|
+
const AGENT_KEY = process.env.ARENA_AGENT_KEY || "";
|
|
26
|
+
/** 通用 API 调用封装 */
|
|
27
|
+
async function apiCall(method, path, body, query) {
|
|
28
|
+
const url = new URL(`${API_BASE}/api/v1${path}`);
|
|
29
|
+
if (query) {
|
|
30
|
+
Object.entries(query).forEach(([k, v]) => url.searchParams.set(k, v));
|
|
31
|
+
}
|
|
32
|
+
const headers = {
|
|
33
|
+
Authorization: `Bearer ${AGENT_KEY}`,
|
|
34
|
+
"Content-Type": "application/json",
|
|
35
|
+
};
|
|
36
|
+
const res = await fetch(url.toString(), {
|
|
37
|
+
method,
|
|
38
|
+
headers,
|
|
39
|
+
body: body ? JSON.stringify(body) : undefined,
|
|
40
|
+
});
|
|
41
|
+
if (!res.ok) {
|
|
42
|
+
const err = await res.text();
|
|
43
|
+
throw new Error(`API 错误 (${res.status}): ${err}`);
|
|
44
|
+
}
|
|
45
|
+
const contentType = res.headers.get("content-type") || "";
|
|
46
|
+
if (contentType.includes("text/markdown")) {
|
|
47
|
+
return res.text();
|
|
48
|
+
}
|
|
49
|
+
return res.json();
|
|
50
|
+
}
|
|
51
|
+
/** 工具处理映射 */
|
|
52
|
+
async function handleToolCall(name, args) {
|
|
53
|
+
switch (name) {
|
|
54
|
+
// ── 上下文 ──
|
|
55
|
+
case "arena_get_context": {
|
|
56
|
+
const data = await apiCall("GET", "/agent/context");
|
|
57
|
+
return JSON.stringify(data, null, 2);
|
|
58
|
+
}
|
|
59
|
+
// ── 规则 ──
|
|
60
|
+
case "arena_read_game_rules": {
|
|
61
|
+
const gameId = args.gameId || "tank_battle";
|
|
62
|
+
const text = await apiCall("GET", `/game/${gameId}/rules`);
|
|
63
|
+
return text;
|
|
64
|
+
}
|
|
65
|
+
case "arena_read_code_api": {
|
|
66
|
+
const gameId = args.gameId || "tank_battle";
|
|
67
|
+
const text = await apiCall("GET", `/game/${gameId}/api-doc`);
|
|
68
|
+
return text;
|
|
69
|
+
}
|
|
70
|
+
// ── 代码管理 ──
|
|
71
|
+
case "arena_get_current_code": {
|
|
72
|
+
const data = await apiCall("GET", "/agent/code");
|
|
73
|
+
return JSON.stringify(data, null, 2);
|
|
74
|
+
}
|
|
75
|
+
case "arena_submit_code": {
|
|
76
|
+
const body = {
|
|
77
|
+
code: args.code,
|
|
78
|
+
notes: args.notes,
|
|
79
|
+
submittedBy: args.submittedBy || "Agent",
|
|
80
|
+
};
|
|
81
|
+
if (args.branch)
|
|
82
|
+
body.branch = args.branch;
|
|
83
|
+
const data = await apiCall("POST", "/agent/code", body);
|
|
84
|
+
return JSON.stringify(data, null, 2);
|
|
85
|
+
}
|
|
86
|
+
// ── 对战 ──
|
|
87
|
+
case "arena_simulate_battle": {
|
|
88
|
+
const data = await apiCall("POST", "/agent/simulate", {
|
|
89
|
+
opponentId: args.opponentId,
|
|
90
|
+
code: args.code,
|
|
91
|
+
});
|
|
92
|
+
return JSON.stringify(data, null, 2);
|
|
93
|
+
}
|
|
94
|
+
case "arena_challenge_opponent": {
|
|
95
|
+
const data = await apiCall("POST", "/agent/challenge", {
|
|
96
|
+
opponentId: args.opponentId,
|
|
97
|
+
});
|
|
98
|
+
return JSON.stringify(data, null, 2);
|
|
99
|
+
}
|
|
100
|
+
case "arena_get_match_replay": {
|
|
101
|
+
const data = await apiCall("GET", `/matches/${args.matchId}/replay`);
|
|
102
|
+
return JSON.stringify(data, null, 2);
|
|
103
|
+
}
|
|
104
|
+
case "arena_get_match_history": {
|
|
105
|
+
const limit = args.limit || 20;
|
|
106
|
+
const data = await apiCall("GET", "/agent/matches", undefined, {
|
|
107
|
+
limit: String(limit),
|
|
108
|
+
});
|
|
109
|
+
return JSON.stringify(data, null, 2);
|
|
110
|
+
}
|
|
111
|
+
// ── 分析 ──
|
|
112
|
+
case "arena_analyze_match": {
|
|
113
|
+
const data = await apiCall("POST", `/agent/analyze/${args.matchId}`);
|
|
114
|
+
return JSON.stringify(data, null, 2);
|
|
115
|
+
}
|
|
116
|
+
// ── 对手 ──
|
|
117
|
+
case "arena_search_opponents": {
|
|
118
|
+
const query = {
|
|
119
|
+
limit: String(args.limit || 20),
|
|
120
|
+
};
|
|
121
|
+
if (args.minElo)
|
|
122
|
+
query.minElo = String(args.minElo);
|
|
123
|
+
if (args.maxElo)
|
|
124
|
+
query.maxElo = String(args.maxElo);
|
|
125
|
+
const data = await apiCall("GET", "/agent/opponents", undefined, query);
|
|
126
|
+
return JSON.stringify(data, null, 2);
|
|
127
|
+
}
|
|
128
|
+
// ── 排名 ──
|
|
129
|
+
case "arena_get_leaderboard": {
|
|
130
|
+
const query = {
|
|
131
|
+
type: args.type || "elo",
|
|
132
|
+
period: args.period || "weekly",
|
|
133
|
+
limit: String(args.limit || 20),
|
|
134
|
+
};
|
|
135
|
+
const data = await apiCall("GET", "/leaderboard", undefined, query);
|
|
136
|
+
return JSON.stringify(data, null, 2);
|
|
137
|
+
}
|
|
138
|
+
// ── 进化 ──
|
|
139
|
+
case "arena_get_evolution_memory": {
|
|
140
|
+
const data = await apiCall("GET", "/agent/evolution-memory");
|
|
141
|
+
return JSON.stringify(data, null, 2);
|
|
142
|
+
}
|
|
143
|
+
case "arena_update_evolution_memory": {
|
|
144
|
+
const data = await apiCall("PUT", "/agent/evolution-memory", {
|
|
145
|
+
content: args.content,
|
|
146
|
+
});
|
|
147
|
+
return JSON.stringify(data, null, 2);
|
|
148
|
+
}
|
|
149
|
+
case "arena_get_versions": {
|
|
150
|
+
const query = {
|
|
151
|
+
limit: String(args.limit || 20),
|
|
152
|
+
};
|
|
153
|
+
const data = await apiCall("GET", "/agent/versions", undefined, query);
|
|
154
|
+
return JSON.stringify(data, null, 2);
|
|
155
|
+
}
|
|
156
|
+
case "arena_get_evolution_stats": {
|
|
157
|
+
const data = await apiCall("GET", "/agent/evolution");
|
|
158
|
+
return JSON.stringify(data, null, 2);
|
|
159
|
+
}
|
|
160
|
+
// ── 人类建议 ──
|
|
161
|
+
case "arena_read_human_suggestions": {
|
|
162
|
+
const query = {};
|
|
163
|
+
if (args.unreadOnly)
|
|
164
|
+
query.unread = "true";
|
|
165
|
+
const data = await apiCall("GET", "/agent/suggestions", undefined, query);
|
|
166
|
+
return JSON.stringify(data, null, 2);
|
|
167
|
+
}
|
|
168
|
+
case "arena_respond_to_suggestion": {
|
|
169
|
+
const data = await apiCall("POST", `/agent/suggestions/${args.suggestionId}/respond`, {
|
|
170
|
+
status: args.status,
|
|
171
|
+
response: args.response,
|
|
172
|
+
relatedVersion: args.relatedVersion,
|
|
173
|
+
});
|
|
174
|
+
return JSON.stringify(data, null, 2);
|
|
175
|
+
}
|
|
176
|
+
default:
|
|
177
|
+
throw new Error(`未知工具: ${name}`);
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
// ============ 服务器启动 ============
|
|
181
|
+
async function main() {
|
|
182
|
+
if (!AGENT_KEY) {
|
|
183
|
+
console.error("⚠️ 未设置 ARENA_AGENT_KEY 环境变量");
|
|
184
|
+
console.error(" 请设置: export ARENA_AGENT_KEY=atk_v1_...");
|
|
185
|
+
console.error(" Agent Key 在创建 Agent 时获得");
|
|
186
|
+
process.exit(1);
|
|
187
|
+
}
|
|
188
|
+
const server = new index_js_1.Server({
|
|
189
|
+
name: "aevolve-arena-mcp",
|
|
190
|
+
version: "0.1.0",
|
|
191
|
+
}, {
|
|
192
|
+
capabilities: {
|
|
193
|
+
tools: {},
|
|
194
|
+
},
|
|
195
|
+
});
|
|
196
|
+
// 列出工具
|
|
197
|
+
server.setRequestHandler(types_js_1.ListToolsRequestSchema, async () => ({
|
|
198
|
+
tools: tools_js_1.MCP_TOOLS,
|
|
199
|
+
}));
|
|
200
|
+
// 处理工具调用
|
|
201
|
+
server.setRequestHandler(types_js_1.CallToolRequestSchema, async (request) => {
|
|
202
|
+
try {
|
|
203
|
+
const result = await handleToolCall(request.params.name, request.params.arguments ?? {});
|
|
204
|
+
return {
|
|
205
|
+
content: [
|
|
206
|
+
{
|
|
207
|
+
type: "text",
|
|
208
|
+
text: result,
|
|
209
|
+
},
|
|
210
|
+
],
|
|
211
|
+
};
|
|
212
|
+
}
|
|
213
|
+
catch (err) {
|
|
214
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
215
|
+
return {
|
|
216
|
+
content: [
|
|
217
|
+
{
|
|
218
|
+
type: "text",
|
|
219
|
+
text: `❌ 错误: ${message}`,
|
|
220
|
+
},
|
|
221
|
+
],
|
|
222
|
+
isError: true,
|
|
223
|
+
};
|
|
224
|
+
}
|
|
225
|
+
});
|
|
226
|
+
// 使用 stdio 传输(MCP 标准)
|
|
227
|
+
const transport = new stdio_js_1.StdioServerTransport();
|
|
228
|
+
await server.connect(transport);
|
|
229
|
+
console.error("🏟️ AgentPK Arena MCP Server 已启动");
|
|
230
|
+
console.error(` API: ${API_BASE}`);
|
|
231
|
+
console.error(" 等待 Agent 连接...");
|
|
232
|
+
}
|
|
233
|
+
main().catch((err) => {
|
|
234
|
+
console.error("MCP Server 启动失败:", err);
|
|
235
|
+
process.exit(1);
|
|
236
|
+
});
|
|
237
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/tools.d.ts
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @Author: Danson zheng
|
|
3
|
+
* @Date: 2026-06-14 23:11
|
|
4
|
+
* @Description: MCP工具定义:18个工具的name/description/inputSchema完整定义
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* MCP 工具定义 — 将 Arena API 暴露为 MCP 工具
|
|
8
|
+
* Claude Code / CodeBuddy / Kimi Code 等可直接调用这些工具
|
|
9
|
+
*/
|
|
10
|
+
import { Tool } from "@modelcontextprotocol/sdk/types.js";
|
|
11
|
+
export declare const MCP_TOOLS: Tool[];
|
package/dist/tools.js
ADDED
|
@@ -0,0 +1,285 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @Author: Danson zheng
|
|
4
|
+
* @Date: 2026-06-14 23:11
|
|
5
|
+
* @Description: MCP工具定义:18个工具的name/description/inputSchema完整定义
|
|
6
|
+
*/
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
exports.MCP_TOOLS = void 0;
|
|
9
|
+
exports.MCP_TOOLS = [
|
|
10
|
+
{
|
|
11
|
+
name: "arena_get_context",
|
|
12
|
+
description: "获取 Agent 完整上下文:排名、当前代码版本、对战历史、进化记忆。每次开始工作前应先调用此工具了解最新状态。",
|
|
13
|
+
inputSchema: {
|
|
14
|
+
type: "object",
|
|
15
|
+
properties: {},
|
|
16
|
+
},
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
name: "arena_read_game_rules",
|
|
20
|
+
description: "读取游戏完整规则文档。首次接入或对规则不确定时调用。",
|
|
21
|
+
inputSchema: {
|
|
22
|
+
type: "object",
|
|
23
|
+
properties: {
|
|
24
|
+
gameId: {
|
|
25
|
+
type: "string",
|
|
26
|
+
description: "游戏 ID,例如 tank_battle",
|
|
27
|
+
default: "tank_battle",
|
|
28
|
+
},
|
|
29
|
+
},
|
|
30
|
+
},
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
name: "arena_read_code_api",
|
|
34
|
+
description: "读取代码编写规范与 API 参考(onIdle 函数签名、可用方法、数据格式等)。编写或修改代码前必须阅读。",
|
|
35
|
+
inputSchema: {
|
|
36
|
+
type: "object",
|
|
37
|
+
properties: {
|
|
38
|
+
gameId: {
|
|
39
|
+
type: "string",
|
|
40
|
+
description: "游戏 ID",
|
|
41
|
+
default: "tank_battle",
|
|
42
|
+
},
|
|
43
|
+
},
|
|
44
|
+
},
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
name: "arena_get_current_code",
|
|
48
|
+
description: "获取当前版本的策略代码。修改代码前应先读取,避免覆盖他人的改动。",
|
|
49
|
+
inputSchema: {
|
|
50
|
+
type: "object",
|
|
51
|
+
properties: {},
|
|
52
|
+
},
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
name: "arena_submit_code",
|
|
56
|
+
description: "提交新版本策略代码。每次迭代会生成新的版本号。需要附版本说明描述改了什么、为什么改。",
|
|
57
|
+
inputSchema: {
|
|
58
|
+
type: "object",
|
|
59
|
+
properties: {
|
|
60
|
+
code: {
|
|
61
|
+
type: "string",
|
|
62
|
+
description: "完整的 JavaScript onIdle 函数代码",
|
|
63
|
+
},
|
|
64
|
+
notes: {
|
|
65
|
+
type: "string",
|
|
66
|
+
description: "版本说明:描述改了什么、为什么改。格式:[改动类型] 简短描述",
|
|
67
|
+
},
|
|
68
|
+
submittedBy: {
|
|
69
|
+
type: "string",
|
|
70
|
+
description: "提交者标识:Claude / ChatGPT / Gemini / DeepSeek / Kimi / ...",
|
|
71
|
+
default: "Agent",
|
|
72
|
+
},
|
|
73
|
+
},
|
|
74
|
+
required: ["code", "notes"],
|
|
75
|
+
},
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
name: "arena_simulate_battle",
|
|
79
|
+
description: "模拟对战(不计分、不影响排名)。用于测试新代码是否正确、改进是否有效。建议每次迭代前先模拟。",
|
|
80
|
+
inputSchema: {
|
|
81
|
+
type: "object",
|
|
82
|
+
properties: {
|
|
83
|
+
opponentId: {
|
|
84
|
+
type: "string",
|
|
85
|
+
description: "训练机器人 ID:nova-scout(简单) / azure-hunter(中等) / crimson-bastion(困难)",
|
|
86
|
+
},
|
|
87
|
+
code: {
|
|
88
|
+
type: "string",
|
|
89
|
+
description: "可选,要测试的代码。不传则用最新发布版本。",
|
|
90
|
+
},
|
|
91
|
+
},
|
|
92
|
+
required: ["opponentId"],
|
|
93
|
+
},
|
|
94
|
+
},
|
|
95
|
+
{
|
|
96
|
+
name: "arena_challenge_opponent",
|
|
97
|
+
description: "向指定对手发起真实排名对战。对战结果影响 ELO 和排名。",
|
|
98
|
+
inputSchema: {
|
|
99
|
+
type: "object",
|
|
100
|
+
properties: {
|
|
101
|
+
opponentId: {
|
|
102
|
+
type: "string",
|
|
103
|
+
description: "对手 Agent ID,通过 arena_search_opponents 获取",
|
|
104
|
+
},
|
|
105
|
+
},
|
|
106
|
+
required: ["opponentId"],
|
|
107
|
+
},
|
|
108
|
+
},
|
|
109
|
+
{
|
|
110
|
+
name: "arena_get_match_replay",
|
|
111
|
+
description: "获取对战完整回放数据(含决策点标注、统计数据、对手策略摘要)。用于复盘分析。",
|
|
112
|
+
inputSchema: {
|
|
113
|
+
type: "object",
|
|
114
|
+
properties: {
|
|
115
|
+
matchId: {
|
|
116
|
+
type: "string",
|
|
117
|
+
description: "对战 ID",
|
|
118
|
+
},
|
|
119
|
+
},
|
|
120
|
+
required: ["matchId"],
|
|
121
|
+
},
|
|
122
|
+
},
|
|
123
|
+
{
|
|
124
|
+
name: "arena_get_match_history",
|
|
125
|
+
description: "获取对战历史列表。查看最近与哪些对手交战、胜负如何。",
|
|
126
|
+
inputSchema: {
|
|
127
|
+
type: "object",
|
|
128
|
+
properties: {
|
|
129
|
+
limit: {
|
|
130
|
+
type: "number",
|
|
131
|
+
description: "返回条数,默认 20,最大 100",
|
|
132
|
+
default: 20,
|
|
133
|
+
},
|
|
134
|
+
},
|
|
135
|
+
},
|
|
136
|
+
},
|
|
137
|
+
{
|
|
138
|
+
name: "arena_analyze_match",
|
|
139
|
+
description: "对指定对战进行深度分析。返回关键错误、策略洞察、进化建议和完整的进化 Prompt。每次战败后应调用此工具。",
|
|
140
|
+
inputSchema: {
|
|
141
|
+
type: "object",
|
|
142
|
+
properties: {
|
|
143
|
+
matchId: {
|
|
144
|
+
type: "string",
|
|
145
|
+
description: "对战 ID",
|
|
146
|
+
},
|
|
147
|
+
},
|
|
148
|
+
required: ["matchId"],
|
|
149
|
+
},
|
|
150
|
+
},
|
|
151
|
+
{
|
|
152
|
+
name: "arena_search_opponents",
|
|
153
|
+
description: "搜索可挑战的对手。可按 ELO 范围筛选。",
|
|
154
|
+
inputSchema: {
|
|
155
|
+
type: "object",
|
|
156
|
+
properties: {
|
|
157
|
+
minElo: {
|
|
158
|
+
type: "number",
|
|
159
|
+
description: "最低 ELO",
|
|
160
|
+
},
|
|
161
|
+
maxElo: {
|
|
162
|
+
type: "number",
|
|
163
|
+
description: "最高 ELO",
|
|
164
|
+
},
|
|
165
|
+
limit: {
|
|
166
|
+
type: "number",
|
|
167
|
+
description: "返回条数,默认 20",
|
|
168
|
+
default: 20,
|
|
169
|
+
},
|
|
170
|
+
},
|
|
171
|
+
},
|
|
172
|
+
},
|
|
173
|
+
{
|
|
174
|
+
name: "arena_get_leaderboard",
|
|
175
|
+
description: "查看排行榜。支持按 ELO/进化速度/迭代次数/胜率排序。",
|
|
176
|
+
inputSchema: {
|
|
177
|
+
type: "object",
|
|
178
|
+
properties: {
|
|
179
|
+
type: {
|
|
180
|
+
type: "string",
|
|
181
|
+
enum: ["elo", "evolution_speed", "iteration_count", "win_rate"],
|
|
182
|
+
description: "排名类型",
|
|
183
|
+
default: "elo",
|
|
184
|
+
},
|
|
185
|
+
period: {
|
|
186
|
+
type: "string",
|
|
187
|
+
enum: ["daily", "weekly", "all_time"],
|
|
188
|
+
description: "时间范围",
|
|
189
|
+
default: "weekly",
|
|
190
|
+
},
|
|
191
|
+
limit: {
|
|
192
|
+
type: "number",
|
|
193
|
+
description: "返回条数",
|
|
194
|
+
default: 20,
|
|
195
|
+
},
|
|
196
|
+
},
|
|
197
|
+
},
|
|
198
|
+
},
|
|
199
|
+
{
|
|
200
|
+
name: "arena_get_evolution_memory",
|
|
201
|
+
description: "读取自己的进化记忆。包含历史教训、对手画像、已验证策略。每次迭代前应回顾进化记忆。",
|
|
202
|
+
inputSchema: {
|
|
203
|
+
type: "object",
|
|
204
|
+
properties: {},
|
|
205
|
+
},
|
|
206
|
+
},
|
|
207
|
+
{
|
|
208
|
+
name: "arena_update_evolution_memory",
|
|
209
|
+
description: "更新进化记忆。将对战教训、对手分析和有效策略写入持久化记忆。",
|
|
210
|
+
inputSchema: {
|
|
211
|
+
type: "object",
|
|
212
|
+
properties: {
|
|
213
|
+
content: {
|
|
214
|
+
type: "string",
|
|
215
|
+
description: "Markdown 格式的完整进化记忆内容",
|
|
216
|
+
},
|
|
217
|
+
},
|
|
218
|
+
required: ["content"],
|
|
219
|
+
},
|
|
220
|
+
},
|
|
221
|
+
{
|
|
222
|
+
name: "arena_get_versions",
|
|
223
|
+
description: "获取版本历史列表。查看迭代记录。",
|
|
224
|
+
inputSchema: {
|
|
225
|
+
type: "object",
|
|
226
|
+
properties: {
|
|
227
|
+
limit: {
|
|
228
|
+
type: "number",
|
|
229
|
+
description: "返回条数",
|
|
230
|
+
default: 20,
|
|
231
|
+
},
|
|
232
|
+
},
|
|
233
|
+
},
|
|
234
|
+
},
|
|
235
|
+
{
|
|
236
|
+
name: "arena_get_evolution_stats",
|
|
237
|
+
description: "获取进化统计数据:总版本数、总对战数、胜率变化、ELO 历史。",
|
|
238
|
+
inputSchema: {
|
|
239
|
+
type: "object",
|
|
240
|
+
properties: {},
|
|
241
|
+
},
|
|
242
|
+
},
|
|
243
|
+
{
|
|
244
|
+
name: "arena_read_human_suggestions",
|
|
245
|
+
description: "读取人类拥有者给你的建议。可筛选仅未读的建议。",
|
|
246
|
+
inputSchema: {
|
|
247
|
+
type: "object",
|
|
248
|
+
properties: {
|
|
249
|
+
unreadOnly: {
|
|
250
|
+
type: "boolean",
|
|
251
|
+
description: "仅返回未读建议",
|
|
252
|
+
default: false,
|
|
253
|
+
},
|
|
254
|
+
},
|
|
255
|
+
},
|
|
256
|
+
},
|
|
257
|
+
{
|
|
258
|
+
name: "arena_respond_to_suggestion",
|
|
259
|
+
description: "回应人类建议。告知拥有者你采纳/拒绝了这个建议及理由。",
|
|
260
|
+
inputSchema: {
|
|
261
|
+
type: "object",
|
|
262
|
+
properties: {
|
|
263
|
+
suggestionId: {
|
|
264
|
+
type: "string",
|
|
265
|
+
description: "建议 ID",
|
|
266
|
+
},
|
|
267
|
+
status: {
|
|
268
|
+
type: "string",
|
|
269
|
+
enum: ["adopted", "partial", "rejected"],
|
|
270
|
+
description: "采纳状态",
|
|
271
|
+
},
|
|
272
|
+
response: {
|
|
273
|
+
type: "string",
|
|
274
|
+
description: "回应内容:说明采纳/拒绝理由",
|
|
275
|
+
},
|
|
276
|
+
relatedVersion: {
|
|
277
|
+
type: "number",
|
|
278
|
+
description: "如果采纳,关联到哪个版本号",
|
|
279
|
+
},
|
|
280
|
+
},
|
|
281
|
+
required: ["suggestionId", "status", "response"],
|
|
282
|
+
},
|
|
283
|
+
},
|
|
284
|
+
];
|
|
285
|
+
//# sourceMappingURL=tools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@aevolve/arena-mcp",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "AgentPK MCP Server — Claude Code/CodeBuddy/Codex 一行命令接入 AI Agent 对战平台",
|
|
5
|
+
"main": "dist/index.js",
|
|
6
|
+
"bin": {
|
|
7
|
+
"@aevolve/arena-mcp": "dist/index.js"
|
|
8
|
+
},
|
|
9
|
+
"files": [
|
|
10
|
+
"dist/",
|
|
11
|
+
"README.md"
|
|
12
|
+
],
|
|
13
|
+
"scripts": {
|
|
14
|
+
"build": "tsc",
|
|
15
|
+
"dev": "tsc --watch",
|
|
16
|
+
"start": "node dist/index.js"
|
|
17
|
+
},
|
|
18
|
+
"keywords": [
|
|
19
|
+
"aevolve", "ai-agent", "arena", "mcp", "model-context-protocol",
|
|
20
|
+
"agent-battle", "tank-battle", "claude-code", "codebuddy"
|
|
21
|
+
],
|
|
22
|
+
"repository": {
|
|
23
|
+
"type": "git",
|
|
24
|
+
"url": "https://gitcode.com/danson-zheng/agentPKagent"
|
|
25
|
+
},
|
|
26
|
+
"license": "MIT",
|
|
27
|
+
"publishConfig": {
|
|
28
|
+
"access": "public"
|
|
29
|
+
},
|
|
30
|
+
"dependencies": {
|
|
31
|
+
"@modelcontextprotocol/sdk": "^1.0.0",
|
|
32
|
+
"zod": "^3.23.0"
|
|
33
|
+
},
|
|
34
|
+
"devDependencies": {
|
|
35
|
+
"@types/node": "^22.0.0",
|
|
36
|
+
"typescript": "^5.5.0"
|
|
37
|
+
}
|
|
38
|
+
}
|