原型 · 预览版:收录官方注册中心里的全部服务器,每 30 分钟同步一次。使用 Google 登录即可撰写评价。原型 · 每 30 分钟更新
PopNx MCP为使用 AI 的人准备的 MCP 服务器 · 用大白话讲清楚

AdRails

作者:antonioac1版本 0.12.0i★ 0i在你的电脑上运行
注册名称dev.adrails/adrails

安装方法

What it does

Your AI runs lead gen: Google Ads, LSA, ChatGPT Ads, AEO, Business Profile, playbooks, guardrails

  • Connects 在你的电脑上运行
  • Account or key No key needed
  • Category 营销与社交媒体

安装

选择你使用的 AI 应用,然后复制设置。

通过 3/3 项检查 · 在你的电脑上运行 · ✓ 命令已检查 2026年11月13日

第一步:你用哪个 AI?

选择你用的应用,步骤会显示在下方。

可连接 Claude,但需要先准备

需要先在电脑上安装 Python (uv)(只需一次) · 仅限电脑上的 Claude 应用(Windows 或 Mac),网页和手机不可用

  1. 安装 Python (uv)

    只需一次,所有需要 Python (uv) 的服务器都能用

    打开 Python (uv) 下载页 ↗

  2. 打开电脑版 Claude 应用的设置文件

    SettingsDeveloperEdit Config

  3. 粘贴这些设置并保存文件

    {
      "mcpServers": {
        "adrails": {
          "command": "uvx",
          "args": [
            "adrails"
          ]
        }
      }
    }
  4. 退出 Claude 再重新打开

  5. 试一试

    用 AdRails 告诉我你能帮我做什么,然后做一件给我看

    ✓ 如果 Claude 说正在使用 AdRails,或回答中出现 AdRails 的工具名称,就表示连接成功

菜单名称已于 2026年11月11日 对照 Anthropic 帮助页面核实 · 你的界面可能因版本略有不同

ChatGPT 暂时无法连接 AdRails

AdRails 需要安装在你的电脑上,而 ChatGPT 只能连接在网上运行的服务器

你可以改用这些方式

A · 使用能连接 AdRails 的应用

  • 需要先在电脑上安装 Python (uv)(只需一次) · 仅限电脑上的 Claude 应用(Windows 或 Mac),网页和手机不可用
  • 需要先在电脑上安装 Python (uv)(只需一次)
  • 需要先在电脑上安装 Python (uv)(只需一次)
  • 需要先在电脑上安装 Python (uv)(只需一次)

B · 营销与社交媒体 类中能连接 ChatGPT 的其他服务器

从同类中使用较多的里挑选,仅限用地址即可连接、无需密钥的

可连接 Claude Code,但需要先准备

需要先在电脑上安装 Python (uv)(只需一次)

  1. 安装 Python (uv)

    只需一次,所有需要 Python (uv) 的服务器都能用

    打开 Python (uv) 下载页 ↗

  2. 打开终端

    Mac:按 Command+空格,输入 Terminal · Windows:打开 PowerShell

  3. 粘贴这条命令并按 Enter

    claude mcp add --scope user adrails -- uvx adrails
  4. 在 Claude Code 中输入 /mcp

    应能看到 AdRails 在列表中并显示已连接

  5. 试一试

    用 AdRails 告诉我你能帮我做什么,然后做一件给我看

    ✓ 如果 Claude Code 说正在使用 AdRails,或回答中出现 AdRails 的工具名称,就表示连接成功

菜单名称已于 2026年11月11日 对照 Anthropic 帮助页面核实 · 你的界面可能因版本略有不同

可连接 Cursor,但需要先准备

需要先在电脑上安装 Python (uv)(只需一次)

  1. 安装 Python (uv)

    只需一次,所有需要 Python (uv) 的服务器都能用

    打开 Python (uv) 下载页 ↗

  2. 点击这个按钮打开 Cursor

    在 Cursor 中打开

    Cursor 会请你确认安装,点击 Install

  3. 在 Cursor 中以 Agent 模式打开 AI 聊天

  4. 试一试

    用 AdRails 告诉我你能帮我做什么,然后做一件给我看

    ✓ 如果 Cursor 说正在使用 AdRails,或回答中出现 AdRails 的工具名称,就表示连接成功

