protogrid

Search / io.github.Dan-Cleary/convalytics

convalytics

R1· needs a key

Read-only analytics for Convex apps, queryable via MCP from Claude, Cursor, and other clients.

v1.0.0 · active · repository · website · descriptor JSON · versions

An agent can connect on its own if it already holds CONVALYTICS_TOKEN.Remote endpoint behind a static API key or header. The registry never sees the value; the agent fills the placeholder.
Quality91strong
Trust90of 100
Uptime, 30 days100%
Latency p50397 ms

Connect

8 clients · secrets stay placeholders
{
  "mcpServers": {
    "convalytics": {
      "type": "http",
      "url": "https://api.convalytics.dev/mcp",
      "headers": {
        "Authorization": "Bearer ${CONVALYTICS_TOKEN}"
      }
    }
  }
}
claude mcp add --transport http convalytics https://api.convalytics.dev/mcp --header "Authorization: Bearer ${CONVALYTICS_TOKEN}"
[mcp_servers.convalytics]
url = "https://api.convalytics.dev/mcp"
bearer_token_env_var = "CONVALYTICS_TOKEN"
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "convalytics": {
      "type": "remote",
      "url": "https://api.convalytics.dev/mcp",
      "enabled": true,
      "headers": {
        "Authorization": "Bearer {env:CONVALYTICS_TOKEN}"
      }
    }
  }
}
{
  "mcpServers": {
    "convalytics": {
      "type": "http",
      "url": "https://api.convalytics.dev/mcp",
      "headers": {
        "Authorization": "Bearer ${CONVALYTICS_TOKEN}"
      }
    }
  },
  "deeplink": "cursor://anysphere.cursor-deeplink/mcp/install?name=convalytics&config=eyJ0eXBlIjoiaHR0cCIsInVybCI6Imh0dHBzOi8vYXBpLmNvbnZhbHl0aWNzLmRldi9tY3AiLCJoZWFkZXJzIjp7IkF1dGhvcml6YXRpb24iOiJCZWFyZXIgJHtDT05WQUxZVElDU19UT0tFTn0ifX0%3D"
}
{
  "servers": {
    "convalytics": {
      "type": "http",
      "url": "https://api.convalytics.dev/mcp",
      "headers": {
        "Authorization": "Bearer ${CONVALYTICS_TOKEN}"
      }
    }
  }
}
{
  "mcpServers": {
    "convalytics": {
      "httpUrl": "https://api.convalytics.dev/mcp",
      "headers": {
        "Authorization": "Bearer ${CONVALYTICS_TOKEN}"
      }
    }
  }
}
extensions:
  "convalytics":
    enabled: true
    name: "convalytics"
    type: streamable_http
    uri: "https://api.convalytics.dev/mcp"
    headers:
      "Authorization": "Bearer ${CONVALYTICS_TOKEN}"
    timeout: 300

Placeholders to fill from your own secret store: ${CONVALYTICS_TOKEN}. The registry never accepts secret values.

Quality 91 / 100strong

protocol75 · weight 25
  • warn
    protocol.modernnewest supported version is 2025-06-18; 2026-07-28 not supported, older versions are deprecated until 2027-07-28
  • n/a
    protocol.statelessonly applies to 2026-07-28 servers
  • pass
    protocol.transportstreamable HTTP
  • n/a
    protocol.list_ttlonly applies to 2026-07-28 servers
authorizationn/a · weight 15
  • n/a
    auth.prm, auth.as_metadata, auth.cimdno remote uses OAuth
  • n/a
    auth.secret_in_urlno templated URL
tool hygiene100 · weight 30
  • pass
    tools.descriptionsevery tool has a description
  • pass
    tools.description_lengthdescriptions are concise
  • pass
    tools.schemasevery tool has an object input schema
  • pass
    tools.annotations15 of 15 tools declare readOnlyHint or destructiveHint
  • pass
    tools.directory_hintsevery tool declares readOnlyHint, destructiveHint, idempotentHint and openWorldHint
  • pass
    tools.token_costabout 3,240 tokens to load every tool
  • pass
    tools.api_dumptools are not a one-to-one API dump
stability100 · weight 15
  • pass
    stability.changesno tool changes in 30 days
  • pass
    stability.rug_pullno tool changed its meaning under the same name
dependenciesn/a · weight 15
  • n/a
    deps.known_vulns, deps.mcp_sdk_version, deps.resolvableno npm or PyPI package

15 tools, about 3,240 tokens to load them all · tool set 2eae300f0f51 · checked 2026-10-19 10:20 UTC

Tool changes

No tool definition changes recorded. A server's first observation is its baseline; later probes record what changes.

Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed. How it is computed.

Trust 90 / 100

provenance90
liveness100
freshness65
hygiene100

