registry  /  google-ads-full-readwrite-mcp  /  0.5.0

google-ads-full-readwrite-mcp@0.5.0

MCP server for Google Ads with full read and write access — manage campaigns, ads, assets, budgets, and keywords from any MCP host.

Static Scan Results

scanned 2h ago · by rust-scanner

Static analysis flagged 11 finding(s) at 72.0% confidence. This version is warn-only unless an AI or security-team review confirms malicious behavior.

Static reason
One or more suspicious static signals were detected.

Decision evidence

public snapshot
Behavioral surface
Source
ChildProcessEnvironmentVarsFilesystemNetworkShell
Supply chain
HighEntropyStringsUrlStrings
ManifestNo manifest risk signals triggered.
scanned 21 file(s), 161 KB of source, external domains: 127.0.0.1, myaccount.google.com, www.googleapis.com

Source & flagged code

4 flagged · loading source
lib/login.jsView file
17import { dirname } from "node:path"; L18: import { exec } from "node:child_process"; L19: import { promisify } from "node:util";
High
Child Process

Package source references child process execution.

lib/login.jsView on unpkg · L17
24L25: const execAsync = promisify(exec); L26:
High
Shell

Package source references shell execution.

lib/login.jsView on unpkg · L24
17import { dirname } from "node:path"; L18: import { exec } from "node:child_process"; L19: import { promisify } from "node:util"; ... L28: // write operation we expose. L29: const SCOPES = ["https://www.googleapis.com/auth/adwords"]; L30: L31: function requireLoginEnv() { L32: const clientId = process.env.GOOGLE_ADS_CLIENT_ID; L33: const clientSecret = process.env.GOOGLE_ADS_CLIENT_SECRET;
High
Same File Env Network Execution

A single source file combines environment access, network access, and code or shell execution; review context before blocking.

lib/login.jsView on unpkg · L17
6* the user's default browser, captures the authorization code on a loopback L7: * redirect (http://127.0.0.1:<random-port>), exchanges it for a refresh L8: * token, and prints the refresh token to stdout. L9: * ... L17: import { dirname } from "node:path"; L18: import { exec } from "node:child_process"; L19: import { promisify } from "node:util"; ... L31: function requireLoginEnv() { L32: const clientId = process.env.GOOGLE_ADS_CLIENT_ID; L33: const clientSecret = process.env.GOOGLE_ADS_CLIENT_SECRET; ... L46: const cmd = L47: process.platform === "win32"
High
Sandbox Evasion Gated Capability

Source gates dangerous network, credential, or execution behavior behind CI, host, platform, time, or geo fingerprint checks.

lib/login.jsView on unpkg · L6

Findings

4 High3 Medium4 Low
HighChild Processlib/login.js
HighShelllib/login.js
HighSame File Env Network Executionlib/login.js
HighSandbox Evasion Gated Capabilitylib/login.js
MediumNetwork
MediumEnvironment Vars
MediumStructural Risk Force Deep Review
LowScripts Present
LowFilesystem
LowHigh Entropy Strings
LowUrl Strings