@agilemonster/mcp-server 1.0.2 ā 1.0.4
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/dist/orchestrator.d.ts +1 -0
- package/dist/orchestrator.js +54 -18
- package/package.json +1 -1
package/dist/orchestrator.d.ts
CHANGED
package/dist/orchestrator.js
CHANGED
|
@@ -106,7 +106,9 @@ export class AgileMonsterOrchestrator {
|
|
|
106
106
|
let apiKey = this.client.getApiKey();
|
|
107
107
|
if (!apiKey) {
|
|
108
108
|
console.log('š No Agile Monster API key detected.');
|
|
109
|
-
console.log('
|
|
109
|
+
console.log(' 1. Open: https://app.agilemonster.com/profile?setup=agents');
|
|
110
|
+
console.log(' 2. Click "Generate API key", then "Copy API key"');
|
|
111
|
+
console.log(' 3. Paste it below\n');
|
|
110
112
|
const readline = await import('node:readline/promises');
|
|
111
113
|
const rl = readline.createInterface({ input: process.stdin, output: process.stdout });
|
|
112
114
|
try {
|
|
@@ -155,7 +157,18 @@ export class AgileMonsterOrchestrator {
|
|
|
155
157
|
}
|
|
156
158
|
// Configure IDEs (Cursor, Claude Code, Windsurf, Antigravity, VS Code)
|
|
157
159
|
this.configureIdes(apiKey, options?.provider);
|
|
158
|
-
|
|
160
|
+
this.ensureGitignore();
|
|
161
|
+
console.log('\nš Project successfully configured for AI Agents!');
|
|
162
|
+
console.log('\n======================================================');
|
|
163
|
+
console.log(' š HOW TO USE IT NOW ');
|
|
164
|
+
console.log('======================================================');
|
|
165
|
+
console.log(`1. In Agile Monster (https://app.agilemonster.com), open board "${targetBoard.name}".`);
|
|
166
|
+
console.log('2. Create or open any card and assign it to your AI Agent (e.g. Antigravity, Cursor, Claude Code).');
|
|
167
|
+
console.log('3. In your AI IDE chat, simply say:');
|
|
168
|
+
console.log(' "Check my Agile Monster tasks and start the next queued card."');
|
|
169
|
+
console.log(' Or from your terminal anytime:');
|
|
170
|
+
console.log(' ⢠Check board & queued tasks: npx -y @agilemonster/mcp-server status');
|
|
171
|
+
console.log(' ⢠Auto-watch & run daemon: npx -y @agilemonster/mcp-server watch\n');
|
|
159
172
|
}
|
|
160
173
|
async bootstrapInteractive(options) {
|
|
161
174
|
return this.initInteractive(options);
|
|
@@ -250,25 +263,33 @@ export class AgileMonsterOrchestrator {
|
|
|
250
263
|
}
|
|
251
264
|
catch { }
|
|
252
265
|
}
|
|
253
|
-
// 4. Antigravity / Gemini (~/.gemini/
|
|
266
|
+
// 4. Antigravity / Gemini (~/.gemini/config/mcp_config.json)
|
|
254
267
|
if ((ide === 'all' || ide === 'antigravity' || ide === 'gemini') && homedir) {
|
|
255
268
|
try {
|
|
256
|
-
const antigravityDir = path.join(homedir, '.gemini', '
|
|
257
|
-
const antigravityMcpPath = path.join(antigravityDir, '
|
|
258
|
-
if (fs.existsSync(antigravityDir)
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
};
|
|
269
|
-
fs.writeFileSync(antigravityMcpPath, JSON.stringify(config, null, 2), 'utf8');
|
|
270
|
-
console.log(`š¤ Configured Antigravity in: ~/.gemini/antigravity/mcp/agilemonster.json`);
|
|
269
|
+
const antigravityDir = path.join(homedir, '.gemini', 'config');
|
|
270
|
+
const antigravityMcpPath = path.join(antigravityDir, 'mcp_config.json');
|
|
271
|
+
if (!fs.existsSync(antigravityDir))
|
|
272
|
+
fs.mkdirSync(antigravityDir, { recursive: true });
|
|
273
|
+
let existing = { mcpServers: {} };
|
|
274
|
+
if (fs.existsSync(antigravityMcpPath)) {
|
|
275
|
+
try {
|
|
276
|
+
const raw = fs.readFileSync(antigravityMcpPath, 'utf8').trim();
|
|
277
|
+
if (raw)
|
|
278
|
+
existing = JSON.parse(raw);
|
|
279
|
+
}
|
|
280
|
+
catch { }
|
|
271
281
|
}
|
|
282
|
+
existing.mcpServers = existing.mcpServers || {};
|
|
283
|
+
existing.mcpServers.agilemonster = {
|
|
284
|
+
command: 'npx',
|
|
285
|
+
args: ['-y', '@agilemonster/mcp-server'],
|
|
286
|
+
env: {
|
|
287
|
+
AGILEMONSTER_API_KEY: apiKey,
|
|
288
|
+
AGILEMONSTER_API_URL: 'https://api.agilemonster.com',
|
|
289
|
+
},
|
|
290
|
+
};
|
|
291
|
+
fs.writeFileSync(antigravityMcpPath, JSON.stringify(existing, null, 2), 'utf8');
|
|
292
|
+
console.log(`š¤ Configured Antigravity in: ~/.gemini/config/mcp_config.json`);
|
|
272
293
|
}
|
|
273
294
|
catch { }
|
|
274
295
|
}
|
|
@@ -303,4 +324,19 @@ export class AgileMonsterOrchestrator {
|
|
|
303
324
|
catch { }
|
|
304
325
|
}
|
|
305
326
|
}
|
|
327
|
+
ensureGitignore() {
|
|
328
|
+
try {
|
|
329
|
+
const gitignorePath = path.resolve(process.cwd(), '.gitignore');
|
|
330
|
+
if (!fs.existsSync(gitignorePath))
|
|
331
|
+
return;
|
|
332
|
+
const content = fs.readFileSync(gitignorePath, 'utf8');
|
|
333
|
+
const entries = ['.agilemonster.json', '.cursor/mcp.json', '.mcp.json'];
|
|
334
|
+
const missing = entries.filter((e) => !content.split(/\r?\n/).includes(e));
|
|
335
|
+
if (missing.length > 0) {
|
|
336
|
+
const prefix = content.endsWith('\n') ? '' : '\n';
|
|
337
|
+
fs.appendFileSync(gitignorePath, `${prefix}\n# Agile Monster local agent config (contains personal API key)\n${missing.join('\n')}\n`, 'utf8');
|
|
338
|
+
}
|
|
339
|
+
}
|
|
340
|
+
catch { }
|
|
341
|
+
}
|
|
306
342
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@agilemonster/mcp-server",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.4",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Official Model Context Protocol (MCP) server & Orchestrator for Agile Monster (Cursor, Claude Code, Antigravity, Codex, Hermes, Windsurf)",
|
|
6
6
|
"main": "dist/server.js",
|