MCP server for attribution
Signups are easy to count and customers are what matter. With attribution over MCP, the agent can tell you which source produced paying customers and then pull up what those customers asked for, in the same conversation.
Things to ask
- Which waitlist source produced paying customers last month?
- Was the Product Hunt launch worth it?
- Who referred the most people who ended up paying?
- Which campaign converts best, and what did those customers ask for?
One call, start to finish
You type: “Which source produced paying customers in the last 30 days?” The agent calls get_attribution_report with:
{
"group_by": "referrer",
"period_days": 30
} Returned to the agent: One row per source with signups, confirmed, invited, paying, ever paid and the signup-to-paying rate, plus current MRR and collected revenue per currency, and whether Stripe is connected.
Tools and arguments
get_attribution_report
Read-onlySee which signup sources produce paying customers
| group_by | optional | "referrer" | "utm_source" | "utm_campaign" | "referral_code" | |
| period_days | optional | number, 1–3,650 | |
| limit | optional | number, 1–100 |
add_channel_cost
Indie and BuilderRecord what a marketing channel cost
| source_type | required | "utm_source" | "utm_campaign" | "referrer" | |
| source | required | string, max 255 | |
| period_start | required | string | |
| period_end | required | string | |
| amount | required | number, 0–1,000,000,000 | |
| currency | required | string, max 3 | |
| note | optional | string, max 300 |
list_channel_costs
Read-onlyIndie and BuilderList recorded marketing spend
No arguments.
delete_channel_cost
Confirms firstIndie and BuilderRemove a recorded spend entry
| cost_id | required | string, max 64 |
Behaviour worth knowing
- It only covers people who signed up through a Launch waitlist form, page or widget. The tool description tells the agent to say so and not to present it as page analytics.
- The agent is told not to rank sources by conversion rate when a source has only a handful of signups.
- Without Stripe connected the funnel still works; paying is zero and the result explains why.
- Grouping by referring site is on Indie. Grouping by UTM source, UTM campaign and referral code is on Builder.
Questions
- How does the agent go from a source to what those customers asked for?
- Three calls: get_attribution_report for the source, list_contacts filtered by that source and paying, then get_contact for each person's feedback.
- Does this need a script on my site?
- No. The source is recorded on the signup by the waitlist form you already use, with no cookie.