菜单名称已于 2026年11月11日 对照 Cursor 帮助页面核实 · 你的界面可能因版本略有不同

可连接 VS Code,但需要先准备

需要先在电脑上安装 Python (uv)(只需一次)

  1. 安装 Python (uv)

    只需一次,所有需要 Python (uv) 的服务器都能用

    打开 Python (uv) 下载页 ↗

  2. 点击这个按钮打开 VS Code

    在 VS Code 中打开

    VS Code 会请你确认安装,点击 Install

  3. 在 VS Code 中以 Agent 模式打开 AI 聊天

  4. 试一试

    用 AdRails 告诉我你能帮我做什么,然后做一件给我看

    ✓ 如果 VS Code 说正在使用 AdRails,或回答中出现 AdRails 的工具名称,就表示连接成功

菜单名称已于 2026年11月11日 对照 VS Code 帮助页面核实 · 你的界面可能因版本略有不同

其他支持 MCP 的应用(如 Windsurf、Zed、Gemini CLI)添加方式各不相同,请在应用列表中查看

查看所有支持 MCP 的应用 →

JSON 设置在下方“开发者专用”中

卡住了?问问正在用 AdRails 的人💬 讨论 →
开发者专用:终端命令和 JSON 设置

安装在电脑上

Claude Code

claude mcp add --scope user adrails -- uvx adrails

Claude Desktop (claude_desktop_config.json)

{
  "mcpServers": {
    "adrails": {
      "command": "uvx",
      "args": [
        "adrails"
      ]
    }
  }
}

Cursor (~/.cursor/mcp.json)

{
  "mcpServers": {
    "adrails": {
      "command": "uvx",
      "args": [
        "adrails"
      ]
    }
  }
}

VS Code (mcp.json)

{
  "servers": {
    "adrails": {
      "type": "stdio",
      "command": "uvx",
      "args": [
        "adrails"
      ]
    }
  }
}

这些设置是根据作者在注册中心的条目生成的。如果 README 的写法不同,请以 README 为准。

一览

每周下载量i
1,330/周
已验证域名
✓ adrails.dev
许可证i
Apache-2.0
连接方式
在你的电脑上运行
最新版本i
0.12.0
发布到注册中心i
2026年11月13日
代码最后更新i
2026年11月11日
作者
antonioac1
软件包
pypi: adrails
注册状态
活跃

哪些应用可以使用它

依据这个服务器的连接方式和各应用自己的文档,检查于 2026年11月10日。

在你的电脑上运行,适用于

ClaudeGooseLM StudioMsty StudioCherry StudioCursorVS Code + GitHub CopilotVisual StudioWindsurf (Devin Desktop)ZedKiroClineContinueJetBrains AI AssistantClaude CodeCodex CLIGemini CLIOpenCodenodecodeWarpLibreChatRaycast

全部应用及其优缺点 →

它能做什么

它在你的电脑上运行;安装后,工具列表会显示在你的 AI 应用中。

基础检查i

我们检查的是任何人都能看到的信息;我们没有阅读代码。不适用的检查项不计入总数。 · 检查于 2026年11月13日

  • ✓ 通过

    作者与仓库一致

    注册名称已通过域名 adrails.dev 验证(注册中心会核实域名所有权)

  • ✓ 通过

    仍在维护

    代码最后更新于前天

  • ✓ 通过

    有许可证

    使用 Apache-2.0

  • – 不适用

    端点有响应

    它在你的电脑上运行,没有互联网端点

  • – 不适用

    使用 OAuth 登录

    在你的电脑上运行,改用本地设置

  • … 尚未检查

    工具描述中没有隐藏指令

    它在你的电脑上运行;我们只能读取互联网端点的工具列表

讨论

提问、分享技巧或报告无法使用。按“有帮助”数量排序。

还没有帖子,欢迎第一个提问或分享。

此处内容由用户撰写,不代表 PopNx 团队。

使用 Google 登录后发帖

用户评价

还没有评价

用 Google 登录后写评价

