Back to skill

Security audit

composio-mcp

Security checks for vulnerabilities and agentic risk

Overview

The skill has a coherent Composio setup purpose, but its helper can persistently modify multiple agent MCP configs and copy a plaintext consumer key into each one by default.

Install only if you intend this agent to use Composio with the external apps you connect. Prefer manual or single-platform setup, run the helper with --dry-run and --platform, store keys through environment variables or a secret store where supported, review every config diff before applying it, avoid --skip-checks for mutating tools, and rotate the Composio consumer key if it may have been exposed.

Vulnerability Patterns
  • Insecure Skill Coding PracticesFinds exploitable flaws such as hardcoded secrets or command injection
  • Skill Instruction HijackingAlters the agent's session goals or safety constraints when the skill loads
  • Agent Memory PoisoningWrites attacker-controlled rules into memory that affect later sessions
  • Remote Payload Retrieval and ExecutionFetches external code whose behavior can change after review
  • Embedded Malicious CodeShips malicious scripts inside the skill and executes them locally
Findings (2)

T09 · Insecure Skill Coding Practices

Warning
Location
scripts/setup_composio_mcp.sh:40
Finding

Consumer Key Exposed Through Visible Terminal Input and Process Arguments

Content
View full analysis
&2; exit 1; } fi ``` The key is subsequently supplied to Python as a command-line argument: ```bash python3 - "$path" "$jsonpath" "$url_field" "$format" "$KEY" "$REMOVE" <<'PY' import json, sys path, jsonpath, url_field, fmt, key, remove = sys.argv[1:7] ``` ### Technical Analysis The interactive prompt uses `read -r` without silent mode, causing the complete consumer key to be displayed as the user types it. This can expose the credential through shoulder surfing, terminal recording, screen sharing, or retained terminal-session logs. The script also passes the complete key to the Python subprocess through `argv`. During the lifetime of that subprocess, the value may be available to local process-inspection mechanisms such as `ps` or `/proc//cmdline`, subject to the operating system's process visibility restrictions. This behavior conflicts with the Skill's documented instruction not to log or expose `ak_*` or `ck_*` credentials. ### Attack Path 1. A user runs `setup_composio_mcp.sh` without setting `COMPOSIO_CONSUMER_KEY`. 2. The script prompts for the consumer key using visible terminal input. 3. A local observer, terminal recorder, screen-sharing participant, or monitoring tool captures the key. 4. Alternatively, a local process capable of inspecting the Python subprocess command line reads the key from its argument list. 5. The captured key is used to authenticate to `https://connect.composio.dev/mcp`. 6. The attacker obtains access to the Composio MCP capabilities and connected application accounts authorized for that consumer key. ### Impact Assessment Disclosure o ...[truncated 493 chars]
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Warning
Location
scripts/setup_composio_mcp.sh:56
Finding

Default Setup Replicates a Plaintext Credential Across Every Detected Agent Configuration

Content
View full analysis
Remediation
View remediation
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Tool MisuseTool Parameter Abuse, Chaining Abuse, Unsafe Defaults
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
Findings (55)

Tool Parameter Abuse

High
Category
Tool Misuse
Confidence
91% confidence
Finding

The skill documents flags like --skip-connection-check, --skip-tool-params-check, and especially --skip-checks, which disable safety and validation layers before tool execution. In a skill that can trigger actions across external apps, encouraging bypasses of connection and schema validation materially increases the risk of malformed, unintended, or unauthorized operations.

Content

Scanner excerpt · SKILL.md (reported line 185)May include surrounding context.

md
| `--parallel` / `-p` | Execute multiple independent tool calls in the same invocation |
| `--skip-connection-check` | Skip the connected-account check |
| `--skip-tool-params-check` | Skip input validation against cached schema |
| `--skip-checks` | Skip both checks above |

### `composio run` — scripting without SDK

MCP Config Access

High
Category
Agent Snooping
Confidence
94% confidence
Finding

