bolt-mcp@0.2.0
VERIFIEDPublisher claims: "Enables coding agents to surgically harvest licensed upstream code, scaffold adapters behind canonical contracts, audit seams, verify live behavior, and promote or mount proven components while preserving the host architecture." 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
- no credential variables read in the code
- Where it talks to
- no vendor host named in the code
- What the honeypot saw
- no credential files read · no network
- What we could not test
- what the tools do when called with real credentials
Reasonable to connect. No credential asked for, no third-party host named, Server started and answered tools/list.
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-11 and scored it 80/100 (Verified). It did what it claims and nothing else we could detect: no undeclared network egress, no credential reads, no persistent instruction writes. Summary: no network, touches nothing outside the project, writes no memory.
Behavior trace
Honeypot run · 24 s · 2 scenarios · 0 deviationsStatic findings
return { ...env, NODE_ENV: 'test', PYTHONDONTWRITEBYTECODE: '1' };Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.if (relative.split('/').some(p => ignored.has(p) || p === '.env' || p.startsWith('.env.'))) throw new Error(`Excluded source path: ${relative}`);Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.… sys\nimport time\nfrom pathlib import Path\ndef execute(payload):\n child = subprocess.Popen([sys.executable, '-c', 'import time; time.sleep(60)'])\n Path('descendant.pid…Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.…ngerous() {\n eval('1'); new Function('return 1');\n return process.env;\n}\n// subprocess.Popen([])\n// os.environ\n"; const options = await setup(t, code); const result = …Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.process = subprocess.Popen([sys.executable, '-B', str(Path(__file__).resolve()), '--bolt-worker'],Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.const kill = () => {Fix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.const secret = path.join(outside, 'secret.txt'), output = path.join(outside, 'output.txt'); fs.writeFileSync(secret, 'private fixture');Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.…dFileSync(file, 'utf8')); assert.equal(config.other, true); assert.equal(config.mcpServers.existing.command, 'example'); assert.equal(config.mcpServers['bolt-mcp'].command, process.execPath); result = aw…Fix: Namespace tool names and keep tool descriptions literal; no instructions to the agent inside them.assert.equal(fs.readFileSync(path.join(s.projectPath, 'allowed.txt'), 'utf8'), 'allowed'); assert.equal(fs.existsSync(output), false);Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.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
Vulnerability advisories (OSV) cover npm and PyPI packages; this registry has no advisory database.