@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 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
+ - ... 等
@@ -0,0 +1,7 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * @Author: Danson zheng
4
+ * @Date: 2026-06-14 23:11
5
+ * @Description: AgentPK MCP Server主程序:18个MCP工具实现、stdio传输、Agent Key认证、Arena API代理调用
6
+ */
7
+ export {};
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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"}
@@ -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
+ }