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

io.github.jshorwitz/synter-ads

NPM · @SYNTERAI/MCP-SERVER · 2 COMPONENTS · SCANNED AUG 3

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

+35 this week 53 Trust /100
Trust breakdown (6 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score →

Supply Chain Security70
  • No malware found by supply-chain analysis.Pass
  • CVE check failed: a known high-severity CVE affects @modelcontextprotocol/sdk 0.6.1, a direct dependency. A fixed version is available. View diagnostics → Fail
  • No install/post-install scripts declared.Pass
  • Only part of the dependency tree could be resolved (13 of 14), so this covers what we could see, not the whole tree. View diagnostics → Partial
Provenance & Transparency19
Schema Quality & AI Usability70
  • AI-judged instruction clarity (good).Pass
  • Tool/resource definitions use about 1702 tokens (~81/item across 21 items; 21 tools + 0 resources), lean.Pass
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management23
  • Stability observed for 7 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
Capabilities20
  • Spec-recency check failed: implements MCP spec 2024-11-05; the latest is 2026-07-28. See how to fix → Fail
Install

Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.

npm · @synterai/mcp-server

# add to Claude Code
claude mcp add jshorwitz-synter-ads -- npx -y @synterai/mcp-server
# add to Codex CLI
codex mcp add jshorwitz-synter-ads -- npx -y @synterai/mcp-server
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "jshorwitz-synter-ads": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "@synterai/mcp-server"
      ],
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add jshorwitz-synter-ads --command npx --arg -y --arg @synterai/mcp-server
# ~/.hermes/config.yaml
mcp_servers:
  jshorwitz-synter-ads:
    command: "npx"
    args: ["-y", "@synterai/mcp-server"]
// mcp.json
{
  "mcpServers": {
    "jshorwitz-synter-ads": {
      "command": "npx",
      "args": [
        "-y",
        "@synterai/mcp-server"
      ]
    }
  }
}
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.

  • 2 Aug 26 +20
    • Known CVEs: unverified → fail security
    • Provenance: fail → unverified security
    • Install scripts: pass → unverified security
    • Malware scan: unverified → pass security
    • Maintenance: pass → unverified functional
    • License: pass → unverified functional
    • Dependency health: unverified → partial functional
    • Stability: unverified → 0.20 functional
    • Licence: MIT functional
  • 1 Aug 26 −5
    • Known CVEs: fail → unverified security
    • Dependency health: partial → unverified functional
  • 31 Jul 26 0
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 30 Jul 26 −18
    • Malware scan: pass → unverified security
  • 28 Jul 26 +38
    • CVE-2025-66414 affects this package: high security
    • Known CVEs: unverified → fail security
    • Provenance: unverified → fail security
    • Install scripts: unverified → pass security
    • Tool coverage: unverified → 100 functional
    • Dependency health: unverified → partial functional
    • Maintenance: unverified → pass functional
    • License: unverified → pass functional
    • First check of Schema quality: fail functional
    • First check of Schema quality: pass functional
    • First check of Schema quality: unverified functional
    • First check of Tool coverage: 100 functional
    • Licence: MIT functional
  • 27 Jul 26 18

    First indexed and scored.

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 3 Aug 2026 · Analysed npm/@synterai/[email protected]

Provenance none

Ecosystem: npm · Outcome: none

Vulnerabilities 1 finding
ID CVE Severity Vector Fix available
GHSA-w48q-cv73-mx4w CVE-2025-66414 high yes
Dependencies 13 packages

13 packages in the resolved dependency tree · 13 deprecated · 6 stale.

The dependency tree was only partially resolved, so these counts may be incomplete.

MCP tools — 21 exposed · ~1,702 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.

Tool Tokens
add_keywords ~62

Add keywords to a Google Ads campaign or ad group.

NameTypeReqDescription
ad_group_idstringyesAd group ID to add keywords to
keywordsarrayyesKeywords to add
match_typestringKeyword match type (default: PHRASE)

No output schema declared.

No examples provided.

add_negative_keywords ~56

Add negative keywords to block unwanted search terms.

NameTypeReqDescription
campaign_idstringyesCampaign ID
keywordsarrayyesNegative keywords to add
levelstringLevel to apply negatives (default: CAMPAIGN)

No output schema declared.

No examples provided.

create_conversion ~76

Create a conversion action in Google Ads. Returns the conversion ID and label for GTM setup.

NameTypeReqDescription
categorystringConversion category (default: LEAD)
namestringyesName for the conversion action (e.g., 'Signup', 'Purchase')
valuenumberDefault conversion value in USD (optional)

No output schema declared.

No examples provided.

create_display_campaign ~161

Create a Google Ads Display campaign with responsive display ads. Supports image uploads from URLs.

NameTypeReqDescription
business_namestringyesBusiness name (max 25 chars)
campaign_namestringyesName for the campaign
daily_budgetnumberyesDaily budget in USD
descriptionsarrayyesDescriptions (1-5, max 90 chars each)
final_urlstringyesLanding page URL
geo_targetsarrayGeo target codes
headlinesarrayyesHeadlines (1-5, max 30 chars each)
landscape_image_urlstringURL to 1200x628 landscape image
square_image_urlstringURL to 1200x1200 square image

No output schema declared.

No examples provided.

create_linkedin_campaign ~105

Create a LinkedIn Ads campaign for B2B advertising.

NameTypeReqDescription
daily_budgetnumberyesDaily budget in USD
namestringyesCampaign name
objectivestringyesCampaign objective
target_company_sizesarrayTarget company sizes
target_industriesarrayTarget industries (LinkedIn industry codes)
target_job_functionsarrayTarget job functions (e.g., 'Marketing', 'Engineering', 'Sales')