与“营销与社交媒体”中的其他服务器比较i

  • 星标数多于此分类中其他 3900 个服务器的 0%
  • 发布到注册中心的时间比此分类中其他 3900 个服务器的 99% 更新
  • 基础检查结果等于或优于此分类中其他 3900 个服务器的 100%

与注册中心里这个分类中所有活跃的服务器比较。只有当发布者拥有该仓库时,星标数才计入。

常见问题

AdRails 安全吗?

它在 3 项适用的基础检查中通过了 3 项。我们没有阅读代码。在添加密钥或令牌之前,请先看看这个服务器要求哪些权限,并使用只具备所需权限的密钥。

它需要哪些密钥或代码?

注册中心没有列出必需的密钥,不过有些服务器会在首次使用时要求你登录。

它在我的电脑上运行还是在云端?

它在你的电脑上运行。你的 AI 应用会在需要时启动它,数据不会经过作者的服务器(除非它自己调用在线服务)。

它还在维护吗?

GitHub 仓库最后更新于前天,最新版本(0.12.0)于今天进入注册中心。

哪些应用可以使用它?

支持 MCP 的应用,例如 Claude Desktop、Claude Code、Cursor 和 VS Code。你的电脑上还需要有 Python (uv)。

有什么可以替代它?

同一分类中有:PostHog MCP Server, Openshorts, Google Ads + Meta Ads + SEO/GEO MCP

同类别的其他选择

同一分类中其他作者的服务器,按星标数排序。

如何看卡片:↓ 每周下载量i★ GitHub 星标i三大支柱:评价 · 检查 · 使用情况i更新 = 最新版本发布到注册中心的时间i

PostHog MCP Server

Official PostHog MCP Server for product analytics, feature flags, experiments, and more.

作者:PostHog广泛使用★ 4.1万 整个仓库的星标10个月前更新

在云端运行

Openshorts

Turn long videos into viral vertical shorts and publish them to TikTok, Instagram and YouTube.

作者:mutonby广泛使用★ 79413个月前更新

在云端运行

作者的 README

打开 README

按原文从作者的仓库复制。PopNx MCP 没有审查或背书其内容。HTML、图片和脚本已被移除。链接会离开本站。

AdRails (adrails.dev)

Guardrails for AI agents running your ads: an open-source, self-hosted Google Ads MCP server.

Website and docs: https://adrails.dev · MCP Registry: dev.adrails/adrails · plain-text summary for agents: https://adrails.dev/llms.txt

AdRails is a local MCP server for Google Ads. An agent may read campaigns, status and search terms as often as it likes; every write has to land in a reviewed desired-state file on disk, get diffed against live state, and clear caps that live in a policy file no AdRails tool writes. The Python package and module are still named adsops — that is the name you install and run.

Three things it does differently:

  • Your keys. It runs on your machine against your own Google Cloud project and Google Ads credentials. Nothing is hosted: the only endpoint the package talks to is the Google Ads API, and credentials are read from the sources you configure (a service-account JSON file, a static token, or a secret-manager lookup).
  • Your caps. Caps live in a policy file that no AdRails tool writes; with require_plan_id on, every commit must quote a fresh, single-use plan_id issued for that exact plan; and a change that adds spend exposure is refused while the scheduled guard's heartbeat is stale.
  • Pay per call in sats. Optional hosted add-ons, Lightning-first, metered per call in sats — coming soon. Nothing in this release contacts any hosted service.

New in 0.8.0: a full local-business suite your AI runs after one intake interview. Five playbooks (AEO, local leads, Google Business Profile, Google Ads, ChatGPT Ads), each 90-day plan task linked to the section behind it, adsops_results before/after reports and privacy-safe case studies, adsops_gbp to get a Business Profile to 100, and a monthly prompt. Plus update awareness (adsops_update_check, adsops-mcp upgrade). 82 tools.

Common questions

What is the safest way to let an AI agent manage Google Ads? Give the agent a write path that cannot exceed limits it doesn't control. With AdRails, every change is a git-committed desired-state file, then adsops_plan (a dry-run diff), then Google's validate-only check, then a commit with a single-use plan ID. Caps live in a policy file no AdRails tool can write, and an hourly guard can only pause. Checklist: Google Ads MCP safety: 7 controls.

