Server data from the Official MCP Registry
A performance marketer's run/fix/kill verdict for AI agents — ad creative, campaigns, targeting.
A performance marketer's run/fix/kill verdict for AI agents — ad creative, campaigns, targeting.
Remote endpoints: streamable-http: https://www.spendict.com/api/mcp
Remote MCP endpoint verified (231ms response). 3 trust signals: valid MCP protocol, requires auth, registry import. No security issues detected.
Endpoint verified · Requires authentication · 2 issues found
Security scores are indicators to help you make informed decisions, not guarantees. Always review permissions before connecting any MCP server.
Remote servers are capped at 8.0 because source code is not available for review. The score reflects endpoint verification only.
This plugin requests these system permissions. Most are normal for its category.
Remote Plugin
No local installation needed. Your AI client connects to the remote endpoint directly.
Add this to your MCP configuration to connect:
{
"mcpServers": {
"com-spendict-spendict": {
"url": "https://www.spendict.com/api/mcp"
}
}
}From the project's GitHub README.
An MCP server (and REST API) that gives AI agents a performance marketer's judgment on demand. One tool, done exceptionally: assess_ad_creative tells an agent whether an ad creative will actually work, why not, and how to fix it — and returns a deterministic run / fix_first / kill verdict the agent can use to gate its own ad spend, before a cent is spent.
Built per the PRD. v1 sells to the humans building agents (developers, growth engineers, agencies); autonomous agents paying is the narrative upside, not the dependency.
MCP client (Claude/Cursor/n8n/…) ──► /api/mcp (Streamable HTTP, mcp-handler)
REST caller ──► /api/v1/assess (same pipeline)
│
validate input → quota consume (BEFORE inference)
│
OpenRouter (framework system prompt, low temp)
│
server recomputes score + recommendation (tamper-proof gate)
│
log usage_event + assessment (the compounding dataset)
cost_cents so margin is observable from day one.pnpm install
cp .env.example .env.local
# in .env.local set:
# SPENDICT_MOCK_MODEL=1 → deterministic heuristic verdicts, no inference cost
# SPENDICT_DEV_API_KEY=test_key → this string works as an API key locally
pnpm dev
Smoke it:
curl -s -X POST http://localhost:3000/api/v1/assess \
-H "Authorization: Bearer test_key" -H "Content-Type: application/json" \
-d '{"ad_copy":{"primary_text":"Still paying $200/mo for a gym you visit twice?"},"platform":"meta","product_context":"home fitness app"}' | jq
Real inference locally: set OPENROUTER_API_KEY, remove SPENDICT_MOCK_MODEL.
pnpm test # unit tests (gating matrix, parsing, mock engine)
pnpm typecheck
pnpm calibrate # run the calibration set through the engine (see below)
The product is the judgment. Before launch (PRD §13):
run/fix_first/kill call written before running the engine.OPENROUTER_API_KEY=… pnpm calibratePROMPT_VERSION) until agreement ≥80% and there are zero false greenlights (server says run where you'd say kill).pnpm calibrate -- --strict exits non-zero below the bar (CI-able).Model choice: bench 2–3 OpenRouter models on the set via SPENDICT_MODEL=… pnpm calibrate; pick on judgment-quality-per-cost.
npx convex dev (creates deployment; regenerates convex/_generated), then npx convex deploy for prod. Set NEXT_PUBLIC_CONVEX_URL. Generate a secret (openssl rand -hex 32) and set it as SPENDICT_INTERNAL_KEY in both the Convex dashboard env and the Next.js env.NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY + CLERK_SECRET_KEY. Hosted sign-in works out of the box; /dashboard is the only gated area.OPENROUTER_API_KEY, pick SPENDICT_MODEL (+ SPENDICT_VISION_MODEL for creative_url calls) from calibration. Ensure SPENDICT_MOCK_MODEL is unset.POLAR_PRODUCT_ID_*, checkout links as POLAR_CHECKOUT_URL_*, and a webhook to https://<domain>/api/webhooks/polar with POLAR_WEBHOOK_SECRET (events: subscription.active, subscription.updated, subscription.canceled, subscription.revoked). Checkout email must match the Clerk signup email (or pass customer_external_id = Clerk user id).NEXT_PUBLIC_APP_URL to the real domain.SPENDICT_DEV_API_KEY in production.src/app/api/[transport]/route.ts is the listing copy.assess_ad_creative — Gate an ad creative before spend. Returns a launch recommendation (run/fix_first/kill) with scores across hook, angle, clarity, audience fit, platform fit, CTA and compliance safety, the single most likely reason it will underperform, and prioritized fixes.audit_campaign_structure — Audit a paid-ads campaign build (Meta, Google, TikTok) before budget flows — judged by the right platform's rulebook. Returns a verdict (sound/fix_first/restructure), scored dimensions, the biggest budget leak, and fixes.analyze_campaign_performance — Diagnose a running campaign's real metrics against benchmarks, walk the funnel to name the ONE bottleneck, and return a verdict (healthy/fix_first/kill_or_rebuild/insufficient_data). Optionally reconciles what Spendict predicted vs. what happened.strategize_targeting — Design a paid-ads targeting strategy for a new campaign: audience approach, segmentation, exclusions, budget split with a learning-phase check, platform setup, and the single biggest risk.Every tool returns a server-recomputed, deterministic verdict — the model proposes scores, the server decides. Mirrored one-for-one on the REST API.
| Endpoint | What |
|---|---|
POST /api/mcp | MCP Streamable HTTP — tool assess_ad_creative; auth Authorization: Bearer spd_live_… |
POST /api/v1/assess | REST front door, same pipeline |
GET /api/health | liveness + prompt version |
POST /api/webhooks/polar | billing webhook |
/dashboard | signup, API keys, usage (the only human UI) |
/docs | agent-builder quickstart |
Quota errors come back structured ({"error":"quota_exceeded","upgrade_url":…}), never as crashes, so agents can handle them.
src/lib/contract.ts — input/output schemas, deterministic scoring + spend gatesrc/lib/prompt.ts — the crown jewel: versioned framework system promptsrc/lib/engine.ts — OpenRouter call, retry, parse, mock modesrc/lib/assess-service.ts — shared pipeline (validate → meter → infer → log)src/lib/store.ts — Convex-backed key/quota/logging facade + dev fallbackconvex/ — schema + functions (gateway, dashboard, billing)scripts/calibrate.ts + calibration/ — the quality barsrc/app/ — landing, docs, dashboard, API routes© Space Cadet d.o.o.
Be the first to review this server!
by Modelcontextprotocol · Developer Tools
Read, search, and manipulate Git repositories programmatically
by Toleno · Developer Tools
Toleno Network MCP Server — Manage your Toleno mining account with Claude AI using natural language.
by mcp-marketplace · Developer Tools
Create, build, and publish Python MCP servers to PyPI — conversationally.