The skill provides instructions to edit MCP client configuration files that determine what remote tool servers the agent will trust and connect to. Because MCP config is security-sensitive, automated or unchecked modification can persistently alter agent behavior and expose future sessions to hostile servers or credential misuse.

Content

Scanner excerpt · SKILL.md (reported line 320)May include surrounding context.

md
|----------|-------------|----------|-----------|--------|
| Claude Code | `~/.claude.json` | `mcpServers` | `url` | `type: "http"` |
| Claude Desktop | `claude_desktop_config.json` | `mcpServers` | `url` | — |
| Cursor | `~/.cursor/mcp.json` | `mcpServers` | `url` | — |
| Devin CLI | `~/.config/devin/mcp_config.json` | `mcpServers` | `url` | `devin mcp add` CLI |
| Devin Desktop | `~/.devin/mcp_config.json` | `mcpServers` | **`serverUrl`** | NOT `url`! |
| OpenCode | `~/.config/opencode/opencode.json` | **`mcp`** | `url` | `type: "remote"`, `environment` not `env` |

MCP Config Access

High
Category
Agent Snooping
Confidence
94% confidence
Finding

This finding is substantively the same risk as other MCP config entries: the skill targets a trusted MCP configuration file for modification. Such changes affect future agent-server trust relationships and can create persistent misconfiguration or unauthorized remote access paths.

Content

Scanner excerpt · SKILL.md (reported line 321)May include surrounding context.

md
| Claude Code | `~/.claude.json` | `mcpServers` | `url` | `type: "http"` |
| Claude Desktop | `claude_desktop_config.json` | `mcpServers` | `url` | — |
| Cursor | `~/.cursor/mcp.json` | `mcpServers` | `url` | — |
| Devin CLI | `~/.config/devin/mcp_config.json` | `mcpServers` | `url` | `devin mcp add` CLI |
| Devin Desktop | `~/.devin/mcp_config.json` | `mcpServers` | **`serverUrl`** | NOT `url`! |
| OpenCode | `~/.config/opencode/opencode.json` | **`mcp`** | `url` | `type: "remote"`, `environment` not `env` |
| Antigravity IDE/CLI | `~/.gemini/config/mcp_config.json` | `mcpServers` | **`serverUrl`** | NOT `url`! Clear cache on uninstall |

MCP Config Access

High
Category
Agent Snooping
Confidence
94% confidence
Finding

By directing edits to another platform's MCP config file, the skill again crosses into modification of privileged agent settings. Persistent config changes are more sensitive than ordinary file writes because they influence subsequent sessions and which external tools the agent can invoke.

Content

Scanner excerpt · SKILL.md (reported line 322)May include surrounding context.

md
| Claude Desktop | `claude_desktop_config.json` | `mcpServers` | `url` | — |
| Cursor | `~/.cursor/mcp.json` | `mcpServers` | `url` | — |
| Devin CLI | `~/.config/devin/mcp_config.json` | `mcpServers` | `url` | `devin mcp add` CLI |
| Devin Desktop | `~/.devin/mcp_config.json` | `mcpServers` | **`serverUrl`** | NOT `url`! |
| OpenCode | `~/.config/opencode/opencode.json` | **`mcp`** | `url` | `type: "remote"`, `environment` not `env` |
| Antigravity IDE/CLI | `~/.gemini/config/mcp_config.json` | `mcpServers` | **`serverUrl`** | NOT `url`! Clear cache on uninstall |
| OpenClaw | OpenClaw config | **`mcp.servers`** | `url` | `transport: "streamable-http"`, `openclaw mcp add` CLI |

Agent Config Directory Access

High
Category
Agent Snooping
Confidence
90% confidence
Finding

The skill instructs access to agent configuration directories such as ~/.gemini/config in order to patch MCP settings. Modifying trusted agent config changes future tool connectivity and trust boundaries, so a mistaken or malicious edit can persistently reroute tool traffic, inject credentials, or enable unintended remote servers.

