Google Search Console integration for Model Context Protocol (MCP)
Synterai is installed from its publisher's own source and answers where it runs, so this marketplace is not in the path of a single call. There is no address here to send one to, and a panel that pretended otherwise would be showing you an answer we made up. Install it and call it from your own client — the Installation tab has the entry for each one.
What it does
Model Context Protocol (MCP) server for AI agents to manage ad campaigns across Google, Meta, LinkedIn, Microsoft, Reddit, TikTok, and more. Create campaigns, adjust budgets, generate creatives, and pull performance data through natural conversation.
Quickstart
# 1 — add it to Claude Code
claude mcp add --scope user --env 'SYNTER_API_KEY=${SYNTER_API_KEY}' --transport stdio synterai-mcp '--' npx -y @synterai/mcp-server
# 2 — ask your agent for something these tools do
# list_campaigns, create_search_campaign, create_display_campaign and 57 more
It needs SYNTER_API_KEY: this reads it from your environment, so export it first.
Synterai costs nothing on mcprush: there is no plan to choose here, no cap to set and nothing mcprush can bill you for.
Where are you running it?
Every route below installs the same thing and ends at the same approval screen. This one runs on your machine: your client starts Synterai as a process under your own user, with your files and your network, so the tool surface below is what it can do to your computer rather than to a server somewhere else. Its scan result is on the Security tab — read the surface before you approve it.
This is a public server: you run it yourself and this marketplace is not in the path. You need Node.js — the current LTS (24) is the safe choice; npx comes with it. Claude Code registers it in one command; --scope user makes it available in every project. Claude Code reads SYNTER_API_KEY (Your Synter API key. Get one at https://syntermedia.ai/developer) from your environment each time it starts the server, so the value stays out of its config: export it in your shell profile (macOS, Linux), or run setx SYNTER_API_KEY … and open a new terminal (Windows). The '--' is in quotes so that PowerShell passes it on.
claude mcp add --scope user --env 'SYNTER_API_KEY=${SYNTER_API_KEY}' --transport stdio synterai-mcp '--' npx -y @synterai/mcp-serverReconnect, or start a new session, and the tools appear in the model’s tool list.
It reaches a system of yours, so it needs your own credential rather than the publisher’s: SYNTER_API_KEY — Your Synter API key. Get one at https://syntermedia.ai/developer. You set it in your own client’s config, on your machine — this marketplace never holds it.
One config entry your client uses to start the process locally. A local server runs with your file system and your network, which is why it is priced without metering.
60 tools, with what each one reads, writes and reaches shown before you agree — the same list on every route above. Read the tool surface.
Tool surface
What the model actually sees. Descriptions are diffed on every release — see version history.
List campaigns for one specified ad platform. Returns campaign name, status, budget, and performance metrics.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| platform | string | yes | Required ad platform. No platform is selected implicitly. |
| status | string | no | Optional status filter where supported by the selected platform. |
Create a complete Google Ads Search campaign with ad group, responsive search ad, and keywords. Creates everything needed for the campaign to run.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| campaign_name | string | yes | Name for the campaign |
| daily_budget | number | yes | Daily budget in USD |
| headlines | array | yes | Ad headlines (3-15 required, max 30 chars each) |
| descriptions | array | yes | Ad descriptions (2-4 required, max 90 chars each) |
| final_url | string | yes | Landing page URL for the ad |
| keywords | array | yes | Keywords to target |
| match_type | string | no | Keyword match type (default: PHRASE) |
| geo_targets | array | no | Geo target codes (e.g., '2840' for US, '2826' for UK). Defaults to US. |
Create a Google Ads Display campaign with responsive display ads. Supports image uploads from URLs.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| campaign_name | string | yes | Name for the campaign |
| daily_budget | number | yes | Daily budget in USD |
| landscape_image_url | string | yes | URL to 1200x628 landscape image |
| square_image_url | string | yes | URL to 1200x1200 square image |
| bidding_strategy | string | no | Bidding strategy for the campaign |
| target_cpa | number | no | Target CPA in USD (used with maximize_conversions) |
| target_roas | number | no | Target ROAS multiplier (used with maximize_conversion_value) |
| cpc_cap | number | no | CPC cap in USD when using maximize_clicks |
| positive_geo_target_type | string | no | How to match users to targeted locations |
| headlines | array | yes | Headlines (1-5, max 30 chars each) |
| descriptions | array | yes | Descriptions (1-5, max 90 chars each) |
| business_name | string | yes | Business name (max 25 chars) |
| final_url | string | yes | Landing page URL |
| geo_targets | array | no | Geo target codes |
| managed_placements | array | no | Managed placement URLs or domains to target |
Create a Google Ads Performance Max campaign. Requires images, headlines, descriptions, and a business name.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| campaign_name | string | yes | Name for the campaign |
| daily_budget | number | yes | Daily budget in USD |
| headlines | array | yes | Headlines (3-15, max 30 chars each) |
| long_headline | string | yes | Long headline (max 90 chars) |
| descriptions | array | yes | Descriptions (2-5, max 90 chars each) |
| business_name | string | yes | Business name (max 25 chars) |
| final_url | string | yes | Landing page URL |
| landscape_image_url | string | no | URL to 1200x628 landscape image |
| square_image_url | string | no | URL to 1200x1200 square image |
| logo_url | string | no | URL to square logo (min 128x128) |
| geo_targets | array | no | Geo target codes |
| target_cpa | number | no | Target CPA in USD (optional) |
Pause a campaign by ID across connected platforms. IMPORTANT: An accepted response does not prove the provider applied the pause—always follow up with list_campaigns (without status='ENABLED' filter) to verify status === 'PAUSED'.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| campaign_id | string | yes | Campaign ID (platform-specific format) |
| platform | string | yes | Ad platform |
Update the daily budget for a campaign. IMPORTANT: An accepted response does not prove the provider applied the budget change—always follow up with list_campaigns (without status='ENABLED' filter) to verify the effective daily_budget.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| campaign_id | string | yes | Campaign ID |
| platform | string | yes | Ad platform. Budget updates currently route to the Google Ads budget script. |
| daily_budget | number | yes | New daily budget in USD |
Get performance metrics (impressions, clicks, spend, conversions, ROAS) for one specified ad platform.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| platform | string | no | Ad platform (optional, default: google). |
| campaign_id | string | no | Filter by specific campaign ID (Google Ads only). |
| date_range | string | no | Date range for metrics (default: LAST_7_DAYS) |
Get daily spend breakdown for one specified ad platform.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| days | number | no | Number of days to look back (default: 7) |
| platform | string | no | Ad platform (optional, default: google). |
Add keywords to a Google Ads campaign or ad group.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| ad_group_id | string | yes | Ad group ID to add keywords to |
| keywords | array | yes | Keywords to add |
| match_type | string | no | Keyword match type (default: PHRASE) |
Add negative keywords to block unwanted search terms.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| campaign_id | string | yes | Campaign ID |
| keywords | array | yes | Negative keywords to add |
| level | string | no | Level to apply negatives (default: CAMPAIGN) |
Create a conversion action in Google Ads. Returns the conversion ID and label for GTM setup.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| name | string | yes | Name for the conversion action (e.g., 'Signup', 'Purchase') |
| value | number | no | Default conversion value in USD (optional) |
| category | string | no | Conversion category (default: LEAD) |
List all conversion actions configured in Google Ads.
No parameter schema on file.
Check if conversion tracking is properly set up on a website. Verifies gtag.js, GTM, and pixel installation.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| url | string | yes | Website URL to check |
Generate an AI image for ad creatives using Imagen 4, Flux, or Stable Diffusion.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| prompt | string | yes | Image generation prompt (be specific about style, layout, colors) |
| size | string | no | Image dimensions (default: 1200x628 for display ads) |
| provider | string | no | AI provider (default: imagen) |
| name | string | no | Asset name for organization |
Generate an AI video ad using supported creative concepts and video models. Requires a brand-ready workspace with brand guidelines and a usable logo.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| concept | string | no | Video concept framework (default: pas). |
| product_name | string | yes | Product or brand name |
| target_audience | string | no | Who is this video for? |
| key_benefit | string | yes | Main value proposition |
| duration | number | no | Video duration in seconds (default: 8) |
| platform | string | no | Target platform for sizing and aspect ratio (default: tiktok). |
| provider | string | no | AI provider (default: auto-selected based on concept/platform). |
Generate AI display/social ad images using Imagen 4 or Flux. Auto-sizes for the target platform. Requires a brand-ready workspace with brand guidelines and a usable logo. (80 credits)
| Parameter | Type | Required | Notes |
|---|---|---|---|
| prompt | string | yes | Image generation prompt. Be specific: subject, mood, colors, style. |
| platform | string | no | Target platform — determines default sizes. Omit for a single 1200x628. |
| name | string | no | Asset name for the artifact library. |
| provider | string | no | Image model (default: imagen = Imagen 4). |
| sizes | string | no | Override platform sizes: comma-separated WIDTHxHEIGHT (e.g. '1200x628,1080x1080'). |
| negative_prompt | string | no | What to exclude from the image (e.g. 'no people, no text'). |
Generate AI video ads using creative concept templates. Supports Veo, Luma, Runway, and HeyGen. Requires a brand-ready workspace with brand guidelines and a usable logo. (130–1100 credits depending on provider)
| Parameter | Type | Required | Notes |
|---|---|---|---|
| concept | string | yes | Creative concept template. |
| product | string | yes | Product or brand name. |
| platform | string | no | Target platform for sizing (default: tiktok). |
| provider | string | no | Video model. Auto-selected based on concept if omitted. |
| pain_point | string | no | Viewer pain point (for ugc-testimonial and pas). |
| benefit | string | no | Key benefit your product delivers. |
| cta | string | no | Call-to-action text (default: 'Learn more'). |
| name | string | no | Asset name for the artifact library. |
| target_audience | string | no | Who the ad targets (for persona/hook customization). |
Generate UGC-style video ads with AI avatars via Creatify. Outputs short-form video that looks like authentic creator content. (900 credits)
| Parameter | Type | Required | Notes |
|---|---|---|---|
| product | string | yes | Product or brand name. |
| persona | string | no | Avatar persona — determines script tone (default: b2b). |
| script | string | no | Custom spoken script. If omitted, a persona script is auto-generated. |
| avatar | string | no | Creatify avatar (default: asha). |
| aspect_ratio | string | no | Output format (default: 9:16 vertical). |
| name | string | no | Asset name for the artifact library. |
Generate platform-optimized text ad copy: headlines, descriptions, and CTAs for any ad platform using Claude. Respects character limits automatically. (10 credits)
| Parameter | Type | Required | Notes |
|---|---|---|---|
| platform | string | yes | Target ad platform. |
| product | string | yes | Product name and one-line description. |
| landing_page_url | string | no | Destination URL for context on value props. |
| tone | string | no | Writing tone (default: professional). |
| headlines_count | number | no | Override headline count (uses platform default if omitted). |
| descriptions_count | number | no | Override description count (uses platform default if omitted). |
| keywords | string | no | Comma-separated keywords to weave in. |
| cta | string | no | Preferred CTA phrasing (e.g. 'Book a demo'). |
Generate a voice-over ad with an AI avatar reading your script via Creatify. Outputs MP4 with spoken audio — ideal for Spotify-style or YouTube pre-roll. (900 credits)
| Parameter | Type | Required | Notes |
|---|---|---|---|
| script | string | yes | Spoken script (15–60 seconds, ~40–150 words). |
| product | string | yes | Product name. |
| persona | string | no | Avatar tone context (default: b2b). |
| avatar | string | no | Creatify avatar (default: asha). |
| name | string | no | Asset name for the artifact library. |
List generated creative assets (images and videos) from your artifact library. Free — no credits charged.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| asset_type | string | no | Filter by asset type. Omit for all types. |
Upload a generated creative asset to an ad platform and attach it to a campaign. (5 credits)
| Parameter | Type | Required | Notes |
|---|---|---|---|
| asset_url | string | yes | URL of the asset (from generate_image_ad / generate_video_ad). |
| platform | string | yes | Target ad platform. |
| campaign_id | string | yes | Campaign ID to attach the creative to. |
| asset_type | string | no | Asset type (default: IMAGE). |
| ad_group_id | string | no | Ad group / ad set ID (required for most platforms). |
| name | string | no | Name for the uploaded creative. |
Fetch a competitor's active ad creatives (images, copy, CTAs) from Meta, Google, and LinkedIn ad libraries. Returns image URLs, headlines, descriptions, and landing pages per platform. (18 credits)
| Parameter | Type | Required | Notes |
|---|---|---|---|
| domain | string | yes | Competitor domain to fetch ads for (e.g., 'hubspot.com') |
| platforms | array | no | Platforms to pull ads from. Omit for all three. |
| limit | number | no | Max ads per platform (default 5, max 20). |
Lookup a domain's BuiltWith technology stack, ad pixels, CRM, analytics, CMS/ecommerce tools, spend and metadata. (2 credits)
| Parameter | Type | Required | Notes |
|---|---|---|---|
| domain | string | yes | Domain to lookup, e.g. 'shopify.com'. |
| live_only | boolean | no | Only return live/current technologies. |
| include_trust | boolean | no | Request trust attributes in the domain response. |
| include_raw | boolean | no | Include the raw BuiltWith API response. |
Fetch recent BuiltWith technology additions/removals for one or more domains. (2 credits)
| Parameter | Type | Required | Notes |
|---|---|---|---|
| domains | array | yes | Domains to inspect, max 16. |
| since | string | no | Natural language time window, e.g. 'last month' or '30 days ago'. |
Find prospect websites by BuiltWith technology, natural-language audience, or keyword search. (2 credits)
| Parameter | Type | Required | Notes |
|---|---|---|---|
| tech | string | no | Technology name for Lists API, e.g. Shopify. |
| query | string | no | Natural-language Ask API query. |
| keyword | string | no | Keyword Search API keyword. |
| countries | array | no | Country filters, e.g. ['US', 'CA']. |
| other_techs | array | no | Additional required technologies. |
| limit | number | no | Max results to return, 1-1000. |
| offset | string | no | Pagination offset from a previous response. |
| include_meta | boolean | no | Include metadata where supported. |
| commit | boolean | no | Commit an Ask API report instead of sample mode. |
| spend | string | no | Lists API spend filter, e.g. '100|GT'. |
| revenue | string | no | Lists API revenue filter, e.g. '100000|GT'. |
| employees | string | no | Lists API employee filter, e.g. '50|GTE'. |
Fetch BuiltWith trust/fraud signals for a domain: live tech, payment/ecommerce, parked/status and spend. (2 credits)
| Parameter | Type | Required | Notes |
|---|---|---|---|
| domain | string | yes | Domain to score. |
Search ecommerce shops and product listings indexed by BuiltWith. (2 credits)
| Parameter | Type | Required | Notes |
|---|---|---|---|
| query | string | yes | Product search query. |
| limit | number | no | Max product/shop results requested. |
| page | number | no | Product API page number. |
Resolve a company name to candidate website domains using BuiltWith. (2 credits)
| Parameter | Type | Required | Notes |
|---|---|---|---|
| company | string | yes | Company name to resolve. |
Fetch BuiltWith keywords associated with a website domain. (2 credits)
| Parameter | Type | Required | Notes |
|---|---|---|---|
| domain | string | yes | Domain to inspect. |
Check BuiltWith account capabilities, rate limits and remaining provider credits. (2 credits)
No parameter schema on file.
Create a Meta (Facebook/Instagram) advertising campaign.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| name | string | yes | Campaign name |
| objective | string | yes | Campaign objective |
| daily_budget | number | yes | Daily budget in USD |
Create a LinkedIn Ads campaign for B2B advertising.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| name | string | yes | Campaign name |
| objective | string | yes | Campaign objective |
| daily_budget | number | yes | Daily budget in USD |
| target_company_sizes | array | no | Target company sizes |
| target_industries | array | no | Target industries (LinkedIn industry codes) |
| target_job_functions | array | no | Target job functions (e.g., 'Marketing', 'Engineering', 'Sales') |
Create a Reddit Ads campaign for community-based advertising.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| name | string | yes | Campaign name |
| objective | string | yes | Campaign objective |
| daily_budget | number | yes | Daily budget in USD |
| subreddits | array | no | Subreddits to target (optional - omit for interest-based targeting) |
| interests | array | no | Interest categories to target |
Update the bidding strategy for a campaign. Supports maximize_clicks, maximize_conversions, maximize_conversion_value, and manual_cpc.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| campaign_id | string | yes | Campaign ID to update |
| strategy | string | yes | New bidding strategy |
| target_cpa | number | no | Target CPA in USD (optional, for maximize_conversions) |
| target_roas | number | no | Target ROAS as percentage (optional, for maximize_conversion_value) |
| platform | string | no | Ad platform (default: google) |
Get AI-powered bid adjustment recommendations based on campaign performance. Analyzes day-parting, device, and audience patterns.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| campaign_id | string | no | Campaign ID to analyze (optional - analyzes all if omitted) |
| days | number | no | Number of days of data to analyze (default: 30) |
| optimization_type | string | no | Type of optimization to analyze (default: all) |
Get budget reallocation recommendations across campaigns based on ROAS and pacing. Identifies underspending and overspending campaigns.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| target_roas | number | no | Target ROAS for optimization (default: uses account average) |
| total_budget | number | no | Total daily budget to allocate across campaigns (optional) |
Check budget pacing for all campaigns. Shows spend vs budget, projected end-of-day spend, and pacing alerts.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| platform | string | no | Filter by platform (optional) |
Get expert strategic advice from the AI Strategist. Use for complex decisions like campaign structure, bidding strategy selection, budget allocation, and performance troubleshooting.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| question | string | yes | Your strategic question or problem to analyze |
| context | string | no | Additional context about your account, goals, or constraints |
| website_domain | string | no | Primary website/domain to use for BuiltWith-backed strategist analysis. |
| competitor_domains | array | no | Optional competitor domains for strategist market comparison. |
| include_data | boolean | no | Whether to include recent campaign data in analysis (default: true) |
List all connected ad accounts across platforms.
No parameter schema on file.
Upload an image as an asset for use in ads.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| image_url | string | yes | URL of the image to upload |
| asset_name | string | yes | Name for the asset |
| platform | string | no | Target platform (default: google) |
Generate an AI landing page and save it as a draft. Returns a preview URL. Call publish_landing_page to make it publicly accessible.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| title | string | yes | Page title shown in browser tab and meta tags |
| slug | string | no | URL slug (e.g. 'my-campaign'). Must be lowercase letters, numbers, hyphens. |
| prompt | string | yes | Canonical page brief. Include the offer, ICP and pains, source messaging/proof, conversion goal, voice, compliance text, and explicit no-invention constraints. |
| brand_url | string | no | Authoritative website for the brand shown on this page. Required for client pages in agency workspaces; CTA/form/calendar domains never define the brand. |
| cta_url | string | yes | URL the CTA button links to (must be a real, working URL) |
| cta_text | string | no | CTA button label (e.g. 'Start Free Trial') |
| style | string | no | Visual style preset (default: modern) |
Publish a landing page draft, making it publicly accessible at synterai.com/lp/{slug}. Only call after the user has reviewed the draft.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| slug | string | yes | Slug of the landing page to publish |
Create or update an editable Synter-hosted draft from an authorized public landing page, product page, campaign page, service page, or similar marketing webpage. The URL may omit https://. Ordinary lead forms are rebound to Synter native capture. Source JavaScript, authenticated/private state,…
| Parameter | Type | Required | Notes |
|---|---|---|---|
| source_url | string | yes | Public webpage URL. https:// is added when omitted. |
| slug | string | yes | Lowercase letters, numbers, and hyphens. |
| title | string | no | — |
| attest_authorized | boolean | yes | Must be true to attest authorization to reproduce the public page and assets. |
Create an unpublished iframe replica draft after recording authorization. Source and destination must share a registrable domain. Returns DNS TXT instructions.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| source_url | string | yes | — |
| custom_domain | string | yes | — |
| slug | string | yes | — |
| title | string | no | — |
| attest_authorized | boolean | yes | Must be true to attest control and authorization. |
Check or verify source TXT ownership and destination readiness for a replica draft.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| slug | string | yes | — |
| action | string | no | — |
Update the HTML content of an existing landing page without AI regeneration. Use this to patch logos, copy, CTAs, or layout after reviewing a draft.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| slug | string | yes | Slug of the landing page to update |
| html_content | string | yes | Full HTML string to replace the current content |
Set landing-page conversion pixels and the Google Ads conversion label, and wire a Fillout embed so form submits count as campaign conversions and route to HubSpot. Returns google_send_to plus a Fillout webhook URL.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| slug | string | yes | Existing landing page slug |
| google_conversion_label | string | no | Google Ads conversion label (the part after AW-.../) |
| fillout_form_id | string | no | Fillout form id (the /t/{id} token) |
| google_pixel_id | string | no | — |
| meta_pixel_id | string | no | — |
| linkedin_pixel_id | string | no | — |
| reddit_pixel_id | string | no | — |
| rotate_webhook_token | boolean | no | — |
Run any Synter tool by name. Use this for advanced operations not covered by other tools. See docs.syntermedia.ai for full tool list.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| script_name | string | yes | Name of the tool to run (e.g., 'google_ads_list_audiences') |
| args | array | no | Arguments to pass to the tool |
| platform | string | no | Platform for OAuth credentials (google, meta, linkedin, etc.) |
List all landing pages for the authenticated workspace, including publish status, custom domain, and URLs.
No parameter schema on file.
Create, upload to, or list first-party audiences in Google Ads via the Data Manager API.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| action | string | yes | create = new audience + upload members | upload = append to existing | list = show all audiences | status = check upload job | list-sources = show linked GA4/Merchant Center data sources |
| name | string | no | Audience name. Required for action=create. Required for action=upload unless audience_id is provided. |
| emails | string | no | Comma-separated email addresses. Hashed client-side before upload. |
| phones | string | no | Comma-separated phone numbers in E.164 format (e.g. +15551234567). |
| company_domains | string | no | Comma-separated company domains for B2B account targeting (e.g. acme.com,widgets.co). |
| audience_id | string | no | Numeric Google Ads audience ID. Alternative to name for action=upload. |
| membership_lifespan | number | no | Days to keep members in the audience. Default 540 (max 540). |
| job_resource_name | string | no | OfflineUserDataJob resource name. Required for action=status. |
Inspect Synter Agent Shield security guardrails: spend velocity limits, circuit breaker status, and PII protection fences. Free read-only security audit tool.
No parameter schema on file.
Verify advertising claims, budget shifts, or campaign targets against Synter Ångström deterministic ground-truth verification model. Free claim verification tool.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| claim | string | yes | Campaign optimization claim, targeting rule, or creative copy to verify |
Retrieve core advertising skill runbooks and playbooks (e.g. 'pmax-brand-cannibalization', 'search-hygiene-shield', 'marginal-cpa-budget-rebalancer', 'meta-asc-dark-pool-auditor', 'single-truth-attribution') or pass 'all' to list catalog. Free loadable operational knowledge for AI coding agents.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| skill | string | no | Skill identifier (or 'all'/'list' to see catalog) |
Read AI search brand visibility and AEO share-of-voice across ChatGPT, Claude, Perplexity, and Gemini. Free read-only visibility benchmark tool.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| brand | string | no | Brand or domain to inspect (optional, defaults to workspace brand) |
| query | string | no | Target search prompt or category query |
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
No parameter schema on file.
- Every tool, no call limit
- No card, and mcprush charges nothing for it
- Source published under MIT
- Runs on your machine — nothing of it reaches our gateway
- Nothing to cap, because mcprush bills nothing
What counts against your monthly calls
| Tool | Unit | Calls used | Out of the allowance |
|---|
Nothing here is billable: mcprush charges nothing to install Synterai or to call it, at any volume.
Two independent axes, because powerful and malicious are different questions. The grade is threat only. The capability level is blast radius, and it is never a penalty on the grade — it is priced as one subtract-only term in the score, where you can see it.
| Term | Level | What it prices | Points |
|---|---|---|---|
| capability-exposure | high | capability blast radius (high) — client exposure if the model is manipulated | −6 |
| verification-discount | repo | publisher verification (public source) — no provenance, but the source is public and inspectable | −1 |
| coverage-honesty | source | inspection depth (source) — how much of the target the scan could see | −0 |
What the scan could actually read
A grade is only as meaningful as its coverage, so the scanner publishes its own depth before it publishes its result.
Tools were statically extracted from the published source (32 recovered), not enumerated from a running server. Tool-poisoning, Unicode-smuggling, capability and toxic-flow analysis ran on this inferred surface, but a mis-parsed registration could be missed or mis-attributed, so tool-derived findings are capped below “confirmed”. To grade the real runtime surface, scan the running server: --command "npx -y <package>".
Capability — what it could do if the model were manipulated
Tags derived from each tool’s schema and the implementation, not from what the tool calls itself. high is the level these add up to.
| Tool | Capability tags | Why the tag was assigned |
|---|---|---|
| list_campaigns | no tags | |
| create_search_campaign | state-write | state-write: declares destructiveHint: true |
| create_display_campaign | state-write | state-write: declares destructiveHint: true |
| create_pmax_campaign | state-write | state-write: declares destructiveHint: true |
| pause_campaign | state-write | state-write: declares destructiveHint: true |
| update_campaign_budget | state-write | state-write: declares destructiveHint: true |
| get_performance | no tags | |
| get_daily_spend | no tags | |
| pacing_report | no tags | |
| user_budget_pacing_report | no tags | |
| optimize_budget | no tags | |
| add_keywords | state-write | state-write: declares destructiveHint: true |
| add_negative_keywords | state-write | state-write: declares destructiveHint: true |
| create_conversion | state-write | state-write: declares destructiveHint: true |
| list_conversions | no tags | |
| diagnose_tracking | no tags | |
| generate_image | state-write | state-write: declares destructiveHint: true |
| generate_video | state-write | state-write: declares destructiveHint: true |
| create_meta_campaign | state-write | state-write: declares destructiveHint: true |
| create_linkedin_campaign | state-write | state-write: declares destructiveHint: true |
| create_reddit_campaign | state-write | state-write: declares destructiveHint: true |
| stage_audience_artifact | code-execstate-write | code-exec: parameter "script"; state-write: declares readOnlyHint: false |
| sync_audience | state-write | state-write: declares destructiveHint: true |
| manage_audience | state-write | state-write: declares destructiveHint: true |
| list_ad_accounts | no tags | |
| upload_image | state-write | state-write: declares destructiveHint: true |
| run_tool | code-execstate-write | code-exec: parameter "script"; state-write: declares destructiveHint: true |
| list_landing_pages | no tags | |
| inspect_agent_shield | no tags | |
| verify_angstrom_claim | no tags | |
| get_skill | no tags | |
| get_llm_visibility | no tags |
Toxic-flow graph
The lethal trifecta, checked as a graph rather than as a checklist: untrusted input, a sensitive source and an external sink have to meet before there is a path worth worrying about.
The public result for this release does not print the flow graph, so there is nothing to show here. That is not the same as "no paths were found": what the scan did read is above, under coverage.
Supply chain and provenance
This is the first scan of this surface here, so there is nothing yet to compare it against.
Every result on this tab comes from one deterministic pass over the published package — offline, rule by rule, and auditable line by line above. Same methodology version, same bytes, same score.
Release history
Always latest — the install command names no version, so it installs the newest release when it runs; the current release on file is 1.4.4. Pin a release below and the command asks for exactly that one.
No release note was published with this version.
No release note was published with this version.
No release note was published with this version.
No release note was published with this version.
- The version this listing was on when mcprush began following its releases. The registry was not asked when it shipped, so this row carries no date.
One review per account, from a signed-in account that does not publish this listing. Nothing else is asked — you can say what you think before you install it. Publishers can reply once per review, and a review can be edited or deleted by whoever wrote it.
Any signed-in account that does not publish Synterai can review it, once — before installing it or after. A review from an account that has installed it is marked as one.
Nobody has reviewed this listing. The rating on the card is the mean of the reviews written here and nothing else, so there is no rating until somebody writes the first — which takes a signed-in account that does not publish it, and nothing else.