Theme

Start for free
DocsMCP server

05 · API

Ask your analytics through MCP

The MCP server lets an assistant such as Claude ask your analytics its own questions, with the same read-only key as the REST API.

01Add it to your assistant

The server is at https://tallybyoutpost.com/mcp, and it takes the same key as the REST API (make one on the Setup page), as Authorization: Bearer …. In Claude Code:

Claude Code
claude mcp add --transport http analytics "https://tallybyoutpost.com/mcp" \
  --header "Authorization: Bearer $TALLY_API_KEY"

Any client that speaks MCP over Streamable HTTP and can send a header works the same way.

02The tools

Every tool only reads. Each takes the REST route's parameters as arguments (filters is an object, {"country": "DE"}, and site can be left out):

ToolWhat it answers
list_sitesThe site this API key reads: its id, name, domain, time zone and how visitors are counted (cookie, cookieless or consent).
get_overviewVisitors, pageviews, visits, median engaged time and, when payments are connected, net revenue, sales, refunds, conversion rate and revenue per visitor, for a period and the window before it, with the change between them. Also the visitors live now.
get_breakdownThe top values of one dimension (source, channel, page, country, device, campaign …) by distinct visitors, or by revenue, each with its share of visitors and the revenue its visitors brought.
compare_periodsA period against the window just before it (previous) or the same dates a year earlier (year): every overview number for both, and the relative change. Changes are null where the site's records don't reach back far enough to compare.
list_salesPayments newest first, each with its amount as charged and in US dollars, whether it is linked to a visitor, how (method and confidence), and why not when it isn't. Filter to unlinked payments or refunds.
get_receiptOne payment's receipt: the evidence chain that ties it to a visit (first visit, visits before paying, the credited visit, the handle that matched and where), every provider id, and the payment it follows from.
get_coverageHow much of the period's revenue is attributed to a visitor, by method, and the fix-it list for what isn't (with code to paste).
list_visitorsVisitors (visits on a cookieless site) of a period, most recent first or by revenue or likely to buy, with visits, pages, engaged time per visit, revenue and their latest visit.
get_visitorOne visitor's whole journey: every visit with its pages, engaged time, goals and outbound clicks, their payments, first touch and the touch credited with the sale.
get_realtimeWho is on the site in the last five minutes (page, place, source, device) and the sales of the last hour.
get_goalsEvery goal completed in the period with completions, converting visitors, conversion rate and the revenue of converting visitors; give goal for one goal's properties. Lists the site's funnels.
get_funnelsThe site's funnels with each step's visitors, conversion from the step before and from the first, and drop-off; or one funnel with funnel.
get_customer_valueLifetime value by the source that first brought each customer: customers, revenue, average per customer, renewals and repeat rate, over every payment on record.
get_peak_hoursVisits, sales and revenue by weekday and hour in the site's time zone, and the busiest three hours when the data is enough to say.
get_engagementHow pages are read: views, median reading time, average scroll depth and the share read to the end, per page and overall, and the common entry and exit pages.
get_purchase_pathsHow buyers got there: time from first visit to purchase, visits and pages before paying, first-touch to credited-source flows, and the pages buyers saw before paying.

03Protocol

  • Streamable HTTP with JSON-RPC 2.0, on revision 2026-07-28; clients of 2025-11-25, 2025-06-18, 2025-03-26 open with initialize and are served too.
  • Methods: server/discover, initialize, tools/list, tools/call and ping.
  • A result's structuredContent is the REST route's JSON; content holds a one-line summary, then the same JSON as text.
  • A key the account's plan doesn't cover gets 402, the rate limit 429 with Retry-After, as over REST.
A call with curl
curl -s "https://tallybyoutpost.com/mcp" \
  -H "Authorization: Bearer $TALLY_API_KEY" \
  -H "Content-Type: application/json" -H "Accept: application/json, text/event-stream" \
  -H "MCP-Protocol-Version: 2026-07-28" -H "Mcp-Method: tools/call" -H "Mcp-Name: get_overview" \
  -d '{"jsonrpc": "2.0", "id": 1, "method": "tools/call",
       "params": {"name": "get_overview", "arguments": {"period": "30d"},
         "_meta": {"io.modelcontextprotocol/protocolVersion": "2026-07-28",
                   "io.modelcontextprotocol/clientInfo": {"name": "curl", "version": "8"},
                   "io.modelcontextprotocol/clientCapabilities": {}}}}'

04Check it worked

Something missing, or not what you see? Write to support@tallybyoutpost.com and say which page.