Is there an open-source Google Ads MCP server that runs locally? Yes. AdRails is Apache-2.0, runs on your machine over stdio with your own Google Cloud project and keys, and installs with pip install adrails. Nothing is hosted.

How do I connect Claude Code, Cursor or Grok to Google Ads? pip install adrails, then adrails init --dir DIR --customer-id ID --campaign-id N --sa KEY.json and adrails doctor, then claude mcp add adrails -- adrails --config DIR/config.json (Cursor and Grok use the same mcpServers entry). See install guides.

Can I require human approval before an AI agent changes my ad budget? Yes. Set approvals.mode to exposure (budget increases, enabling, end-date extensions) or all. The agent calls adsops_approval_request, a human approves with an HMAC-signed token that expires, and a commit without an approved plan_id is refused.

How do I audit every change an AI agent makes to my ad accounts? Every mutating call, including refused ones, is appended to a SHA-256 hash-chained log with secrets redacted. adsops_audit_verify detects edited, deleted or reordered entries. adsops_rollback rebuilds any earlier committed state, and adsops_drift flags edits made outside AdRails.

How do I check whether Google Ads conversion tracking actually works? adsops_conv_audit scores the account 0-100: no primary goal, auto-tagging off, primary actions with zero conversions, double counting, lead actions counting every click, primary actions whose goal is not biddable, spend without conversions, and smart bidding without enough data.

How can an agent check if ChatGPT, Claude and Perplexity can crawl and cite my site? aeo_site_audit checks robots.txt rules for 18 AI and search crawlers (RFC 9309), llms.txt, the sitemap, noindex and canonical tags, and whether the body text is readable without JavaScript. Free browser version: AI crawler checker.

How do I validate or build an llms.txt file? aeo_llms_txt validates a live /llms.txt against the llmstxt.org format, or builds one from a page list.

How do I track whether AI assistants recommend my business? Your agent asks ChatGPT, Claude or Perplexity your category questions and passes the answers to aeo_visibility_record. It scores mentions, rank against competitors, citations and sentiment, and reports the change since the last run. AdRails makes no LLM calls itself.

How do I track response rates and cost per lead for postcards? mail_codes_assign gives every piece a phone-readable tracking code and a UTM-tagged URL. mail_scans counts real scans from your own server logs (bots and your own test scans removed). mail_response reports rates with 95% intervals, and channel_cac puts direct mail cost per lead next to Google Ads. Free browser tools: postcard QR codes, response calculator, holdout calculator.

Does AdRails support ChatGPT Ads (the OpenAI Ads API)? Not yet. The adapter is in development; it will use the same plan, validate and commit path, with OpenAI's Bulk API validate_only and partial_failure forced off.

Testing

python3 -m adsops --selftest           # 430 unit checks, everything mocked

python3 tests/qa_invariants.py # 200 random sequences against a simulated Google Ads account python3 tests/qa_inputs.py # hostile policy/state/config inputs (NaN, Infinity, bad dates, bad UTF-8, ...) python3 tests/qa_secrets.py # canary tokens injected everywhere; none may reach output or logs

The QA suites were written adversarially by a separate agent with no write access to `adsops/`, and every finding was fixed

or documented as intended behaviour.

What AdRails cannot guarantee

Read this before pointing it at a live account.

  • It is a threshold with automatic pause attempts, not a hard spend ceiling. The guard compares spend with numbers you wrote and issues pause operations. That is containment, not billing control.
  • Google can deliver up to 2x the average daily budget on a given day. A daily budget is an average, not a maximum, and a pause is an API call that can be rejected or land late.
  • Reporting is delayed. The spend figures AdRails reads are minutes to hours behind delivery.
  • The guard only acts when it is scheduled and the machine is awake. A chat-session MCP process is not a monitor: while the machine sleeps no checks run, spend keeps moving, and the heartbeat goes stale.
  • An agent with shell access as the same user can bypass any local tool. AdRails constrains the tool calls it serves, not the machine underneath. Sandbox the agent if that matters to you.
  • Wrong negative keywords can suppress good traffic. Negatives are append-only here, so a bad one is also awkward to withdraw.
  • You are responsible for your account and your spend. Keep platform-side billing limits as the real ceiling.

