@agilemonster/mcp-server 1.0.3 → 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.
@@ -24,4 +24,5 @@ export declare class AgileMonsterOrchestrator {
24
24
  ide?: string;
25
25
  }): Promise<void>;
26
26
  configureIdes(apiKey: string, selectedIde?: string): void;
27
+ private ensureGitignore;
27
28
  }
@@ -157,7 +157,18 @@ export class AgileMonsterOrchestrator {
157
157
  }
158
158
  // Configure IDEs (Cursor, Claude Code, Windsurf, Antigravity, VS Code)
159
159
  this.configureIdes(apiKey, options?.provider);
160
- console.log('\nšŸŽ‰ Project successfully configured for AI Agents (Cursor, Claude Code, Antigravity, Windsurf)!');
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');
161
172
  }
162
173
  async bootstrapInteractive(options) {
163
174
  return this.initInteractive(options);
@@ -252,25 +263,33 @@ export class AgileMonsterOrchestrator {
252
263
  }
253
264
  catch { }
254
265
  }
255
- // 4. Antigravity / Gemini (~/.gemini/antigravity/mcp/agilemonster.json)
266
+ // 4. Antigravity / Gemini (~/.gemini/config/mcp_config.json)
256
267
  if ((ide === 'all' || ide === 'antigravity' || ide === 'gemini') && homedir) {
257
268
  try {
258
- const antigravityDir = path.join(homedir, '.gemini', 'antigravity', 'mcp');
259
- const antigravityMcpPath = path.join(antigravityDir, 'agilemonster.json');
260
- if (fs.existsSync(antigravityDir) || ide === 'antigravity') {
261
- if (!fs.existsSync(antigravityDir))
262
- fs.mkdirSync(antigravityDir, { recursive: true });
263
- const config = {
264
- command: 'npx',
265
- args: ['-y', '@agilemonster/mcp-server'],
266
- env: {
267
- AGILEMONSTER_API_KEY: apiKey,
268
- AGILEMONSTER_API_URL: 'https://api.agilemonster.com',
269
- },
270
- };
271
- fs.writeFileSync(antigravityMcpPath, JSON.stringify(config, null, 2), 'utf8');
272
- 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 { }
273
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`);
274
293
  }
275
294
  catch { }
276
295
  }
@@ -305,4 +324,19 @@ export class AgileMonsterOrchestrator {
305
324
  catch { }
306
325
  }
307
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
+ }
308
342
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agilemonster/mcp-server",
3
- "version": "1.0.3",
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",