Skip to content

MCP servers and tool guardrails

Type
reference
Status
draft
Owner
COE Team
Last reviewed
2026-11-07
Products
All products

Draft. Not yet reviewed. Check facts before you use it with customers.

Which MCP servers Claude uses to read our ads, analytics, search and CRM data, how to set them up, and the rules that keep live campaigns safe.

Summary

  • Claude is the primary operator for GTM reporting. It connects through MCP servers listed in .mcp.json.example at the repo root (see setup below).
  • Read-only by default. Claude proposes every change that spends money or alters a live campaign as a list, and a human approves it in chat before anything happens.
  • No credentials in the repo. Each person uses their own login and their own local .mcp.json.

Details

Servers we use

System Server (source) Version pinned Auth Write tools?
Google Ads google-ads-mcp, official, https://github.com/googleads/google-ads-mcp 0.0.6 (PyPI) Google Cloud credentials, Ads developer token (configured per the server README), manager (MCC) ID Yes, some. Disable them in a read-only tools_config.yaml (set via GOOGLE_ADS_MCP_TOOLS_CONFIG). Write tools default to validate-only (TODO: verify categories each release)
Google Analytics 4 analytics-mcp, official (experimental), https://github.com/googleanalytics/google-analytics-mcp 1.1.0 (PyPI) Google Cloud credentials, analytics.readonly scope Off unless --allow-write is passed. Never pass it
Google Search Console mcp-server-gsc, community (ahonn), https://www.npmjs.com/package/mcp-server-gsc 0.3.0 (npm) Service account added as a restricted user on the GSC property Mostly read (search analytics, sitemaps, URL inspection). No official Google server yet
Bing Webmaster Tools mcp-server-bwt, community (zizzfizzix), https://github.com/zizzfizzix/mcp-server-bwt 0.2.0 (PyPI) Bing Webmaster API key (per person) Includes URL and sitemap submission. Treat submissions as changes that need approval. No official Microsoft server
BoldSales CRM BoldSales hosted MCP endpoint, https://<tenant>.boldsalescrm.com/mcp (ours: https://syncfusion.boldsalescrm.com/mcp) Hosted (no version) Personal API token (TODO: confirm auth method and token scopes) Yes: create/update deals, contacts, fields, users. Read-only use only unless a human approves
AI engines (OpenRouter) openrouter-answers, ours, maintain/mcp/openrouter-answers.mjs (Node.js 18+, no dependencies) In this repo OpenRouter API key (OPENROUTER_API_KEY, per person; set a credit limit on the key) No. Asks ChatGPT, Gemini, Perplexity and Claude models one prompt each for AI answer monitoring. Each call costs OpenRouter credit. Models are set in maintain/mcp/openrouter-engines.json

Prefer official servers. Re-check versions and read-only setup at each review.

Setup (each person)

  1. Copy the sample: cp .mcp.json.example .mcp.json. .mcp.json is in .gitignore, so it is never committed.
  2. Set the environment variables it references in your shell profile or a password manager CLI, never in a file in this repo: GOOGLE_APPLICATION_CREDENTIALS, GOOGLE_PROJECT_ID, GOOGLE_ADS_LOGIN_CUSTOMER_ID, GOOGLE_ADS_DEVELOPER_TOKEN, GOOGLE_ADS_MCP_TOOLS_CONFIG, GSC_CREDENTIALS_PATH, BING_WEBMASTER_API_KEY, BOLDSALES_MCP_URL (optional), BOLDSALES_API_TOKEN and OPENROUTER_API_KEY.
  3. Use your own Google, Bing and BoldSales access, scoped to the accounts you need. Ask for read-only roles first (Ads: Read only; GA4: Viewer; GSC: Restricted; BoldSales: least-privilege role).
  4. For Google Ads, keep a tools_config.yaml outside the repo with write tool categories disabled and point GOOGLE_ADS_MCP_TOOLS_CONFIG at it.
  5. Start Claude Code in the repo and run /mcp to confirm each server connects.

Or use pbmaintain: Connections and auth stores the same credentials in your OS credential store (never in the repo) and tests each server read-only. Its catalog, maintain/mcp-servers.json, is the source for .mcp.json.example and lists the write tools every run denies.

Guardrails

  1. Read-only by default. Reports, audits, query mining and analysis need no approval.
  2. Changes need approval in chat. Anything that spends money or alters live campaigns (budgets, bids, campaign status, new campaigns, ad groups, keywords and negatives, audiences, conversion settings, URL submissions, CRM field or user changes) is first proposed as a numbered list: what, where, why and expected impact. A named human approves the item numbers in chat; Claude makes only those changes and reports back.
  3. No credentials in the repo. No keys, tokens, customer IDs tied to secrets, or exported data with PII. .mcp.json, .env files and exports stay local.
  4. One login per person. No shared service accounts for interactive use, so the platforms’ change history shows who approved what.
  5. Data handling. Don’t paste customer PII or contract values into docs or chat summaries. Summaries use aggregates.

Example prompts

  • Weekly review: “Run the weekly GTM review checklist for last week versus the week before, for all products. Read-only.”
  • Search-term mining: “Pull the Google Ads search terms report for the last 30 days for the Bold Reports campaigns. List irrelevant terms as proposed negatives (with match type and level) and high-intent terms we don’t target as proposed keywords. Don’t apply anything.”
  • Query gap analysis: “Compare GSC and Bing queries for boldsign.com over 90 days. List queries with high impressions and low CTR, and queries where we rank 8–20, with the page that should win each one.”
  • Audit: “Run the Google Ads audit skill on the Essential Studio account and give me the fix list.”

Sources

Used by