Install AdRails in Claude Desktopclaude_desktop_config.json · adrails.dev
Direct answer. In Claude Desktop open Settings, then Developer, then Edit Config, and add an adrails entry under mcpServers with command python3 and args -m adsops --config /absolute/path/config.json. Save, quit Claude Desktop completely and reopen it. AdRails then appears under Connectors. There is no URL and no AdRails account.
Before you register the server
- Claude Desktop installed and working, and Python 3 with
pipxoruvx. - Your own Google Ads API access: a Cloud project with the Google Ads API enabled, a developer token, and a service account added to the account. AdRails has no hosted proxy.
- A git repository for the desired-state and policy files;
git diffis the change review.
Four steps to a first validated plan
- Install the package and write the config
Install
adsopsand write the config and policy file as in the Claude Code install guide, steps 1 to 3. They are the same for every client.shellpipx install git+https://github.com/antonioac1/adrails python3 -m adsops --selftest
- Open the config file
Click the Claude menu in the menu bar, choose Settings, open the Developer tab and click Edit Config. That creates the file if it does not exist. It lives at
~/Library/Application Support/Claude/claude_desktop_config.jsonon macOS,%APPDATA%\Claude\claude_desktop_config.jsonon Windows and~/.config/Claude/claude_desktop_config.jsonon Linux. - Add the server
Paths must be absolute. A desktop app may not inherit your shell's PATH, so if
python3is not found, replace it with the interpreter's full path.claude_desktop_config.json{ "mcpServers": { "adrails": { "command": "python3", "args": ["-m", "adsops", "--config", "/absolute/path/config.json"] } } } - Restart and verify
Quit Claude Desktop completely and reopen it; it only loads the file at start. Click the add-files-and-connectors indicator in the message box, hover Connectors, choose Manage connectors and select
adrailsto see its tools. Then ask Claude to calladsops_campaigns,adsops_statusandadsops_plan, committing nothing.
The server speaks JSON-RPC 2.0 over stdio and sends diagnostics to stderr. Leave commit_policy.allow_commit at its default of false on a live account until you have read a few plans. Running beside Google's read-only server is covered in AdRails alongside Google's Ads MCP.
When it does not take
AdRails does not show under Connectors
Restart fully, check the JSON syntax and that every path is absolute, then read mcp-server-adrails.log.
The server starts and then exits
Run python3 -m adsops --selftest, then the full command, in a terminal. A config error names the field.
Refusals such as plan_id required or outside guard range are the rails working; see what the guardrails do and don't prevent.
Claude Desktop questions
Where are Claude Desktop's MCP logs?
On macOS in ~/Library/Logs/Claude: mcp.log for connections and mcp-server-adrails.log for the server's stderr. Windows uses %APPDATA%\Claude\logs.
Is Claude Desktop the same as Claude Code for this?
The server and its config are identical; only registration differs. Claude Code uses claude mcp add or .mcp.json, see the Claude Code guide.
Can I add AdRails as a remote connector by URL?
No. AdRails is never hosted, so there is no connector URL. It runs locally over stdio.