No output schema declared.

No examples provided.

create_meta_campaign ~50

Create a Meta (Facebook/Instagram) advertising campaign.

NameTypeReqDescription
daily_budgetnumberyesDaily budget in USD
namestringyesCampaign name
objectivestringyesCampaign objective

No output schema declared.

No examples provided.

create_pmax_campaign ~214

Create a Google Ads Performance Max campaign. Requires images, headlines, descriptions, and a business name.

NameTypeReqDescription
business_namestringyesBusiness name (max 25 chars)
campaign_namestringyesName for the campaign
daily_budgetnumberyesDaily budget in USD
descriptionsarrayyesDescriptions (2-5, max 90 chars each)
final_urlstringyesLanding page URL
geo_targetsarrayGeo target codes
headlinesarrayyesHeadlines (3-15, max 30 chars each)
landscape_image_urlstringURL to 1200x628 landscape image
logo_urlstringURL to square logo (min 128x128)
long_headlinestringyesLong headline (max 90 chars)
square_image_urlstringURL to 1200x1200 square image
target_cpanumberTarget CPA in USD (optional)

No output schema declared.

No examples provided.

create_reddit_campaign ~83

Create a Reddit Ads campaign for community-based advertising.

NameTypeReqDescription
daily_budgetnumberyesDaily budget in USD
interestsarrayInterest categories to target
namestringyesCampaign name
objectivestringyesCampaign objective
subredditsarraySubreddits to target (optional - omit for interest-based targeting)

No output schema declared.

No examples provided.

create_search_campaign ~159

Create a Google Ads Search campaign with keywords. Sets up campaign, ad group, keywords, and responsive search ads.

NameTypeReqDescription
campaign_namestringyesName for the campaign
daily_budgetnumberyesDaily budget in USD
descriptionsarrayyesDescriptions for the responsive search ad (2-4, max 90 chars each)
final_urlstringyesLanding page URL
geo_targetsarrayGeo target codes (e.g., '2840' for US, '2826' for UK)
headlinesarrayyesHeadlines for the responsive search ad (3-15, max 30 chars each)
keywordsarrayyesKeywords to target (will be added as phrase match)

No output schema declared.

No examples provided.

diagnose_tracking ~44

Check if conversion tracking is properly set up on a website. Verifies gtag.js, GTM, and pixel installation.

NameTypeReqDescription
urlstringyesWebsite URL to check

No output schema declared.

No examples provided.

generate_image ~90

Generate an AI image for ad creatives using Imagen 4, Flux, or Stable Diffusion.

NameTypeReqDescription
namestringAsset name for organization
promptstringyesImage generation prompt (be specific about style, layout, colors)
providerstringAI provider (default: imagen)
sizestringImage dimensions (default: 1200x628 for display ads)

No output schema declared.

No examples provided.

generate_video ~121

Generate an AI video ad using Veo, Runway, or Luma. Great for YouTube and social ads.

NameTypeReqDescription
conceptstringVideo concept framework (default: pas = Problem-Agitate-Solve)
durationnumberVideo duration in seconds (default: 8)
key_benefitstringyesMain value proposition
product_namestringyesProduct or brand name
providerstringAI provider (default: veo)
target_audiencestringWho is this video for?

No output schema declared.

No examples provided.

get_daily_spend ~50

Get daily spend breakdown across all connected ad accounts.

NameTypeReqDescription
daysnumberNumber of days to look back (default: 7)
platformstringFilter by platform (optional)

No output schema declared.

No examples provided.

get_performance ~75

Get performance metrics (impressions, clicks, spend, conversions, ROAS) for campaigns.

NameTypeReqDescription
campaign_idstringFilter by specific campaign ID (optional)
date_rangestringDate range for metrics (default: LAST_7_DAYS)
platformstringFilter by platform (optional)

No output schema declared.

No examples provided.

list_ad_accounts ~17

List all connected ad accounts across platforms.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

list_campaigns ~76

List all campaigns across connected ad platforms. Returns campaign name, status, budget, and performance metrics.

NameTypeReqDescription
limitnumberMaximum number of campaigns to return (default: 50)
platformstringFilter by platform (optional - lists all if not specified)
statusstringFilter by campaign status

No output schema declared.

No examples provided.

list_conversions ~18

List all conversion actions configured in Google Ads.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

pause_campaign ~43

Pause a campaign by ID. Works across all connected platforms.

NameTypeReqDescription
campaign_idstringyesCampaign ID (platform-specific format)
platformstringyesAd platform

No output schema declared.

No examples provided.

run_tool ~95

Run any Synter tool by name. Use this for advanced operations not covered by other tools. See docs.syntermedia.ai for full tool list.

NameTypeReqDescription
argsarrayArguments to pass to the tool
platformstringPlatform for OAuth credentials (google, meta, linkedin, etc.)
script_namestringyesName of the tool to run (e.g., 'google_ads_list_audiences')

No output schema declared.

No examples provided.

update_campaign_budget ~49

Update the daily budget for a campaign.

NameTypeReqDescription
campaign_idstringyesCampaign ID
daily_budgetnumberyesNew daily budget in USD
platformstringyesAd platform

No output schema declared.

No examples provided.

upload_image ~58

Upload an image as an asset for use in ads.

NameTypeReqDescription
asset_namestringyesName for the asset
image_urlstringyesURL of the image to upload
platformstringTarget platform (default: google)

No output schema declared.

No examples provided.