Is Ads MCP server safe?
- Node.js shell/command execution
- Remote pipe-to-shell execution
- MCP tool surface detected
repo is an AI mcp_server analyzed by SkillTotal's deterministic static scanner. The scan found no malicious indicators, though 3 risky constructs are reported for review. It can: mcp tools detected and shell execution — capabilities are what the code can do, not a verdict on intent. Risk score 20/100 (low).
repo
Automated static-analysis result. It can contain false positives and false negatives, and is not a claim about the intent of Ads MCP server's authors. Report a false positive.
Behavioral traits
How this component maps to the CSA agentic threat model. Descriptive — it never affects the risk score.
Findings (3)
The component can run operating-system commands or spawn processes.
import { execSync } from 'child_process';const files = execSync("git ls-files '*.md'", { encoding: 'utf8' })Why it matters: Powerful and often legitimate — confirm the commands aren't built from untrusted input.
Fix: Confirm the command and its arguments are fully controlled and not derived from untrusted input; prefer execFile with an argument array.
A remotely fetched payload is piped straight into a shell (e.g. `curl … | bash`). The component runs code downloaded at runtime, which is unreviewable and a common second-stage delivery vector. (3 occurrence(s) shown as evidence).
found="$(grep -rlE 'curl |wget |npx |npm install|bash <\(|\| *(ba)?sh( |$)' plugins/claude 2>/dev/null || true)"
Fix: Download to a file, inspect it, and run a pinned/verified copy instead of piping a network response directly into a shell.
An MCP tool surface (manifest or tool definitions) was found.
"mcpServers": {"mcpServers": {"tools": true,
"mcpServers": {"mcpServers": {"mcpServers": {"mcpServers": {"mcpServers": {Why it matters: Just context — review which tools it offers and their permissions.
Fix: Review the declared MCP tools and their permissions.
Check your own component
Run the same evidence-backed scan on any MCP server, agent skill, or package.
Scan your own componentHow we determine this: deterministic static analysis (regex + AST), evidence-anchored, no code execution. Methodology →