Where is the source code for Adrails?
The source code is linked from the repository URL on this page.
@antonioac1
Basic information
AI agents run Google Ads and ChatGPT Ads with guardrails in code: plan/validate/commit, approvals, audit log. Plus AEO and direct-mail tools. Local, open source.
Add this server to your MCP-compatible client using the configuration below.
{
"mcpServers": {
"adrails": {
"command": "python3",
"args": [
"-m",
"adsops",
"--config",
"/absolute/path/config.json"
]
}
}
}Lists the campaigns this deployment may operate: keys, accounts, state files, and the active commit policy.
Live read for one campaign: status, end date, daily budget, spend today and lifetime, negative count, whether caps come from the policy file, and the guard heartbeat's age. When the state file manages URL fields it also returns `urls`: the campaign final URL suffix and, per ad group, its custom parameters, final URL suffix and the final URLs of each enabled ad.
Clicked search terms for the last N days (1–90, default 14): term, matched keyword, clicks, cost.
Pure diff of the desired-state file against live state; writes nothing. Covers budget, status, end date, negatives and the URL fields below. Returns the operations, notes (one `url: ...` line per URL change), `ops_count`, the exposure increases it found, and a single-use **`plan_id`** with its expiry.
Validate-only unless `commit=true`. A commit needs `commit_policy.allow_commit`, a clean git-tracked state file, a fresh guard heartbeat when the change adds exposure, and the **`plan_id`** from `adsops_plan` when the policy requires it.
Proposes a budget / status / end-date / negatives change with a short `reason`; checks it against policy caps and live state, writes the state file and commits it to git. `dry_run=true` returns a **`plan_id`** instead of writing; `apply=true` needs that `plan_id` when the policy requires it.
Reads spend and pauses the campaign if the daily or lifetime threshold is crossed. Pause only: it never enables, raises a budget or edits keywords. Validate-only unless `commit=true`.
Metering summary for the tenant: calls, errors, units, ops and median latency per tool.
Read-only. Classifies the last N days (1–90, default 30) of search terms (renter, job, HOA/condo, vacation, DIY/software, out-of-area, competitor brand) with deterministic rules and an optional local-model hook you supply, and proposes PHRASE negatives with cost and click evidence. Skips terms and phrases your existing negatives already cover, never suggests words on your protect list, and returns a ready-to-paste `negatives_add` patch plus a basis note. It writes nothing: the patch goes through the desired-state file like any other change.
Read-only. Per ad group, Google's quality-score components (expected CTR, ad relevance, landing page experience) plus a plain HTTP check of each final URL: status, response time, bytes, and whether the title and H1 echo the ad group's keywords and town. Returns plain-English findings, worst first. No browser and no JavaScript, so a headline built by script shows as missing.
Read-only. The AdRails Intel weekly report from the free sources (Auction Insights you imported, cached Transparency Center data, your own stats snapshots). Needs `intel_config` in the config; makes no network call.
Imports an Auction Insights CSV/TSV export or a pasted table into the local intel database (replaces rows for the same date range). Writes only that local SQLite file. Needs `intel_config`.
AI agents run Google Ads and ChatGPT Ads with guardrails in code: plan/validate/commit, approvals, audit log. Plus AEO and direct-mail tools. Local, open source.
The README includes setup instructions such as uvx --from adrails adsops-mcp --config /absolute/path/config.json.
The source code is linked from the repository URL on this page.
If the README contains a parseable MCP configuration block, it is shown in the Config tab.
Query your team's drift, vulnerability, and migration data from any AI assistant. Vibgrate MCP connects Cursor, Claude, ChatGPT, Windsurf, or VS Code to Vibgrate Cloud: 51 tools for DriftScores, CVEs and EOL runtimes, up

MCP server for industrial namespace validation — Sparkplug B linter, UNS convention checker, and a free AI-readiness diagnostic. No API key required.
JiCo for Jira & Confluence: local MCP server for Jira Data Center - redacts personal data before the AI model, holds every write for approval
Set up and manage the Eddyter AI rich text editor by talking to your AI agent — for Claude, Cursor, Codex and other MCP tools. A Model Context Protocol server that lets AI tools add Eddyter to a React, Next.js, Vite or R
Comments