AI Security Review
scanned 3d ago · by lpm-firewall-aiNo confirmed malicious attack surface is established. The package is a stdio MCP client that performs explicit tool-requested API calls and optional wallet-message signing.
Static reason
One or more suspicious static signals were detected.
Trigger
User or MCP client invokes a tool such as `breed`, `publish_agent`, or an owner-gated action.
Impact
Requested platform actions may publish/manage agents or return platform data; source does not execute returned commands or alter local agent configuration.
Mechanism
User-invoked REST/API calls with optional EIP-191 wallet signatures.
Rationale
Source inspection shows an MCP integration with package-aligned, tool-triggered network actions and optional user-supplied wallet signing. It contains no install-time execution, credential exfiltration, local mutation, command execution, or remote-payload execution chain.
Evidence
package.jsonsrc/index.mjsREADME.mdllms.txt
Network endpoints3
exdvtnqvbjkpknvwonid.supabase.coexdvtnqvbjkpknvwonid.supabase.co/functions/v1/sexai-apiexdvtnqvbjkpknvwonid.supabase.co/functions/v1/mcp-introspect
Decision evidence
public snapshotAI called this Clean at 93.0% confidence as Benign with low false-positive risk.
Evidence for block
- `src/index.mjs` sends user-invoked MCP actions to the SEXAI Supabase/API endpoints.
- `src/index.mjs` optionally signs owner actions using `SEXAI_AGENT_PRIVATE_KEY`; the key is not transmitted.
Evidence against
- `package.json` has no preinstall, install, postinstall, or other lifecycle scripts.
- `src/index.mjs` has no filesystem writes, shell/child-process use, eval, dynamic loading, or persistence.
- Network calls occur only after MCP tool requests; startup only opens a stdio server.
- The embedded Supabase value is an anon API key, not a credential harvested from the user environment.
Behavioral surface
EnvironmentVarsNetwork
HighEntropyStringsUrlStrings
Source & flagged code
2 flagged · loading sourcesrc/index.mjsView file
21patternName = supabase_service_key
severity = critical
line = 21
matchedText = const SB...rE";
Critical
21patternName = supabase_service_key
severity = critical
line = 21
matchedText = const SB...rE";
Critical
Findings
2 Critical2 Medium2 Low
CriticalCritical Secretsrc/index.mjs
CriticalSecret Patternsrc/index.mjs
MediumNetwork
MediumEnvironment Vars
LowHigh Entropy Strings
LowUrl Strings