mcp-server@1.0.32
CAUTIONPublisher claims: "Official Model Context Protocol (MCP) server & Orchestrator for Agile Monster (Cursor, Claude Code, Antigravity, Codex, Hermes, Windsurf)" Observed in sandbox: no network, touches nothing outside the project, writes no memory.
Coverage
Server started and answered tools/list.- Tested
- MCP initialize and tools/list · every tool description, for hidden instructions · every file read, file written and host contacted by what ran
- Not tested
- what the tools do when called with real credentials
Before you give it your token
- It will ask for
AGILEMONSTER_API_KEYAM_API_KEYANTHROPIC_API_KEYCLAUDE_CODE_OAUTH_TOKENCODEX_API_KEYCURSOR_API_KEYor--max-tokensConfiguration, not credentials: AGILEMONSTER_AGENT_COMMAND, AGILEMONSTER_AGENT_ENGINE, AGILEMONSTER_AGENT_TIMEOUT_MINUTES, AGILEMONSTER_API_URL, AGILEMONSTER_HOME, AGILEMONSTER_ISOLATE, AGILEMONSTER_NO_LOGIN, AGILEMONSTER_NO_NOTIFY, AGILEMONSTER_NO_SERVICE, AGILEMONSTER_REPORT, ANTIGRAVITY_APP_DATA_DIR, GEMINI_CLI- Where it talks to
- agilemonster.com (its own)Also cursor.com, apple.com — not the publisher's domain; check what for before connecting.
- What the honeypot saw
- no credential files read · no network
- What we could not test
- what the tools do when called with real credentials
Connect it with a scoped credential, under the guard, and read the third-party hosts first. The code names cursor.com, apple.com as well as its own vendor. The guard injects AGILEMONSTER_API_KEY, AM_API_KEY, ANTHROPIC_API_KEY, CLAUDE_CODE_OAUTH_TOKEN, CODEX_API_KEY, CURSOR_API_KEY only into requests to agilemonster.com (and its subdomains) and refuses the rest.
Never paste a credential into a chat, a ticket or a report, including ours. How the guard holds it.
Is [email protected] safe to install?
KillerSkills ran it in the KillerSkills honeypot sandbox (2 scenarios) on 2026-11-15 and scored it 58/100 (Caution). It is not known to be malicious, but it has behaviour or code a security policy should decide on before install. Notable findings: Access to sensitive file paths; Pipe-to-shell pattern; Access to sensitive file paths. Summary: no network, touches nothing outside the project, writes no memory.
Behavior trace
Honeypot run · 29 s · 2 scenariosStatic findings
env: { ...env, AGILEMONSTER_PROMPT_FILE: promptFile, AGILEMONSTER_PROJECT_PATH: opts.projectPath },Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.installHint: 'curl https://cursor.com/install -fsS | bash',Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.`[mcp_servers.${SERVER_NAME}.env]`,Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.// 3. Local .env file in cwdFix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.const text = raw.replace(/^/, '');Fix: Keep SKILL.md to visible, descriptive text. Remove comments and encoded text that address the agent.const isEnvTemplate = /(^|\/)\.env\.(example|sample|template|dist)$/i.test(rel);Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.const NEVER_COMMIT_RE = /(^|\/)(\.agilemonster\.json|\.mcp\.json|\.cursor\/mcp\.json|\.vscode\/mcp\.json|\.env(\.[\w.-]+)?|id_rsa|id_ed25519|.*\.pem|.*\.p12|\.agilemonster\/.*|\.git\/.*)$/i;Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.* A git remote as it may leave this machine: `https://user:token@host/...` and `https://token@host/...`Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose./** Credentials embedded in a URL: https://user:token@host/... (a git remote with a personal access token). */Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.// Ignore .env read errorFix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.for (const envFile of ['.env.production', '.env.example', '.env']) {Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.const envPath = path.join(this.cwd, '.env');Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.deps.print('Finish this any time with: npx -y @agilemonster/mcp-server agents login');Fix: Pin versions and sources; vendor anything fetched at install time.[['wrangler.toml', 'wrangler.jsonc', 'wrangler.json'], 'npx wrangler deploy', 'Cloudflare Wrangler config'],Fix: Pin versions and sources; vendor anything fetched at install time.console.log(' Run "npx -y @agilemonster/mcp-server bootstrap" in this folder first!\n');Fix: Pin versions and sources; vendor anything fetched at install time.* A git remote as it may leave this machine: `https://user:token@host/...` and `https://token@host/...`Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.log.warn('daemon.no_api_key', { hint: 'run `npx -y @agilemonster/mcp-server bootstrap` in a project folder' });Fix: Pin versions and sources; vendor anything fetched at install time.// Never kill a half-applied edit or a running deployment; give up waiting after 30 minutes.Fix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.// The model may only choose from the files it was offered: a path it made up (../../.ssh/…, .env) is droppedFix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.return 'Background runner: not installed. Cards are worked only while your AI coding tool is open in the project folder.\nInstall it: npx -y @agilemonster/mcp-server service install';Fix: Pin versions and sources; vendor anything fetched at install time.lines.push('', 'To sign in the agents that are installed: npx -y @agilemonster/mcp-server agents login');Fix: Pin versions and sources; vendor anything fetched at install time.deps.print(ok ? `✅ ${name(s)} is signed in and can work cards.` : `⚠️ ${name(s)} is still not signed in. You can try again later with: npx -y @agilemonster/mcp-server agents login`);Fix: Pin versions and sources; vendor anything fetched at install time.… ...filesPayload, '__COMPILER_ERROR_TO_FIX__.txt': `Your previous edits were reverted because the project no longer built:\n${buildErrorExcerpt(buildCheck.errorOutput || '', 40, 3500)}\nReturn the complete set of edits again with this fixe…Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.[['netlify.toml'], 'npx netlify deploy --prod', 'Netlify config (netlify.toml)'],Fix: Pin versions and sources; vendor anything fetched at install time.* The service runs its own copy of the package from ~/.agilemonster/runner, so it does not depend on an npxFix: Pin versions and sources; vendor anything fetched at install time.[['firebase.json'], 'npx firebase deploy', 'Firebase config (firebase.json)'],Fix: Pin versions and sources; vendor anything fetched at install time.`Run "npx -y @agilemonster/mcp-server bootstrap" first so we verify this folder matches the card's board.`,Fix: Pin versions and sources; vendor anything fetched at install time.: spawn('sh', ['-c', 'npm install -g @agilemonster/mcp-server@latest >/dev/null 2>&1 || npx -y @agilemonster/mcp-server@latest --version >/dev/null 2>&1'], {Fix: Pin the exact version (`[email protected]`, `==1.2.3`) so every install gets the bytes that were reviewed.: spawn('sh', ['-c', 'npm install -g @agilemonster/mcp-server@latest >/dev/null 2>&1 || npx -y @agilemonster/mcp-server@latest --version >/dev/null 2>&1'], {Fix: Pin versions and sources; vendor anything fetched at install time.message: 'No API key is saved on this computer yet. Run `npx -y @agilemonster/mcp-server bootstrap` in your project folder first.',Fix: Pin versions and sources; vendor anything fetched at install time.…working on any task:\n\n1. **Context & Discovery**:\n - Inspect `.agilemonster.json` in the project root if present.\n - Run `agilemonster_get_context` to retrieve the board ID, list columns (`Backlog`, `In Progress`, `Review`, `Done`), an…Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.[['vercel.json'], 'npx vercel --prod', 'Vercel config (vercel.json)'],Fix: Pin versions and sources; vendor anything fetched at install time.? '2. Add a card that says what you want. No coding agent is ready on this computer yet, so finish that first: npx -y @agilemonster/mcp-server agents login'Fix: Pin versions and sources; vendor anything fetched at install time.installHint: 'curl https://cursor.com/install -fsS | bash',Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.* The service runs its own copy of the package from ~/.agilemonster/runner, so it does not depend on an npxFix: Pin versions and sources; vendor anything fetched at install time.console.log(`✅ Question posted to task: ${result.title}`);Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.deps.print(`Not signed in: ${signedOut.join(', ')}. A card assigned to ${signedOut.length === 1 ? 'it' : 'one of them'} waits until you sign in (npx -y @agilemonster/mcp-server agents login).`);Fix: Pin versions and sources; vendor anything fetched at install time.// updates its own copy in place; a runner started any other way refreshes the global install / npx cache.Fix: Pin versions and sources; vendor anything fetched at install time.`Please run "npx -y @agilemonster/mcp-server bootstrap" in this folder or call agilemonster_get_context first to bind the right board.`,Fix: Pin versions and sources; vendor anything fetched at install time.const KEEP_OPEN_HINT = 'Until then, cards are worked while your AI coding tool is open in the project folder, or while this runs in a terminal: npx -y @agilemonster/mcp-server pulse-daemon';Fix: Pin versions and sources; vendor anything fetched at install time.' To replace it with the standard one: npx -y @agilemonster/mcp-server service install --force',Fix: Pin versions and sources; vendor anything fetched at install time.console.log(' cd /path/to/other-project && npx -y @agilemonster/mcp-server bootstrap\n');Fix: Pin versions and sources; vendor anything fetched at install time.console.log('No board selected. Run "npx -y @agilemonster/mcp-server bootstrap" again to connect a board.');Fix: Pin versions and sources; vendor anything fetched at install time.Cost to the agent
Tokens estimated at four characters each. The tool list is re-read by the agent on every turn, so it is the number to compare between servers that do the same job: ranked across the index.
Known vulnerabilities
No advisories in OSV for @agilemonster/mcp-server@1.0.32 as of 43 min ago. This is the package itself, not its dependencies.
What would make this Verified
22 points to 80 · weights: behavior 45%, static 25%, prompt 15%, publisher 15%- Pipe-to-shell pattern≈ +9 on the totalBuild commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
- Unclaimed publisher≈ +8 on the totalClaim agilemonster: a verified publisher gets +50 on publisher trust. It is free and usually instant with GitHub sign-in.
- Touches files outside the project≈ +7 on the totalKeep reads and writes inside the working directory, or declare the exact paths in `filesystem:` and explain why in the README.
- Access to sensitive file paths≈ +4 on the totalStop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.
- Hidden zero-width characters detected≈ +4 on the totalKeep SKILL.md to visible, descriptive text. Remove comments and encoded text that address the agent.
- URL with embedded credentials≈ +4 on the totalStop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.