# askbowtie — full reference for language models > Ask Bowtie about your website. Paste one line of code, get a plain-English report by email > every week, and reply to ask anything. Power users can also query the same data from Claude, > ChatGPT or any MCP-capable agent, free. This file is the complete machine-readable description of askbowtie (askbowtie.com). Naming: the brand and wordmark are "askbowtie" (always lowercase, one word). "Bowtie" is the persona addressed in copy. The ⋈ mark is the relational-algebra bowtie (join) operator, and the cross-silo join is the core of the product. ## What askbowtie is askbowtie collapses the 4+ dashboards a website owner normally juggles (analytics, error tracking, Search Console, Google Ads, uptime) into one queryable source. A single lightweight tracker script plus Google OAuth connections feed one database per site. An MCP (Model Context Protocol) server exposes that data to AI agents. The signature capability is the join: every answer can cross silos, matched at read time (ad click → gclid → session → page → conversion or error), so questions like "did that campaign's traffic actually convert, or did the page error out?" are answered in one query. There is deliberately no customer dashboard. Agents query the MCP; humans get email digests and down/up alerts. Uptime is the only thing that interrupts you. ## Who it is for First, DIY website owners with no team who tried GA4 and got nothing useful from it. Then vibecoders, indie developers, and agency operators who use AI agents in their workflow: Claude Code, Codex, Cursor, Claude Desktop, or any MCP-capable tool. Often the primary "user" is the agent itself, with the human reading the answer. Built for people running several sites who refuse to keep several dashboards open. ## The six signals 1. Analytics: sessions, traffic sources, pages, and conversions from one lightweight tracker. 2. Error monitoring: JS errors, rage clicks, and broken forms, noise-filtered (Bayesian) so only real problems surface. 3. Conversion monitoring: what converted, which channel sent it, and what it cost. 4. Search: Google Search Console queries, pages, impressions, and positions. 5. Ads: Google Ads campaign spend matched to real sessions, click by click (gclid-level). 6. Uptime: down and back up. The only alerting signal. Plus the join: ads ⋈ analytics ⋈ search ⋈ errors ⋈ uptime. One question hits all five silos. ## The MCP server Agents connect once by adding askbowtie as an MCP server in their configuration (standard MCP server setup, bearer-token authenticated). Call playbook first for a guided map of what to ask and which tool answers it. Current tools (47): Start here: - list_domains: which sites are connected - playbook: guided map of common questions and the tool that answers each Traffic and pages: - get_summary: quick health briefing for a site - get_traffic: sessions, pageviews, bounce, top pages, sources - get_top_pages: the busiest pages with their metrics - get_page: full metrics for one path - get_referrers: external referrers, with drill-down into one referrer's sessions/conversions - get_landing_pages: top LANDING (entry) pages with the conversions they DROVE credited back to the entry page, even when the conversion fired elsewhere - get_page_scores: per-page Pulse — Health, Organic, Performance (0-100), precomputed daily - get_trend: long-window traffic trend, up to a full year, where get_traffic and get_summary top out at 30 days Page roles and section engagement: - get_page_types: analytics by page ROLE, not slug — sessions/conversions per role (editorial, commercial, lander, your own vocabulary), plus tag suggestions for untagged pages - tag_pages: assign a role tag to pages manually (exact paths or a path-substring match), or confirm a suggestion - get_engagement: how visitors engage ONE page, split by section — per section: sessions engaged, share of viewers, and downstream conversion rate - manage_sections: retroactive rules mapping existing click signatures (class/href) to named sections — classifies historical clicks with no re-tracking Conversions and performance: - get_conversions: counts, rates, top converting pages - get_performance: TTFB, LCP, baselines (server response from the crawler, real-user from sessions) - manage_conversion_upload: review/manage offline conversion uploads Errors and uptime: - get_incidents: active issues ranked by impact - get_incident_detail: the sessions and detail behind one incident - get_alerts: recent alert history Deterministic crawl (binary truth, not session-inferred): - audit_page: crawl ONE page and grade it — status, title/meta/h1/canonical, broken links/images - crawl_site: crawl the WHOLE site for a 0-100 health score and every broken link/image - lint_sections: pre-deploy check that a page's clickable elements are distinguishable in reports, from a URL or raw HTML Custom events and experiments: - get_events: count any custom event your tag emits, broken down by any property it carries; call it with no event name for a catalog of what exists - get_actions: what visitors DO, rolled up across pages by a stable action slug, with the downstream conversion rate of each - get_ab_tests: per test, per arm - sessions, conversions, conversion rate, and the change against control. askbowtie reads your tags; it does not split traffic Search and ads: - get_search: Google Search Console clicks, impressions, top queries and pages - get_ads / get_paid_performance: Google Ads spend, conversions, and paid-vs-organic decomposition (incl. non-Google paid: Bing, Meta) - audit_lander: score a paid landing page (message-match, real-user speed/bounce, trust) — an honest paid-lander audit, not Google's Quality Score - manage_ads: act on Google Ads — pause/enable campaigns & ads (always available), and change budgets / create Search campaigns (owner-toggled). Every change previews first, then applies with confirm:true; created campaigns start paused - get_ads_report: live Google Ads detail for audits — search terms, keyword Quality-Score components, negatives, impression-share split, RSA assets. Pair with the audit-campaign / audit-keywords / audit-assets / keyword-research playbooks Funnels (flows): - define_flow / list_flows / get_flow / delete_flow: define and inspect conversion funnels - flow_alert: alert when a funnel step drops Actions and ops: - register_domain: connect a new site to track over MCP (self-service) - send_alert: send a health alert on demand - schedule_report: schedule an email/PDF report - add_note / get_notes / update_note: record, read, and edit the product log (deploys, changes, pivots); update_note edits a note in place with optimistic concurrency, so notes double as a shared cell between agents - manage_watch: create, list or delete standing watches on any observable askbowtie declares, evaluated server-side every hour, raising a real alert when a threshold is crossed and auto-resolving on recovery - get_mcp_usage: which tools your own agents actually reach for, and how often, scoped to your account - report_feedback: file a bug or feature request - ask_question: ask the askbowtie team something the tools and docs do not answer Most tools accept a domain and a period (24h, 7d, 30d). Responses lead with the answer and cite the numbers behind it. ### Page roles and section engagement Two markers turn raw analytics into structural answers. Put `data-askbowtie-tag="editorial"` on a page's body (or call `bowtie.tag(...)` in JS) and every page self-classifies by ROLE; get_page_types then reports sessions, conversions, and conversion rate per role instead of per slug, with suggestions for untagged pages that tag_pages can confirm or override. Put `data-askbowtie-section="hero"` (or `cta:start-quiz`, `nav:header`) on any element and get_engagement splits a page's viewers by which section they actually clicked — share of viewers and downstream conversion rate per section, exposing high-traffic sections that convert nothing. manage_sections adds retroactive rules that map existing click signatures to named sections, so historical clicks classify with no code changes and no re-tracking. Full guide: https://askbowtie.com/learn/new-analytics/ (markdown twin at https://askbowtie.com/learn/new-analytics/index.md). ## Tracking docs Full tracking reference (install, auto-tracked events, custom events via bowtie.track, conversions with revenue via bowtie.converted, application errors, guardrails, MCP setup): - Human: https://askbowtie.com/docs/ - Agent (markdown): https://askbowtie.com/docs/events.md Server-side events (no browser): a backend or Cloudflare Worker can record events your server is the source of truth for — webhook-confirmed conversions, ad-block-proof lead capture, server- validated purchases — by POSTing batches to https://askbowtie.com/api/ingest. The one rule: every event in the batch MUST include "source":"server". That flag (a) opts the batch out of the browser User-Agent bot filter, which otherwise silently drops any non-browser sender behind a 200, and (b) tags the event as server-origin so it is not mis-stored as a browser ("js") event and merged into client counts. Verify each POST with the response's "stored" field — assert stored.server equals the number of events you sent; "events_received" only proves acceptance, not how the event stored. Don't block your user response on the POST: fire-and-forget it (e.g. ctx.waitUntil(fetch(...)) in a Worker). Use "transaction_id"/"idempotency_key" so retries never double-count. Full spec, curl example, and field table: https://askbowtie.com/docs/events.md#server-side-events-no-browser ## Data and privacy - First-party data about your own site only. No ad network. Never sold or shared. - Stored per site in its own isolated database; full export available. - Bring-your-own database (askbowtie writes to a database URL the customer owns and controls) is on the roadmap; the goal is data that is 100% the customer's, end to end. - Google Search Console and Google Ads are read through Google's own OAuth with the minimum scopes Google allows. - The tracker is one small async script and never blocks page rendering. - Formal privacy policy and data processing terms are in progress; specific compliance questions are answered directly by email. ## Pricing You pay when Bowtie thinks for you, or when your traffic gets big. Everything else is free. - Free: the tracker, dashboard, and MCP, for normal use — up to ~100,000 events/month across all your sites. Query it freely, including from your own AI agent; the MCP is not metered. - Credits ($10 = 1,000): AI answers (the in-app Ask tab, rolling out) and traffic beyond the free tier. A typical question costs a few credits; credits never expire. Early users get a free stack. Fit: free for light or personal use; credits scale for power users and agencies. No subscription, no surprise bills. ## FAQ (as published) Q: What data does askbowtie collect from my site? A: The tracker records page views, sessions, conversions, and behavior signals like JS errors, rage clicks, and broken forms. It is first-party data about your own site, stored per site in its own database. Connect Google Search Console or Google Ads and askbowtie reads them through Google's own OAuth, with the minimum scopes Google allows. There is no ad network here, and your data is never sold or shared. Q: Will the tracker slow my site down? A: No. It is one small script that loads asynchronously, so it never blocks your page from rendering. A tool that watches sites for performance problems should not be one. Q: How does the MCP connection work? A: You add askbowtie as an MCP server in your agent's config, the same way you add any other MCP server. From then on your agent can call its tools directly: traffic, conversions, errors, incidents, performance, and the joined answers across all of them. One server, one connection, every signal. Q: Which agents work with it? A: Anything that speaks MCP. Claude Code, Codex, and Cursor are the most common, and Claude Desktop works the same way. If your tool supports MCP servers, it supports askbowtie. Q: Can I use it without an agent? A: Yes. askbowtie sends a digest by email, so you get the picture without opening anything. The agent connection is where it is sharpest, but you do not need to live in a terminal to get value from it. Q: Do I need a dashboard? A: No, and that is the point. The data you would normally chase across four or five dashboards is joined in one place, and you reach it by asking. If your site goes down, you get an alert. Everything else arrives as an answer or a digest, not another tab to keep open. Q: Can I connect more than one site? A: Yes. Each site gets its own tracker and its own database, and your agent can ask about any of them. askbowtie is built for people running several sites who refuse to keep several dashboards open. Q: Can the data live in my own database? A: That is the direction. Today, each site's data is already isolated in its own SQLite database, and you can take a full export whenever you like. Bring your own database, where askbowtie writes to a database URL you own and control, is on the roadmap. The goal is data that is 100% yours, end to end. Q: What about privacy and GDPR? A: Your site's data belongs to you, lives in its own per-site database, and is never sold or shared. The formal privacy policy and data processing terms are being written up properly rather than improvised here. If you have a specific compliance question before then, email and you will get a straight answer. Q: What does it cost? A: You pay when Bowtie thinks for you, or when your traffic gets big; everything else is free. The tracker, dashboard, and MCP are free for normal use (up to ~100,000 events/month across your sites), querying included, even from your own agent. AI answers (the in-app Ask tab, rolling out) and traffic over the free tier run on credits: $10 for 1,000, a typical question costs a few, and they never expire. Early users get a free stack. No surprise bills, ever. ## Contact Built by Ben (https://launchwithben.com). Contact: see askbowtie.com.