Quickstart

1. Install.

# from PyPI (https://pypi.org/project/adrails/)

pipx install adrails # console script: adsops-mcp

or run without installing:

uvx --from adrails adsops-mcp --config /absolute/path/config.json

No other dependencies. Service-account tokens are signed with your system openssl when google-auth isn't installed (install google-auth if you prefer it).

The core is stdlib-only. Check it offline (everything mocked, no network):

python3 -m adsops --selftest      # or: deploy/smoke_docker.sh

2. Write a config. Every account, credential source and path lives here; paths are ~-expanded at load time.

{

"tenant": "your-tenant", "meter_log": "~/.adsops/meter.jsonl", "audit_log": "~/.adsops/audit.jsonl", "plan_ledger": "~/.adsops/plans.jsonl", "lock_dir": "~/.adsops/locks", "guard_heartbeat": "~/.adsops/guard.heartbeat", "credentials": {"google_ads": {"type": "service_account", "sources": [{"kind": "file", "path": "~/.adsops/sa.json"}]}}, "google_ads": {"api_version": "v24", "end_field": "end_date_time", "login_customer_id": null}, "commit_policy": {"require_clean_git": true, "allow_commit": true, "allow_set": true}, "accounts": [{"key": "main", "platform": "google_ads", "customer_id": "000-000-0000", "campaigns": [{"key": "search_core", "state_file": "~/ads/search_core.json", "policy_file": "~/ads/search_core.policy.json"}]}] }

commit_policy defaults to require_clean_git: true and allow_commit: false, so commits and adsops_set stay off until you turn them on.

3. Write the policy file for the campaign (next section), and commit both files to git so git diff is the change review.

4. Register the server in your MCP client. Diagnostics go to stderr; the server speaks JSON-RPC 2.0 over stdio, one object per line.

{

"mcpServers": { "adrails": { "command": "python3", "args": ["-m", "adsops", "--config", "/absolute/path/config.json"] } } }

5. Schedule the guard. A chat session cannot watch spend, so the pause-only spend check runs from your OS scheduler every 15 minutes. Templates for launchd, systemd and cron live in deploy/; render the placeholders (__PYTHON__, __CONFIG__, __PKG__, __LOGDIR__) and read deploy/GUARD.md before installing:

PY=$(command -v python3); CFG=/absolute/path/config.json

PKG=/absolute/dir/containing/adsops; LOGDIR="$HOME/.adsops/logs" mkdir -p "$LOGDIR" sed -e "s|PYTHON|$PY|g" -e "s|CONFIG|$CFG|g" \ -e "s|PKG|$PKG|g" -e "s|LOGDIR|$LOGDIR|g" \ deploy/launchd/com.adsops.guard.plist.template \

~/Library/LaunchAgents/com.adsops.guard.plist

plutil -lint ~/Library/LaunchAgents/com.adsops.guard.plist launchctl bootstrap gui/$(id -u) ~/Library/LaunchAgents/com.adsops.guard.plist

The command all three units run is PYTHONPATH=$PKG $PY -m adsops --config $CFG guard-all.

Use it from Grok, Claude Code, Cursor or any MCP client

AdRails is a local stdio server, so every client registers the same command. There is no hosted URL, by design.

pip install adrails

Claude Code

claude mcp add adrails -- python3 -m adsops --config /absolute/path/config.json

Grok CLI (it also reads ~/.claude.json, .cursor/mcp.json and .mcp.json)

grok mcp add adrails -- python3 -m adsops --config /absolute/path/config.json

Cursor or a project .mcp.json:

{"mcpServers":{"adrails":{"command":"python3","args":["-m","adsops","--config","/absolute/path/config.json"]}}}

Claude Desktop: install the .mcpb bundle from the latest release. More: https://adrails.dev/docs/mcp-clients/

Tools

ToolWhat it does
adsops_campaignsLists the campaigns this deployment may operate: keys, accounts, state files, and the active commit policy.
adsops_statusLive 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.

| adsops_terms | Clicked search terms for the last N days (1–90

只显示了开头部分;其余内容请在仓库中阅读