Skip to main content
Glama

iGods GEO Visibility Tool

Get test results

gvt_get_test_results
Read-onlyIdempotent

Get results for a visibility test by tid: overall scores, findingSentence, shareableTid, and per-category resultData. The tid is an opaque 8-character HashID — copy it verbatim from gvt_run_visibility_test, gvt_list_tests, or gvt_get_batch_status; partial or reformatted values will not match, and results are scoped to the caller's own tests. If status is "pending" or "running", wait and retry. findingSentence is a pre-generated natural-language verdict; use it as the primary summary. shareableTid is non-null when the result is public and linkable. detail selects the payload shape: "summary" (recommended for reporting workflows) returns analysisSummary plus the top issues per category without the semantic tree, per-element markup, or the nojs_rendered duplicate pass; "full" (the default) returns complete per-category resultData for all 7 analysis types (heading, semantic, accessibility, schema, javascript, nojs, social). For compact per-page scores across a whole completed batch, prefer gvt_get_batch_summary instead of one call per tid.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
tidYesOpaque 8-character hash ID returned by gvt_run_visibility_test or gvt_list_tests. Not an integer.
detailNoPayload shape. summary: analysisSummary plus the top issues per category (deduplicated by type, capped at 10, sorted by severity then weight) — no semantic tree, per-element markup, or nojs_rendered pass. full: complete resultData for all analysis types (previous behavior, the default).full

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
tidNoThe test ID that was polled
urlNoThe URL that was analyzed
detailNoPresent with value "summary" when detail=summary was requested; omitted from full responses so existing callers see no change
statusNoPending and running mean poll again; completed means full results are present
resultsNoPer-category result records. detail=full: each carries analysisType and complete resultData (semantic tree, per-element issues); issues carry fixId for gvt_get_fix. detail=summary: each carries analysisType, score, and the top issues deduplicated by type (capped at 10 per category); the nojs_rendered duplicate pass is omitted — analysisSummary.categoryIssueCounts keeps the true totals.
isPublicNoWhether this test result is publicly accessible
testTypeNoType of test performed (e.g., URL or direct HTML paste)
createdAtNoISO 8601 instant of test creation
expiresAtNoISO 8601 instant when this test session and its results will expire and be deleted
updatedAtNoISO 8601 instant of the last update to this test session
shareableTidNoNon-null when the result is publicly shareable. Public share identifier for this session. Equal to tid when the session is shareable; null when the session is private. Presence of a value is the indicator that share links may be generated.
analysisSummaryNoAggregate scores for one test session
findingSentenceNoPre-generated natural language verdict; use as the primary summary

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed6 schema fields changed
    • addedInput schema / properties / detail
      Added value: +{
      +  "default": "full",
      +  "description": "Payload shape. summary: analysisSummary plus the top issues per category (deduplicated by type, capped at 10, sorted by severity then weight) — no semantic tree, per-element markup, or nojs_rendered pass. full: complete resultData for all analysis types (previous behavior, the default).",
      +  "enum": [
      +    "summary",
      +    "full"
      +  ],
      +  "type": "string"
      +}
    • changedOutput schema / description
      Previous value: -"Full results for one test. While status is pending or running, results are incomplete — wait and retry."New value: +"Results for one test. While status is pending or running, results are incomplete — wait and retry. detail=summary returns the compact shape; detail=full (the default) returns complete per-category resultData."
    • addedOutput schema / properties / detail
      Added value: +{
      +  "description": "Present with value \"summary\" when detail=summary was requested; omitted from full responses so existing callers see no change",
      +  "enum": [
      +    "summary"
      +  ],
      +  "type": "string"
      +}
    • changedOutput schema / properties / results / description
      Previous value: -"Per-category result records. Each carries analysisType and resultData; issues carry fixId for gvt_get_fix."New value: +"Per-category result records. detail=full: each carries analysisType and complete resultData (semantic tree, per-element issues); issues carry fixId for gvt_get_fix. detail=summary: each carries analysisType, score, and the top issues deduplicated by type (capped at 10 per category); the nojs_rendered duplicate pass is omitted — analysisSummary.categoryIssueCounts keeps the true totals."
    • addedOutput schema / properties / results / items / properties / issues
      Added value: +{
      +  "description": "Issue records; in summary mode each carries type, severity, impact, weight, element, description, and fixId (remediation comes from gvt_get_fix, not the payload)",
      +  "type": "array"
      +}
    • addedOutput schema / properties / results / items / properties / score
      Added value: +{
      +  "description": "Category score (0-100), present in summary mode when the category reports one",
      +  "type": "number"
      +}
  2. Changed19 schema fields changed
    • changedOutput schema / properties / analysisSummary / properties / categoryIssueCounts / properties / accessibility / description
      Previous value: -"Accessibility score (0-100)"New value: +"Number of open accessibility issues"
    • changedOutput schema / properties / analysisSummary / properties / categoryIssueCounts / properties / accessibility / type
      Previous value: -"number"New value: +"integer"
    • changedOutput schema / properties / analysisSummary / properties / categoryIssueCounts / properties / headings / description
      Previous value: -"Heading structure score (0-100)"New value: +"Number of open heading structure issues"
    • changedOutput schema / properties / analysisSummary / properties / categoryIssueCounts / properties / headings / type
      Previous value: -"number"New value: +"integer"
    • changedOutput schema / properties / analysisSummary / properties / categoryIssueCounts / properties / javascript / description
      Previous value: -"JavaScript dependency score (0-100)"New value: +"Number of open JavaScript dependency issues"
    • changedOutput schema / properties / analysisSummary / properties / categoryIssueCounts / properties / javascript / type
      Previous value: -"number"New value: +"integer"
    • changedOutput schema / properties / analysisSummary / properties / categoryIssueCounts / properties / nojs / description
      Previous value: -"No-JS rendering score (0-100)"New value: +"Number of open No-JS rendering issues"
    • changedOutput schema / properties / analysisSummary / properties / categoryIssueCounts / properties / nojs / type
      Previous value: -"number"New value: +"integer"
    • changedOutput schema / properties / analysisSummary / properties / categoryIssueCounts / properties / schema / description
      Previous value: -"schema.org markup score (0-100)"New value: +"Number of open schema.org markup issues"
    • changedOutput schema / properties / analysisSummary / properties / categoryIssueCounts / properties / schema / type
      Previous value: -"number"New value: +"integer"
    • changedOutput schema / properties / analysisSummary / properties / categoryIssueCounts / properties / semantic / description
      Previous value: -"Semantic HTML5 score (0-100)"New value: +"Number of open semantic HTML5 issues"
    • changedOutput schema / properties / analysisSummary / properties / categoryIssueCounts / properties / semantic / type
      Previous value: -"number"New value: +"integer"
    • changedOutput schema / properties / analysisSummary / properties / categoryIssueCounts / properties / social / description
      Previous value: -"Social tags score (0-100)"New value: +"Number of open social tag issues"
    • changedOutput schema / properties / analysisSummary / properties / categoryIssueCounts / properties / social / type
      Previous value: -"number"New value: +"integer"
    • addedOutput schema / properties / expiresAt
      Added value: +{
      +  "description": "ISO 8601 instant when this test session and its results will expire and be deleted",
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / isPublic
      Added value: +{
      +  "description": "Whether this test result is publicly accessible",
      +  "type": [
      +    "boolean",
      +    "null"
      +  ]
      +}
    • changedOutput schema / properties / shareableTid / description
      Previous value: -"Non-null when the result is publicly shareable"New value: +"Non-null when the result is publicly shareable. Public share identifier for this session. Equal to tid when the session is shareable; null when the session is private. Presence of a value is the indicator that share links may be generated."
    • addedOutput schema / properties / testType
      Added value: +{
      +  "description": "Type of test performed (e.g., URL or direct HTML paste)",
      +  "enum": [
      +    "url",
      +    "html_paste"
      +  ],
      +  "type": "string"
      +}
    • addedOutput schema / properties / updatedAt
      Added value: +{
      +  "description": "ISO 8601 instant of the last update to this test session",
      +  "type": "string"
      +}
  3. Changed8 schema fields changed
    • addedOutput schema / properties / analysisSummary / properties / categoryIssueCounts / description
      Added value: +"Open issue count per analysis category"
    • addedOutput schema / properties / analysisSummary / properties / categoryScores / description
      Added value: +"Score per analysis category (0-100)"
    • addedOutput schema / properties / analysisSummary / properties / jsDependencySource / description
      Added value: +"How the JS dependency score was derived"
    • addedOutput schema / properties / createdAt / description
      Added value: +"ISO 8601 instant of test creation"
    • addedOutput schema / properties / results / items / properties / analysisType / description
      Added value: +"Which analysis category this record holds"
    • addedOutput schema / properties / status / description
      Added value: +"Pending and running mean poll again; completed means full results are present"
    • addedOutput schema / properties / tid / description
      Added value: +"The test ID that was polled"
    • addedOutput schema / properties / url / description
      Added value: +"The URL that was analyzed"
  4. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "description": "Full results for one test. While status is pending or running, results are incomplete — wait and retry.",
      +  "properties": {
      +    "analysisSummary": {
      +      "description": "Aggregate scores for one test session",
      +      "properties": {
      +        "categoryIssueCounts": {
      +          "properties": {
      +            "accessibility": {
      +              "description": "Accessibility score (0-100)",
      +              "type": "number"
      +            },
      +            "headings": {
      +              "description": "Heading structure score (0-100)",
      +              "type": "number"
      +            },
      +            "javascript": {
      +              "description": "JavaScript dependency score (0-100)",
      +              "type": "number"
      +            },
      +            "nojs": {
      +              "description": "No-JS rendering score (0-100)",
      +              "type": "number"
      +            },
      +            "schema": {
      +              "description": "schema.org markup score (0-100)",
      +              "type": "number"
      +            },
      +            "semantic": {
      +              "description": "Semantic HTML5 score (0-100)",
      +              "type": "number"
      +            },
      +            "social": {
      +              "description": "Social tags score (0-100)",
      +              "type": "number"
      +            }
      +          },
      +          "type": "object"
      +        },
      +        "categoryScores": {
      +          "properties": {
      +            "accessibility": {
      +              "description": "Accessibility score (0-100)",
      +              "type": "number"
      +            },
      +            "headings": {
      +              "description": "Heading structure score (0-100)",
      +              "type": "number"
      +            },
      +            "javascript": {
      +              "description": "JavaScript dependency score (0-100)",
      +              "type": "number"
      +            },
      +            "nojs": {
      +              "description": "No-JS rendering score (0-100)",
      +              "type": "number"
      +            },
      +            "schema": {
      +              "description": "schema.org markup score (0-100)",
      +              "type": "number"
      +            },
      +            "semantic": {
      +              "description": "Semantic HTML5 score (0-100)",
      +              "type": "number"
      +            },
      +            "social": {
      +              "description": "Social tags score (0-100)",
      +              "type": "number"
      +            }
      +          },
      +          "type": "object"
      +        },
      +        "jsDependencySource": {
      +          "enum": [
      +            "measured",
      +            "estimated",
      +            "unavailable"
      +          ],
      +          "type": "string"
      +        },
      +        "overallScore": {
      +          "description": "Overall GEO visibility score (0-100)",
      +          "type": "number"
      +        },
      +        "timestamp": {
      +          "description": "ISO 8601 instant of the analysis",
      +          "type": "string"
      +        },
      +        "totalIssues": {
      +          "description": "Total open issues across all categories",
      +          "type": "integer"
      +        }
      +      },
      +      "type": "object"
      +    },
      +    "createdAt": {
      +      "type": "string"
      +    },
      +    "findingSentence": {
      +      "description": "Pre-generated natural language verdict; use as the primary summary",
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "results": {
      +      "description": "Per-category result records. Each carries analysisType and resultData; issues carry fixId for gvt_get_fix.",
      +      "items": {
      +        "properties": {
      +          "analysisType": {
      +            "enum": [
      +              "heading",
      +              "semantic",
      +              "accessibility",
      +              "schema",
      +              "javascript",
      +              "nojs",
      +              "social"
      +            ],
      +            "type": "string"
      +          }
      +        },
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "shareableTid": {
      +      "description": "Non-null when the result is publicly shareable",
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "status": {
      +      "enum": [
      +        "pending",
      +        "processing",
      +        "completed",
      +        "failed"
      +      ],
      +      "type": "string"
      +    },
      +    "tid": {
      +      "type": "string"
      +    },
      +    "url": {
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    }
      +  },
      +  "type": "object"
      +}
  5. First observed

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover read-only/idempotent/non-destructive, but the description adds real context beyond them: results are scoped to the caller's own tests, pending/running states require a wait-and-retry, shareableTid signals public linkability, and the two detail modes have different payload contents. It stops short of pagination/size limits or output-shape guarantees.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One dense paragraph, front-loaded with the returned fields before constraints and mode selection; every sentence carries information. It is longer than strictly needed (repeats some detail-enum content already in the schema), which keeps it from a 5.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, yet the description still characterizes key return fields and the pending/running lifecycle, leaving no ambiguity about when the call is useful or how to interpret its results. Complete for a 2-parameter read tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3; however, the description adds meaning beyond the schema by warning that tid must be copied verbatim (partial/reformatted values fail to match) and by recommending the 'summary' mode for reporting versus the 'full' default.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('Get results for a visibility test by tid') and enumerates what is returned (overall scores, findingSentence, shareableTid, per-category resultData). It also distinguishes itself from siblings by naming gvt_get_batch_summary for batch-level scores and citing gvt_run_visibility_test/gvt_list_tests as tid sources.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly routes the agent away from one-call-per-tid to gvt_get_batch_summary for compact per-page batch scores, and gives the retry condition when status is pending/running. It also advises which detail mode suits reporting workflows, so alternatives and conditions are both covered.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources