agentic-ads-mcp
This server does not currently have a deployable release on Glama. Follow the repository's setup instructions to install and configure it for your MCP client, including any required credentials and local dependencies.
agentic-ads-engine
Offline tools for ad drafts. Node 20 or later. Plain JavaScript ESM with JSDoc, no build step, and zero runtime dependencies.
Quick start
Run from this checkout:
node bin/agentic-ads list-templates
node bin/agentic-ads list-hooks
node bin/agentic-ads lint --copy 'Browse available listings'
node bin/agentic-ads plan --site demo --goal discovery --dry-run
node test/e2e.mjsThe package is not published by this task. To install the local package:
npm install /path/to/agentic-ads-engine
npx agentic-ads planCLI output is JSON. Exit codes: 0 for a result, 1 for invalid input, and 2 for blocked copy.
lint requires --copy. It accepts --category housing|none; the default is housing.
plan accepts --site, --goal, --template, --ratio, --copy, and --category.
Site names are lowercase slugs. Ratios are 4:5 and 9:16.
Plans default to dry-run. --apply always fails because this slice has no spending or launch implementation.
Plans return required slots and policy findings. They do not render an image.
The five templates cover door reveals, first-person UGC, before/after views, news frames, and help with timing.
Their slots and story beats differ. The HTML stub uses a shared text layout.
Related MCP server: mkt
Library
import {
readScores, writeScores, selectFor, templateProvider, guardCost,
} from 'agentic-ads-engine';
await writeScores('./scores', 'demo', { help: 8 });
const scores = await readScores('./scores', 'demo');
const hook = selectFor({ id: 'demo', scores }, 'discovery');
const preview = templateProvider.run({
template: 'door-open-teaser',
ratio: '4:5',
brand: { name: 'Demo', primary: '#2455cc' },
slots: {
headline: 'Take a closer look',
detail: 'Review the available listing details',
cta: 'Browse listings',
},
});
console.log(hook.id, preview.mime); // help text/htmlselectFor(site, goal) is pure. Supply { id, scores }; it never reads the store itself.
Only low-risk hooks qualify. Scores rank matching hooks; catalog order resolves ties.
No match returns null. Scores are finite, nonnegative numbers keyed by known hook IDs.
The caller defines the score metric. This slice does not measure performance or establish sample confidence.
CLI and MCP plans use cold-start scores. Load saved scores through the library when selecting hooks.
The file store writes one JSON snapshot per site. Replacement is atomic; callers must use one writer.
A missing file returns {}. Invalid files fail. Store directories must be trusted local directories.
Providers implement capabilities(), estimate(input), and run(input).
The stub returns escaped HTML, dimensions, a content hash, zero cost, and an explicit warning.
It returns image: null. It has no browser, remote asset loading, image generation, or raster conversion.
Brand colors accept six-digit hex values. The brand name is plain text.
Use the template descriptor to find required slots before calling the provider.
Call lint on every final slot value before external use. The renderer does not grant policy approval.
guardCost accepts costMinor, adSpentMinor, monthSpentMinor, perAdMinor, perMonthMinor, and apply.
All amounts must be nonnegative safe integers in the same currency.
Positive cost requires apply: true. Equal-to-cap amounts are allowed; excess amounts are blocked.
The caller supplies totals for the current calendar month, including reserved and uncertain charges.
This pure guard does not persist reservations, handle concurrency, reset monthly totals, or authorize a paid provider.
A future paid adapter must check and reserve costs atomically before calling a provider.
MCP
Start node bin/agentic-ads-mcp, or use the installed agentic-ads-mcp executable.
Configure the client to use this command with stdio transport.
The server uses newline-delimited JSON-RPC and protocol version 2024-11-05.
It supports initialize, ping, tools/list, and tools/call.
The four tools use the same names and arguments as the CLI; --dry-run becomes dryRun.
Stdout contains protocol messages only. Frames are limited to 65,536 characters.
Tool results contain JSON text. Blocked copy sets isError: true and retains its findings.
Honest limits
Lint detects selected English patterns. It cannot prove truth, consent, disclosure quality, or compliance.
It always returns a human review finding. A review status does not mean platform approval.
Housing is the conservative default. Targeting words, guarantees, superlatives, and below-market percentages are blocked.
News framing, staging, and urgency also require review. Conservative checks can produce false positives.
The package does not inspect actual audience settings or implement current platform policy in full.
Keep private data out of inputs. Contact-pattern checks are incomplete; they cannot reliably detect names, addresses, or secrets. The CLI prints supplied copy in plans. No telemetry, account integration, credentials, or network calls are included. No source assets or competitor copy are bundled. Research informs the formats and disclosure needs only.
The E2E script spawns both executables and a library integration process.
It records assertions in test/artifacts/e2e.json, which Git ignores and npm excludes.
Run npm run ci:local before any future push. Publishing and pushing are separate operator actions.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
This server cannot be deployed
Maintenance
Related MCP Connectors
Open-source ad agent for LinkedIn Ads and Google Ads. Drafts campaigns, audiences and reports.
Hosted Ads Libraries MCP server, with each action switched on or off per account.
Analyze, edit and launch Meta (Facebook and Instagram) ads from Claude, ChatGPT, Cursor or Codex. Query insights and campaign health, change budgets, bids, status and targeting with undo, bulk-launch many ads across campaigns and ad sets from a live ad's settings, and duplicate by post to keep social proof. Choose per ad account what the agent may do and what waits in the Agent Inbox for approval. Requires a paid Ads Uploader account with MCP access.
The Human Ad Network. Campaigns, clipping, and Clip Studio from chat.
Related MCP Servers
AlicenseAqualityDmaintenanceA local-only MCP server for AI video ad planning. It helps AI agents build video ad briefs, hooks, UGC scripts, storyboards, variation plans, script reviews, and AdsTurbo-ready prompts without calling AdsTurbo internal services.7100 npm2MIT- AlicenseCqualityBmaintenanceEnables MCP clients to inspect operational status and channels, lint human-reviewed plans, search and query ledger data, and run queue-based writes with dry-run defaults and safeguards against unverified or unapproved campaigns.43754 PyPI1MIT
- AlicenseNot gradedqualityCmaintenanceEnables MCP clients to run eight data tools over stdio for product search, ad transparency, company intent, job/ATS lookup, keyword volume, domain SEO, and YouTube transcripts, returning JSON envelopes with item limits, truncation metadata, and structured errors.MIT
- AlicenseNot gradedqualityBmaintenanceEnables AI clients to run social-media ROI evaluations, multi-account matrix comparisons and budget allocation, search-index and e-commerce spillover estimates, and GEO share-of-voice analysis through a zero-dependency stdio JSON-RPC interface.1MIT