registry  /  evomcp  /  0.1.1

evomcp@0.1.1

Evolutionary MCP server — cheap-model fanout (best-of-N + repair chains) and scalar-fitness evolution, gated by dod-guard verification. Keeps token-burning out of the agent's main context.

AI Security Review

scanned 2d ago · by lpm-firewall-ai

Review flagged AI-agent configuration or capability changes. This remains warn-only unless evidence shows foreign-agent hijack through preinstall/install/postinstall, hidden persistence, exfiltration, remote code execution, or other concrete malicious behavior.

Static reason
One or more suspicious static signals were detected.
Trigger
User or connected MCP client invokes `solve` or `evolve`.
Impact
A trusted MCP client can cause shell execution and project-file changes within its chosen `cwd`; this is a dangerous but declared capability.
Mechanism
User-directed agent orchestration with arbitrary verification commands and Git patch application.
Rationale
Source inspection confirms a broad, user-invoked AI-agent execution and repository-mutation capability, but no concrete malicious behavior or install-time control-surface takeover. Warn for the dangerous dual-use capability.
Evidence
package.jsondist/bundle.js.mcp.json.claude-plugin/plugin.json
Network endpoints2
127.0.0.1:3200api.deepseek.com/anthropic

Decision evidence

public snapshot
AI called this Suspicious at 89.0% confidence as Dangerous Capability with low false-positive risk.
Evidence for warning
  • `dist/bundle.js` exposes MCP `solve`/`evolve` tools that launch `claude -p`.
  • Tool inputs accept arbitrary `verify_cmd` and `fitness_cmd`, executed with `execSync`.
  • Evolution workflow stashes, checks out, cleans, applies Git patches, and reads target files.
  • Runtime passes `DEEPSEEK_API_KEY` to Claude/DeepSeek configuration.
Evidence against
  • `package.json` has only `prepublishOnly`; no install-time lifecycle hook.
  • MCP server starts over stdio and waits for explicit tool calls.
  • Network targets are a local proxy and DeepSeek API, matching declared functionality.
  • No credential harvesting, hidden exfiltration, persistence, or foreign agent-config mutation found.
Behavioral surface
Source
ChildProcessEnvironmentVarsEvalFilesystemNetworkShell
Supply chain
HighEntropyStringsUrlStrings
ManifestNo manifest risk signals triggered.
scanned 1 file(s), 738 KB of source, external domains: 127.0.0.1, api.deepseek.com, github.com, json-schema.org, raw.githubusercontent.com, spec.openapis.org, stackoverflow.com, tools.ietf.org, www.safaribooksonline.com, www.w3.org

Source & flagged code

3 flagged · loading source
dist/bundle.jsView file
21100// src/agent.ts L21101: import { spawn, execSync } from "node:child_process"; L21102: import * as path from "node:path";
High
Child Process

Package source references child process execution.

dist/bundle.jsView on unpkg · L21100
21090const json = serializeMessage(message); L21091: if (this._stdout.write(json)) { L21092: resolve2(); ... L21100: // src/agent.ts L21101: import { spawn, execSync } from "node:child_process"; L21102: import * as path from "node:path"; ... L21104: import * as os from "node:os"; L21105: var PROXY_URL = "http://127.0.0.1:3200"; L21106: var DEEPSEEK_ANTHROPIC_ENDPOINT = "https://api.deepseek.com/anthropic";
High
Command Output Exfiltration

Source combines command execution, command-output handling, and outbound requests; review data flow before blocking.

dist/bundle.jsView on unpkg · L21090
2941sourceCode = this.opts.code.process(sourceCode, sch); L2942: const makeValidate = new Function(`${names_1.default.self}`, `${names_1.default.scope}`, sourceCode); L2943: const validate = makeValidate(this, this.scope.get());
Low
Eval

Package source references a known benign dynamic code generation pattern.

dist/bundle.jsView on unpkg · L2941

Findings

3 High2 Medium6 Low
HighChild Processdist/bundle.js
HighShell
HighCommand Output Exfiltrationdist/bundle.js
MediumNetwork
MediumEnvironment Vars
LowNon Install Lifecycle Scripts
LowScripts Present
LowEvaldist/bundle.js
LowFilesystem
LowHigh Entropy Strings
LowUrl Strings