Content

Scanner excerpt · SKILL.md (reported line 324)May include surrounding context.

md
| Devin CLI | `~/.config/devin/mcp_config.json` | `mcpServers` | `url` | `devin mcp add` CLI |
| Devin Desktop | `~/.devin/mcp_config.json` | `mcpServers` | **`serverUrl`** | NOT `url`! |
| OpenCode | `~/.config/opencode/opencode.json` | **`mcp`** | `url` | `type: "remote"`, `environment` not `env` |
| Antigravity IDE/CLI | `~/.gemini/config/mcp_config.json` | `mcpServers` | **`serverUrl`** | NOT `url`! Clear cache on uninstall |
| OpenClaw | OpenClaw config | **`mcp.servers`** | `url` | `transport: "streamable-http"`, `openclaw mcp add` CLI |

> **Top 3 silent-failure traps:**

MCP Config Access

High
Category
Agent Snooping
Confidence
94% confidence
Finding

This instance again concerns access to a privileged MCP configuration location. The danger is contextual: this skill's purpose is to wire external tool connectivity, so changing MCP config is expected, but it still creates persistent trust and credential-handling changes that deserve strong safeguards.

Content

Scanner excerpt · SKILL.md (reported line 324)May include surrounding context.

md
| Devin CLI | `~/.config/devin/mcp_config.json` | `mcpServers` | `url` | `devin mcp add` CLI |
| Devin Desktop | `~/.devin/mcp_config.json` | `mcpServers` | **`serverUrl`** | NOT `url`! |
| OpenCode | `~/.config/opencode/opencode.json` | **`mcp`** | `url` | `type: "remote"`, `environment` not `env` |
| Antigravity IDE/CLI | `~/.gemini/config/mcp_config.json` | `mcpServers` | **`serverUrl`** | NOT `url`! Clear cache on uninstall |
| OpenClaw | OpenClaw config | **`mcp.servers`** | `url` | `transport: "streamable-http"`, `openclaw mcp add` CLI |

> **Top 3 silent-failure traps:**

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

Scanner excerpt · SKILL.md (reported line 332)May include surrounding context.

md
See **`references/mcp-config.md`** for the exact JSON block per platform.

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

Scanner excerpt · SKILL.md (reported line 495)May include surrounding context.

md
See **`references/mcp-config.md`** for the exact JSON block per platform.

Tool Parameter Abuse

High
Category
Tool Misuse
Confidence
85% confidence
Finding

Tool parameters are crafted to achieve unintended or unsafe behavior. Parameter abuse can bypass intended safety checks (e.g. shell=True, --force, dangerous glob patterns).

Content

Scanner excerpt · SKILL.md (reported line 487)May include surrounding context.

md
| MCP `Authorization required: No Authorization header` | No header at all | Add `x-consumer-api-key` header to the MCP config |
| `composio login` hangs on headless box | Browser flow needs a display | Use `--no-browser --no-wait` then `--key <session>` or `--user-api-key ak_...` |
| Tools appear but execute returns 401 | `require_mcp_api_key` enabled, no `x-api-key` | Add `x-api-key: ak_*` header alongside `x-consumer-api-key` |
| `composio search` returns no results | Cache stale or org not set | `rm -rf ~/.composio/toolkits.json` then retry |

---

Tool Parameter Abuse

High
Category
Tool Misuse
Confidence
90% confidence
Finding

Tool parameters are crafted to achieve unintended or unsafe behavior. Parameter abuse can bypass intended safety checks (e.g. shell=True, --force, dangerous glob patterns).

Content

Scanner excerpt · SKILL.md (reported line 487)May include surrounding context.

md
| MCP `Authorization required: No Authorization header` | No header at all | Add `x-consumer-api-key` header to the MCP config |
| `composio login` hangs on headless box | Browser flow needs a display | Use `--no-browser --no-wait` then `--key <session>` or `--user-api-key ak_...` |
| Tools appear but execute returns 401 | `require_mcp_api_key` enabled, no `x-api-key` | Add `x-api-key: ak_*` header alongside `x-consumer-api-key` |
| `composio search` returns no results | Cache stale or org not set | `rm -rf ~/.composio/toolkits.json` then retry |

