Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

io.github.Synter-Media-AI/synter-ads

REMOTE · MCP.SYNTERMEDIA.AI · SCANNED SEP 20

Manage ad campaigns across Google, Meta, LinkedIn, Reddit, TikTok, and more via AI.

−6 this week 79 Trust /100
Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →

Endpoint Security89
Transport & Reachability100
Schema Quality & AI Usability62
  • AI-judged instruction clarity (good).Pass
  • Context-footprint check failed: tool/resource definitions use about 25001 tokens (~119/item across 209 items; 209 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management48
  • Stability check failed: schema churn in the 30 days we've observed: 7 tool removals, 136 breaking changes, 0 auth/transport breaks, 72 additions. See how to fix → Fail
Tool Coverage67
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 0% of tool parameters carry a description.Fail
Tool Safety98
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • 12 of 13 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation; "run_gaql_query" implies "execute" and declares readOnlyHint instead, contradicting what its own name says it does. See how to fix → Partial
  • An AI judge read all 210 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Install

How do I install the io.github.Synter-Media-AI/synter-ads MCP server?

io.github.Synter-Media-AI/synter-ads is a hosted endpoint at https://mcp.syntermedia.ai/, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

remote · mcp.syntermedia.ai

# add to Claude Code
claude mcp add --transport http synter-media-ai-synter-ads 'https://mcp.syntermedia.ai/'
// .cursor/mcp.json
{
  "mcpServers": {
    "synter-media-ai-synter-ads": {
      "url": "https://mcp.syntermedia.ai/"
    }
  }
}
// .vscode/mcp.json
{
  "servers": {
    "synter-media-ai-synter-ads": {
      "type": "http",
      "url": "https://mcp.syntermedia.ai/"
    }
  }
}
# ~/.codex/config.toml
[mcp_servers.synter-media-ai-synter-ads]
url = "https://mcp.syntermedia.ai/"
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "synter-media-ai-synter-ads": {
      "type": "remote",
      "url": "https://mcp.syntermedia.ai/",
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add synter-media-ai-synter-ads --url 'https://mcp.syntermedia.ai/' --transport streamable-http
# ~/.hermes/config.yaml
mcp_servers:
  synter-media-ai-synter-ads:
    url: "https://mcp.syntermedia.ai/"
// ~/.netclaw/config/netclaw.json
{
  "McpServers": {
    "synter-media-ai-synter-ads": {
      "Transport": "http",
      "Url": "https://mcp.syntermedia.ai/"
    }
  }
}
# add to Vellum
assistant mcp add synter-media-ai-synter-ads -t streamable-http -u 'https://mcp.syntermedia.ai/'
// mcp.json
{
  "mcpServers": {
    "synter-media-ai-synter-ads": {
      "type": "http",
      "url": "https://mcp.syntermedia.ai/"
    }
  }
}

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 20 Sept 26 0
    • This server's schema is too large to store in full, so we cannot compare its tools day to day functional
  • 19 Sept 26 0
    • This server's schema is too large to store in full, so we cannot compare its tools day to day functional
  • 18 Sept 26 0
    • This server's schema is too large to store in full, so we cannot compare its tools day to day functional
  • 17 Sept 26 0
    • This server's schema is too large to store in full, so we cannot compare its tools day to day functional
  • 16 Sept 26 0
    • This server's schema is too large to store in full, so we cannot compare its tools day to day functional
  • 15 Sept 26 0
    • This server's schema is too large to store in full, so we cannot compare its tools day to day functional
  • 14 Sept 26 −6
    • This server's schema is too large to store in full, so we cannot compare its tools day to day functional
  • 13 Sept 26 0
    • This server's schema is too large to store in full, so we cannot compare its tools day to day functional
Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 20 Sept 2026 · Probed https://mcp.syntermedia.ai

TLS valid

Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .

Subject Issuer Valid from Valid until Key Signature Serial
CN=mcp.syntermedia.ai CN=YR1,O=Let's Encrypt,C=US 23 Aug 2026 21 Nov 2026 RSA 2048 SHA256-RSA 5dbc93cd9d736000581fea3bd7546081504
SANs: mcp.syntermedia.ai
CN=YR1,O=Let's Encrypt,C=US (CA) CN=Root YR,O=ISRG,C=US 3 Sept 2025 2 Sept 2028 RSA 2048 SHA256-RSA a20253f15f2691c05dc1ce13b9bcca4e
CN=Root YR,O=ISRG,C=US (CA) CN=ISRG Root X1,O=Internet Security Research Group,C=US 13 May 2026 2 Sept 2032 RSA 4096 SHA256-RSA f24b6d17f9d9ad7cb1c9fea78782699f

Background: What to check on a remote MCP endpoint →

DNSSEC insecure

Validation of mcp.syntermedia.ai. Not signed

Zone DS Keys Algorithms Outcome
. trust_anchor 20326, 38696 8, 8 Verified
ai. present 3799 8 Verified
syntermedia.ai. absent Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation
Authentication Enforced and verified

The endpoint asked for a token and published valid RFC 9728 metadata describing how to get one.

Result Enforced and verified
Enforced On tool calls
HTTP status 200

WWW-Authenticate challenge Bearer resource_metadata="https://mcp.syntermedia.ai/.well-known/oauth-protected-resource", scope="tools:read tools:write"

Bearer resource_metadata="https://mcp.syntermedia.ai/.well-known/oauth-protected-resource", scope="tools:read tools:write"

Protected resource metadata

Document https://mcp.syntermedia.ai/.well-known/oauth-protected-resource
Retrieved Yes
Resource https://mcp.syntermedia.ai
Authorisation server https://mcp.syntermedia.ai

Background: How OAuth 2.1 works in the 2026 MCP spec →

Transports 2 probes
Transport URL Outcome Status Location
streamable-http https://mcp.syntermedia.ai Verified 200
http (plaintext) http://mcp.syntermedia.ai HTTPS enforced 301 https://mcp.syntermedia.ai/
MCP tools · 209 exposed · ~20,927 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
approve_campaign_plan ~71

Record the workspace owner's approval of a published campaign plan, moving it from in_review to approved so it can be launched. [effect=write; scope=campaigns:plan; requires=campaignPublishing]

NameTypeReqDescription
comment
expected_versionintegeryes
plan_idstringyes

No output schema declared.

No examples provided.

approve_organic_post ~64

Approve exactly one immutable organic-post revision after successful preflight. Any revision mismatch fails closed; never publishes. [effect=write; scope=social:write; requires=campaignPublishing]

NameTypeReqDescription
post_idintegeryes
revision_hashstringyes

No output schema declared.

No examples provided.

attach_audience ~126

Attach (add), remove, or replace a matched audience on an existing campaign/ad-group/ad-set/line-item's targeting (5 credits). Supports linkedin, google, meta, tiktok, reddit, microsoft, stackadapt, x. [effect=write; scope=audiences:write; requires=campaignPublishing; externalMutation=true]

NameTypeReqDescription
ad_group_id
audience_id
campaign_idstringyes
facetstring
modestring
platformstring
segment_urn

No output schema declared.

No examples provided.

audit_account_structure ~140

Audit an ad account's campaign structure (READ-ONLY, free). Flags the churn signatures that make an account a mess: duplicate campaign / ad group / ad names (case-insensitive, trimmed), ad groups with empty or invalid targeting, and 'rebuilt-not-edited' campaigns (a name with both a live and an archived copy). Reddit is fully supported (campaign / ad group / ad depth); Google is campaign-level. Writes nothing — use repair_account_structure to act on the findings. [effect=read; scope=campaigns:read]

NameTypeReqDescription
account_id
account_name
platformstring

No output schema declared.

No examples provided.

audit_llm_crawler_readiness ~89

Audit domain crawler readiness for AI search engines (GPTBot, ClaudeBot, PerplexityBot, Google-Extended, Bytespider). Checks robots.txt, HTTP headers, llms.txt availability, and generates a custom llms.txt markdown map. [effect=read; scope=intel:read]

NameTypeReqDescription
check_llms_txt
domainstringyes

No output schema declared.

No examples provided.

audit_review_site_profiles ~74

Audit brand profile readiness and completeness across G2, Capterra, Trustpilot, and Gartner Digital Markets to optimize software category indexing in LLM search. [effect=read; scope=connections:read]

NameTypeReqDescription
brand_namestringyes
domainstringyes
review_platforms

No output schema declared.

No examples provided.

build_abm_audience ~178

[INTERNAL — Synter staff only] Build an ad-platform Custom Audience from verified decision-maker emails for a list of target company domains. Pulls valid emails from Synter's audience data warehouse, SHA-256 hashes locally, uploads to the requested platform (LINKEDIN, META, GOOGLE, REDDIT, X, MICROSOFT, TIKTOK). Requires INTERNAL_ABM_SERVICE_TOKEN and INTERNAL_ABM_MCP_USER_IDS env vars to be configured; the caller's user_id must be on that allowlist. [effect=write; scope=audiences:write; externalMutation=true]

NameTypeReqDescription
account_idstringyes
audience_namestringyes
decision_makers_onlyboolean
domainsstringyes
max_contacts
platformstringyes

No output schema declared.

No examples provided.

build_lookalike_audience ~63

Build ML-based lookalike audience from seed customers [effect=write; scope=audiences:write; externalMutation=true]

NameTypeReqDescription
expansion_factorinteger
platformstringyes
seed_audiencestringyes

No output schema declared.

No examples provided.

builtwith_company_to_url ~48

BuiltWith Company to URL API — resolve company names to candidate website domains. (2 credits) [effect=read; scope=intel:read]

NameTypeReqDescription
companystringyes

No output schema declared.

No examples provided.

builtwith_get_account_usage ~43

BuiltWith account capability and usage snapshot — plan limits, rate limits, credit usage. (2 credits) [effect=read; scope=intel:read]

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

builtwith_get_domain_keywords ~45

BuiltWith Keywords API — keywords associated with a website domain. (2 credits) [effect=read; scope=intel:read]

NameTypeReqDescription
domainstringyes

No output schema declared.

No examples provided.

builtwith_get_domain_technologies ~82

BuiltWith domain tech stack lookup — ad pixels, CRM, analytics, CMS/ecommerce tools, spend/meta. (2 credits) [effect=read; scope=intel:read]

NameTypeReqDescription
domainstringyes
include_rawboolean
include_trustboolean
live_onlyboolean

No output schema declared.

No examples provided.

builtwith_get_sites ~110

Find websites by BuiltWith technology, natural language audience, or keyword search. (2 credits) [effect=read; scope=intel:read]

NameTypeReqDescription
commitboolean
countries
employees
include_metaboolean
keyword
limitinteger
offset
other_techs
query
revenue
spend
tech

No output schema declared.

No examples provided.

builtwith_get_technology_changes ~59

BuiltWith Change API — recent technology additions/removals for domains, with business context. (2 credits) [effect=read; scope=intel:read]

NameTypeReqDescription
domainsarrayyes
sincestring

No output schema declared.

No examples provided.

builtwith_get_trust_signals ~55

BuiltWith Trust API — domain trust, ecommerce/payment, parked/status, spend and live-tech signals. (2 credits) [effect=read; scope=intel:read]

NameTypeReqDescription
domainstringyes

No output schema declared.

No examples provided.

builtwith_product_search ~61

BuiltWith Product API — ecommerce shops and product listings matching a product query. (2 credits) [effect=read; scope=intel:read]

NameTypeReqDescription
limitinteger
pageinteger
querystringyes

No output schema declared.

No examples provided.

cancel_scheduled_post ~68

Cancel an exact scheduled organic-post revision before its one-shot provider job starts. Cancellation remains available when publishing is disabled so queued external mutations can be stopped safely. [effect=state; scope=social:write]

NameTypeReqDescription
post_idintegeryes
revision_hashstringyes

No output schema declared.

No examples provided.

configure_pixel_destination ~159

Create or update a Synter Pixel CAPI event-forwarding destination. Sets the platform-specific IDs needed to fan out conversion events server-side. Supports Google (customer_id + conversion_action_id), Meta/Reddit (pixel_id), LinkedIn (conversion_rule_id), TikTok (pixel_code), and Snapchat. Use action='disable' or action='enable' to toggle without changing settings. Free — no credits. [effect=write; scope=tracking:write; externalMutation=true]

NameTypeReqDescription
actionstring
conversion_action_id
conversion_rule_id
customer_id
pixel_code
pixel_id
platformstringyes
site_key

No output schema declared.

No examples provided.

create_ad_copy ~99

Generate text ad copy (headlines, descriptions, CTAs) for any platform using Claude (5 credits) [effect=write; scope=creative:generate]

NameTypeReqDescription
competitor_brand
cta
descriptions_count
headlines_count
keywords
landing_page_url
platformstringyes
productstringyes
tonestring

No output schema declared.

No examples provided.

create_autonomous_schedule ~145

Create an autonomous agent schedule that runs a Synter skill on a cron cadence (e.g. a budget-pacing / campaign-health monitor). Defaults to a read-only cross-platform pacing monitor every 4 hours that alerts via Slack and never moves money. Pass skill_slug + cron_expression to schedule any autonomous-capable skill. [effect=write; scope=automation:write]

NameTypeReqDescription
approval_mode
cron_expression
description
name
notify_channels
notify_on_completionboolean
organization_id
platform
project_id
skill_slug

No output schema declared.

No examples provided.

create_campaign_for_audience ~105

Create a campaign targeting an existing audience (200 credits — campaign launch) [effect=publish; scope=campaigns:write; requires=campaignPublishing; externalMutation=true]

NameTypeReqDescription
account_id
audience_idstringyes
campaign_namestringyes
daily_budgetnumber
description
final_url
headline
image_url
platformstringyes

No output schema declared.

No examples provided.

create_campaign_import ~135

Import an existing live ad campaign (Meta, Google, LinkedIn, TikTok, Reddit, X, Microsoft, etc.) into Synter UI as a workspace document (/campaigns/ide/<uuid>). Pulls live campaign details, performance, and structure, creates a document in Synter UI, and returns the clickable URL so it appears in the user's workspace. [effect=write; scope=campaigns:write; requires=campaignPublishing; externalMutation=true]

NameTypeReqDescription
campaign_id
campaign_name
daysinteger
organization_id
platformstringyes

No output schema declared.

No examples provided.

create_campaign_plan ~67

Create or update a campaign launch plan. Use plan_key for idempotency. [effect=write; scope=campaigns:write; requires=campaignPublishing; externalMutation=true]

NameTypeReqDescription
brief_json
plan_keystringyes
titlestringyes

No output schema declared.

No examples provided.

create_document ~67

Create a document in the Campaign IDE editor (free). Perfect for reports, audits, strategy docs, and plans that can be collaboratively edited. [effect=write; scope=workspace:write]

NameTypeReqDescription
contentstringyes
organization_id
titlestringyes

No output schema declared.

No examples provided.

create_embed ~117

Create a reusable native Synter form, event registration, customer shopping cart, Synter plan or usage-funds purchase card, checkout link, or media block for any paid or organic destination. Use list_embeds to inspect native-vs-hosted platform capabilities. [effect=write; scope=landing_pages:write]

NameTypeReqDescription
allowed_origins
commerce_connection_id
config
fields
kindstringyes
namestringyes
publishedboolean

No output schema declared.

No examples provided.

create_google_doc ~51

Create a Google Doc from markdown or HTML content (5 credits) [effect=write; scope=workspace:external_docs]

NameTypeReqDescription
content
html
titlestringyes

No output schema declared.

No examples provided.

create_google_sheet ~56

Create a Google Sheet from tabular data (5 credits) [effect=write; scope=workspace:external_docs]

NameTypeReqDescription
headers
json_data
rows
titlestringyes

No output schema declared.

No examples provided.

create_landing_page ~100

Generate an AI landing page hosted on your custom domain (135 credits) [effect=write; scope=landing_pages:write]

NameTypeReqDescription
brand_url
cta_textstring
cta_urlstringyes
idempotency_key
lead_form
promptstringyes
slug
stylestring
titlestringyes

No output schema declared.

No examples provided.

create_social_clip ~113

Render, watermark, auto-caption, and format video/screen recordings into social clips for X, LinkedIn, TikTok, or Reels. Use forecast_tool_cost for current pricing. [effect=write; scope=creative:generate]

NameTypeReqDescription
aspect_ratiostring
auto_captionboolean
headline
idempotency_key
name
source_urlstringyes
trim_end
trim_startnumber

No output schema declared.

No examples provided.

create_verified_page_replica ~79

Create an unpublished, verified iframe replica draft for a source and custom domain you control. [effect=write; scope=landing_pages:write]

NameTypeReqDescription
attest_authorizedbooleanyes
custom_domainstringyes
slugstringyes
source_urlstringyes
titlestring

No output schema declared.

No examples provided.

delete_audience ~111

Delete (or close) a custom/matched audience from an ad platform by exact audience_id. Use to clean up stale or errored (e.g. NOT_ENOUGH_MATCHES) audiences. Meta, Reddit, and Google are supported. Meta verifies the audience belongs to the resolved ad account before deletion. This is irreversible. [effect=write; scope=audiences:write; externalMutation=true]

NameTypeReqDescription
account_id
audience_idstringyes
platformstringyes

No output schema declared.

No examples provided.

delete_document ~57

Delete a Campaign IDE document by id or uuid (e.g. to remove a stale or duplicate doc). Only deletes documents you own. [effect=write; scope=workspace:write]

NameTypeReqDescription
document_id
uuid

No output schema declared.

No examples provided.

disable_campaign_guardrail ~57

Disable a campaign-specific automatic pause guardrail. This does not change the campaign's current platform status. Free. [effect=write; scope=guardrails:write; externalMutation=true]

NameTypeReqDescription
guardrail_idintegeryes

No output schema declared.

No examples provided.

discover_llm_visibility_prompts ~88

Discover and generate high-intent B2B commercial buying prompts across Evaluation, Direct Comparison, Alternatives, Pricing/ROI, and Feature Verification intent stages for your brand and competitors. [effect=read; scope=intel:read]

NameTypeReqDescription
auto_seed
competitors
domain
icp_persona
project_id

No output schema declared.

No examples provided.

draft_organic_post ~174

Create an immutable, tenant-bound text post draft for an explicitly selected LinkedIn member or company destination. Supply a stable idempotency_key (1-255 non-whitespace characters), unique within the workspace for this intended draft, and reuse that exact key on retries; changing content or destination while reusing it fails closed. The media field is reserved and any non-empty value fails closed until managed media transport exists; never publishes. [effect=write; scope=social:write; requires=campaignPublishing]

NameTypeReqDescription
account_kindstringyes
account_refstringyes
bodystringyes
idempotency_keystringyes
media
platformstringyes
platform_connection_idintegeryes
provider_config_keystringyes

No output schema declared.

No examples provided.

draft_wikipedia_article ~98

Generate an encyclopedic, NPOV-compliant Wikitext draft article with Infobox company markup, citation footnotes, and WP:PAID disclosure text for Wikipedia Articles for Creation (AFC) submission. [effect=write; scope=intel:write]

NameTypeReqDescription
brand_namestringyes
citations
description
domain
founding_year
headquarters

No output schema declared.

No examples provided.

enable_campaign ~70

Enable/resume a paused campaign on any ad platform (2 credits) [effect=state; scope=campaigns:state; requires=campaignPublishing; externalMutation=true]

NameTypeReqDescription
account_id
account_name
campaign_idstringyes
platformstringyes

No output schema declared.

No examples provided.

execute ~249

Execute any Synter action: create campaigns, upload to YouTube, manage GTM/GA4, analyze competitors, and more. Calls execute immediately by default; pass dry_run=true only when the user explicitly asks for validation-only behavior. Use inspect_script before the first call to an unfamiliar action so arguments are never guessed. Pass expected_names={"campaign-id": "<name fragment>"} to hard-enforce target identity for updates. MULTIPLE ACCOUNTS ARE THE NORM: most platforms have more than one connected account, and account_id selects which one this call uses. Omit it and the workspace default is used, which is NOT always the account you want and may be one with no usable credential. If a call fails on credentials, returns suspicious zeros, or the platform has several accounts, call verify_platform_accounts first to see the default and its siblings, then re-run with account_id. [effect=write; scope=scripts:execute]

NameTypeReqDescription
account_id
actionstringyes
args
customer_id
dry_runboolean
expected_names
idempotency_key
platform

No output schema declared.

No examples provided.

execute_campaign_plan ~71

Launch an approved campaign plan — activates all entities across platforms in dependency order. [effect=publish; scope=campaigns:write; requires=campaignPublishing; externalMutation=true]

NameTypeReqDescription
execute_tokenstringyes
plan_idstringyes
qa_override_approvedboolean

No output schema declared.

No examples provided.

find_audience_signals ~85

Find audience intent signals and semantic clusters from a natural-language description (e.g. 'RevOps leaders at B2B SaaS companies using Salesforce'). Returns matching intent clusters to use as targeting signals. [effect=read; scope=signals:read]

NameTypeReqDescription
entity_typestring
max_resultsinteger
querystringyes

No output schema declared.

No examples provided.

find_llm_citation_listicles ~81

Find top media listicles and roundup articles cited by ChatGPT and Perplexity for a target buying prompt, and generate tailored editor outreach briefs. [effect=read; scope=intel:read]

NameTypeReqDescription
brand_namestringyes
buying_promptstringyes
competitors
domainstringyes

No output schema declared.

No examples provided.

forecast_campaign ~75

Forecast campaign KPIs (spend, CPA, ROAS, clicks, conversions) for 7-30 days with confidence intervals (2 credits) [effect=read; scope=campaigns:read]

NameTypeReqDescription
campaign_id
horizoninteger
metricstring
platform

No output schema declared.

No examples provided.

forecast_tool_cost ~92

Look up what a Synter tool will charge in credits BEFORE you call it. Unknown tool names return the fail-closed default rather than 0, so a typo never reads as 'free'. FREE: costs no credits and makes no LLM call. Use this instead of guessing a price from a tool's description. [effect=read; scope=billing:read]

NameTypeReqDescription
tool_namestringyes

No output schema declared.

No examples provided.

ga4_get_conversions ~58

List GA4 conversion events (free). Pass property_id to query a specific GA4 property instead of the connection default. [effect=read; scope=tracking:read]

NameTypeReqDescription
account_id
property_id

No output schema declared.

No examples provided.

ga4_get_properties ~38

List your Google Analytics 4 properties (free) [effect=read; scope=reporting:read]

NameTypeReqDescription
account_id

No output schema declared.

No examples provided.

ga4_get_report ~81

Run a Google Analytics 4 report (free). Pass property_id to query a specific GA4 property instead of the connection default. [effect=read; scope=reporting:read]

NameTypeReqDescription
account_id
daysinteger
dimensionsstring
metricsstring
property_id

No output schema declared.

No examples provided.

generate_jsonld_schema_markup ~93

Generate valid schema.org JSON-LD scripts (Organization, SoftwareApplication, Product, FAQPage) with sameAs knowledge-graph links for embedding into website HTML. [effect=write; scope=creative:generate]

NameTypeReqDescription
brand_namestringyes
description
domainstringyes
faqs
pricing_summary
same_as_urls

No output schema declared.

No examples provided.

get_account_changelog ~121

Extract Google Ads changelog / mutation history (default request 90 days, capped to the Google Ads change_event API's 30-day maximum). Other catalog platforms return changelog_supported=false until a reader is implemented. Evaluates historical changes against Synter's autonomous agent tool and OAuth scope parity, calculates estimated monthly hours saved, and generates autonomous agent recommendations. [effect=read; scope=campaigns:read]

NameTypeReqDescription
account_id
account_name
lookback_daysinteger
platformstring

No output schema declared.

No examples provided.

get_ad_readback ~110

Proof Pack: read a launched ad's creative + CTA back from the platform API (the source of truth) and verify the CTA against the platform enum and the copy against ad policy (2 credits). Meta, Reddit, and LinkedIn supported today; other platforms return a clearly-labeled unsupported result. [effect=read; scope=campaigns:read]

NameTypeReqDescription
account_id
ad_idstringyes
approved_cta
platformstringyes

No output schema declared.

No examples provided.

get_attribution ~46

Multi-touch attribution analysis using Markov chains (5 credits) [effect=read; scope=measurement:read]

NameTypeReqDescription
conversion_type
date_rangestring

No output schema declared.

No examples provided.

Common questions

What is the io.github.Synter-Media-AI/synter-ads MCP server?

io.github.Synter-Media-AI/synter-ads is an MCP server listed in the public MCP registry as io.github.Synter-Media-AI/synter-ads. Manage ad campaigns across Google, Meta, LinkedIn, Reddit, TikTok, and more via AI. This page covers its hosted endpoint (https://mcp.syntermedia.ai).

Is the io.github.Synter-Media-AI/synter-ads MCP server safe to use?

io.github.Synter-Media-AI/synter-ads scores 79 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the io.github.Synter-Media-AI/synter-ads MCP server expose?

io.github.Synter-Media-AI/synter-ads exposes 209 tools: get_organic_publishing_readiness, draft_organic_post, validate_organic_post, approve_organic_post, schedule_organic_post, and 204 more. Their descriptions and schemas cost roughly 20,927 tokens of context every time the server is loaded.

Does the io.github.Synter-Media-AI/synter-ads MCP server require authentication?

Yes. io.github.Synter-Media-AI/synter-ads asked us for credentials when we connected, so you will need to authorise it in your MCP client before it can do anything.

Is the io.github.Synter-Media-AI/synter-ads MCP server still maintained?

io.github.Synter-Media-AI/synter-ads is still listed as active in the MCP registry. We last reached this channel on 20 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.