marketing-scope-mcp
A campaign pre-flight server for AI agents: it plans marketing campaigns, scores offers explainably, builds a registry-backed plan, and gates every tactic before spend.
plan_campaign – Decompose a campaign objective into offer targets, channel targets, anti-targets (budget black holes), and kill criteria (optionally with audience hints).
score_offer – Grade one offer statement on an explainable 0–100 scale (clarity 20 / audience specificity 24 / differentiation 20 / proof & risk reversal 20 / CTA 16) with per-dimension evidence; grades A–D; caches scores in memory by exact text.
build_plan – Write a markdown campaign-plan shell (strategy stubs, channel briefs, numbered offer registry, scoring appendix) to
data/campaigns/and return the plan id; rejects any offer not previously scored, naming it.check_plan – Validate a plan read-only: every substantive tactic must cite a registry offer (
[O1]-style) and name a success metric; violations returned as an error list, never a silent pass.Runs as a local MCP server over stdio, Streamable HTTP (
/mcp), or Docker, with plans persisted on disk underMARKETING_SCOPE_DATA_DIR(default./data).
marketing-scope-mcp
Campaign pre-flight for AI agents. Plan the campaign, score the offers explainably, build a registry-backed plan, then verify every tactic cites a scored offer and names a success metric — before any money is spent.
The sibling of research-scope-mcp
(sources → citations) applied to marketing: tactics → scored offers.
The discipline
plan_campaign → score_offer → build_plan → check_plan
(strategy) (0–100) (shell) (gate)plan_campaign(objective)— decompose a marketing goal into offer targets, channel targets, anti-targets (budget black holes), and kill criteria. Kill criteria are hard stops, not suggestions.score_offer(offer)— one offer statement graded on an explainable 0–100 scale: clarity 20 / audience specificity 24 / differentiation 20 / proof & risk reversal 20 / call to action 16. Grades: A ≥ 80, B ≥ 65, C ≥ 45, D < 45. Every dimension returns with its evidence, so the number is auditable, not a vibe.build_plan(goal, offers[])— writes a campaign-plan shell (strategy, channel briefs, numbered offer registry, scoring appendix) and rejects any offer that was never scored, naming them.check_plan(plan_id | plan_path)— every tactic must cite a registry offer ([O1]-style) and name a success metric. Violations come back as an error list — never a silent pass.
Related MCP server: PrePilot MCP Server
Install
Node ≥ 20.
npm install -g marketing-scope-mcp
# or run from source:
git clone https://github.com/AxelVerneBooks/marketing-scope-mcp
cd marketing-scope-mcp && npm install && npm run buildClaude Code
claude mcp add marketing-scope -- node /path/to/dist/index.jsCursor (.cursor/mcp.json)
{ "mcpServers": { "marketing-scope": { "command": "node", "args": ["/path/to/dist/index.js"] } } }Streamable HTTP
node dist/index.js --http --port 3002 # serves MCP at http://127.0.0.1:3002/mcpDocker
docker build -t marketing-scope-mcp -f docker/Dockerfile .
docker run -d --name marketing-scope -p 3002:3002 marketing-scope-mcp
# MCP at http://127.0.0.1:3002/mcp; plans persist in the /app/data volumeData dir (plans on disk) defaults to ./data; override with
MARKETING_SCOPE_DATA_DIR.
Example session
> plan_campaign(objective: "sell 30 copies of the build manual in 30 days")
→ offer targets, channel targets, kill criteria incl.
"Every scored offer below 45/100 → STOP; rework before spending"
> score_offer(offer: "...12 print-ready farm ledgers only $19, includes
wall chart — unlike generic ledgers it strips to 40 records a season.
Start today.")
→ 88/100 (A), breakdown with per-dimension evidence
> build_plan(goal: ..., offers: [that exact text]) # unscored → hard error
> check_plan(...) # orphan tactics → error list; metric-less → flaggedLicense
MIT — see LICENSE.
Prefer it prebuilt? Campaign Pre-Flight Starter Kit — the built server plus one worked campaign run and the 4-step setup, $9, MIT, free lifetime updates. The one-page scoring rubric it enforces is free, no email wall. (Disclosure: I built and sell both; these are my links.)
Available Tools
4 toolsbuild_planBuild campaign-plan shellA
Build a campaign-plan shell from already-scored offers: strategy stubs, channel briefs, numbered offer registry, scoring appendix. Writes a markdown file under data/campaigns/ and returns the plan id plus the shell text. Do NOT call it before each offer has a score_offer — unscored offer texts are rejected with an error naming them. Sibling distinction: this creates the shell; check_plan later validates everything written against it.
Inputs: goal (required), offers (required).
check_planCheck plan tactic coverageARead-onlyIdempotent
Verify every substantive campaign tactic (a) cites at least one scored offer from the registry and (b) names a success metric. Violations are returned as an error list — never a silent pass. Read-only tool: inspects the registry and the plan file but writes nothing. Use it after every build_plan and again after any manual edit; do NOT use it on arbitrary markdown that never went through build_plan without first scoring its offers. Sibling distinction: build_plan creates the registry-backed shell; check_plan validates whatever is on disk against that registry.
Inputs: plan_id, plan_path.
plan_campaignPlan a campaignARead-onlyIdempotent
Turn a campaign objective into a pre-spend plan: offer targets, channel targets, anti-targets (budget black holes), and kill criteria. Purpose: decompose a marketing goal into scoreable tactics BEFORE any spend. Use this before score_offer on any new product/launch; re-plan only when kill criteria trigger. Sibling distinction: score_offer grades ONE offer statement; this plans the whole campaign strategy.
Inputs: objective (required), audience_hints.
score_offerScore an offerAIdempotent
Score one offer statement (the exact sentence a prospect would read) on an explainable 0–100 offer-strength scale: clarity 20 / audience specificity 24 / differentiation 20 / proof & risk reversal 20 / call to action 16. Grades: A >= 80, B >= 65, C >= 45, D < 45. Every dimension comes back WITH its evidence, so the number is auditable rather than a vibe. Side effect: the score is cached in an in-memory registry keyed by the exact offer text (lost on restart; re-score before finalizing a plan). Do NOT use it as a general copy critique — it grades offer statements, not landing pages. Sibling distinction: plan_campaign plans the strategy; this grades one sentence; build_plan consumes the scores.
Inputs: offer (required), audience.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 4 tools
Each tool has a clearly distinct purpose with explicit sibling distinctions: plan_campaign plans strategy, score_offer grades a single offer, build_plan constructs the plan shell, and check_plan validates. No overlapping purposes or ambiguous boundaries.
All tool names follow a consistent snake_case verb_noun pattern: plan_campaign, score_offer, build_plan, check_plan. The convention is predictable and readable throughout.
Four tools exactly cover the campaign planning workflow—plan, score, build, check—each earning its place without redundancy or bloat. The count matches the scope perfectly.
The tool set covers the full lifecycle from initial strategy planning through offer scoring, plan construction, and final validation against the registry. No obvious gaps for the stated marketing-scope domain; agents can complete the intended workflow end-to-end.
Maintenance
Related MCP Connectors
Marketing MCP: social, email, SMS, CRM, paid ads, analytics. OAuth; confirm before send/spend.
Causal check on AI agent claims, from ad-spend/ROAS lift to any decision: pass, caution or hold.
Creative-intelligence MCP for campaign strategy, ad builds, QA, and reporting.
Pre-deploy governance for AI agents: posture scores, policies, budget cap checks, trust manifests.
Related MCP Servers
- AlicenseAqualityDmaintenanceValidates startup ideas with a deterministic scorecard, evidence brief, and verdict before code is written, integrating with MCP-aware build agents to avoid building dead-on-arrival products.111 npmMIT
- AlicenseNot gradedqualityCmaintenanceEnables AI clients to compose and execute marketing campaigns by mapping free-form intent to a deterministic plan of over 1,000 production-tested skills, supporting multiple workflows across paid ads, SEO, content, and more.MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI agents to perform marketing operations like campaign management, content creation, and outreach, with a tiered approval model ensuring human oversight for consequential actions.MIT
- FlicenseNot gradedqualityDmaintenanceEnables to plan, write, illustrate, and voice a full marketing campaign through an MCP pipeline that generates copy, moodboards, voiceovers, and images with automated guardrails and budget controls.-