{
  "name": "convalytics",
  "displayName": "Convalytics",
  "description": "Analytics tools for AI assistants over Model Context Protocol. Nine read-only tools query top pages, top referrers, event counts, recent events, usage, and projects. Six funnel tools list/read/compute, and (with a write-scoped token) create/update/delete saved conversion funnels. Requires a Convalytics API token from https://convalytics.dev/tokens and an active Solo or Pro plan.",
  "version": "1.0.0",
  "serverUrl": "https://api.convalytics.dev/mcp",
  "transport": "http",
  "documentationUrl": "https://convalytics.dev/mcp",
  "auth": {
    "type": "bearer",
    "scheme": "Bearer",
    "description": "Convalytics API token. Create at https://convalytics.dev/tokens, pass as Authorization: Bearer cnv_..."
  },
  "tools": [
    {
      "name": "list_projects",
      "description": "List all Convalytics projects on the team this token belongs to."
    },
    {
      "name": "get_usage",
      "description": "Return the current month's custom-event usage, monthly quota, retention days, and plan name for the team."
    },
    {
      "name": "top_pages",
      "description": "Return the top pages for a specific project, ranked by views in a time window. Takes `project` (name or id)."
    },
    {
      "name": "top_referrers",
      "description": "Return the top referring hosts for a specific project, ranked by visits, includes (direct). Takes `project`."
    },
    {
      "name": "pageviews_count",
      "description": "Count page views for a specific project in a time window (web-traffic, separate from custom events). Takes `project`."
    },
    {
      "name": "events_count",
      "description": "Count CUSTOM product events for a specific project (not page views — those are in a separate table; use pageviews_count). Takes `project`."
    },
    {
      "name": "recent_events",
      "description": "Return the most recent custom events for a specific project; PII is redacted by default. Takes `project`. Optional `user` filter."
    },
    {
      "name": "user_activity",
      "description": "Composite per-user snapshot: identity block, totals, top pages, top event names, recent events. Matches by userEmail (case-insensitive) or visitorId. Takes `project` and `user`."
    },
    {
      "name": "weekly_digest",
      "description": "Composite snapshot over a lookback window: visitors, pageviews, sessions, bounce rate, session duration, top 5 pages, top 5 referrers, top 5 events. Includes period-over-period comparison. Takes `project`, optional `days` (default 7) and `compare` (default true)."
    },
    {
      "name": "list_funnels",
      "description": "List saved conversion funnels on a project. Takes `project`."
    },
    {
      "name": "get_funnel",
      "description": "Return the full definition of one funnel by id: name, description, ordered steps, and conversion window. Takes `funnelId`."
    },
    {
      "name": "compute_funnel",
      "description": "Run a funnel over a time window and return per-step visitor count, conversion from previous step, conversion from start, and average time to convert. Takes `funnelId`."
    },
    {
      "name": "create_funnel",
      "description": "Create a new funnel (2–10 ordered event/pageview steps, conversionWindowMs default 7 days). Requires a write-scoped token. Takes `project`, `name`, `steps`."
    },
    {
      "name": "update_funnel",
      "description": "Patch an existing funnel's name/description/steps/conversionWindowMs. Requires a write-scoped token. Takes `funnelId`."
    },
    {
      "name": "delete_funnel",
      "description": "Soft delete a funnel (retained with status='deleted', excluded from list/get/compute). Idempotent. Requires a write-scoped token. Takes `funnelId`."
    }
  ],
  "contact": {
    "email": "dancleary54@gmail.com",
    "url": "https://convalytics.dev/contact"
  },
  "publisher": {
    "name": "Tethered Software Inc.",
    "url": "https://convalytics.dev/about"
  }
}
