Show raw JSON evidence
{
"checks": {
"action_safety_probe": {
"details": {
"auth_present": false,
"confirmation_signals": [],
"reason": null,
"safeguard_count": 0,
"summary": {
"annotation_conflict_tools": 0,
"bulk_access_tools": 0,
"capability_distribution": {
"read": 5
},
"declared_non_read_only_tools": 0,
"destructive_tools": 0,
"egress_tools": 0,
"exec_tools": 0,
"has_mutating_capability": false,
"has_non_read_capability": false,
"high_risk_tools": 0,
"risk_distribution": {
"critical": 0,
"high": 0,
"low": 5,
"medium": 0
},
"secret_tools": 0,
"tool_count": 5
}
},
"latency_ms": null,
"status": "ok"
},
"advanced_capabilities_probe": {
"details": {
"capabilities": {
"completions": false,
"elicitation": false,
"prompts": false,
"resource_links": false,
"resources": false,
"roots": false,
"sampling": false,
"structured_outputs": true
},
"enabled": [
"structured_outputs"
],
"enabled_count": 1,
"initialize_capability_keys": [
"tools"
]
},
"latency_ms": null,
"status": "warning"
},
"connector_publishability_probe": {
"details": {
"blockers": [
"transport_compliance",
"server_card"
],
"criteria": {
"action_safety": true,
"auth_flow": true,
"connector_replay": true,
"initialize": true,
"protocol_version": true,
"remote_transport": true,
"request_association": true,
"server_card": false,
"session_resume": true,
"step_up_auth": true,
"tool_surface": true,
"tools_list": true,
"transport_compliance": false
},
"high_risk_tools": 0,
"tool_count": 5,
"transport": "streamable-http"
},
"latency_ms": null,
"status": "warning"
},
"connector_replay_probe": {
"details": {
"added_tools": [],
"additive_output_changes": [],
"backward_compatible": true,
"output_breaks": [],
"removed_tools": [],
"required_arg_breaks": [],
"would_break_after_refresh": false
},
"latency_ms": null,
"status": "ok"
},
"determinism_probe": {
"details": {
"attempts": 2,
"baseline_signature": "ac05465176e0da2ebb112696accad7db5d6e1e8ccef906379504d064f0cbb1bf",
"errors": [],
"matches": 2,
"stable_ratio": 1.0,
"successful": 2
},
"latency_ms": 42.58,
"status": "ok"
},
"initialize": {
"details": {
"headers": {
"content-type": "application/json",
"strict-transport-security": "max-age=31536000; includeSubDomains"
},
"http_status": 200,
"payload": {
"id": 1,
"jsonrpc": "2.0",
"result": {
"capabilities": {
"tools": {
"listChanged": false
}
},
"instructions": "Open weekly AI-visibility data for SaaS & AI tools: share of answer across ChatGPT, Perplexity and Gemini. All data is CC BY 4.0; cite the domain when reusing numbers.",
"protocolVersion": "2025-03-26",
"serverInfo": {
"name": "dabyte-ai-visibility",
"title": "DABYTE AI Visibility Index",
"version": "1.0.0"
}
}
},
"url": "https://dabyte.ai/mcp"
},
"latency_ms": 120.88,
"status": "ok"
},
"interactive_flow_probe": {
"details": {
"oauth_supported": false,
"prompt_available": false,
"risk_hits": [],
"safe_hits": []
},
"latency_ms": null,
"status": "missing"
},
"oauth_authorization_server": {
"details": {
"reason": "no_authorization_server"
},
"latency_ms": null,
"status": "missing"
},
"oauth_protected_resource": {
"details": {
"error": "Client error '404 Not Found' for url 'https://dabyte.ai/.well-known/oauth-protected-resource'\nFor more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/404",
"url": "https://dabyte.ai/.well-known/oauth-protected-resource"
},
"latency_ms": 126.86,
"status": "error"
},
"official_registry_probe": {
"details": {
"direct_match": true,
"official_peer_count": 1,
"registry_identifier": "ai.dabyte/visibility-index",
"registry_source": "official_registry"
},
"latency_ms": null,
"status": "ok"
},
"openid_configuration": {
"details": {
"reason": "no_authorization_server"
},
"latency_ms": null,
"status": "missing"
},
"probe_noise_resilience": {
"details": {
"headers": {
"content-type": "text/plain; charset=utf-8",
"strict-transport-security": "max-age=31536000; includeSubDomains"
},
"http_status": 200,
"url": "https://dabyte.ai/robots.txt",
"validation_disallowed": false
},
"latency_ms": 168.88,
"status": "ok"
},
"prompt_get": {
"details": {
"reason": "not_advertised"
},
"latency_ms": null,
"status": "missing"
},
"prompts_list": {
"details": {
"headers": {
"content-type": "application/json",
"strict-transport-security": "max-age=31536000; includeSubDomains"
},
"http_status": 200,
"payload": {
"error": {
"code": -32601,
"message": "method not found: prompts/list"
},
"id": 3,
"jsonrpc": "2.0"
},
"reason": "not_supported",
"url": "https://dabyte.ai/mcp"
},
"latency_ms": 44.94,
"status": "missing"
},
"protocol_version_probe": {
"details": {
"claimed_version": "2025-03-26",
"lag_days": 244,
"latest_known_version": "2025-11-25",
"releases_behind": 2,
"validator_protocol_version": "2025-03-26"
},
"latency_ms": null,
"status": "warning"
},
"provenance_divergence_probe": {
"details": {
"comparable_field_count": 0,
"compared_fields": [
"title",
"version",
"homepage",
"repository"
],
"direct_official_match": true,
"drift_fields": [],
"metadata_document_count": 2,
"readable_sources": [
"registry"
],
"registry_homepage": null,
"registry_repository": null,
"registry_title": null,
"registry_version": null,
"server_card_homepage": null,
"server_card_repository": null,
"server_card_title": null,
"server_card_version": null
},
"latency_ms": null,
"status": "not_assessed"
},
"request_association_probe": {
"details": {
"reason": "no_request_association_capabilities_advertised"
},
"latency_ms": null,
"status": "missing"
},
"resource_read": {
"details": {
"reason": "not_advertised"
},
"latency_ms": null,
"status": "missing"
},
"resources_list": {
"details": {
"headers": {
"content-type": "application/json",
"strict-transport-security": "max-age=31536000; includeSubDomains"
},
"http_status": 200,
"payload": {
"error": {
"code": -32601,
"message": "method not found: resources/list"
},
"id": 5,
"jsonrpc": "2.0"
},
"reason": "not_supported",
"url": "https://dabyte.ai/mcp"
},
"latency_ms": 42.5,
"status": "missing"
},
"schema_divergence_probe": {
"details": {
"card_server_name": null,
"compared_dimensions": [
"server_name",
"server_version",
"declared_vs_observed_auth",
"tool_membership",
"parameter_names",
"required_parameters",
"parameter_types",
"output_schema_presence"
],
"compared_tool_count": 0,
"live_server_name": "dabyte-ai-visibility",
"reason": "no_server_card_tools",
"server_name_mismatch": false
},
"latency_ms": null,
"status": "missing"
},
"server_card": {
"details": {
"error": "Client error '404 Not Found' for url 'https://dabyte.ai/.well-known/mcp/server-card.json'\nFor more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/404",
"url": "https://dabyte.ai/.well-known/mcp/server-card.json"
},
"latency_ms": 68.66,
"status": "error"
},
"session_resume_probe": {
"details": {
"protocol_version": "2025-03-26",
"reason": "no_session_id",
"resume_expected": true,
"transport": "streamable-http"
},
"latency_ms": null,
"status": "warning"
},
"step_up_auth_probe": {
"details": {
"auth_required_checks": [],
"broad_scopes": [],
"challenge_headers": [],
"minimal_scope_documented": false,
"oauth_present": false,
"scope_specificity_ratio": 0.0,
"step_up_signals": [],
"supported_scopes": []
},
"latency_ms": null,
"status": "missing"
},
"tool_snapshot_probe": {
"details": {
"added": [],
"changed_outputs": [],
"current_tool_count": 5,
"previous_tool_count": 5,
"removed": [],
"similarity": 1.0
},
"latency_ms": null,
"status": "ok"
},
"tools_list": {
"details": {
"headers": {
"content-type": "application/json",
"strict-transport-security": "max-age=31536000; includeSubDomains"
},
"http_status": 200,
"payload": {
"id": 2,
"jsonrpc": "2.0",
"result": {
"tools": [
{
"annotations": {
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": false,
"readOnlyHint": true,
"title": "DABYTE AI Visibility Index \u2014 full table"
},
"description": "The whole current release in one call: every tracked brand in SaaS & AI tools with its rank, share of answer overall and per engine, commercial intent and quadrant. Share of answer is the percentage of a fixed panel of category buyer prompts in which an engine names the brand.\n\nUse this when the question is about the field \u2014 who leads, who is absent, how the category looks. It is one response of roughly 8 KB for 20 brands, so prefer it over calling get_brand_visibility repeatedly.\n\nDo NOT use it for one named brand (get_brand_visibility is the direct answer), for movement over time (get_history holds the series; a single release cannot show a trend), or to audit a website's own AI visibility \u2014 this is a measured dataset about third-party brands, not a site audit. Covers SaaS & AI tools only; the sibling index at dablock.ai covers the other niche.\n\nRe-measured weekly, so the same call returns the same figures until the next release. Data is CC BY 4.0 and free: no key, no account, no rate limit \u2014 cite the release date and dabyte.ai when quoting a number.",
"inputSchema": {
"additionalProperties": false,
"properties": {},
"type": "object"
},
"name": "get_visibility_index",
"outputSchema": {
"properties": {
"engines": {
"description": "Engines measured in this release.",
"items": {
"type": "string"
},
"type": "array"
},
"entries": {
"items": {
"properties": {
"brand": {
"description": "Brand name as published.",
"type": "string"
},
"commercial_intent": {
"description": "How commercially loaded the brand's category demand is.",
"type": "number"
},
"is_client": {
"description": "Whether the brand is a client of the publisher. Placement cannot be bought; this flag makes that checkable.",
"type": "boolean"
},
"per_engine": {
"additionalProperties": {
"type": "number"
},
"description": "Share of answer per engine, same scale.",
"type": "object"
},
"quadrant": {
"description": "Position on visibility against commercial intent.",
"type": "string"
},
"rank": {
"description": "Position in this release, 1 = most named.",
"type": "integer"
},
"slug": {
"description": "Identifier used by get_brand_visibility.",
"type": "string"
},
"visibility_score": {
"description": "Share of answer, percent of panel prompts naming the brand.",
"type": "number"
}
},
"required": [
"brand",
"slug",
"rank",
"visibility_score"
],
"type": "object"
},
"type": "array"
},
"measured_at": {
"description": "Date of this release, ISO 8601.",
"type": "string"
},
"niche_title": {
"type": "string"
},
"panel_version": {
"description": "Prompt panel version. Figures from different versions are not comparable.",
"type": "integer"
}
},
"required": [
"measured_at",
"entries"
],
"type": "object"
},
"title": "DABYTE AI Visibility Index \u2014 full table"
},
{
"annotations": {
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": false,
"readOnlyHint": true,
"title": "Look up one brand"
},
"description": "One brand's standing in the current DABYTE release: share of answer per engine, rank, quadrant, how many panel prompts name it, and which ones.\n\nUse this when a specific brand is named. Takes a slug, not a display name \u2014 call list_tracked_brands first if you are unsure, or read the slug from get_visibility_index.\n\nAn unknown slug is not a failure to hide: the error names every valid slug, so a second attempt can succeed. A brand absent from the index has not been measured at all, which is different from a measured zero. Only SaaS & AI tools brands are tracked. For the field as a whole use get_visibility_index; for this brand over time, get_history.\n\nRe-measured weekly, so the same call returns the same figures until the next release. Data is CC BY 4.0 and free: no key, no account, no rate limit \u2014 cite the release date and dabyte.ai when quoting a number.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"slug": {
"description": "Brand slug, lowercase with hyphens \u2014 'slack', 'coinbase', 'monday-com'. Not the display name.",
"pattern": "^[a-z0-9-]{1,80}$",
"type": "string"
}
},
"required": [
"slug"
],
"type": "object"
},
"name": "get_brand_visibility",
"outputSchema": {
"properties": {
"brand": {
"description": "Brand name as published.",
"type": "string"
},
"commercial_intent": {
"description": "How commercially loaded the brand's category demand is.",
"type": "number"
},
"engines": {
"description": "Engines measured in this release.",
"items": {
"type": "string"
},
"type": "array"
},
"is_client": {
"description": "Whether the brand is a client of the publisher. Placement cannot be bought; this flag makes that checkable.",
"type": "boolean"
},
"measured_at": {
"description": "Date of this release, ISO 8601.",
"type": "string"
},
"niche_title": {
"type": "string"
},
"panel_version": {
"description": "Prompt panel version. Figures from different versions are not comparable.",
"type": "integer"
},
"per_engine": {
"additionalProperties": {
"type": "number"
},
"description": "Share of answer per engine, same scale.",
"type": "object"
},
"prompts": {
"description": "Panel prompts in which the brand is named.",
"items": {
"type": "string"
},
"type": "array"
},
"quadrant": {
"description": "Position on visibility against commercial intent.",
"type": "string"
},
"rank": {
"description": "Position in this release, 1 = most named.",
"type": "integer"
},
"slug": {
"description": "Identifier used by get_brand_visibility.",
"type": "string"
},
"visibility_score": {
"description": "Share of answer, percent of panel prompts naming the brand.",
"type": "number"
}
},
"required": [
"brand",
"slug",
"rank",
"visibility_score",
"measured_at"
],
"type": "object"
},
"title": "Look up one brand"
},
{
"annotations": {
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": false,
"readOnlyHint": true,
"title": "List tracked brands and slugs"
},
"description": "The names and slugs of every brand in the DABYTE index \u2014 a lookup table, nothing else. No scores, no ranks.\n\nUse it for two things: to turn a brand name into the slug get_brand_visibility needs, and to answer whether a brand is tracked at all.\n\nDo NOT use it when you want figures \u2014 get_visibility_index returns the same brands with their full measurements in a single call, so calling this one first is a wasted round trip. Absence here means the brand is not measured, not that it scores zero. Covers SaaS & AI tools only; the sibling index at dablock.ai covers the other niche.\n\nRe-measured weekly, so the same call returns the same figures until the next release. Data is CC BY 4.0 and free: no key, no account, no rate limit \u2014 cite the release date and dabyte.ai when quoting a number.",
"inputSchema": {
"additionalProperties": false,
"properties": {},
"type": "object"
},
"name": "list_tracked_brands",
"outputSchema": {
"properties": {
"brands": {
"items": {
"properties": {
"brand": {
"type": "string"
},
"slug": {
"type": "string"
}
},
"required": [
"brand",
"slug"
],
"type": "object"
},
"type": "array"
}
},
"required": [
"brands"
],
"type": "object"
},
"title": "List tracked brands and slugs"
},
{
"annotations": {
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": false,
"readOnlyHint": true,
"title": "Full measurement time series"
},
"description": "Every DABYTE release ever published, as a series per brand: share of answer at each weekly measurement with the date and panel version it was taken under.\n\nUse this for any question about change \u2014 is a brand rising, when did it enter the index, how volatile is the category.\n\nTwo limits decide whether an answer is honest. Figures are comparable only WITHIN a panel version: the panel is frozen between releases and a version change alters the denominator, so a difference across that boundary is not a trend. And one mention on one engine is a whole scale step, since each prompt runs once per engine per release \u2014 a movement of one step is inside the noise of a language model and should not be reported as a gain or a loss. Call get_methodology for the exact step size. For the current release alone use get_visibility_index.\n\nRe-measured weekly, so the same call returns the same figures until the next release. Data is CC BY 4.0 and free: no key, no account, no rate limit \u2014 cite the release date and dabyte.ai when quoting a number.",
"inputSchema": {
"additionalProperties": false,
"properties": {},
"type": "object"
},
"name": "get_history",
"outputSchema": {
"properties": {
"measurements": {
"items": {
"properties": {
"measured_at": {
"type": "string"
},
"panel_version": {
"type": "integer"
}
},
"type": "object"
},
"type": "array"
},
"series": {
"additionalProperties": {
"type": "array"
},
"description": "Per brand slug, the share of answer at each release.",
"type": "object"
}
},
"type": "object"
},
"title": "Full measurement time series"
},
{
"annotations": {
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": false,
"readOnlyHint": true,
"title": "How the index is measured"
},
"description": "The rules behind every figure this server returns: the exact prompt panel and its version, which engines were measured, how share of answer is scored and rounded, the resolution of the scale in percentage points, and the editorial firewall and ownership disclosure.\n\nCall this before quoting a number as evidence, before comparing two releases, or whenever a user asks how the measurement was made or who publishes it. It is the only tool that tells you how much of a difference is meaningful, which is what stops a one-step wobble being reported as a movement.\n\nIt returns rules, not figures \u2014 no brand appears in the response. For figures use get_visibility_index or get_brand_visibility; for the series, get_history. The panel is public and frozen between releases, so every published number can be recomputed by a third party from the archive at https://dabyte.ai/archive/.\n\nRe-measured weekly, so the same call returns the same figures until the next release. Data is CC BY 4.0 and free: no key, no account, no rate limit \u2014 cite the release date and dabyte.ai when quoting a number.",
"inputSchema": {
"additionalProperties": false,
"properties": {},
"type": "object"
},
"name": "get_methodology",
"outputSchema": {
"properties": {
"engines": {
"description": "Engines measured in this release.",
"items": {
"type": "string"
},
"type": "array"
},
"license": {
"type": "string"
},
"measured_at": {
"description": "Date of this release, ISO 8601.",
"type": "string"
},
"niche_title": {
"type": "string"
},
"panel_version": {
"description": "Prompt panel version. Figures from different versions are not comparable.",
"type": "integer"
},
"prompt_panel": {
"description": "The exact prompts, verbatim.",
"items": {
"type": "string"
},
"type": "array"
},
"publisher": {
"type": "string"
},
"resolution": {
"description": "Percentage points one mention on one engine is worth.",
"type": "string"
},
"scoring": {
"description": "How share of answer is computed.",
"type": "string"
}
},
"type": "object"
},
"title": "How the index is measured"
}
]
}
},
"url": "https://dabyte.ai/mcp"
},
"latency_ms": 80.8,
"status": "ok"
},
"transport_compliance_probe": {
"details": {
"bad_protocol_error": null,
"bad_protocol_headers": {
"content-type": "application/json",
"strict-transport-security": "max-age=31536000; includeSubDomains"
},
"bad_protocol_payload": {
"id": 410,
"jsonrpc": "2.0",
"result": {
"tools": [
{
"annotations": {
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": false,
"readOnlyHint": true,
"title": "DABYTE AI Visibility Index \u2014 full table"
},
"description": "The whole current release in one call: every tracked brand in SaaS & AI tools with its rank, share of answer overall and per engine, commercial intent and quadrant. Share of answer is the percentage of a fixed panel of category buyer prompts in which an engine names the brand.\n\nUse this when the question is about the field \u2014 who leads, who is absent, how the category looks. It is one response of roughly 8 KB for 20 brands, so prefer it over calling get_brand_visibility repeatedly.\n\nDo NOT use it for one named brand (get_brand_visibility is the direct answer), for movement over time (get_history holds the series; a single release cannot show a trend), or to audit a website's own AI visibility \u2014 this is a measured dataset about third-party brands, not a site audit. Covers SaaS & AI tools only; the sibling index at dablock.ai covers the other niche.\n\nRe-measured weekly, so the same call returns the same figures until the next release. Data is CC BY 4.0 and free: no key, no account, no rate limit \u2014 cite the release date and dabyte.ai when quoting a number.",
"inputSchema": {
"additionalProperties": false,
"properties": {},
"type": "object"
},
"name": "get_visibility_index",
"outputSchema": {
"properties": {
"engines": {
"description": "Engines measured in this release.",
"items": {
"type": "string"
},
"type": "array"
},
"entries": {
"items": {
"properties": {
"brand": {
"description": "Brand name as published.",
"type": "string"
},
"commercial_intent": {
"description": "How commercially loaded the brand's category demand is.",
"type": "number"
},
"is_client": {
"description": "Whether the brand is a client of the publisher. Placement cannot be bought; this flag makes that checkable.",
"type": "boolean"
},
"per_engine": {
"additionalProperties": {
"type": "number"
},
"description": "Share of answer per engine, same scale.",
"type": "object"
},
"quadrant": {
"description": "Position on visibility against commercial intent.",
"type": "string"
},
"rank": {
"description": "Position in this release, 1 = most named.",
"type": "integer"
},
"slug": {
"description": "Identifier used by get_brand_visibility.",
"type": "string"
},
"visibility_score": {
"description": "Share of answer, percent of panel prompts naming the brand.",
"type": "number"
}
},
"required": [
"brand",
"slug",
"rank",
"visibility_score"
],
"type": "object"
},
"type": "array"
},
"measured_at": {
"description": "Date of this release, ISO 8601.",
"type": "string"
},
"niche_title": {
"type": "string"
},
"panel_version": {
"description": "Prompt panel version. Figures from different versions are not comparable.",
"type": "integer"
}
},
"required": [
"measured_at",
"entries"
],
"type": "object"
},
"title": "DABYTE AI Visibility Index \u2014 full table"
},
{
"annotations": {
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": false,
"readOnlyHint": true,
"title": "Look up one brand"
},
"description": "One brand's standing in the current DABYTE release: share of answer per engine, rank, quadrant, how many panel prompts name it, and which ones.\n\nUse this when a specific brand is named. Takes a slug, not a display name \u2014 call list_tracked_brands first if you are unsure, or read the slug from get_visibility_index.\n\nAn unknown slug is not a failure to hide: the error names every valid slug, so a second attempt can succeed. A brand absent from the index has not been measured at all, which is different from a measured zero. Only SaaS & AI tools brands are tracked. For the field as a whole use get_visibility_index; for this brand over time, get_history.\n\nRe-measured weekly, so the same call returns the same figures until the next release. Data is CC BY 4.0 and free: no key, no account, no rate limit \u2014 cite the release date and dabyte.ai when quoting a number.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"slug": {
"description": "Brand slug, lowercase with hyphens \u2014 'slack', 'coinbase', 'monday-com'. Not the display name.",
"pattern": "^[a-z0-9-]{1,80}$",
"type": "string"
}
},
"required": [
"slug"
],
"type": "object"
},
"name": "get_brand_visibility",
"outputSchema": {
"properties": {
"brand": {
"description": "Brand name as published.",
"type": "string"
},
"commercial_intent": {
"description": "How commercially loaded the brand's category demand is.",
"type": "number"
},
"engines": {
"description": "Engines measured in this release.",
"items": {
"type": "string"
},
"type": "array"
},
"is_client": {
"description": "Whether the brand is a client of the publisher. Placement cannot be bought; this flag makes that checkable.",
"type": "boolean"
},
"measured_at": {
"description": "Date of this release, ISO 8601.",
"type": "string"
},
"niche_title": {
"type": "string"
},
"panel_version": {
"description": "Prompt panel version. Figures from different versions are not comparable.",
"type": "integer"
},
"per_engine": {
"additionalProperties": {
"type": "number"
},
"description": "Share of answer per engine, same scale.",
"type": "object"
},
"prompts": {
"description": "Panel prompts in which the brand is named.",
"items": {
"type": "string"
},
"type": "array"
},
"quadrant": {
"description": "Position on visibility against commercial intent.",
"type": "string"
},
"rank": {
"description": "Position in this release, 1 = most named.",
"type": "integer"
},
"slug": {
"description": "Identifier used by get_brand_visibility.",
"type": "string"
},
"visibility_score": {
"description": "Share of answer, percent of panel prompts naming the brand.",
"type": "number"
}
},
"required": [
"brand",
"slug",
"rank",
"visibility_score",
"measured_at"
],
"type": "object"
},
"title": "Look up one brand"
},
{
"annotations": {
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": false,
"readOnlyHint": true,
"title": "List tracked brands and slugs"
},
"description": "The names and slugs of every brand in the DABYTE index \u2014 a lookup table, nothing else. No scores, no ranks.\n\nUse it for two things: to turn a brand name into the slug get_brand_visibility needs, and to answer whether a brand is tracked at all.\n\nDo NOT use it when you want figures \u2014 get_visibility_index returns the same brands with their full measurements in a single call, so calling this one first is a wasted round trip. Absence here means the brand is not measured, not that it scores zero. Covers SaaS & AI tools only; the sibling index at dablock.ai covers the other niche.\n\nRe-measured weekly, so the same call returns the same figures until the next release. Data is CC BY 4.0 and free: no key, no account, no rate limit \u2014 cite the release date and dabyte.ai when quoting a number.",
"inputSchema": {
"additionalProperties": false,
"properties": {},
"type": "object"
},
"name": "list_tracked_brands",
"outputSchema": {
"properties": {
"brands": {
"items": {
"properties": {
"brand": {
"type": "string"
},
"slug": {
"type": "string"
}
},
"required": [
"brand",
"slug"
],
"type": "object"
},
"type": "array"
}
},
"required": [
"brands"
],
"type": "object"
},
"title": "List tracked brands and slugs"
},
{
"annotations": {
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": false,
"readOnlyHint": true,
"title": "Full measurement time series"
},
"description": "Every DABYTE release ever published, as a series per brand: share of answer at each weekly measurement with the date and panel version it was taken under.\n\nUse this for any question about change \u2014 is a brand rising, when did it enter the index, how volatile is the category.\n\nTwo limits decide whether an answer is honest. Figures are comparable only WITHIN a panel version: the panel is frozen between releases and a version change alters the denominator, so a difference across that boundary is not a trend. And one mention on one engine is a whole scale step, since each prompt runs once per engine per release \u2014 a movement of one step is inside the noise of a language model and should not be reported as a gain or a loss. Call get_methodology for the exact step size. For the current release alone use get_visibility_index.\n\nRe-measured weekly, so the same call returns the same figures until the next release. Data is CC BY 4.0 and free: no key, no account, no rate limit \u2014 cite the release date and dabyte.ai when quoting a number.",
"inputSchema": {
"additionalProperties": false,
"properties": {},
"type": "object"
},
"name": "get_history",
"outputSchema": {
"properties": {
"measurements": {
"items": {
"properties": {
"measured_at": {
"type": "string"
},
"panel_version": {
"type": "integer"
}
},
"type": "object"
},
"type": "array"
},
"series": {
"additionalProperties": {
"type": "array"
},
"description": "Per brand slug, the share of answer at each release.",
"type": "object"
}
},
"type": "object"
},
"title": "Full measurement time series"
},
{
"annotations": {
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": false,
"readOnlyHint": true,
"title": "How the index is measured"
},
"description": "The rules behind every figure this server returns: the exact prompt panel and its version, which engines were measured, how share of answer is scored and rounded, the resolution of the scale in percentage points, and the editorial firewall and ownership disclosure.\n\nCall this before quoting a number as evidence, before comparing two releases, or whenever a user asks how the measurement was made or who publishes it. It is the only tool that tells you how much of a difference is meaningful, which is what stops a one-step wobble being reported as a movement.\n\nIt returns rules, not figures \u2014 no brand appears in the response. For figures use get_visibility_index or get_brand_visibility; for the series, get_history. The panel is public and frozen between releases, so every published number can be recomputed by a third party from the archive at https://dabyte.ai/archive/.\n\nRe-measured weekly, so the same call returns the same figures until the next release. Data is CC BY 4.0 and free: no key, no account, no rate limit \u2014 cite the release date and dabyte.ai when quoting a number.",
"inputSchema": {
"additionalProperties": false,
"properties": {},
"type": "object"
},
"name": "get_methodology",
"outputSchema": {
"properties": {
"engines": {
"description": "Engines measured in this release.",
"items": {
"type": "string"
},
"type": "array"
},
"license": {
"type": "string"
},
"measured_at": {
"description": "Date of this release, ISO 8601.",
"type": "string"
},
"niche_title": {
"type": "string"
},
"panel_version": {
"description": "Prompt panel version. Figures from different versions are not comparable.",
"type": "integer"
},
"prompt_panel": {
"description": "The exact prompts, verbatim.",
"items": {
"type": "string"
},
"type": "array"
},
"publisher": {
"type": "string"
},
"resolution": {
"description": "Percentage points one mention on one engine is worth.",
"type": "string"
},
"scoring": {
"description": "How share of answer is computed.",
"type": "string"
}
},
"type": "object"
},
"title": "How the index is measured"
}
]
}
},
"bad_protocol_status_code": 200,
"delete_error": null,
"delete_status_code": null,
"expired_session_error": null,
"expired_session_status_code": null,
"issues": [
"missing_session_id",
"missing_protocol_header",
"bad_protocol_not_rejected"
],
"last_event_id_visible": false,
"protocol_header_present": false,
"requested_protocol_version": "2025-03-26",
"session_id_present": false,
"transport": "streamable-http"
},
"latency_ms": 42.7,
"status": "error"
},
"utility_coverage_probe": {
"details": {
"completions": {
"advertised": false,
"live_probe": "not_executed",
"sample_target": null
},
"initialize_capability_keys": [
"tools"
],
"pagination": {
"metadata_signal": false,
"next_cursor_methods": [],
"supported": false
},
"tasks": {
"advertised": false,
"http_status": 200,
"probe_status": "missing"
}
},
"latency_ms": 40.41,
"status": "missing"
}
},
"failures": {
"oauth_authorization_server": {
"reason": "no_authorization_server"
},
"oauth_protected_resource": {
"error": "Client error '404 Not Found' for url 'https://dabyte.ai/.well-known/oauth-protected-resource'\nFor more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/404",
"url": "https://dabyte.ai/.well-known/oauth-protected-resource"
},
"openid_configuration": {
"reason": "no_authorization_server"
},
"server_card": {
"error": "Client error '404 Not Found' for url 'https://dabyte.ai/.well-known/mcp/server-card.json'\nFor more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/404",
"url": "https://dabyte.ai/.well-known/mcp/server-card.json"
},
"transport_compliance_probe": {
"bad_protocol_error": null,
"bad_protocol_headers": {
"content-type": "application/json",
"strict-transport-security": "max-age=31536000; includeSubDomains"
},
"bad_protocol_payload": {
"id": 410,
"jsonrpc": "2.0",
"result": {
"tools": [
{
"annotations": {
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": false,
"readOnlyHint": true,
"title": "DABYTE AI Visibility Index \u2014 full table"
},
"description": "The whole current release in one call: every tracked brand in SaaS & AI tools with its rank, share of answer overall and per engine, commercial intent and quadrant. Share of answer is the percentage of a fixed panel of category buyer prompts in which an engine names the brand.\n\nUse this when the question is about the field \u2014 who leads, who is absent, how the category looks. It is one response of roughly 8 KB for 20 brands, so prefer it over calling get_brand_visibility repeatedly.\n\nDo NOT use it for one named brand (get_brand_visibility is the direct answer), for movement over time (get_history holds the series; a single release cannot show a trend), or to audit a website's own AI visibility \u2014 this is a measured dataset about third-party brands, not a site audit. Covers SaaS & AI tools only; the sibling index at dablock.ai covers the other niche.\n\nRe-measured weekly, so the same call returns the same figures until the next release. Data is CC BY 4.0 and free: no key, no account, no rate limit \u2014 cite the release date and dabyte.ai when quoting a number.",
"inputSchema": {
"additionalProperties": false,
"properties": {},
"type": "object"
},
"name": "get_visibility_index",
"outputSchema": {
"properties": {
"engines": {
"description": "Engines measured in this release.",
"items": {
"type": "string"
},
"type": "array"
},
"entries": {
"items": {
"properties": {
"brand": {
"description": "Brand name as published.",
"type": "string"
},
"commercial_intent": {
"description": "How commercially loaded the brand's category demand is.",
"type": "number"
},
"is_client": {
"description": "Whether the brand is a client of the publisher. Placement cannot be bought; this flag makes that checkable.",
"type": "boolean"
},
"per_engine": {
"additionalProperties": {
"type": "number"
},
"description": "Share of answer per engine, same scale.",
"type": "object"
},
"quadrant": {
"description": "Position on visibility against commercial intent.",
"type": "string"
},
"rank": {
"description": "Position in this release, 1 = most named.",
"type": "integer"
},
"slug": {
"description": "Identifier used by get_brand_visibility.",
"type": "string"
},
"visibility_score": {
"description": "Share of answer, percent of panel prompts naming the brand.",
"type": "number"
}
},
"required": [
"brand",
"slug",
"rank",
"visibility_score"
],
"type": "object"
},
"type": "array"
},
"measured_at": {
"description": "Date of this release, ISO 8601.",
"type": "string"
},
"niche_title": {
"type": "string"
},
"panel_version": {
"description": "Prompt panel version. Figures from different versions are not comparable.",
"type": "integer"
}
},
"required": [
"measured_at",
"entries"
],
"type": "object"
},
"title": "DABYTE AI Visibility Index \u2014 full table"
},
{
"annotations": {
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": false,
"readOnlyHint": true,
"title": "Look up one brand"
},
"description": "One brand's standing in the current DABYTE release: share of answer per engine, rank, quadrant, how many panel prompts name it, and which ones.\n\nUse this when a specific brand is named. Takes a slug, not a display name \u2014 call list_tracked_brands first if you are unsure, or read the slug from get_visibility_index.\n\nAn unknown slug is not a failure to hide: the error names every valid slug, so a second attempt can succeed. A brand absent from the index has not been measured at all, which is different from a measured zero. Only SaaS & AI tools brands are tracked. For the field as a whole use get_visibility_index; for this brand over time, get_history.\n\nRe-measured weekly, so the same call returns the same figures until the next release. Data is CC BY 4.0 and free: no key, no account, no rate limit \u2014 cite the release date and dabyte.ai when quoting a number.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"slug": {
"description": "Brand slug, lowercase with hyphens \u2014 'slack', 'coinbase', 'monday-com'. Not the display name.",
"pattern": "^[a-z0-9-]{1,80}$",
"type": "string"
}
},
"required": [
"slug"
],
"type": "object"
},
"name": "get_brand_visibility",
"outputSchema": {
"properties": {
"brand": {
"description": "Brand name as published.",
"type": "string"
},
"commercial_intent": {
"description": "How commercially loaded the brand's category demand is.",
"type": "number"
},
"engines": {
"description": "Engines measured in this release.",
"items": {
"type": "string"
},
"type": "array"
},
"is_client": {
"description": "Whether the brand is a client of the publisher. Placement cannot be bought; this flag makes that checkable.",
"type": "boolean"
},
"measured_at": {
"description": "Date of this release, ISO 8601.",
"type": "string"
},
"niche_title": {
"type": "string"
},
"panel_version": {
"description": "Prompt panel version. Figures from different versions are not comparable.",
"type": "integer"
},
"per_engine": {
"additionalProperties": {
"type": "number"
},
"description": "Share of answer per engine, same scale.",
"type": "object"
},
"prompts": {
"description": "Panel prompts in which the brand is named.",
"items": {
"type": "string"
},
"type": "array"
},
"quadrant": {
"description": "Position on visibility against commercial intent.",
"type": "string"
},
"rank": {
"description": "Position in this release, 1 = most named.",
"type": "integer"
},
"slug": {
"description": "Identifier used by get_brand_visibility.",
"type": "string"
},
"visibility_score": {
"description": "Share of answer, percent of panel prompts naming the brand.",
"type": "number"
}
},
"required": [
"brand",
"slug",
"rank",
"visibility_score",
"measured_at"
],
"type": "object"
},
"title": "Look up one brand"
},
{
"annotations": {
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": false,
"readOnlyHint": true,
"title": "List tracked brands and slugs"
},
"description": "The names and slugs of every brand in the DABYTE index \u2014 a lookup table, nothing else. No scores, no ranks.\n\nUse it for two things: to turn a brand name into the slug get_brand_visibility needs, and to answer whether a brand is tracked at all.\n\nDo NOT use it when you want figures \u2014 get_visibility_index returns the same brands with their full measurements in a single call, so calling this one first is a wasted round trip. Absence here means the brand is not measured, not that it scores zero. Covers SaaS & AI tools only; the sibling index at dablock.ai covers the other niche.\n\nRe-measured weekly, so the same call returns the same figures until the next release. Data is CC BY 4.0 and free: no key, no account, no rate limit \u2014 cite the release date and dabyte.ai when quoting a number.",
"inputSchema": {
"additionalProperties": false,
"properties": {},
"type": "object"
},
"name": "list_tracked_brands",
"outputSchema": {
"properties": {
"brands": {
"items": {
"properties": {
"brand": {
"type": "string"
},
"slug": {
"type": "string"
}
},
"required": [
"brand",
"slug"
],
"type": "object"
},
"type": "array"
}
},
"required": [
"brands"
],
"type": "object"
},
"title": "List tracked brands and slugs"
},
{
"annotations": {
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": false,
"readOnlyHint": true,
"title": "Full measurement time series"
},
"description": "Every DABYTE release ever published, as a series per brand: share of answer at each weekly measurement with the date and panel version it was taken under.\n\nUse this for any question about change \u2014 is a brand rising, when did it enter the index, how volatile is the category.\n\nTwo limits decide whether an answer is honest. Figures are comparable only WITHIN a panel version: the panel is frozen between releases and a version change alters the denominator, so a difference across that boundary is not a trend. And one mention on one engine is a whole scale step, since each prompt runs once per engine per release \u2014 a movement of one step is inside the noise of a language model and should not be reported as a gain or a loss. Call get_methodology for the exact step size. For the current release alone use get_visibility_index.\n\nRe-measured weekly, so the same call returns the same figures until the next release. Data is CC BY 4.0 and free: no key, no account, no rate limit \u2014 cite the release date and dabyte.ai when quoting a number.",
"inputSchema": {
"additionalProperties": false,
"properties": {},
"type": "object"
},
"name": "get_history",
"outputSchema": {
"properties": {
"measurements": {
"items": {
"properties": {
"measured_at": {
"type": "string"
},
"panel_version": {
"type": "integer"
}
},
"type": "object"
},
"type": "array"
},
"series": {
"additionalProperties": {
"type": "array"
},
"description": "Per brand slug, the share of answer at each release.",
"type": "object"
}
},
"type": "object"
},
"title": "Full measurement time series"
},
{
"annotations": {
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": false,
"readOnlyHint": true,
"title": "How the index is measured"
},
"description": "The rules behind every figure this server returns: the exact prompt panel and its version, which engines were measured, how share of answer is scored and rounded, the resolution of the scale in percentage points, and the editorial firewall and ownership disclosure.\n\nCall this before quoting a number as evidence, before comparing two releases, or whenever a user asks how the measurement was made or who publishes it. It is the only tool that tells you how much of a difference is meaningful, which is what stops a one-step wobble being reported as a movement.\n\nIt returns rules, not figures \u2014 no brand appears in the response. For figures use get_visibility_index or get_brand_visibility; for the series, get_history. The panel is public and frozen between releases, so every published number can be recomputed by a third party from the archive at https://dabyte.ai/archive/.\n\nRe-measured weekly, so the same call returns the same figures until the next release. Data is CC BY 4.0 and free: no key, no account, no rate limit \u2014 cite the release date and dabyte.ai when quoting a number.",
"inputSchema": {
"additionalProperties": false,
"properties": {},
"type": "object"
},
"name": "get_methodology",
"outputSchema": {
"properties": {
"engines": {
"description": "Engines measured in this release.",
"items": {
"type": "string"
},
"type": "array"
},
"license": {
"type": "string"
},
"measured_at": {
"description": "Date of this release, ISO 8601.",
"type": "string"
},
"niche_title": {
"type": "string"
},
"panel_version": {
"description": "Prompt panel version. Figures from different versions are not comparable.",
"type": "integer"
},
"prompt_panel": {
"description": "The exact prompts, verbatim.",
"items": {
"type": "string"
},
"type": "array"
},
"publisher": {
"type": "string"
},
"resolution": {
"description": "Percentage points one mention on one engine is worth.",
"type": "string"
},
"scoring": {
"description": "How share of answer is computed.",
"type": "string"
}
},
"type": "object"
},
"title": "How the index is measured"
}
]
}
},
"bad_protocol_status_code": 200,
"delete_error": null,
"delete_status_code": null,
"expired_session_error": null,
"expired_session_status_code": null,
"issues": [
"missing_session_id",
"missing_protocol_header",
"bad_protocol_not_rejected"
],
"last_event_id_visible": false,
"protocol_header_present": false,
"requested_protocol_version": "2025-03-26",
"session_id_present": false,
"transport": "streamable-http"
}
},
"remote_url": "https://dabyte.ai/mcp",
"server_card_payload": null,
"server_identifier": "ai.dabyte/visibility-index"
}