{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_pqyrtc466jyh","handle":"databuddy","url":"https://wellknown.network/agents/databuddy","links":{"self":"https://wellknown.network/agents/databuddy/record.json","html":"https://wellknown.network/agents/databuddy","markdown":"https://wellknown.network/agents/databuddy/record.md","api":"https://wellknown.network/api/v1/agents/databuddy","status":"https://wellknown.network/api/v1/agents/databuddy/status","claim":"https://wellknown.network/agents/databuddy/claim","claimApi":"https://wellknown.network/api/v1/claims","claimDescriptor":"https://wellknown.network/agents/databuddy/claim.json","badge":"https://wellknown.network/agents/databuddy/badge.svg","openapi":"https://wellknown.network/openapi.json","history":"https://wellknown.network/api/v1/agents/databuddy/history","tools":"https://wellknown.network/api/v1/agents/databuddy/tools"},"ard":{"identifier":"urn:air:api.databuddy.cc:server:databuddy","type":"application/mcp-server-card+json"},"kind":"mcp_server","declared":{"name":"Databuddy","summary":"Product analytics for AI agents: traffic, funnels, goals, errors, Web Vitals, flags and links.","description":"Product analytics for AI agents: traffic, funnels, goals, errors, Web Vitals, flags and links.","publisher":{"name":"databuddy-analytics","url":null},"homepage":"https://www.databuddy.cc/mcp","repository":"https://github.com/databuddy-analytics/Databuddy","version":"1.0.0","license":null,"protocols":["mcp"],"tags":[],"pricing":null,"endpoints":[{"url":"https://api.databuddy.cc/v1/mcp","type":"mcp_streamable_http","auth":null,"probeable":true}],"skills":null,"tools":null,"extra":{"updatedAt":"2026-10-29T17:47:32.474354Z","publishedAt":"2026-10-29T17:47:32.474354Z","registryName":"io.github.databuddy-analytics/databuddy"},"attribution":{"kind":"mcp_registry","name":"mcp_registry","repoUrl":"mcp_registry","summary":"mcp_registry","version":"mcp_registry","description":"mcp_registry","homepageUrl":"mcp_registry","publisherName":"mcp_registry"}},"derived":{"capabilities":[{"slug":"content.writing","name":"Writing & Editing","confidence":1,"provenance":"derived"},{"slug":"dev.docs-lookup","name":"Documentation Lookup","confidence":1,"provenance":"derived"},{"slug":"analytics.reporting","name":"Reporting & Dashboards","confidence":1,"provenance":"derived"},{"slug":"analytics.product","name":"Product Analytics","confidence":0.954,"provenance":"derived"},{"slug":"documents.conversion","name":"Document Conversion","confidence":0.554,"provenance":"derived"},{"slug":"ai.evaluation","name":"Evaluation & Benchmarks","confidence":0.554,"provenance":"derived"},{"slug":"commerce.ecommerce","name":"E-commerce Operations","confidence":0.51,"provenance":"derived"}],"categories":["ai","analytics","commerce","content","dev","documents"],"language":"en"},"observed":{"status":"live","statusReason":"Responded 9h ago.","lastOkAt":"2026-11-09T18:28:22.013Z","lastProbedAt":"2026-11-09T18:28:22.013Z","statusComputedAt":"2026-11-09T18:31:57.686Z","reliability30d":{"probes":32,"successRate":1,"p50Ms":11,"basis":"mixed","measures":{"availability":"availability (some checks stopped at authentication)","latency":"response time (mixed)","tools":"partially observed","summary":"Some successful checks reached the service and some stopped at an authentication response; figures combine both."},"checks":{"total":32,"ok":32,"authBoundaryOk":31,"serviceOk":1,"note":"Counted from the observation rows for the window, checks of the server only (HTTP, A2A card, MCP initialize). ok = authBoundaryOk + serviceOk. `probes` is the sum of daily rollups and includes registry checks, so it can differ from `total`."}},"latestObservations":[{"at":"2026-11-09T18:28:22.013Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":12,"error":null,"detail":{"tools":[{"name":"get_funnel_analytics_by_referrer","description":"Return one funnel's conversion broken down by referrer, by funnelId from list_funnels. Paginated over referrers. Referrers with a single visitor are omitted, so"},{"name":"update_goal","description":"Update a conversion goal. confirmed=false (default) returns the current goal and the changes without writing; confirmed=true applies them."},{"name":"delete_goal","description":"Delete a conversion goal. confirmed=false (default) returns the goal without deleting it; confirmed=true deletes it."},{"name":"update_annotation","description":"Update an annotation's text, tags, color, or visibility. confirmed=false (default) returns the changes without writing; confirmed=true applies them."},{"name":"delete_annotation","description":"Delete a chart annotation. confirmed=false (default) returns the annotation without deleting it; confirmed=true deletes it."},{"name":"update_link","description":"Update a short link. confirmed=false (default) returns the current link and the changes without writing; confirmed=true applies them."},{"name":"delete_link","description":"Delete a short link. confirmed=false (default) returns the link without deleting it; confirmed=true deletes it."},{"name":"list_websites","description":"List the websites this account can access, with IDs, names, domains, and organizations. Website-scoped tools accept websiteId, websiteName, or websiteDomain."},{"name":"list_insights","description":"List published insights for an organization or website: title, summary, evidence, impact, and the recorded next step (null when no step was recorded, when a lat"},{"name":"list_investigations","description":"List the latest investigation per subject, with status and IDs. Cases with a dashboard analysis or verification queued or running are left out until it finishes"},{"name":"get_investigation","description":"Get one durable investigation, including its current status, evidence-backed observations, and human replies. The ID may come from Slack or list_investigations."},{"name":"reply_to_investigation","description":"Add a clarification to an existing investigation. It is answered from the case's saved evidence, without new measurements or actions. The answer appears in get_"},{"name":"dismiss_investigation","description":"Close an open investigation with the team's reason, only when the user asks. Future investigations read the note. expected, wrong and not_useful keep the subjec"},{"name":"get_data","description":"Query Databuddy's analytics API (www.databuddy.cc/docs/api) for a website: one query or a batch of 2-10. Query types come from capabilities. Default range last_"},{"name":"get_schema","description":"Return the analytics tables with column names and types as a reference."},{"name":"capabilities","description":"Return get_data query types, date presets, categories, and a schema summary. 'include' selects sections; queryTypes are omitted unless requested or filtered by "},{"name":"list_funnels","description":"List funnels for a website with their steps and filters. Funnel IDs are used by get_funnel_analytics."},{"name":"get_funnel_analytics","description":"Return per-step conversion and drop-off for one funnel, by funnelId from list_funnels. Visitors entering in range get conversionWindowHours to finish, even past"},{"name":"create_funnel","description":"Create a funnel for a website. confirmed=false (default) returns a preview without writing; confirmed=true creates it."},{"name":"list_goals","description":"List conversion goals for a website with their type, target, and filters. Goal IDs are used by get_goal_analytics."},{"name":"search_replays","description":"Find recordings by email, profileId, current user traits, recording dates, pages, timeline text, events, activity, or watch score. Use known trait values; ask i"},{"name":"get_goal_analytics","description":"Return entered and completed counts and the conversion rate for one goal, by goalId from list_goals."},{"name":"create_goal","description":"Create a conversion goal. confirmed=false (default) returns a preview without writing; confirmed=true creates it."},{"name":"list_link_folders","description":"List short-link folders for the website's organization, with link counts. Links can only be assigned to these existing folders."},{"name":"list_links","description":"List short links for the website's organization, newest first, with existing folders. total covers the full catalog; search_links finds a specific link."},{"name":"search_links","description":"Find short links across the full catalog matching a substring on name, slug, target URL, or external ID, newest first."},{"name":"create_link","description":"Create a short link in the website's organization. confirmed=false (default) returns a preview without writing; confirmed=true creates it."},{"name":"list_annotations","description":"List chart annotations for a website: text, time range, tags, color, and visibility."},{"name":"create_annotation","description":"Create a chart annotation. confirmed=false (default) returns a preview without writing; confirmed=true creates it."},{"name":"list_flags","description":"List feature flags with their status, rollout, rules, and variants: a website's flags when a website is given, otherwise the organization-wide flags. Flag IDs a"},{"name":"get_experiment_results","description":"Compare goal conversion across flag variants for tracked evaluations. Uses two-sided Fisher when any expected cell is below 5, otherwise a two-proportion z-test"},{"name":"create_flag","description":"Create a feature flag, inactive and boolean unless configured. confirmed=false (default) returns a preview without writing; confirmed=true creates it."},{"name":"update_flag","description":"Update a flag's config, status, rollout, rules, or variants. rules replaces every rule and needs expectedUpdatedAt. confirmed=false (default) previews the curre"},{"name":"add_users_to_flag","description":"Target user IDs or emails on a feature flag. mode=append (default) adds one rule; mode=replace deletes every existing rule first. confirmed=false (default) prev"},{"name":"submit_feedback","description":"Send a bug report, feature request, or blocking error about Databuddy itself to the Databuddy team. Call only after the user asks or agrees to send it. Problems"}],"toolCount":35,"toolsHash":"63c950e2991dea2edafd1e6f2319ed9a41d995b97bbdb800cedb2c14d43a6f90","serverName":"databuddy","capabilities":["resources","tools","completions","prompts"],"serverVersion":"639a26c","protocolVersion":"2025-06-18"}},{"at":"2026-11-09T08:27:46.073Z","kind":"mcp_initialize","ok":true,"httpStatus":401,"latencyMs":13,"error":null,"detail":{"authRequired":true,"wwwAuthenticate":"Bearer error=\"invalid_token\", error_description=\"Authentication required. Use OAuth 2.1, or x-api-key / Authorization: Bearer with a valid Databuddy API key.\", resource_metadata=\"https://api.databuddy"}},{"at":"2026-11-08T23:31:39.966Z","kind":"mcp_initialize","ok":true,"httpStatus":401,"latencyMs":12,"error":null,"detail":{"authRequired":true,"wwwAuthenticate":"Bearer error=\"invalid_token\", error_description=\"Authentication required. Use OAuth 2.1, or x-api-key / Authorization: Bearer with a valid Databuddy API key.\", resource_metadata=\"https://api.databuddy"}},{"at":"2026-11-08T14:25:18.080Z","kind":"mcp_initialize","ok":true,"httpStatus":401,"latencyMs":12,"error":null,"detail":{"authRequired":true,"wwwAuthenticate":"Bearer error=\"invalid_token\", error_description=\"Authentication required. Use OAuth 2.1, or x-api-key / Authorization: Bearer with a valid Databuddy API key.\", resource_metadata=\"https://api.databuddy"}},{"at":"2026-11-08T05:26:11.398Z","kind":"mcp_initialize","ok":true,"httpStatus":401,"latencyMs":13,"error":null,"detail":{"authRequired":true,"wwwAuthenticate":"Bearer error=\"invalid_token\", error_description=\"Authentication required. Use OAuth 2.1, or x-api-key / Authorization: Bearer with a valid Databuddy API key.\", resource_metadata=\"https://api.databuddy"}},{"at":"2026-11-07T20:27:34.059Z","kind":"mcp_initialize","ok":true,"httpStatus":401,"latencyMs":11,"error":null,"detail":{"authRequired":true,"wwwAuthenticate":"Bearer error=\"invalid_token\", error_description=\"Authentication required. Use OAuth 2.1, or x-api-key / Authorization: Bearer with a valid Databuddy API key.\", resource_metadata=\"https://api.databuddy"}},{"at":"2026-11-07T11:27:09.556Z","kind":"mcp_initialize","ok":true,"httpStatus":401,"latencyMs":84,"error":null,"detail":{"authRequired":true,"wwwAuthenticate":"Bearer error=\"invalid_token\", error_description=\"Authentication required. Use OAuth 2.1, or x-api-key / Authorization: Bearer with a valid Databuddy API key.\", resource_metadata=\"https://api.databuddy"}},{"at":"2026-11-07T02:27:46.457Z","kind":"mcp_initialize","ok":true,"httpStatus":401,"latencyMs":10,"error":null,"detail":{"authRequired":true,"wwwAuthenticate":"Bearer error=\"invalid_token\", error_description=\"Authentication required. Use OAuth 2.1, or x-api-key / Authorization: Bearer with a valid Databuddy API key.\", resource_metadata=\"https://api.databuddy"}},{"at":"2026-11-06T17:29:52.190Z","kind":"mcp_initialize","ok":true,"httpStatus":401,"latencyMs":10,"error":null,"detail":{"authRequired":true,"wwwAuthenticate":"Bearer error=\"invalid_token\", error_description=\"Authentication required. Use OAuth 2.1, or x-api-key / Authorization: Bearer with a valid Databuddy API key.\", resource_metadata=\"https://api.databuddy"}},{"at":"2026-11-06T09:28:07.647Z","kind":"mcp_initialize","ok":true,"httpStatus":401,"latencyMs":10,"error":null,"detail":{"authRequired":true,"wwwAuthenticate":"Bearer error=\"invalid_token\", error_description=\"Authentication required. Use OAuth 2.1, or x-api-key / Authorization: Bearer with a valid Databuddy API key.\", resource_metadata=\"https://api.databuddy"}}],"tools":[{"name":"get_funnel_analytics_by_referrer","description":"Return one funnel's conversion broken down by referrer, by funnelId from list_funnels. Paginated over referrers. Referrers with a single visitor are omitted, so"},{"name":"update_goal","description":"Update a conversion goal. confirmed=false (default) returns the current goal and the changes without writing; confirmed=true applies them."},{"name":"delete_goal","description":"Delete a conversion goal. confirmed=false (default) returns the goal without deleting it; confirmed=true deletes it."},{"name":"update_annotation","description":"Update an annotation's text, tags, color, or visibility. confirmed=false (default) returns the changes without writing; confirmed=true applies them."},{"name":"delete_annotation","description":"Delete a chart annotation. confirmed=false (default) returns the annotation without deleting it; confirmed=true deletes it."},{"name":"update_link","description":"Update a short link. confirmed=false (default) returns the current link and the changes without writing; confirmed=true applies them."},{"name":"delete_link","description":"Delete a short link. confirmed=false (default) returns the link without deleting it; confirmed=true deletes it."},{"name":"list_websites","description":"List the websites this account can access, with IDs, names, domains, and organizations. Website-scoped tools accept websiteId, websiteName, or websiteDomain."},{"name":"list_insights","description":"List published insights for an organization or website: title, summary, evidence, impact, and the recorded next step (null when no step was recorded, when a lat"},{"name":"list_investigations","description":"List the latest investigation per subject, with status and IDs. Cases with a dashboard analysis or verification queued or running are left out until it finishes"},{"name":"get_investigation","description":"Get one durable investigation, including its current status, evidence-backed observations, and human replies. The ID may come from Slack or list_investigations."},{"name":"reply_to_investigation","description":"Add a clarification to an existing investigation. It is answered from the case's saved evidence, without new measurements or actions. The answer appears in get_"},{"name":"dismiss_investigation","description":"Close an open investigation with the team's reason, only when the user asks. Future investigations read the note. expected, wrong and not_useful keep the subjec"},{"name":"get_data","description":"Query Databuddy's analytics API (www.databuddy.cc/docs/api) for a website: one query or a batch of 2-10. Query types come from capabilities. Default range last_"},{"name":"get_schema","description":"Return the analytics tables with column names and types as a reference."},{"name":"capabilities","description":"Return get_data query types, date presets, categories, and a schema summary. 'include' selects sections; queryTypes are omitted unless requested or filtered by "},{"name":"list_funnels","description":"List funnels for a website with their steps and filters. Funnel IDs are used by get_funnel_analytics."},{"name":"get_funnel_analytics","description":"Return per-step conversion and drop-off for one funnel, by funnelId from list_funnels. Visitors entering in range get conversionWindowHours to finish, even past"},{"name":"create_funnel","description":"Create a funnel for a website. confirmed=false (default) returns a preview without writing; confirmed=true creates it."},{"name":"list_goals","description":"List conversion goals for a website with their type, target, and filters. Goal IDs are used by get_goal_analytics."},{"name":"search_replays","description":"Find recordings by email, profileId, current user traits, recording dates, pages, timeline text, events, activity, or watch score. Use known trait values; ask i"},{"name":"get_goal_analytics","description":"Return entered and completed counts and the conversion rate for one goal, by goalId from list_goals."},{"name":"create_goal","description":"Create a conversion goal. confirmed=false (default) returns a preview without writing; confirmed=true creates it."},{"name":"list_link_folders","description":"List short-link folders for the website's organization, with link counts. Links can only be assigned to these existing folders."},{"name":"list_links","description":"List short links for the website's organization, newest first, with existing folders. total covers the full catalog; search_links finds a specific link."},{"name":"search_links","description":"Find short links across the full catalog matching a substring on name, slug, target URL, or external ID, newest first."},{"name":"create_link","description":"Create a short link in the website's organization. confirmed=false (default) returns a preview without writing; confirmed=true creates it."},{"name":"list_annotations","description":"List chart annotations for a website: text, time range, tags, color, and visibility."},{"name":"create_annotation","description":"Create a chart annotation. confirmed=false (default) returns a preview without writing; confirmed=true creates it."},{"name":"list_flags","description":"List feature flags with their status, rollout, rules, and variants: a website's flags when a website is given, otherwise the organization-wide flags. Flag IDs a"},{"name":"get_experiment_results","description":"Compare goal conversion across flag variants for tracked evaluations. Uses two-sided Fisher when any expected cell is below 5, otherwise a two-proportion z-test"},{"name":"create_flag","description":"Create a feature flag, inactive and boolean unless configured. confirmed=false (default) returns a preview without writing; confirmed=true creates it."},{"name":"update_flag","description":"Update a flag's config, status, rollout, rules, or variants. rules replaces every rule and needs expectedUpdatedAt. confirmed=false (default) previews the curre"},{"name":"add_users_to_flag","description":"Target user IDs or emails on a feature flag. mode=append (default) adds one rule; mode=replace deletes every existing rule first. confirmed=false (default) prev"},{"name":"submit_feedback","description":"Send a bug report, feature request, or blocking error about Databuddy itself to the Databuddy team. Call only after the user asks or agrees to send it. Problems"}],"package":null,"toolSurface":{"id":"ts_a8mjyezc5bbm","endpointId":"ep_xkd7898kuge6","hash":"63c950e2991dea2edafd1e6f2319ed9a41d995b97bbdb800cedb2c14d43a6f90","toolCount":35,"serverName":"databuddy","serverVersion":"639a26c","protocolVersion":"2025-06-18","firstSeenAt":"2026-11-09T18:28:22.022Z","lastSeenAt":"2026-11-09T18:28:22.022Z","observations":1,"hiddenText":{"level":"none","total":0,"tools":0,"kinds":[],"findings":[]},"toolNames":["get_funnel_analytics_by_referrer","update_goal","delete_goal","update_annotation","delete_annotation","update_link","delete_link","list_websites","list_insights","list_investigations","get_investigation","reply_to_investigation","dismiss_investigation","get_data","get_schema","capabilities","list_funnels","get_funnel_analytics","create_funnel","list_goals","search_replays","get_goal_analytics","create_goal","list_link_folders","list_links","search_links","create_link","list_annotations","create_annotation","list_flags","get_experiment_results","create_flag","update_flag","add_users_to_flag","submit_feedback"],"distinctSurfaces":1,"surfacesWithHiddenText":0},"endpointFacts":[{"id":"ep_xkd7898kuge6","url":"https://api.databuddy.cc/v1/mcp","type":"mcp_streamable_http","factsCheckedAt":"2026-11-08T14:25:18.076Z","auth":{"observedAt":"2026-11-08T14:25:18.260Z","authRequired":true,"scheme":"Bearer","resourceMetadata":{"url":"https://api.databuddy.cc/.well-known/oauth-protected-resource/v1/mcp","resource":"https://api.databuddy.cc/v1/mcp","authorizationServers":["https://app.databuddy.cc/api/auth"],"scopesSupported":["read:data","manage:websites","manage:flags","read:links","write:links"]},"authorizationServer":{"url":"https://app.databuddy.cc/.well-known/oauth-authorization-server/api/auth","issuer":"https://app.databuddy.cc/api/auth","grantTypesSupported":["authorization_code","client_credentials","refresh_token"],"codeChallengeMethodsSupported":["S256"],"tokenEndpointAuthMethodsSupported":["none","client_secret_basic","client_secret_post","private_key_jwt"],"dynamicClientRegistration":true,"dpopSigningAlgValuesSupported":["EdDSA","ES256","ES512","PS256","RS256"],"clientIdMetadataDocumentSupported":true},"conformance":{"dpop":true,"rfc8414":true,"rfc9728":true,"pkceS256":true,"clientIdMetadataDocument":true,"dynamicClientRegistration":true}},"tls":{"observedAt":"2026-11-08T14:25:18.291Z","protocol":"TLSv1.3","chainValid":true,"chainError":null,"hostMatches":true,"subject":"api.databuddy.cc","issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validFrom":"2026-10-22T09:48:00.000Z","validTo":"2027-01-20T09:47:59.000Z","daysToExpiry":71,"sanCount":1,"fingerprint256":"2C:22:D3:AB:61:03:0B:0A:A9:C9:E4:8E:A1:92:E7:BB:3E:D7:0F:AF:A1:F3:33:16:45:39:43:B5:17:14:8C:A1"}}]},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"mcp_registry","key":"io.github.databuddy-analytics/databuddy","url":"https://registry.modelcontextprotocol.io/v0/servers/io.github.databuddy-analytics%2Fdatabuddy","firstSeenAt":"2026-10-29T22:19:58.587Z","fetchedAt":"2026-11-06T08:19:26.195Z","normalizedAt":"2026-11-06T08:19:26.195Z"}]},"firstSeenAt":"2026-10-29T22:19:58.587Z","updatedAt":"2026-11-09T18:34:11.148Z"}