AI Security Review
scanned 23h ago · by lpm-firewall-aiNo confirmed malicious attack surface. The package is a local stdio MCP server serving baked EPS API documentation, with optional env-configured bundle fetch and a benign npm update check.
Static reason
One or more suspicious static signals were detected.
Trigger
User runs bin eps-context-mcp via npx/npm or an MCP client.
Impact
Provides EPS API context to the caller; no persistence, credential harvesting, or control-surface mutation found.
Mechanism
Read-only MCP documentation server with optional remote JSON bundle load.
Rationale
Source inspection shows a package-aligned MCP documentation server with read-only tools, no lifecycle install execution, and no writes to foreign AI-agent control surfaces. The scanner hits are explained by documented signing snippets, API examples, an update check, and an opt-in env-specified bundle URL.
Evidence
package.jsondist/index.jsdata/eps.jsonREADME.md
Network endpoints1
registry.npmjs.org/@ekoindia/eps-context-mcp/latest
Decision evidence
public snapshotAI called this Clean at 93.0% confidence as Benign with low false-positive risk.
Evidence for block
- dist/index.js performs a startup update check to npm registry unless EPS_NO_UPDATE_CHECK is set.
- dist/index.js can fetch a JSON bundle from user-supplied EPS_BUNDLE_URL, falling back to baked data.
Evidence against
- package.json has no install/postinstall/preinstall hooks; prepublishOnly is publish-time only.
- dist/index.js registers read-only MCP tools over stdio and does not write project/home agent config files.
- No child_process, eval/vm/Function, shell execution, native/binary loading, or destructive file operations found.
- Credential-looking strings in dist/index.js and data/eps.json are signing examples/API documentation, not harvested or exfiltrated secrets.
- Runtime file reads are limited to package data/eps.json and package.json.
Behavioral surface
ChildProcessCryptoEnvironmentVarsFilesystemNetwork
HighEntropyStringsUrlStrings
Source & flagged code
3 flagged · loading sourcedata/eps.jsonView file
7536patternName = supabase_service_key
severity = critical
line = 7536
matchedText = "example...HbA"
Critical
Critical Secret
Package contains a critical-looking secret pattern.
data/eps.jsonView on unpkg · L75367536patternName = supabase_service_key
severity = critical
line = 7536
matchedText = "example...HbA"
Critical
7582patternName = supabase_service_key
severity = critical
line = 7582
matchedText = "wallet_...bA",
Critical
Findings
3 Critical2 Medium5 Low
CriticalCritical Secretdata/eps.json
CriticalSecret Patterndata/eps.json
CriticalSecret Patterndata/eps.json
MediumNetwork
MediumEnvironment Vars
LowNon Install Lifecycle Scripts
LowScripts Present
LowFilesystem
LowHigh Entropy Strings
LowUrl Strings