---

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

Scanner excerpt · SKILL.md (reported line 498)May include surrounding context.

md
- **`scripts/setup_composio_mcp.sh`** — Detects all installed platforms and patches each with the correct format (handles serverUrl/url, mcp/mcpServers, environ

Tool Parameter Abuse

High
Category
Tool Misuse
Confidence
96% confidence
Finding

The CLI exposes --skip-connection-check, --skip-tool-params-check, and especially --skip-checks, which disable safety validation around account state and tool input schemas. In an agent-integration context, documenting these bypass flags without strong warnings makes it easier for users or automated agents to execute malformed, unsafe, or unintended actions against external services, increasing the chance of unauthorized operations, data corruption, or data leakage.

Content

Scanner excerpt · references/cli-reference.md (reported line 59)May include surrounding context.

md
- `-p, --parallel`: run independent calls concurrently
- `--skip-connection-check`: skip the connected-account check
- `--skip-tool-params-check`: skip input validation against cached schema
- `--skip-checks`: bypass both checks above

**Flow:** `search` → `execute` (with `link` when the toolkit is not connected).

MCP Config Access

High
Category
Agent Snooping
Confidence
90% confidence
Finding

Skill accesses MCP server configuration files (mcp.json). MCP configs contain server URLs, authentication tokens, and tool definitions — reading them allows the skill to discover and potentially abuse other tool integrations.

Content

Scanner excerpt · references/mcp-config.md (reported line 11)May include surrounding context.

md
|----------|-------------|----------|------------------|---------------|-----------|------------------|
| Claude Code | `~/.claude.json` | `mcpServers` | `url` | `command` + `args` | `env` | `type: "http"` / `"stdio"` |
| Claude Desktop | `claude_desktop_config.json` | `mcpServers` | `url` | `command` + `args` | `env` | — (inferred) |
| Cursor | `~/.cursor/mcp.json` | `mcpServers` | `url` | `command` + `args` | `env` | `type: "stdio"` required for stdio |
| Devin CLI | `~/.config/devin/mcp_config.json` | `mcpServers` | `url` | `command` + `args` | `env` | `transport: "http"` (optional) |
| Devin Desktop | `~/.devin/mcp_config.json` | `mcpServers` | **`serverUrl`** | `command` + `args` | `env` | — |
| OpenCode | `~/.config/opencode/opencode.json` | **`mcp`** | `url` | **`command` (single array)** | **`environment`** | `type: "remote"` / `"local"` |

MCP Config Access

High
Category
Agent Snooping
Confidence
90% confidence
Finding

Skill accesses MCP server configuration files (mcp.json). MCP configs contain server URLs, authentication tokens, and tool definitions — reading them allows the skill to discover and potentially abuse other tool integrations.

Content

Scanner excerpt · references/platform-quirks.md (reported line 11)May include surrounding context.

md
|----------|-------------|----------|------------------|---------------|-----------|------------------|
| Claude Code | `~/.claude.json` | `mcpServers` | `url` | `command` + `args` | `env` | `type: "http"` / `"stdio"` |
| Claude Desktop | `claude_desktop_config.json` | `mcpServers` | `url` | `command` + `args` | `env` | — (inferred) |
| Cursor | `~/.cursor/mcp.json` | `mcpServers` | `url` | `command` + `args` | `env` | `type: "stdio"` required for stdio |
| Devin CLI | `~/.config/devin/mcp_config.json` | `mcpServers` | `url` | `command` + `args` | `env` | `transport: "http"` (optional) |
| Devin Desktop | `~/.devin/mcp_config.json` | `mcpServers` | **`serverUrl`** | `command` + `args` | `env` | — |
| OpenCode | `~/.config/opencode/opencode.json` | **`mcp`** | `url` | **`command` (single array)** | **`environment`** | `type: "remote"` / `"local"` |

MCP Config Access

High
Category
Agent Snooping
Confidence
90% confidence
Finding

Skill accesses MCP server configuration files (mcp.json). MCP configs contain server URLs, authentication tokens, and tool definitions — reading them allows the skill to discover and potentially abuse other tool integrations.

Content

Scanner excerpt · references/mcp-config.md (reported line 12)May include surrounding context.

md
| Claude Code | `~/.claude.json` | `mcpServers` | `url` | `command` + `args` | `env` | `type: "http"` / `"stdio"` |
| Claude Desktop | `claude_desktop_config.json` | `mcpServers` | `url` | `command` + `args` | `env` | — (inferred) |
| Cursor | `~/.cursor/mcp.json` | `mcpServers` | `url` | `command` + `args` | `env` | `type: "stdio"` required for stdio |
| Devin CLI | `~/.config/devin/mcp_config.json` | `mcpServers` | `url` | `command` + `args` | `env` | `transport: "http"` (optional) |
| Devin Desktop | `~/.devin/mcp_config.json` | `mcpServers` | **`serverUrl`** | `command` + `args` | `env` | — |
| OpenCode | `~/.config/opencode/opencode.json` | **`mcp`** | `url` | **`command` (single array)** | **`environment`** | `type: "remote"` / `"local"` |
| Antigravity IDE | `~/.gemini/config/mcp_config.json` | `mcpServers` | **`serverUrl`** | `command` + `args` | `env` | — |

MCP Config Access

High
Category
Agent Snooping
Confidence
90% confidence
Finding

Skill accesses MCP server configuration files (mcp.json). MCP configs contain server URLs, authentication tokens, and tool definitions — reading them allows the skill to discover and potentially abuse other tool integrations.

Content

Scanner excerpt · references/platform-quirks.md (reported line 12)May include surrounding context.

md
| Claude Code | `~/.claude.json` | `mcpServers` | `url` | `command` + `args` | `env` | `type: "http"` / `"stdio"` |
| Claude Desktop | `claude_desktop_config.json` | `mcpServers` | `url` | `command` + `args` | `env` | — (inferred) |
| Cursor | `~/.cursor/mcp.json` | `mcpServers` | `url` | `command` + `args` | `env` | `type: "stdio"` required for stdio |
| Devin CLI | `~/.config/devin/mcp_config.json` | `mcpServers` | `url` | `command` + `args` | `env` | `transport: "http"` (optional) |
| Devin Desktop | `~/.devin/mcp_config.json` | `mcpServers` | **`serverUrl`** | `command` + `args` | `env` | — |
| OpenCode | `~/.config/opencode/opencode.json` | **`mcp`** | `url` | **`command` (single array)** | **`environment`** | `type: "remote"` / `"local"` |
| Antigravity IDE | `~/.gemini/config/mcp_config.json` | `mcpServers` | **`serverUrl`** | `command` + `args` | `env` | — |

MCP Config Access

High
Category
Agent Snooping
Confidence
90% confidence
Finding

Skill accesses MCP server configuration files (mcp.json). MCP configs contain server URLs, authentication tokens, and tool definitions — reading them allows the skill to discover and potentially abuse other tool integrations.

Content

Scanner excerpt · references/mcp-config.md (reported line 13)May include surrounding context.

md
| Claude Desktop | `claude_desktop_config.json` | `mcpServers` | `url` | `command` + `args` | `env` | — (inferred) |
| Cursor | `~/.cursor/mcp.json` | `mcpServers` | `url` | `command` + `args` | `env` | `type: "stdio"` required for stdio |
| Devin CLI | `~/.config/devin/mcp_config.json` | `mcpServers` | `url` | `command` + `args` | `env` | `transport: "http"` (optional) |
| Devin Desktop | `~/.devin/mcp_config.json` | `mcpServers` | **`serverUrl`** | `command` + `args` | `env` | — |
| OpenCode | `~/.config/opencode/opencode.json` | **`mcp`** | `url` | **`command` (single array)** | **`environment`** | `type: "remote"` / `"local"` |
| Antigravity IDE | `~/.gemini/config/mcp_config.json` | `mcpServers` | **`serverUrl`** | `command` + `args` | `env` | — |
| Antigravity CLI (agy) | `~/.gemini/config/mcp_config.json` | `mcpServers` | **`serverUrl`** | `command` + `args` | `env` | — |

MCP Config Access

High
Category
Agent Snooping
Confidence
90% confidence
Finding

Skill accesses MCP server configuration files (mcp.json). MCP configs contain server URLs, authentication tokens, and tool definitions — reading them allows the skill to discover and potentially abuse other tool integrations.

Content

Scanner excerpt · references/mcp-config.md (reported line 15)May include surrounding context.

md
| Claude Desktop | `claude_desktop_config.json` | `mcpServers` | `url` | `command` + `args` | `env` | — (inferred) |
| Cursor | `~/.cursor/mcp.json` | `mcpServers` | `url` | `command` + `args` | `env` | `type: "stdio"` required for stdio |
| Devin CLI | `~/.config/devin/mcp_config.json` | `mcpServers` | `url` | `command` + `args` | `env` | `transport: "http"` (optional) |
| Devin Desktop | `~/.devin/mcp_config.json` | `mcpServers` | **`serverUrl`** | `command` + `args` | `env` | — |
| OpenCode | `~/.config/opencode/opencode.json` | **`mcp`** | `url` | **`command` (single array)** | **`environment`** | `type: "remote"` / `"local"` |
| Antigravity IDE | `~/.gemini/config/mcp_config.json` | `mcpServers` | **`serverUrl`** | `command` + `args` | `env` | — |
| Antigravity CLI (agy) | `~/.gemini/config/mcp_config.json` | `mcpServers` | **`serverUrl`** | `command` + `args` | `env` | — |

MCP Config Access

High
Category
Agent Snooping
Confidence
90% confidence
Finding

Skill accesses MCP server configuration files (mcp.json). MCP configs contain server URLs, authentication tokens, and tool definitions — reading them allows the skill to discover and potentially abuse other tool integrations.

Content

Scanner excerpt · references/platform-quirks.md (reported line 13)May include surrounding context.

md
| Claude Desktop | `claude_desktop_config.json` | `mcpServers` | `url` | `command` + `args` | `env` | — (inferred) |
| Cursor | `~/.cursor/mcp.json` | `mcpServers` | `url` | `command` + `args` | `env` | `type: "stdio"` required for stdio |
| Devin CLI | `~/.config/devin/mcp_config.json` | `mcpServers` | `url` | `command` + `args` | `env` | `transport: "http"` (optional) |
| Devin Desktop | `~/.devin/mcp_config.json` | `mcpServers` | **`serverUrl`** | `command` + `args` | `env` | — |
| OpenCode | `~/.config/opencode/opencode.json` | **`mcp`** | `url` | **`command` (single array)** | **`environment`** | `type: "remote"` / `"local"` |
| Antigravity IDE | `~/.gemini/config/mcp_config.json` | `mcpServers` | **`serverUrl`** | `command` + `args` | `env` | — |
| Antigravity CLI (agy) | `~/.gemini/config/mcp_config.json` | `mcpServers` | **`serverUrl`** | `command` + `args` | `env` | — |

MCP Config Access

High
Category
Agent Snooping
Confidence
90% confidence
Finding

Skill accesses MCP server configuration files (mcp.json). MCP configs contain server URLs, authentication tokens, and tool definitions — reading them allows the skill to discover and potentially abuse other tool integrations.

Content

Scanner excerpt · references/platform-quirks.md (reported line 15)May include surrounding context.

md
| Claude Desktop | `claude_desktop_config.json` | `mcpServers` | `url` | `command` + `args` | `env` | — (inferred) |
| Cursor | `~/.cursor/mcp.json` | `mcpServers` | `url` | `command` + `args` | `env` | `type: "stdio"` required for stdio |
| Devin CLI | `~/.config/devin/mcp_config.json` | `mcpServers` | `url` | `command` + `args` | `env` | `transport: "http"` (optional) |
| Devin Desktop | `~/.devin/mcp_config.json` | `mcpServers` | **`serverUrl`** | `command` + `args` | `env` | — |
| OpenCode | `~/.config/opencode/opencode.json` | **`mcp`** | `url` | **`command` (single array)** | **`environment`** | `type: "remote"` / `"local"` |
| Antigravity IDE | `~/.gemini/config/mcp_config.json` | `mcpServers` | **`serverUrl`** | `command` + `args` | `env` | — |
| Antigravity CLI (agy) | `~/.gemini/config/mcp_config.json` | `mcpServers` | **`serverUrl`** | `command` + `args` | `env` | — |

MCP Config Access

High
Category
Agent Snooping
Confidence
90% confidence
Finding

Skill accesses MCP server configuration files (mcp.json). MCP configs contain server URLs, authentication tokens, and tool definitions — reading them allows the skill to discover and potentially abuse other tool integrations.

Content

Scanner excerpt · references/platform-quirks.md (reported line 16)May include surrounding context.

md
| Claude Desktop | `claude_desktop_config.json` | `mcpServers` | `url` | `command` + `args` | `env` | — (inferred) |
| Cursor | `~/.cursor/mcp.json` | `mcpServers` | `url` | `command` + `args` | `env` | `type: "stdio"` required for stdio |
| Devin CLI | `~/.config/devin/mcp_config.json` | `mcpServers` | `url` | `command` + `args` | `env` | `transport: "http"` (optional) |
| Devin Desktop | `~/.devin/mcp_config.json` | `mcpServers` | **`serverUrl`** | `command` + `args` | `env` | — |
| OpenCode | `~/.config/opencode/opencode.json` | **`mcp`** | `url` | **`command` (single array)** | **`environment`** | `type: "remote"` / `"local"` |
| Antigravity IDE | `~/.gemini/config/mcp_config.json` | `mcpServers` | **`serverUrl`** | `command` + `args` | `env` | — |
| Antigravity CLI (agy) | `~/.gemini/config/mcp_config.json` | `mcpServers` | **`serverUrl`** | `command` + `args` | `env` | — |

Agent Config Directory Access

High
Category
Agent Snooping
Confidence
90% confidence
Finding

Skill reads from agent configuration directories (.claude/, .codex/, .gemini/). These directories may contain API keys, personal settings, and other credentials that the skill has no legitimate need to access.

Content

Scanner excerpt · references/mcp-config.md (reported line 15)May include surrounding context.

md
| Devin CLI | `~/.config/devin/mcp_config.json` | `mcpServers` | `url` | `command` + `args` | `env` | `transport: "http"` (optional) |
| Devin Desktop | `~/.devin/mcp_config.json` | `mcpServers` | **`serverUrl`** | `command` + `args` | `env` | — |
| OpenCode | `~/.config/opencode/opencode.json` | **`mcp`** | `url` | **`command` (single array)** | **`environment`** | `type: "remote"` / `"local"` |
| Antigravity IDE | `~/.gemini/config/mcp_config.json` | `mcpServers` | **`serverUrl`** | `command` + `args` | `env` | — |
| Antigravity CLI (agy) | `~/.gemini/config/mcp_config.json` | `mcpServers` | **`serverUrl`** | `command` + `args` | `env` | — |
| OpenClaw | OpenClaw config | **`mcp.servers`** | `url` + `transport` | `command` + `args` | `env` | `transport: "streamable-http"` / `"stdio"` |

Agent Config Directory Access

High
Category
Agent Snooping
Confidence
90% confidence
Finding

Skill reads from agent configuration directories (.claude/, .codex/, .gemini/). These directories may contain API keys, personal settings, and other credentials that the skill has no legitimate need to access.

Content

Scanner excerpt · references/mcp-config.md (reported line 158)May include surrounding context.

md
| Devin CLI | `~/.config/devin/mcp_config.json` | `mcpServers` | `url` | `command` + `args` | `env` | `transport: "http"` (optional) |
| Devin Desktop | `~/.devin/mcp_config.json` | `mcpServers` | **`serverUrl`** | `command` + `args` | `env` | — |
| OpenCode | `~/.config/opencode/opencode.json` | **`mcp`** | `url` | **`command` (single array)** | **`environment`** | `type: "remote"` / `"local"` |
| Antigravity IDE | `~/.gemini/config/mcp_config.json` | `mcpServers` | **`serverUrl`** | `command` + `args` | `env` | — |
| Antigravity CLI (agy) | `~/.gemini/config/mcp_config.json` | `mcpServers` | **`serverUrl`** | `command` + `args` | `env` | — |
| OpenClaw | OpenClaw config | **`mcp.servers`** | `url` + `transport` | `command` + `args` | `env` | `transport: "streamable-http"` / `"stdio"` |

Agent Config Directory Access

High
Category
Agent Snooping
Confidence
90% confidence
Finding

Skill reads from agent configuration directories (.claude/, .codex/, .gemini/). These directories may contain API keys, personal settings, and other credentials that the skill has no legitimate need to access.

Content

Scanner excerpt · references/platform-quirks.md (reported line 15)May include surrounding context.

md
| Devin CLI | `~/.config/devin/mcp_config.json` | `mcpServers` | `url` | `command` + `args` | `env` | `transport: "http"` (optional) |
| Devin Desktop | `~/.devin/mcp_config.json` | `mcpServers` | **`serverUrl`** | `command` + `args` | `env` | — |
| OpenCode | `~/.config/opencode/opencode.json` | **`mcp`** | `url` | **`command` (single array)** | **`environment`** | `type: "remote"` / `"local"` |
| Antigravity IDE | `~/.gemini/config/mcp_config.json` | `mcpServers` | **`serverUrl`** | `command` + `args` | `env` | — |
| Antigravity CLI (agy) | `~/.gemini/config/mcp_config.json` | `mcpServers` | **`serverUrl`** | `command` + `args` | `env` | — |
| OpenClaw | OpenClaw config | **`mcp.servers`** | `url` + `transport` | `command` + `args` | `env` | `transport: "streamable-http"` / `"stdio"` |

Agent Config Directory Access

High
Category
Agent Snooping
Confidence
90% confidence
Finding

Skill reads from agent configuration directories (.claude/, .codex/, .gemini/). These directories may contain API keys, personal settings, and other credentials that the skill has no legitimate need to access.

Content

Scanner excerpt · references/platform-quirks.md (reported line 16)May include surrounding context.

md
| Devin CLI | `~/.config/devin/mcp_config.json` | `mcpServers` | `url` | `command` + `args` | `env` | `transport: "http"` (optional) |
| Devin Desktop | `~/.devin/mcp_config.json` | `mcpServers` | **`serverUrl`** | `command` + `args` | `env` | — |
| OpenCode | `~/.config/opencode/opencode.json` | **`mcp`** | `url` | **`command` (single array)** | **`environment`** | `type: "remote"` / `"local"` |
| Antigravity IDE | `~/.gemini/config/mcp_config.json` | `mcpServers` | **`serverUrl`** | `command` + `args` | `env` | — |
| Antigravity CLI (agy) | `~/.gemini/config/mcp_config.json` | `mcpServers` | **`serverUrl`** | `command` + `args` | `env` | — |
| OpenClaw | OpenClaw config | **`mcp.servers`** | `url` + `transport` | `command` + `args` | `env` | `transport: "streamable-http"` / `"stdio"` |

Static analysis

No suspicious patterns detected.