+repository +namespace-matches-repo +website +reachable +uptime-100% ~updated-179d-ago

Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed. How it is computed.

Endpoints

remoteauthreachableuptime 30dp50protocollast ok
https://api.convalytics.dev/mcp streamable-httpapi_key ${CONVALYTICS_TOKEN}yes100%397 ms2025-06-182026-10-19

Tools (15)

compute_funnelread-onlyRun a funnel over a time window and return per-step visitor count, conversion from previous step, conversion from start, and average time to convert between steps. Returns `truncated` flags if the scan cap was hit.
create_funnelCreate a new funnel on a project. Steps are 2–10 ordered events or pageview paths. conversionWindowMs caps how long a visitor has between consecutive steps (default 7 days); this is the step-to-step limit, without which a funnel is just event co-occurrence. Returns { id } on success.
delete_funneldestructiveSoft delete a funnel. The row is retained with status='deleted' and excluded from list/get/compute. Idempotent — calling twice is a no-op. Use if the funnel is obsolete; the record is kept for audit and cannot be undone from MCP.
events_countread-onlyCount CUSTOM PRODUCT events for a specific project in a time window, optionally filtered to one event name and/or one user. Custom events are emitted by explicit analytics.track() calls in app code (signup_completed, payment_succeeded, etc.). This does NOT count page views — use pageviews_count or weekly_digest for those. Returns count, unique visitors, and a `truncated` flag if the scan hit the maximum scan size.
get_funnelread-onlyReturn the full definition of one funnel by id: name, description, ordered steps, and conversion window.
get_usageread-onlyReturn the current month's custom-event usage, monthly quota, retention days, and plan name for the team.
list_funnelsread-onlyList active funnels defined on a project. A funnel is a saved ordered sequence of steps (events or pageview paths) that Convalytics computes step-by-step conversion for. Soft-deleted funnels are excluded.
list_projectsread-onlyList all Convalytics projects on the team this token belongs to. Useful when the agent needs to confirm the project it's querying against. No arguments.
pageviews_countread-onlyCount page views for a specific project in a time window. Page views are the automatic hits captured by the browser script tag (separate from custom events). Use this for web-traffic questions like 'how many pageviews in the last 24 hours'. Default window is the last 7 days. Pass `user` to scope to one visitor.
recent_eventsread-onlyReturn the most recent custom events for a specific project, optionally filtered to one event name and/or one user. PII (userEmail, userName, props) is redacted by default; pass redact: false to include them.
top_pagesread-onlyReturn the top pages for a specific project, ranked by views in a time window. Default window is the last 7 days. Use list_projects first if you don't know the project name. Returns path, views, uniqueVisitors, and percentage of total views for each page. Pass `user` to see pages a specific visitor hit.
top_referrersread-onlyReturn the top referring hosts for a specific project, ranked by visit count in a time window. Includes '(direct)' for visits with no referrer. Default window is the last 7 days.
update_funnelPatch an existing funnel. Any subset of name/description/steps/conversionWindowMs. Refuses updates on deleted funnels.
user_activityread-onlyComposite snapshot of a specific user's activity on a project. Returns an identity block (visitorId, userEmail, userName, firstSeen, lastSeen), total pageviews, total custom events, session count, top pages this user visited, their most-fired event names, and their 20 most recent events with props. Use this for 'how is [email protected] using my app?' style questions — one call, full picture. For ad-hoc drill-down (just a count, just recent events) pass `user` to the individual tools instead. Default window is the last 7 days.
weekly_digestread-onlyComposite snapshot of a project's web analytics over a lookback window. Returns unique visitors, pageviews, sessions, bounce rate, average session duration, top 5 pages, top 5 referrers, total custom events, and top 5 event names. Includes period-over-period comparison against the prior equal-length window unless compare: false. Prefer this over chaining top_pages + top_referrers + events_count when the agent just wants to report on the week.

Schemas: list_tools.

Similar MCP servers

Official server.json
{
  "name": "io.github.Dan-Cleary/convalytics",
  "$schema": "https://static.modelcontextprotocol.io/schemas/2025-07-09/server.schema.json",
  "remotes": [
    {
      "url": "https://api.convalytics.dev/mcp",
      "type": "streamable-http",
      "headers": [
        {
          "name": "Authorization",
          "isSecret": true,
          "isRequired": true,
          "description": "Convalytics API token. Create at https://convalytics.dev/tokens. Paste as 'Bearer cnv_...'."
        }
      ]
    }
  ],
  "version": "1.0.0",
  "repository": {
    "url": "https://github.com/Dan-Cleary/convalytics",
    "source": "github"
  },
  "websiteUrl": "https://convalytics.dev/mcp",
  "description": "Read-only analytics for Convex apps, queryable via MCP from Claude, Cursor, and other clients."
}