@anyforge/mcp-server 2.0.2 → 2.2.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 +1 -0
- package/dist/index.js +3 -2
- package/dist/index.js.map +1 -1
- package/dist/tools/coverage.d.ts +12 -0
- package/dist/tools/coverage.js +62 -0
- package/dist/tools/coverage.js.map +1 -0
- package/dist/tools/crews.js +16 -0
- package/dist/tools/crews.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -73,6 +73,7 @@ Use the equivalent stdio MCP config (`command: npx`, `args: ["tsx",
|
|
|
73
73
|
| `anyforge_post_crew_comment` | write | Comment on / @-mention in a crew |
|
|
74
74
|
| `anyforge_resume_crew` | approve | Resume a PAUSED/HALTED crew |
|
|
75
75
|
| `anyforge_halt_crew` | approve | Halt a crew |
|
|
76
|
+
| `anyforge_amend_crew` | approve | Continue & finish — send a crew at its HIL gate back to the engineer with guidance |
|
|
76
77
|
|
|
77
78
|
## Example prompts
|
|
78
79
|
|
package/dist/index.js
CHANGED
|
@@ -25,12 +25,13 @@ import { workTools } from './tools/work.js';
|
|
|
25
25
|
import { initiativeTools } from './tools/initiatives.js';
|
|
26
26
|
import { programTools } from './tools/programs.js';
|
|
27
27
|
import { crewTools } from './tools/crews.js';
|
|
28
|
+
import { coverageTools } from './tools/coverage.js';
|
|
28
29
|
// ─── Assemble the tool registry ──────────────────────────────────────
|
|
29
|
-
const MODULES = [hilTools, workTools, initiativeTools, programTools, crewTools];
|
|
30
|
+
const MODULES = [hilTools, workTools, initiativeTools, programTools, crewTools, coverageTools];
|
|
30
31
|
const TOOLS = MODULES.flatMap(m => m.tools);
|
|
31
32
|
const HANDLERS = Object.assign({}, ...MODULES.map(m => m.handlers));
|
|
32
33
|
// ─── Server setup ────────────────────────────────────────────────────
|
|
33
|
-
const server = new Server({ name: 'anyforge', version: '2.
|
|
34
|
+
const server = new Server({ name: 'anyforge', version: '2.1.0' }, { capabilities: { tools: {} } });
|
|
34
35
|
server.setRequestHandler(ListToolsRequestSchema, async () => ({ tools: TOOLS }));
|
|
35
36
|
server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
36
37
|
const { name, arguments: args } = request.params;
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";AAEA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAA;AAClE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAA;AAChF,OAAO,EACL,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,oCAAoC,CAAA;AAE3C,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { ToolModule } from './types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Coverage tools — push test-coverage measurements into AnyForge so
|
|
4
|
+
* Program Genesis can scope quality programs by real coverage.
|
|
5
|
+
*
|
|
6
|
+
* The intended flow is the SonarQube → AnyForge bridge: a user on the
|
|
7
|
+
* VPN runs Claude with both the SonarQube MCP and the AnyForge MCP,
|
|
8
|
+
* reads coverage per project from SonarQube, maps each to its
|
|
9
|
+
* owner/repo, and pushes them here in one batched call. AnyForge's
|
|
10
|
+
* cloud never needs VPN access — Claude on the VPN is the bridge.
|
|
11
|
+
*/
|
|
12
|
+
export declare const coverageTools: ToolModule;
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { callControl } from '../lib/apiClient.js';
|
|
2
|
+
/**
|
|
3
|
+
* Coverage tools — push test-coverage measurements into AnyForge so
|
|
4
|
+
* Program Genesis can scope quality programs by real coverage.
|
|
5
|
+
*
|
|
6
|
+
* The intended flow is the SonarQube → AnyForge bridge: a user on the
|
|
7
|
+
* VPN runs Claude with both the SonarQube MCP and the AnyForge MCP,
|
|
8
|
+
* reads coverage per project from SonarQube, maps each to its
|
|
9
|
+
* owner/repo, and pushes them here in one batched call. AnyForge's
|
|
10
|
+
* cloud never needs VPN access — Claude on the VPN is the bridge.
|
|
11
|
+
*/
|
|
12
|
+
export const coverageTools = {
|
|
13
|
+
tools: [
|
|
14
|
+
{
|
|
15
|
+
name: 'anyforge_upload_coverage',
|
|
16
|
+
description: 'Upload test-coverage measurements for one or many repos (e.g. synced from SonarQube). ' +
|
|
17
|
+
'Requires `write` scope. Each item needs repo ("owner/name") and either percent (0–100) or ' +
|
|
18
|
+
'a raw lcov report. Writes coverage to the matching codebase + the org repo index, so a ' +
|
|
19
|
+
'Program Genesis quality program can scope "repos below X%". Batch up to 200 items per call ' +
|
|
20
|
+
'— chunk larger syncs. Map SonarQube projects to owner/repo via their GitHub binding before ' +
|
|
21
|
+
'calling; ask the operator about any you can\'t map.',
|
|
22
|
+
inputSchema: {
|
|
23
|
+
type: 'object',
|
|
24
|
+
properties: {
|
|
25
|
+
items: {
|
|
26
|
+
type: 'array',
|
|
27
|
+
description: 'Coverage measurements (up to 200). Use this for batch sync.',
|
|
28
|
+
items: {
|
|
29
|
+
type: 'object',
|
|
30
|
+
properties: {
|
|
31
|
+
repo: { type: 'string', description: '"owner/name".' },
|
|
32
|
+
percent: { type: 'number', description: 'Line coverage % (0–100).' },
|
|
33
|
+
lcov: { type: 'string', description: 'Alternative to percent: a raw lcov report; coverage is computed from it.' },
|
|
34
|
+
commitSha: { type: 'string', description: 'Optional commit the measurement was taken at.' },
|
|
35
|
+
},
|
|
36
|
+
required: ['repo'],
|
|
37
|
+
},
|
|
38
|
+
},
|
|
39
|
+
repo: { type: 'string', description: 'Single-repo shortcut (use instead of items): "owner/name".' },
|
|
40
|
+
percent: { type: 'number', description: 'Single-repo coverage % (with `repo`).' },
|
|
41
|
+
lcov: { type: 'string', description: 'Single-repo lcov report (with `repo`).' },
|
|
42
|
+
commitSha: { type: 'string', description: 'Single-repo commit sha (with `repo`).' },
|
|
43
|
+
},
|
|
44
|
+
},
|
|
45
|
+
},
|
|
46
|
+
],
|
|
47
|
+
handlers: {
|
|
48
|
+
anyforge_upload_coverage: args => {
|
|
49
|
+
// Pass through either {items:[…]} (batch) or the single-repo shortcut.
|
|
50
|
+
const payload = Array.isArray(args.items)
|
|
51
|
+
? { items: args.items }
|
|
52
|
+
: {
|
|
53
|
+
repo: args.repo,
|
|
54
|
+
...(typeof args.percent === 'number' ? { percent: args.percent } : {}),
|
|
55
|
+
...(typeof args.lcov === 'string' ? { lcov: args.lcov } : {}),
|
|
56
|
+
...(typeof args.commitSha === 'string' ? { commitSha: args.commitSha } : {}),
|
|
57
|
+
};
|
|
58
|
+
return callControl('POST', '/coverage', payload);
|
|
59
|
+
},
|
|
60
|
+
},
|
|
61
|
+
};
|
|
62
|
+
//# sourceMappingURL=coverage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"coverage.js","sourceRoot":"","sources":["../../tools/coverage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAGjD;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,aAAa,GAAe;IACvC,KAAK,EAAE;QACL;YACE,IAAI,EAAE,0BAA0B;YAChC,WAAW,EACT,wFAAwF;gBACxF,4FAA4F;gBAC5F,yFAAyF;gBACzF,6FAA6F;gBAC7F,6FAA6F;gBAC7F,qDAAqD;YACvD,WAAW,EAAE;gBACX,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACV,KAAK,EAAE;wBACL,IAAI,EAAE,OAAO;wBACb,WAAW,EAAE,6DAA6D;wBAC1E,KAAK,EAAE;4BACL,IAAI,EAAE,QAAQ;4BACd,UAAU,EAAE;gCACV,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,eAAe,EAAE;gCACtD,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,0BAA0B,EAAE;gCACpE,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,0EAA0E,EAAE;gCACjH,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,+CAA+C,EAAE;6BAC5F;4BACD,QAAQ,EAAE,CAAC,MAAM,CAAC;yBACnB;qBACF;oBACD,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,4DAA4D,EAAE;oBACnG,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,uCAAuC,EAAE;oBACjF,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,wCAAwC,EAAE;oBAC/E,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,uCAAuC,EAAE;iBACpF;aACF;SACF;KACF;IACD,QAAQ,EAAE;QACR,wBAAwB,EAAE,IAAI,CAAC,EAAE;YAC/B,uEAAuE;YACvE,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;gBACvC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE;gBACvB,CAAC,CAAC;oBACE,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,GAAG,CAAC,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBACtE,GAAG,CAAC,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC7D,GAAG,CAAC,OAAO,IAAI,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBAC7E,CAAA;YACL,OAAO,WAAW,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,CAAC,CAAA;QAClD,CAAC;KACF;CACF,CAAA"}
|
package/dist/tools/crews.js
CHANGED
|
@@ -51,6 +51,21 @@ export const crewTools = {
|
|
|
51
51
|
required: ['crewId'],
|
|
52
52
|
},
|
|
53
53
|
},
|
|
54
|
+
{
|
|
55
|
+
name: 'anyforge_amend_crew',
|
|
56
|
+
description: 'Continue & finish: send a crew waiting at its HIL gate back to the engineer with guidance — it ' +
|
|
57
|
+
'resumes work on the SAME PR (capped at the amend limit). This is the "Continue" option alongside ' +
|
|
58
|
+
'submit_approval APPROVE (ship) / REJECT (stop). Requires `approve` scope. Only call when the operator ' +
|
|
59
|
+
'explicitly asks to amend/continue — never on your own judgement of the reviews.',
|
|
60
|
+
inputSchema: {
|
|
61
|
+
type: 'object',
|
|
62
|
+
properties: {
|
|
63
|
+
crewId: { type: 'string', description: 'The crew id (the crew must be at a pending approval gate).' },
|
|
64
|
+
notes: { type: 'string', description: 'What the engineer should finish/change — becomes the amend instruction.' },
|
|
65
|
+
},
|
|
66
|
+
required: ['crewId', 'notes'],
|
|
67
|
+
},
|
|
68
|
+
},
|
|
54
69
|
],
|
|
55
70
|
handlers: {
|
|
56
71
|
anyforge_get_crew: args => callControl('GET', `/crews/${encodeURIComponent(String(args.crewId))}${qs({ messages: args.messages })}`),
|
|
@@ -61,6 +76,7 @@ export const crewTools = {
|
|
|
61
76
|
}),
|
|
62
77
|
anyforge_resume_crew: args => callControl('POST', `/crews/${encodeURIComponent(String(args.crewId))}/resume`),
|
|
63
78
|
anyforge_halt_crew: args => callControl('POST', `/crews/${encodeURIComponent(String(args.crewId))}/halt`),
|
|
79
|
+
anyforge_amend_crew: args => callControl('POST', `/crews/${encodeURIComponent(String(args.crewId))}/amend`, { notes: args.notes }),
|
|
64
80
|
},
|
|
65
81
|
};
|
|
66
82
|
//# sourceMappingURL=crews.js.map
|
package/dist/tools/crews.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"crews.js","sourceRoot":"","sources":["../../tools/crews.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,EAAE,EAAE,MAAM,qBAAqB,CAAA;AAGrD;;;GAGG;AACH,MAAM,CAAC,MAAM,SAAS,GAAe;IACnC,KAAK,EAAE;QACL;YACE,IAAI,EAAE,mBAAmB;YACzB,WAAW,EACT,oFAAoF;gBACpF,2DAA2D;YAC7D,WAAW,EAAE;gBACX,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACV,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,cAAc,EAAE;oBACvD,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,6DAA6D,EAAE;iBACzG;gBACD,QAAQ,EAAE,CAAC,QAAQ,CAAC;aACrB;SACF;QACD;YACE,IAAI,EAAE,4BAA4B;YAClC,WAAW,EACT,iFAAiF;gBACjF,yBAAyB;YAC3B,WAAW,EAAE;gBACX,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACV,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,cAAc,EAAE;oBACvD,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,gCAAgC,EAAE;oBACvE,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,wDAAwD,EAAE;oBACpG,aAAa,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,WAAW,EAAE,2BAA2B,EAAE;iBACtG;gBACD,QAAQ,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC;aAC7B;SACF;QACD;YACE,IAAI,EAAE,sBAAsB;YAC5B,WAAW,EAAE,oFAAoF;YACjG,WAAW,EAAE;gBACX,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,cAAc,EAAE,EAAE;gBACvE,QAAQ,EAAE,CAAC,QAAQ,CAAC;aACrB;SACF;QACD;YACE,IAAI,EAAE,oBAAoB;YAC1B,WAAW,EAAE,8FAA8F;YAC3G,WAAW,EAAE;gBACX,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,cAAc,EAAE,EAAE;gBACvE,QAAQ,EAAE,CAAC,QAAQ,CAAC;aACrB;SACF;KACF;IACD,QAAQ,EAAE;QACR,iBAAiB,EAAE,IAAI,CAAC,EAAE,CACxB,WAAW,CAAC,KAAK,EAAE,UAAU,kBAAkB,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAA8B,EAAE,CAAC,EAAE,CAAC;QACjI,0BAA0B,EAAE,IAAI,CAAC,EAAE,CACjC,WAAW,CAAC,MAAM,EAAE,UAAU,kBAAkB,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE;YAChF,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACxD,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACpF,CAAC;QACJ,oBAAoB,EAAE,IAAI,CAAC,EAAE,CAC3B,WAAW,CAAC,MAAM,EAAE,UAAU,kBAAkB,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC;QACjF,kBAAkB,EAAE,IAAI,CAAC,EAAE,CACzB,WAAW,CAAC,MAAM,EAAE,UAAU,kBAAkB,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"crews.js","sourceRoot":"","sources":["../../tools/crews.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@anyforge/mcp-server",
|
|
3
|
-
"version": "2.0
|
|
3
|
+
"version": "2.2.0",
|
|
4
4
|
"description": "AnyForge MCP Server — drive AnyForge (HIL approvals, initiatives, work items, crews) from Claude CLI, Cursor, and other MCP clients",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|