SpendSignal inside your AI assistant
Connect your ad and revenue data once. Then ask Claude, ChatGPT, Cursor, VS Code or Gemini where your money is working — SpendSignal runs its marketing-mix models and answers with recommendations and interactive charts, right in the chat.
https://spendsignal.co/api/mcpAsk it things like
1. Bring your data
Paste a table, drop files on a one-time upload link, or connect Meta Ads, Google Ads, Shopify, BigQuery or Postgres. Daily revenue and spend per channel is enough to start.
2. Our models run
Two engines fit on your data: the Growth Cockpit MMM (verdicts, curves, creative and search tests, forecasts) and the run engine (counterfactual attribution, deep runs).
3. Get answers and charts
Recommendations with uncertainty bands, a budget plan you can drag, forecasts with ranges — rendered as interactive charts in apps that support them.
Set up in your app
Apps with sign-in use your SpendSignal login. Coding tools can use an API key from Dashboard → AI connectors.
- Open Settings → Connectors → Add custom connector.
- Name it SpendSignal and paste https://spendsignal.co/api/mcp.
- Click Connect and approve access on the SpendSignal page that opens.
- In a chat, enable SpendSignal from the tools menu and ask: "Use SpendSignal to review my budget."
| App | Sign-in | Charts |
|---|---|---|
| Claude (web & desktop) | Sign in with SpendSignal (OAuth) | Interactive |
| Claude Code | OAuth or API key | Text and tables |
| ChatGPT | Sign in with SpendSignal (OAuth) | Interactive |
| Cursor | OAuth or API key | Interactive |
| VS Code (Copilot) | OAuth or API key | Interactive |
| Gemini CLI | OAuth or API key | Text and tables |
| Antigravity | API key | Text and tables |
Tools
18 tools. marks tools that show an interactive chart. Every result names the engine behind it.
Data
Get data in and check it is good enough to model.
get_workspace_statusStart here. Lists your SpendSignal workspaces, the data in the current one (datasets, connected sources, freshness), recent analysis runs, and which analyses can run now and what each still needs.
get_upload_templatesColumn specs and sample rows for each file SpendSignal accepts (revenue, channels, ads, keywords, search_terms, hourly), and which analyses need which files. Use it to reshape the user's exports before ingest_rows.
ingest_rowsSave rows the user shared (pasted table, small CSV) as one file of a SpendSignal dataset. Call once per file; pass the returned dataset_id to add more files to the same dataset. Max 5000 rows per call; for bigger files use create_upload_link.
create_upload_linkCreate a one-time link (valid 30 minutes) where the user can drop large CSV/XLSX exports into SpendSignal. Give the link to the user; afterwards call get_workspace_status to find the new dataset.
connect_sourceGet the link where the user connects Meta Ads, Google Ads, Shopify, BigQuery or Postgres to SpendSignal (credentials are entered on SpendSignal, never in chat). Also shows already-connected sources.
import_connected_dataBuild a dataset from data synced by connected sources (Meta Ads and Google Ads spend, ads, keywords, search terms and hourly; Shopify revenue) for a date range, ready for both engines. Use a range of 180+ days.
validate_datasetCheck whether a dataset is good enough to model: days covered, gaps, spend variation per channel, channels that move together, and which analyses (engine A modules, engine B) can run.
Engine A — Growth Cockpit
Weekly decisions: verdicts, budget plan, creatives, search, forecast.
run_cockpitFit engine A on a dataset with the business's unit economics and return the overview: KPIs, per-channel platform ROAS vs iROAS (with band), true ROI, Scale/Hold/Trim/Cut verdicts and top recommendations. Other engine A tools reuse this run.
get_budget_planRecommend a daily budget split across channels from engine A response curves, optionally changing the total budget. Increases stop where the next unit of spend would lose money (reported as unspent). Shows interactive response curves.
get_incrementalityEngine A incrementality: platform-reported ROAS vs modelled iROAS (with band) per channel, platform over-credit, incremental revenue, and baseline vs paid revenue over time. Shows an interactive chart.
get_forecastEngine A revenue forecast (P10/P50/P90) for the next 7–90 days at a planned spend level, split into baseline and paid. Shows an interactive chart.
review_creativesEngine A creative tests: which ads to scale or pause (tested against target CPA, their own past and peers) and which creative tags (hook, format, creator, offer) win. Needs the ads file. Shows an interactive chart.
review_searchEngine A Google Search review: keywords to cut or scale, search terms to add as negatives or promote, brand share of spend, and hour-of-day budget shifts. Needs the keywords file (search_terms and hourly optional).
get_recommendationsRanked actions from engine A across channels, campaigns, ads and keywords: what to do, why, which model said so, estimated monthly impact and confidence.
Engine B — Run engine
Deep runs on longer or warehouse data, budget-neutral what-ifs.
run_deep_analysisFit engine B (ridge MMM with counterfactual attribution) on a dataset: model fit, true ROAS per channel, contribution over time, a budget-neutral reallocation and a 30-day uplift forecast. Slower than engine A; good for longer or warehouse data. Shows an interactive chart.
simulate_reallocationScore a budget-neutral what-if with engine B: set spend for some channels (period totals, same units as the data) and see predicted revenue, true ROAS and the re-optimised split. Use get_budget_plan for budget increases or cuts.
Both engines
Cross-check before big moves; explain any metric.
compare_enginesRun both engines on the same dataset and compare per-channel returns: engine A iROAS with band vs engine B true ROAS, rank correlation, and where they agree or disagree. Use before big budget moves. Shows an interactive chart.
explainPlain-language explanation of a SpendSignal metric or method. Topics: iroas, troas, platform_roas, marginal_iroas, breakeven_iroas, true_roi, verdict, saturation, adstock, baseline, road, unspent, test_results, engine_a, engine_b.
Built-in workflows
Skills tell your assistant how to use the tools well. They appear as prompts or slash commands in most apps, and as Skills in Claude.
/onboard-my-dataGet a brand's marketing and revenue data into SpendSignal and check it is good enough to model. Use when the user wants to analyse ads, ROAS or budgets and SpendSignal has no data yet.
/weekly-budget-reviewTurn SpendSignal output into a weekly budget memo: what is working, where to move money, expected impact and risks. Use for "where should I spend", weekly reviews and budget planning.
/incrementality-readoutExplain how much each channel really drives versus what ad platforms claim. Use for questions like "is Meta actually working", "why does Google say 8x ROAS" or "what is our true ROAS".
/creative-test-reviewReview ad creatives: which to scale, which to pause, and which hooks, formats, creators and offers win. Use for creative performance questions.
/search-hygieneClean up Google Search: wasteful keywords, negative keywords to add, brand vs non-brand spend and dayparting. Use for Google Ads search questions.
/forecast-and-pacingForecast revenue for the coming weeks and check budget pacing. Use for month-end, "will we hit target" or "what if we spend more" questions.
/compare-enginesCross-check SpendSignal's two models before a big decision and explain any disagreement. Use when stakes are high or results look surprising.
Data and security
Recommendations only
No tool can change budgets, bids or ads. Ad platforms are read-only.
Your workspace, your roles
Access follows workspace membership. Viewers can read; analysts and admins can add data and run models.
No credentials in chat
Ad accounts are connected on SpendSignal. API keys are hashed; revoke them or disconnect apps any time.
Audited
Every tool call is logged per workspace (tool, time, outcome) without storing the arguments.