AdLoop vs Citable MCP
A side-by-side look at the AdLoop and Citable MCP MCP servers: transport, auth, tools, quality signals, and the config to install either one in Claude, Cursor, Windsurf or VS Code.
Verdict: choose AdLoop for marketing work as a local process; choose Citable MCP for marketing as a local process. You can also run both side by side in one mcpServers block.
Which MCP server should you choose?
Choose AdLoop when
- You need dedicated capabilities in the Marketing domain.
- You prefer a local stdio subprocess transport.
- Its auth model fits you: OAuth 2.0.
- You want tools like
health_check, get_account_summaries, run_ga4_report.
Choose Citable MCP when
- You need dedicated capabilities in the Marketing domain.
- You prefer a local stdio subprocess transport.
- You have the keys it needs:
CITABLE_WALLET, CITABLE_MAX_PRICE, CITABLE_API. - You want tools like
citable_prices, citable_connect, citable_keyword_suggest.
Feature & specification comparison
Rows where the two servers differ are marked.
| Spec | ||
|---|---|---|
| Category | Marketing | Marketing |
| Quality signal | 65/100 · Great | 60/100 · Good |
| Install command | Confirmed | Confirmed |
| Transport | Local subprocess (stdio) | Local subprocess (stdio) |
| Auth | OAuth 2.0 | Not declared |
| Pricing | Not declared | Not declared |
| Required env vars | None listed | CITABLE_WALLETCITABLE_MAX_PRICECITABLE_API |
| Verified owner | Community listing | Community listing |
| GitHub stars | 284 | 0 |
| Directory activity | 1 views 0 installs 0 upvotes | 2 views 0 installs 0 upvotes |
| Tools | 134 | 19 |
| Full listing | View AdLoop | View Citable MCP |
Tools & capabilities
AdLoop tools 134
health_checkTest AdLoop connectivity — checks OAuth token, GA4 API, Google Ads API, and (when configured) the Reddit Ads API. Returns the status of each service and actionable guidance when something is broken, which makes it the diagnostic for failures in other tools. Google Ads API: https://developers.google.com/google-ads/api/docs/start, Google Analytics Data API: https://developers.google.com/analytics/devguides/reporting/data/v1 and Reddit Ads API: https://ads-api.reddit.com/docs/v3/get_account_summariesList all GA4 accounts and properties accessible by the authenticated user. Serves as the discovery step for which GA4 properties are available. Returns account names, property names, and property IDs. Google Analytics Data API: https://developers.google.com/analytics/devguides/reporting/data/v1 and Admin API: https://developers.google.com/analytics/devguides/config/admin/v1run_ga4_reportRun a custom GA4 report with optional filters, ordering, paging and a comparison period. Returns the property, the date range, the dimension and metric headers, one row per dimension combination (values as strings), row_count and total_row_count (plus next_offset while more rows remain). At least one dimension or metric is required. With compare_start/compare_end the comparison period is a second date range: every row then carries a dateRange value of "current" or "comparison", and date_ranges maps both labels to their dates. Invalid filters or ordering return "Validation failed" with details, before anything is sent. Queries the GA4 Data API. Dimensions and metrics: https://developers.google.com/analytics/devguides/reporting/data/v1/api-schemarun_realtime_reportRun a GA4 realtime report showing current active users and events. Useful for checking if tracking is firing correctly after code changes. Returns the dimension and metric headers and one row per dimension combination over the realtime window (the last 30 minutes). Google Analytics Data API: https://developers.google.com/analytics/devguides/reporting/data/v1 and Admin API: https://developers.google.com/analytics/devguides/config/admin/v1get_tracking_eventsList all GA4 events and their volume for the given date range. Returns every distinct event name with its total event count, sorted by count (highest first). Shows what tracking is configured and active. Google Analytics Data API: https://developers.google.com/analytics/devguides/reporting/data/v1 and Admin API: https://developers.google.com/analytics/devguides/config/admin/v1list_key_eventsList the key events (conversions) configured on a GA4 property. Returns each key event's event name, counting method (ONCE_PER_EVENT or ONCE_PER_SESSION), create time, whether GA4 allows deleting it, whether it is a custom event, and its resource name, sorted by event name, plus the total. Reads the GA4 Admin API (keyEvents.list). Google Analytics Data API: https://developers.google.com/analytics/devguides/reporting/data/v1 and Admin API: https://developers.google.com/analytics/devguides/config/admin/v1list_ga4_dimensions_and_metricsList the dimensions and metrics a GA4 property can report on, including custom ones. Returns the exact API names valid in run_ga4_report for this property: each with its UI name, category, whether it is a custom definition (customEvent:..., customUser:...), and deprecated API names; metrics also carry their type and, for calculated metrics, the expression. Reads the GA4 Data API metadata (properties.getMetadata), which uses no report quota. Google Analytics Data API: https://developers.google.com/analytics/devguides/reporting/data/v1 and Admin API: https://developers.google.com/analytics/devguides/config/admin/v1list_gsc_sitesList all Google Search Console properties the authenticated user can access. Serves as the discovery step for the site URLs that search analytics reports (run_gsc_report) take. Returns the site URL and permission level for each property. Search Console API: https://developers.google.com/webmaster-toolsrun_gsc_reportRun a Google Search Console search analytics report. Returns clicks, impressions, CTR, and average position broken down by the requested dimensions. Useful for diagnosing organic traffic drops, finding keyword opportunities, and cross-referencing with GA4 and Ads data. One request returns at most 25,000 rows; a full page carries next_start_row for the following request. With data_state "all" the response metadata names the first date whose data is still incomplete. Queries the Search Console API: https://developers.google.com/webmaster-tools/v1/searchanalytics/queryanalyze_page_speedRun PageSpeed Insights for a landing page — Lighthouse + real-user data. Returns the performance score (0-100), lab Core Web Vitals (LCP, CLS, TBT, FCP), CrUX field data from real Chrome users where available (p75 LCP/INP/CLS/FCP/TTFB + FAST/AVERAGE/SLOW ratings), and the top improvement opportunities with estimated savings. When the page itself has too little traffic for field data, the origin-wide field data is returned instead, marked field.scope="origin". Typical input is an ad final_url: slow landing pages depress Quality Score and waste paid clicks. Takes 10-30s; that is normal for a Lighthouse run. PageSpeed Insights API: https://developers.google.com/speed/docs/insights/v5/aboutlist_merchant_accountsList Google Merchant Center accounts the connected user can access. Returns each account's numeric ID, name and whether it is a test account. Provides the account_id used by get_merchant_feed_health; not needed when merchant.account_id is set in the config. Merchant API: https://developers.google.com/merchant/api/overviewget_merchant_feed_healthMerchant Center feed health — disapproved products + account issues. Disapproved feed items silently starve Shopping and Performance Max campaigns; this reports approved/pending/disapproved counts per reporting context (Shopping ads, free listings, ...), the top product issues by affected products (with documentation links), and account-level issues — CRITICAL ones stop offers serving entirely. Product-status data lags reality by ~30 minutes. Merchant API: https://developers.google.com/merchant/api/overview- +122 more on the listing page
Citable MCP tools 19
citable_pricesFree. Lists Citable's SEO endpoints with current per-call USDC prices, plus the wallet that pays: address (the one to fund), walletMode (keypair or sign-in), balanceUsdc and funded. When it is empty, `setup` gives the two ways to fund it — put them to the user. Call this first.citable_connectFree. For people who do not use crypto. Returns a link to open in a browser: sign in at Citable with Google or email, add a few dollars of USDC, click Connect — the agent then pays from that wallet. The link works for 15 minutes; when the user says it is done, call citable_prices to confirm (walletMode becomes sign-in). {status:true} only reports; {reset:true} disconnects and returns to the keypair. The first connect installs Para's SDK under ~/.config/citable/para (about 200 MB, once).citable_keyword_suggestPaid ($0.005 USDC per call). Expands a seed keyword into autocomplete suggestions, related queries and questions, deduped and ranked across Google, YouTube and Bing. Returns `suggestions[]` and `questions[]` with a 0–1 prominence score, the sources each came from, and whether the keyword still contains the seed.citable_onpage_auditPaid ($0.01 USDC per call). Fetches one URL and returns a scored on-page audit: title, meta description, canonical, robots, viewport, lang, heading counts and text, word count, internal/external links, image alt coverage, Open Graph, JSON-LD types, HTTP details, and 15 weighted checks with a 0–100 score. Not charged if the page cannot be fetched.citable_ai_visibilityPaid ($0.05 USDC per engine asked; $0.20 for all four). Asks the AI answer engines (Perplexity, Gemini, OpenAI, Claude — whichever the deployment has configured) a prompt through their official APIs and reports which ones cite the domain: `mentioned`, 1-based `position` in each engine's citation list, and the full cited-domain list per engine. One run per engine — answers vary between runs, so call 2–3 times for signal. Not charged if no engine answers.citable_rank_checkPaid ($0.012 USDC per call). Google organic position of a domain for a keyword via a licensed SERP feed: 1-based `position` (null if outside the checked window), the ranking URL and title, plus the top-10 result list. Not charged if the feed is unavailable.citable_keyword_researchPaid ($0.06 USDC per call). One seed returns keywords AND questions, merged from public autocomplete and the paid keyword index, with search volume, CPC, difficulty and intent attached. Each row says which sources found it — both is the strongest signal. Cheaper than citable_keyword_ideas plus citable_keyword_metrics separately; reach for those only when you want to control exactly what you pay for. Not charged on failure.citable_keyword_ideasPaid ($0.05 USDC per call). Keyword research: one seed returns up to 100 keywords that contain it, each with search volume, CPC, competition, difficulty and intent, ordered by volume. Full-text matched, so results stay on topic. Use citable_keyword_suggest for the exact phrasings people type (no volume), and citable_keyword_metrics when you already have a shortlist. Not charged on failure.citable_keyword_metricsPaid ($0.03 USDC per call, covers the whole batch). Search volume, CPC, competition, keyword difficulty and search intent for 1–20 keywords — licensed clickstream-derived estimates. Answers in request order; unknown keywords return null metrics. Pair with citable_keyword_suggest: expand a seed there, price the shortlist here. Not charged if the metrics feed is unavailable.citable_top_cited_pagesPaid ($0.22 USDC per call). Which pages of a domain AI engines cite most, from an aggregated index of AI answers — per-page mentions, AI search volume, per-engine and per-language splits, plus domain totals. Answers 'what already works on this site — write more of that'. Not charged if the index is unavailable.citable_citability_reportPaid ($0.30 USDC per call; $0.43 bought separately). One call bundles the on-page citability audit, AI visibility across all configured engines, and the domain's top AI-cited pages. Answers: can AI read this site, who cites it today, and which pages already work. Not charged on failure.citable_cited_promptsPaid ($0.25 USDC per call). The real questions AI answer engines cite a domain for, from an aggregated index of AI answers — question, answer snippet, AI search volume, and the exact URL cited. These are observed prompts, never generated ones, so use this to discover what to track instead of inventing them. Repeated observations of one question are collapsed, with `observations` counting them. Point it at a competitor's domain to get the prompts they win and you do not. Not charged on failure.- +7 more on the listing page
Ready-to-paste client configs
Paste either block (or both) into your client config, e.g. claude_desktop_config.json or ~/.cursor/mcp.json. We only show a config when the install command is confirmed.
AdLoop
{
"mcpServers": {
"adloop": {
"command": "uvx",
"args": [
"adloop"
]
}
}
}
Citable MCP
{
"mcpServers": {
"zaialamm-citable-mcp": {
"command": "npx",
"args": [
"-y",
"citable-mcp"
],
"env": {
"CITABLE_WALLET": "YOUR_CITABLE_WALLET_HERE",
"CITABLE_MAX_PRICE": "YOUR_CITABLE_MAX_PRICE_HERE",
"CITABLE_API": "YOUR_CITABLE_API_HERE"
}
}
}
}
Frequently asked questions
AdLoop is categorized under Marketing and uses a local stdio subprocess. Citable MCP belongs to Marketing and uses a local stdio subprocess. Pick AdLoop for marketing work and Citable MCP for marketing.
Copy the mcpServers block from the config section on this page into your client's config (for example claude_desktop_config.json or ~/.cursor/mcp.json), then fully restart the client.
AdLoop has no declared pricing — check the project's own site. Auth: oauth 2.0. Citable MCP has no declared pricing — check the project's own site. If a server needs environment variables such as API keys, define them under the env key in your client's MCP config.
Yes. MCP clients support multiple servers: add adloop and zaialamm-citable-mcp as separate keys in the same mcpServers object, and your assistant will call tools from either one.
On AllMCPs, AdLoop has a quality signal of 65/100 (Great) with 1 views, 0 installs and 284 GitHub stars. Citable MCP has 60/100 (Good) with 2 views, 0 installs and 0 GitHub stars.