neuromcp
npm
v0.29.2
Source verified
Published by adelelo13 — publish provenance cryptographically ties this package to that repository. That is proof of origin, not an official vendor package.
Semantic memory for AI agents — local-first MCP server with hybrid search, governance, and consolidation
The grade answers one question — how safe is this server for you to adopt — so it is computed in two auditable stages. Nothing below is an opinion or an LLM's guess; every line is a real term the deterministic engine applied, and the same input always yields the same number.
1. Threat score — 100 − 1.2 = 99. What the published surface and source actually contain:
| Points | What was found | Category |
|---|---|---|
| −1.2 | Package runs install-time scripts MTC-SUP-010 | supply-chain |
2. Client adoption risk — 99 − 6 = 93. Three small, subtract-only factors that reflect your risk in adopting it — a clean scan proves less on a powerful, unverified or barely-inspectable package, so the grade says so plainly:
| Points | Adoption-risk factor |
|---|---|
| −6 | capability blast radius (high) — client exposure if the model is manipulated |
Capability observations and info notes are shown under Findings but never scored.
Open any row's finding below for the file, line and evidence behind a deduction.
In the server's implementation (`bin/doctor.mjs:21`): Spawning a shell/process is command-execution capability; with unsanitized tool input it is command injection / RCE. This is read from the code itself — not from the tool description — so a poisoned server cannot hide it behind honest-looking metadata.
Evidence: rt { spawn } from 'node:child_process'; import { readFileSync, writeFileSync, existsSync } from 'node:fs'; import { crea
Fix: Review this call path: confirm it never receives unsanitized tool input, constrain it, or remove it. Treat a server whose code reaches these sinks as high-capability regardless of what its tools claim.
Location: server bin/doctor.mjs
In the server's implementation (`bin/enable-consolidation.mjs:25`): Spawning a shell/process is command-execution capability; with unsanitized tool input it is command injection / RCE. This is read from the code itself — not from the tool description — so a poisoned server cannot hide it behind honest-looking metadata.
Evidence: ecFileSync } from 'node:child_process'; import { fileURLToPath } from 'node:url'; const __dirname = dirname(fileURLToPa
Fix: Review this call path: confirm it never receives unsanitized tool input, constrain it, or remove it. Treat a server whose code reaches these sinks as high-capability regardless of what its tools claim.
Location: server bin/enable-consolidation.mjs
In the server's implementation (`bin/enable-daemon.mjs:38`): Spawning a shell/process is command-execution capability; with unsanitized tool input it is command injection / RCE. This is read from the code itself — not from the tool description — so a poisoned server cannot hide it behind honest-looking metadata.
Evidence: ecFileSync } from 'node:child_process'; import { fileURLToPath } from 'node:url'; import { resolveStableNodeBin } from '
Fix: Review this call path: confirm it never receives unsanitized tool input, constrain it, or remove it. Treat a server whose code reaches these sinks as high-capability regardless of what its tools claim.
Location: server bin/enable-daemon.mjs
In the server's implementation (`bin/enable-zombie-cleanup.mjs:36`): Spawning a shell/process is command-execution capability; with unsanitized tool input it is command injection / RCE. This is read from the code itself — not from the tool description — so a poisoned server cannot hide it behind honest-looking metadata.
Evidence: ecFileSync } from 'node:child_process'; import { fileURLToPath } from 'node:url'; const __dirname = dirname(fileURLToPa
Fix: Review this call path: confirm it never receives unsanitized tool input, constrain it, or remove it. Treat a server whose code reaches these sinks as high-capability regardless of what its tools claim.
Location: server bin/enable-zombie-cleanup.mjs
In the server's implementation (`bin/init-wiki.mjs:22`): Spawning a shell/process is command-execution capability; with unsanitized tool input it is command injection / RCE. This is read from the code itself — not from the tool description — so a poisoned server cannot hide it behind honest-looking metadata.
Evidence: ecFileSync } from 'node:child_process'; import { fileURLToPath } from 'node:url'; import { seedObsidianVault } from './o
Fix: Review this call path: confirm it never receives unsanitized tool input, constrain it, or remove it. Treat a server whose code reaches these sinks as high-capability regardless of what its tools claim.
Location: server bin/init-wiki.mjs
In the server's implementation (`bin/init.mjs:41`): Spawning a shell/process is command-execution capability; with unsanitized tool input it is command injection / RCE. This is read from the code itself — not from the tool description — so a poisoned server cannot hide it behind honest-looking metadata.
Evidence: ecFileSync } from 'node:child_process'; import { fileURLToPath, pathToFileURL } from 'node:url'; const __dirname = dirn
Fix: Review this call path: confirm it never receives unsanitized tool input, constrain it, or remove it. Treat a server whose code reaches these sinks as high-capability regardless of what its tools claim.
Location: server bin/init.mjs
In the server's implementation (`bin/neuromcp-connect.mjs:31`): Spawning a shell/process is command-execution capability; with unsanitized tool input it is command injection / RCE. This is read from the code itself — not from the tool description — so a poisoned server cannot hide it behind honest-looking metadata.
Evidence: , execFile } from 'node:child_process'; import { platform } from 'node:os'; import { pathToFileURL } from 'node:url'; c
Fix: Review this call path: confirm it never receives unsanitized tool input, constrain it, or remove it. Treat a server whose code reaches these sinks as high-capability regardless of what its tools claim.
Location: server bin/neuromcp-connect.mjs
In the server's implementation (`dist/chunk-IAJG7PHQ.js:35`): Spawning a shell/process is command-execution capability; with unsanitized tool input it is command injection / RCE. This is read from the code itself — not from the tool description — so a poisoned server cannot hide it behind honest-looking metadata.
Evidence: import { spawn } from "child_process"; async function extractEntitiesViaLLM(content, options = {}) { const { timeoutM
Fix: Review this call path: confirm it never receives unsanitized tool input, constrain it, or remove it. Treat a server whose code reaches these sinks as high-capability regardless of what its tools claim.
Location: server dist/chunk-IAJG7PHQ.js
In the server's implementation (`templates/hooks/neuromcp-auto-capture.js:20`): Spawning a shell/process is command-execution capability; with unsanitized tool input it is command injection / RCE. This is read from the code itself — not from the tool description — so a poisoned server cannot hide it behind honest-looking metadata.
Evidence: ecFileSync } = require('child_process'); const HOME = process.env.HOME || process.env.USERPROFILE || '/tmp'; const DB_P
Fix: Review this call path: confirm it never receives unsanitized tool input, constrain it, or remove it. Treat a server whose code reaches these sinks as high-capability regardless of what its tools claim.
Location: server templates/hooks/neuromcp-auto-capture.js
In the server's implementation (`bin/query.mjs:88`): Loading a module chosen at runtime (from a variable) can pull in and run attacker-influenced code paths. This is read from the code itself — not from the tool description — so a poisoned server cannot hide it behind honest-looking metadata.
Evidence: ait Promise.all([ import(distPath), import(join(__dirname, '..', 'dist', 'config.js')), import(join(__
Fix: Review this call path: confirm it never receives unsanitized tool input, constrain it, or remove it. Treat a server whose code reaches these sinks as high-capability regardless of what its tools claim.
Location: server bin/query.mjs
In a packaging/dev/install script (shipped, but not the server runtime) (`scripts/consolidate-sessions.py:208`): Spawning a shell/process is command-execution capability; with unsanitized tool input it is command injection / RCE. This is read from the code itself — not from the tool description — so a poisoned server cannot hide it behind honest-looking metadata.
Evidence: "" try: r = subprocess.run( ["claude", "-p", "--no-session-persistence", "--model",
Fix: Review this call path: confirm it never receives unsanitized tool input, constrain it, or remove it. Treat a server whose code reaches these sinks as high-capability regardless of what its tools claim.
Location: server scripts/consolidate-sessions.py
"neuromcp" executes postinstall script(s) at install time. An install hook runs at install time; most are routine build/setup, but review what it does before trusting it.
Evidence: node scripts/download-model.mjs || true
Fix: Review the scripts; install with --ignore-scripts where possible and vet what they do.
Location: package neuromcp
Each tool and what it can reach — statically extracted from the published source.
agent_conflictsno sensitive capabilitybackfill_embeddingsno sensitive capabilitycite_memoriesno sensitive capabilitycluster_memoriesno sensitive capabilitycompress_memoriesno sensitive capabilitycompute_centralityno sensitive capabilityconsolidateno sensitive capabilitycreate_entityno sensitive capabilitycreate_relationno sensitive capabilityend_episodeno sensitive capabilityexport_memoriesno sensitive capabilityfind_expertno sensitive capabilityfind_transferableno sensitive capabilityforget_memoryno sensitive capabilitygenerate_reflectionno sensitive capabilityget_cluster_memoriesno sensitive capabilityget_episodeno sensitive capabilityimport_memoriesno sensitive capabilityinit_reviewsno sensitive capabilitylist_clustersno sensitive capabilitylist_episodesno sensitive capabilitylog_retrievalno sensitive capabilitymemory_statsno sensitive capabilitymemory_timelineno sensitive capabilityquery_graphno sensitive capabilityrecall_answerno sensitive capabilityrecall_memoryno sensitive capabilityregister_agentno sensitive capabilityreview_memoryno sensitive capabilityreview_queueno sensitive capabilitysearch_allno sensitive capabilitysearch_claimsno sensitive capabilitysearch_memoryno sensitive capabilitysearch_verbatimno sensitive capabilitystart_episodeno sensitive capabilitystore_memoryno sensitive capabilitystore_verbatimno sensitive capabilitysummarize_clusterno sensitive capabilitysummarize_episodeno sensitive capabilitytransfer_memoriesno sensitive capabilityupdate_importanceno sensitive capabilityusefulness_statsno sensitive capabilityverbatim_statsno sensitive capabilitywiki_briefingno sensitive capabilitywiki_ingestno sensitive capabilitywiki_lintno sensitive capabilityScan history per published version. The engine is deterministic — the same version always yields the same score, so a changed score means the package itself changed.
| Version | Score | Findings | Engine | Scanned |
|---|---|---|---|---|
v0.29.2 latest |
A 93/100 | 12 | 1.13.0 | 2026-09-07 |
Show this server's live Trust Score in your README, docs or website. The badge is served straight from the registry and updates automatically after every rescan — no API key needed. It links back to this page, so anyone who sees the grade can also read the findings behind it instead of taking a number on faith.
The score above is reproducible: the same package version always yields the same result. Run it locally or over the free API — no account, no LLM, fully deterministic.
npx mcptrustchecker scan neuromcp --online
FDA device & vehicle recall risk for AI agents: recall history, MAUDE trend, risk score.
Open-source MCP server exposing Agent402.Tools' catalog — 500+ strong: 400+ self-hostable tools + 100 multi-tool skill packs (security-audit, trend-analysis, structured-scrape, decode-blob, forecasting-bake-off) for AI agents — browser, web search & answe
Zero-dependency MCP server that gives AI agents a self-updating project memory in AGENTS.md. Returns merge instructions instead of mutating state, so every change is a reviewable diff.
MCP Apps UI resources and server helpers for n8n
MCP server providing comprehensive access to BookStack knowledge management system
MCP server for tracking achievements with STAR methodology