Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

iGods GEO Visibility Tool (GVT)

REMOTE · MCP.GEO.IGODS.COM · SCANNED SEP 30

GEO visibility tests, score trends, sitemap discovery, and domain monitoring for AI agents.

+3 this week 83 Trust /100
Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →

Endpoint Security89
Transport & Reachability100
Schema Quality & AI Usability82
  • 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 4189 tokens (~161/item across 26 items; 19 tools + 7 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management34
  • Stability check failed: schema churn in the 21 days we've observed: 6 tool removals, 0 breaking changes, 0 auth/transport breaks, 8 additions. See how to fix → Fail
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
  • Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • All 1 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.Pass
  • An AI judge read all 20 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a current MCP spec version (2026-07-28).Pass
Install

How do I install the iGods GEO Visibility Tool (GVT) MCP server?

iGods GEO Visibility Tool (GVT) is a hosted endpoint at https://mcp.geo.igods.com/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

remote · mcp.geo.igods.com

# add to Claude Code
claude mcp add --transport http com-igods-gvt 'https://mcp.geo.igods.com/mcp'
// .cursor/mcp.json
{
  "mcpServers": {
    "com-igods-gvt": {
      "url": "https://mcp.geo.igods.com/mcp"
    }
  }
}
// .vscode/mcp.json
{
  "servers": {
    "com-igods-gvt": {
      "type": "http",
      "url": "https://mcp.geo.igods.com/mcp"
    }
  }
}
# ~/.codex/config.toml
[mcp_servers.com-igods-gvt]
url = "https://mcp.geo.igods.com/mcp"
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "com-igods-gvt": {
      "type": "remote",
      "url": "https://mcp.geo.igods.com/mcp",
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add com-igods-gvt --url 'https://mcp.geo.igods.com/mcp' --transport streamable-http
# ~/.hermes/config.yaml
mcp_servers:
  com-igods-gvt:
    url: "https://mcp.geo.igods.com/mcp"
// ~/.netclaw/config/netclaw.json
{
  "McpServers": {
    "com-igods-gvt": {
      "Transport": "http",
      "Url": "https://mcp.geo.igods.com/mcp"
    }
  }
}
# add to Vellum
assistant mcp add com-igods-gvt -t streamable-http -u 'https://mcp.geo.igods.com/mcp'
// mcp.json
{
  "mcpServers": {
    "com-igods-gvt": {
      "type": "http",
      "url": "https://mcp.geo.igods.com/mcp"
    }
  }
}

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 29 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 27 to 31.

  • 28 Sept 26 0
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 27 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 21 to 24.

  • 25 Sept 26 +1
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 23 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 7 to 11.

  • 20 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 0 to 1.

  • 12 Sept 26 −1
    • Tool “gvt_get_batch_status” rewrote its description, which is the text the model reads security
    • Tool “gvt_get_test_results” rewrote its description, which is the text the model reads security
    • Tool “gvt_run_visibility_batch” rewrote its description, which is the text the model reads security
    • New tool “gvt_get_batch_summary” functional
    • “gvt_get_test_results” added an optional parameter “detail” cosmetic
  • 11 Sept 26 0
    • Tool “gvt_get_latest” rewrote its description, which is the text the model reads security
Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 30 Sept 2026 · Probed https://mcp.geo.igods.com/mcp

TLS valid

Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .

Subject Issuer Valid from Valid until Key Signature Serial
CN=mcp.geo.igods.com CN=WE1,O=Google Trust Services,C=US 23 Sept 2026 22 Dec 2026 ECDSA 256 ECDSA-SHA256 34b5382c8355f3c50ebb15e57f264e39
SANs: mcp.geo.igods.com
CN=WE1,O=Google Trust Services,C=US (CA) CN=GTS Root R4,O=Google Trust Services LLC,C=US 13 Dec 2023 20 Feb 2029 ECDSA 256 ECDSA-SHA384 7ff31977972c224a76155d13b6d685e3
CN=GTS Root R4,O=Google Trust Services LLC,C=US (CA) CN=GlobalSign Root CA,OU=Root CA,O=GlobalSign nv-sa,C=BE 15 Nov 2023 28 Jan 2028 ECDSA 384 SHA256-RSA 7fe530bf331343bedd821610493d8a1b

Background: What to check on a remote MCP endpoint →

DNSSEC insecure

Validation of mcp.geo.igods.com. — Not signed

Zone DS Keys Algorithms Outcome
. trust_anchor 20326, 38696 8, 8 Verified
com. present 19718 13 Verified
igods.com. absent Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation
Authentication Enforced and verified

The endpoint asked for a token and published valid RFC 9728 metadata describing how to get one.

Result Enforced and verified
Enforced On tool calls
HTTP status 200

WWW-Authenticate challenge Bearer resource_metadata="https://mcp.geo.igods.com/.well-known/oauth-protected-resource"

Bearer resource_metadata="https://mcp.geo.igods.com/.well-known/oauth-protected-resource"

Protected resource metadata

Document https://mcp.geo.igods.com/.well-known/oauth-protected-resource
Retrieved Yes
Resource https://mcp.geo.igods.com
Authorisation server https://mcp.geo.igods.com

Background: How OAuth 2.1 works in the 2026 MCP spec →

Transports 2 probes
Transport URL Outcome Status Location
streamable-http https://mcp.geo.igods.com/mcp Verified 200
http (plaintext) http://mcp.geo.igods.com/mcp HTTPS enforced 301 https://mcp.geo.igods.com/mcp
MCP tools · 19 exposed · ~4,072 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
gvt_delete_test ~92

Permanently delete a test session and all its associated results. This action cannot be undone. Use gvt_set_test_visibility instead if you only want to hide a test from public view. Deleting a test does not delete its schedule (if one exists): recurring runs continue until removed via gvt_schedule_test delete mode.

NameTypeReqDescription
tidstringyesThe 8-character test ID of the test to delete.
NameTypeReqDescription
messagestring–Human-readable confirmation
successboolean–True when the test was deleted

No examples provided.

gvt_get_baseline ~160

Get the oldest baseline test snapshot for a single URL, including expired tests. For pre-computed baseline-vs-latest deltas without fetching full snapshots, use gvt_get_score_trend instead; for baselines across many URLs in one call, use gvt_list_baselines. Use with gvt_get_latest to compare baseline vs current when you need the full snapshot detail on both ends. The url must be passed exactly as the test was run — matching is exact string equality (scheme, host, path, trailing slash), not nearest-match. When unsure of the recorded form, discover it with gvt_list_tests first.

NameTypeReqDescription
urlstringyesThe URL to look up (must match the URL used when the test was run).
NameTypeReqDescription
analysisSummaryobject–Aggregate scores for this test
createdAtstring–ISO 8601 instant this snapshot was created
expiresAtstring|null–ISO 8601 instant this snapshot will expire
findingSentencestring|null–Pre-generated natural language verdict for this snapshot
isPublicboolean–Whether this test is publicly visible
messagestring–Present only in the no-test case
oldestobject|null–Null when no test exists for the URL
shareableTidstring|null–Public share ID, non-null when shareable
statusstring–Snapshot status (completed, failed, etc.)
testTypestring–The type of the test run
tidstring–Test ID of the snapshot
updatedAtstring–ISO 8601 instant this snapshot was last updated
urlstring–The URL this snapshot analyzed

No examples provided.

gvt_get_batch_status ~176

Retrieves the current progress, state, and test IDs (tids) of an ongoing or completed visibility testing batch. Poll this tool with the batchId returned by gvt_run_visibility_batch until status is completed or failed. A tid appears on each URL entry only after its test completes — then call gvt_get_batch_summary for the compact per-page scores and top shared issues, or gvt_get_test_results for a single test. Batch records are retained for the lifetime of the account (no automated pruning); an unknown, pruned, or foreign batchId returns 404. Read-only: consumes rate limit, never test credits. Duplicate URLs in a batch are collapsed, so counts always sum to totalUrls.

NameTypeReqDescription
batchIdstringyesThe UUID of the batch to check, returned by gvt_run_visibility_batch.
NameTypeReqDescription
batchIdstring–The batch that was queried
completedAtstring|null–ISO 8601 instant when the batch reached a terminal state, null while in flight
countsobject–Per-URL test state counts; the four fields always sum to totalUrls
statusstring–Aggregate batch state; completed means every per-URL test reached a terminal state
submittedAtstring–ISO 8601 instant of batch submission
totalUrlsinteger–URLs in the batch after duplicate collapsing
urlsarray–One entry per submitted URL, in submission order

No examples provided.

gvt_get_batch_summary ~187

Compact per-page results and pre-computed aggregates for a completed visibility testing batch: per-URL overall and category scores, findingSentence, average overall score, strongest and weakest categories, best and worst scoring pages, and the top shared issue types with their fixIds. One call replaces one gvt_get_test_results call per URL for audit and status-report workflows — a 10-URL batch drops from roughly 1.6 MB to a few KB of context. The batch must be completed (poll gvt_get_batch_status first); an in-flight batch returns its current status without per-page data. Read-only: consumes rate limit, never test credits. For element-level detail on a single page, call gvt_get_test_results with that page's tid.

NameTypeReqDescription
batchIdstringyesThe UUID of the completed batch to summarize, returned by gvt_run_visibility_batch.
NameTypeReqDescription
batchIdstring–The batch that was summarized
countsobject–Per-URL test state counts; the four fields always sum to totalUrls
messagestring–Polling guidance, present when the batch is not completed
pagesarray–One compact entry per URL, in batch order. Failed tests appear with status failed and null scores; they are excluded from the aggregates.
statusstring–Aggregate batch state; pages and summary are present only when completed
summaryobject–Aggregates computed over the completed pages
totalUrlsinteger–URLs in the batch after duplicate collapsing

No examples provided.

gvt_get_fix ~150

Read the canonical fix record for one GVT issue type: severity range, impact, scoring weight, plain-language description, and the recommended remediation. Issue IDs come from the fixId field on issues in gvt_get_test_results output. The same content is served as the gvt://knowledge/fixes/{issue_id} resource template for resource-capable clients. Copy fixId verbatim from the results output — unknown or mistyped IDs return not-found rather than a fuzzy match. Responses are static reference content and cacheable.

NameTypeReqDescription
issue_idstringyesStable issue identifier, e.g. og_title_missing or color-contrast. Matches the fixId field in gvt_get_test_results output.
NameTypeReqDescription
categorystring–Analysis category the issue belongs to
human_descriptionstring–Human-readable description of the issue
impactstring–Plain-language statement of what the issue costs
issue_idstring–Stable issue identifier, e.g. og_title_missing
recommendationstring–The recommended remediation
resourceUristring–The gvt:// resource this record was read from
severity_rangearray–Severity levels this issue can take
subcategorystring–Finer-grained grouping within the category
ttlMsinteger–Suggested client cache lifetime in milliseconds
weightnumber–Scoring weight

No examples provided.

gvt_get_knowledge ~153

Read GVT reference knowledge: how scoring works, score bands and category weights, what each analysis category checks, or GEO glossary definitions. Use it to interpret test results and scores correctly instead of guessing. The topic is matched exactly and case-sensitively (Methodology will not match methodology); unrecognized values fail fast with the valid list. The same content is served as MCP resources at gvt://knowledge/app/* for resource-capable clients.

NameTypeReqDescription
topicstring–Which knowledge topic to read: methodology (how GVT analyzes pages), scoring (score bands and category weights), categories (what each of the six categories checks), glossary (GEO term definitions),…
NameTypeReqDescription
knowledgeobject–Reference content for the requested topic
topicstring–The topic that was served
ttlMsinteger–Suggested client cache lifetime in milliseconds
uristring–The gvt:// resource the content came from

No examples provided.

gvt_get_latest ~139

Get the most recent non-expired test snapshot for a single URL. For pre-computed baseline-vs-latest deltas without fetching full snapshots, use gvt_get_score_trend instead. Use with gvt_get_baseline to compare baseline vs current when you need the full snapshot detail on both ends. The url must be passed exactly as the test was run — matching is exact string equality, not nearest-match; an unrecorded URL returns 404. Considers only the authenticated caller's own non-expired tests.

NameTypeReqDescription
urlstringyesThe URL to look up (must match the URL used when the test was run).
NameTypeReqDescription
analysisSummaryobject–Aggregate scores for this test
createdAtstring–ISO 8601 instant this snapshot was created
expiresAtstring|null–ISO 8601 instant this snapshot will expire
findingSentencestring|null–Pre-generated natural language verdict for this snapshot
isPublicboolean–Whether this test is publicly visible
latestobject|null–Null when no test exists for the URL
messagestring–Present only in the no-test case
shareableTidstring|null–Public share ID, non-null when shareable
statusstring–Snapshot status (completed, failed, etc.)
testTypestring–The type of the test run
tidstring–Test ID of the snapshot
updatedAtstring–ISO 8601 instant this snapshot was last updated
urlstring–The URL this snapshot analyzed

No examples provided.

gvt_get_prompt ~158

Render a GVT prompt workflow with concrete argument values, returning the complete step-by-step instruction text ready to follow. Also returns the effective arguments that were bound (provided values plus defaults for omitted optionals). Prompt names and their arguments come from gvt_list_prompts; an unknown name or argument key errors rather than guessing. The rendered text references GVT tools by name — call them as instructed.

NameTypeReqDescription
argumentsobject–Argument values for the prompt, keyed by argument name (e.g. {"domain": "example.com", "frequency": "weekly"}). Omit optional arguments to use their defaults.
namestringyesPrompt name from gvt_list_prompts, e.g. gvt_setup_domain_monitoring.
NameTypeReqDescription
argumentsobject–Effective arguments after binding defaults
descriptionstring–The prompt catalog description
namestring–The prompt name that was rendered
textstring–Fully interpolated instruction text referencing GVT tools by name

No examples provided.

gvt_get_score_trend ~264

Compare the oldest baseline vs the latest non-expired test for a single URL or an entire domain, with pre-computed per-category deltas (latest minus baseline). Provide exactly one of url or domain. Domain mode matches the exact domain, www.<domain>, and subdomains (alphabetical, capped by limit). Page through the whole domain with offset: offset=0 for the first page, offset=limit for the second, following hasMore/nextOffset. Returns scores and deltas only, not full snapshot detail; for complete snapshots of one URL use gvt_get_baseline and gvt_get_latest. This replaces paging the full test history and computing comparisons client-side, one call per site.

NameTypeReqDescription
domainstring–Domain scope — matches the domain, www.<domain>, and subdomains (XOR with url).
limitinteger–Cap on returned records in domain mode (max 100, default 25).
offsetinteger–Number of matched URLs to skip in domain mode (row skip, not a page number). Use offset=0 for the first page, offset=limit for the second. Ignored in single-URL mode.
urlstring–Single URL scope (XOR with domain).
NameTypeReqDescription
compareobject|null–Comparison window settings used
domainstring|null–The compared domain in domain mode, else null
hasMoreboolean–True when more pages exist
includeSubdomainsboolean–Whether subdomains were included in the domain search
limitinteger–Max records per page in domain mode
nextOffsetinteger|null–Offset for the next page, null on the last page
offsetinteger–Row offset applied to this page
returnedinteger–Records in this page
scopestring–Which mode the comparison ran in
trendsarray–One row per matched URL, baseline vs latest with deltas
truncatedboolean–Deprecated. Use `hasMore` instead.
ttlMsinteger–Suggested client cache lifetime in milliseconds
urlstring|null–The compared URL in url mode, else null
urlCountinteger–Total matched URLs before pagination
windowSummaryobject|null–Summary of window comparison results

No examples provided.

gvt_get_test_results ~336

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.

NameTypeReqDescription
detailstring–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…
tidstringyesOpaque 8-character hash ID returned by gvt_run_visibility_test or gvt_list_tests. Not an integer.
NameTypeReqDescription
analysisSummaryobject–Aggregate scores for one test session
createdAtstring–ISO 8601 instant of test creation
detailstring–Present with value "summary" when detail=summary was requested; omitted from full responses so existing callers see no change
expiresAtstring|null–ISO 8601 instant when this test session and its results will expire and be deleted
findingSentencestring|null–Pre-generated natural language verdict; use as the primary summary
isPublicboolean|null–Whether this test result is publicly accessible
resultsarray–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 analy…
shareableTidstring|null–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 indi…
statusstring–Pending and running mean poll again; completed means full results are present
testTypestring–Type of test performed (e.g., URL or direct HTML paste)
tidstring–The test ID that was polled
updatedAtstring–ISO 8601 instant of the last update to this test session
urlstring|null–The URL that was analyzed

No examples provided.

gvt_list_baselines ~164

Get the oldest baseline test snapshots for a batch of URLs (up to 100) in a single call. Each result includes the URL and its oldest test object (null if no test exists for that URL). For a single URL use gvt_get_baseline; for pre-computed baseline-vs-latest deltas use gvt_get_score_trend. This bulk form is ideal for monthly/periodic batch comparisons: fetch baselines in bulk here, then call gvt_get_latest per URL. One call replaces up to 100 gvt_get_baseline calls; split larger URL sets into consecutive calls of at most 100. Order of results follows the submitted order.

NameTypeReqDescription
urlsarrayyesArray of URLs to look up (max 100).
NameTypeReqDescription
foundinteger–URLs that had at least one test
requestedinteger–Number of URLs requested
resultsarray–One entry per requested URL, in request order
ttlMsinteger–Suggested client cache lifetime in milliseconds

No examples provided.

gvt_list_prompts ~109

List the GVT prompt workflows: user-invocable recipes that chain GVT tools into complete tasks (check a page, review a monthly batch, analyze regressions, verify fixes, set up domain monitoring, report client status). Each entry lists its arguments. Use gvt_get_prompt to render a prompt with concrete argument values, then follow the rendered instructions to run the workflow. This catalog is static and costs nothing to call on every session start — it never queues tests or consumes credits.

Input schema present but exposes no named parameters.

NameTypeReqDescription
promptCountinteger–Number of prompt workflows in the catalog
promptsarray–The prompt workflow catalog
ttlMsinteger–Suggested client cache lifetime in milliseconds

No examples provided.

gvt_list_schedules ~295

Retrieves the paginated roster of the authenticated caller's test monitoring schedules, allowing filtering by domain, frequency, and status. This is the only way to discover existing schedules and their schids, which the pause/resume/cancel/change_frequency modes of gvt_schedule_test require. Completed one-off rows are hidden by default: batch runs create a throwaway once row per queued URL, so include them only with includeCompletedOnce true. The row's tid is deliberately not surfaced (it is often stale); use gvt_list_tests or gvt_get_latest for test result lookups. Read-only: consumes rate limit, never test credits.

NameTypeReqDescription
domainstring–Filter to schedules matching this domain substring.
frequencystring–Filter by repetition interval.
includeCompletedOnceboolean–Whether to include completed one-off schedules in the results. Hidden by default because batch runs create a throwaway once row per queued URL; include them only when investigating batch history.
includeSubdomainsboolean–Whether subdomains should be included in the domain filter match.
limitinteger–The maximum number of schedules requested for this page.
offsetinteger–The number of skipped items from the beginning of the result set.
sortDirectionstring–Sort order by creation time; desc is newest first.
statusstring–Filter by the derived overall state of the schedule.
NameTypeReqDescription
allowedFrequenciesarray–Frequencies the caller may set when creating schedules
domainstring|null–The applied domain filter, null when unfiltered
frequencystring|null–The applied frequency filter, null when unfiltered
hasMoreboolean–True when more results exist beyond this page
includeCompletedOnceboolean–Whether completed one-off rows were included in this response
includeSubdomainsboolean–The applied subdomain-inclusion setting
limitinteger–Page size applied to this response
maxActiveSchedulesinteger–The caller's cap on active schedules; add mode enforces this limit
nextOffsetinteger|null–Offset for the next page, null when hasMore is false
offsetinteger–Offset applied to this response
schedulesarray–One entry per schedule, newest first by creation time
statusstring|null–The applied status filter, null when unfiltered
totalinteger–Total schedules matching the filters, across all pages

No examples provided.

gvt_list_sitemap_urls ~383

Discovers and ranks URLs from a domain's XML sitemaps to find the most significant pages (homepages, product pages, recently updated content) before analyzing them. Supports URL-pattern filtering and automatically flags robots.txt-blocked and already-tested pages. Legal/policy boilerplate (privacy, terms, cookies, disclaimers, refunds) is flagged legalPage:true with a -25 significance penalty; use the legalPages filter to drop it (exclude) or isolate it for a policy-coverage audit (only). Parameters group into three jobs: discovery (url), ranking and paging (limit, sort), and filtering (include and exclude URL patterns, excludeDisallowed, excludeTested, excludeScheduled, legalPages).

NameTypeReqDescription
excludearray–Wildcard patterns to reject (e.g., '*archive*').
excludeDisallowedboolean–If true, silently drops URLs that are blocked by robots.txt.
excludeScheduledboolean–If true, omits URLs currently in the testing queue.
excludeTestedboolean–If true, omits URLs the user has already tested.
includearray–Wildcard patterns to require (e.g., '*blog*'). Only '*' wildcards are supported.
legalPagesstring–Tri-state filter for legal/policy boilerplate pages (privacy, terms, cookies, disclaimers, refund policies, etc). "include" keeps them (default), "exclude" drops them, and "only" returns just the leg…
limitinteger–Maximum number of URLs to return (default 10).
sortstring–How to sort the discovered URLs. 'significance' uses SEO heuristics.
urlstringyesThe target website URL or an explicit sitemap .xml URL.
NameTypeReqDescription
bulkUrlLimitinteger–How many of these URLs the caller's tier permits in one batch-analyze call.
errorsarray–Per-sitemap fetch or parse failures; non-empty means discovery was partial
hasMoreboolean–True when the filtered set was cut short by the limit
legalPagesstring–The legal-page filter actually applied
legalPagesFoundinteger–How many of the URLs discovered across all sitemaps were detected as legal/policy boilerplate, counted BEFORE any filtering or limiting is applied.
limitinteger–Effective result cap
matchedinteger–URLs remaining after include/exclude and legalPages filters
requestedUrlstring–The URL or sitemap URL that was resolved
resolvedSitemapsarray–Sitemap URLs actually parsed
returnedinteger–URLs actually returned after the limit
robotsTxtFoundboolean–Whether a robots.txt was found and consulted
sitemapCountinteger–Number of sitemaps parsed
sortstring–The sort actually applied to the results
totalDiscoveredinteger–Raw URL count discovered before filtering
truncatedboolean–True if the underlying sitemap parser hit its 5000-URL cap during fetching.
urlsarray–Discovered URLs, ranked per the sort setting

No examples provided.

gvt_list_tests ~417

List visibility tests for the authenticated user, newest first. Supports filtering by domain (optionally including subdomains), by URL (exact or contains match), by creation date range, by status, and by test type. This is the tid and history discovery surface: use it to find the exact recorded URL string and tids that gvt_get_baseline, gvt_get_latest, and gvt_get_test_results require, and use gvt_get_score_trend instead when you only need baseline-vs-latest deltas — it skips the paging entirely.

NameTypeReqDescription
createdFromstring–Inclusive creation-date lower bound. YYYY-MM-DD (UTC midnight) or full ISO 8601 instant.
createdTostring–Exclusive creation-date upper bound. YYYY-MM-DD (UTC midnight) or full ISO 8601 instant.
domainstring–Domain to filter tests by, e.g. example.com. Subdomains are included unless includeSubdomains is false.
includeSubdomainsboolean–If true (the default), includes tests for subdomains of the given domain. Set false to match the exact domain only.
limitinteger–Max results to return (default 10, max 100)
offsetinteger–Number of records to skip before returning results (not a page number). Use offset=0 for the first page, offset=limit for the second page, etc.
sortDirectionstring–Sort direction by creation date: desc (newest first, default) or asc (oldest first).
statusstring–Test status to filter by: pending, processing, completed, or failed.
testTypestring–Test type to filter by: url, html, or html_paste.
urlstring–URL to filter tests by; matched per urlMode (contains by default).
urlModestring–How the url filter matches: "exact" for full-URL equality, "contains" for substring match.
NameTypeReqDescription
createdFromstring|null–Effective lower creation-date bound, if any
createdTostring|null–Effective upper creation-date bound, if any
domainstring|null–The domain filter actually applied, if any
hasMoreboolean–True when more pages exist
includeSubdomainsboolean–Whether subdomains were included in the domain filter
limitinteger–Page size actually applied
nextOffsetinteger|null–Offset for the next page, null on the last page
offsetinteger–Row offset applied to this page
testsarray–The matching test sessions on this page
totalinteger–Total matching tests before pagination
ttlMsinteger–Suggested client cache lifetime in milliseconds

No examples provided.

gvt_run_visibility_batch ~216

Queue up to 500 URLs for batch GEO visibility testing. Returns a batch ID for tracking progress. Optionally add URLs to recurring schedules (daily, weekly, monthly) during the same call. Poll gvt_get_batch_status with the batchId until status is completed or failed; then get the compact per-page score summary with gvt_get_batch_summary, or individual results with gvt_get_test_results. This tool queues paid test runs and consumes credits; for score interpretation, methodology, or reference knowledge, use gvt_get_knowledge instead — it never runs tests. A webhook URL can be provided to receive a completion notification; when set, the response returns webhookSecret, an HMAC key for verifying that the notification genuinely came from GVT. Duplicate URLs in the submitted array are collapsed, so totalUrls may be smaller than the array you sent.

NameTypeReqDescription
urlsarrayyesArray of URL objects to test (max 500)
webhookUrlstring–Optional HTTPS URL to receive a batch completion webhook
NameTypeReqDescription
batchIdstring–UUID for tracking the batch
statusstring–Always queued at submission time
totalUrlsinteger–URLs accepted into the batch
webhookConfiguredboolean–True when a completion webhook URL was supplied
webhookSecretstring|null–HMAC secret for verifying the webhook, null when no webhook

No examples provided.

gvt_run_visibility_test ~146

Run a GEO visibility test on a URL. Analyzes 7 categories: JavaScript dependencies (js), no-JS rendering (nojs), semantic HTML5, heading structure, schema.org markup, social tags, and accessibility. This is an async operation — it returns a tid immediately. Pass that tid to gvt_get_test_results to retrieve scores and issues once the test completes (poll until status is not "pending" or "running").

NameTypeReqDescription
urlstringyesThe URL to analyze
waitForJsboolean–Wait for JavaScript rendering before analysis. Set to false to skip JS rendering (faster, but may miss dynamically injected content).
NameTypeReqDescription
messagestring–Human-readable acknowledgement with polling guidance
nextobject–The suggested next call
statusstring–Always pending at queue time
tidstring–8-character test ID to poll with

No examples provided.

gvt_schedule_test ~365

Manage recurring GVT test schedules: add, delete, reset, pause, resume, cancel, and change_frequency. Discover existing schedules and their schids via gvt_list_schedules; control modes require a schid. For one-off tests use gvt_run_visibility_test; for queued batches without recurrence use gvt_run_visibility_batch. Modes: "add" upserts schedules for the provided urls without duplicating; "delete" permanently removes schedule entries by schid or url (test results are never deleted by any mode); "reset" is destructive — deletes all matching schedules first (domain-scoped when provided, otherwise ALL account-wide), then upserts the provided urls; "pause" halts reversibly; "resume" restarts a paused schedule and clears auto-pause reasons and failure counts; "cancel" permanently ends the schedule (schid unusable); "change_frequency" updates the recurrence interval. Management modes (add/delete/reset) require urls; control modes require schid. Subscription-tier enforcement applies.

NameTypeReqDescription
domainstring–Domain to scope a reset operation (reset mode only). e.g. "example.com". Matches https://, http://, with/without www., with/without trailing path. Omit to reset ALL schedules.
frequencystring–New frequency for the schedule. Required for change_frequency mode.
modestring–Schedule operation mode. add/delete/reset operate on URLs (require urls array). pause/resume/cancel/change_frequency operate on a single schedule (require schid).
schidstring–Schedule ID. Required for pause, resume, cancel, and change_frequency modes.
urlsarray–Array of URL/schedule objects. Required for add, delete, and reset modes.
NameTypeReqDescription
deletedByUrlarray–Per-URL breakdown of deleted schedules (delete mode). Present on delete mode responses, including schid-based deletes; omitted for reset mode.
deletedCountinteger–Schedule entries removed (delete/reset modes)
scheduledarray–Schedules now in effect (add/reset modes)
successboolean–True when the requested mode completed
upsertedCountinteger–Schedules created or updated (add/reset modes)

No examples provided.

gvt_set_test_visibility ~162

Toggle the public visibility of a test session. Set is_public to true to make the test shareable and receive its public share URL, or false to make it private. The response confirms the new state and, when making a test public, includes the share_url the recipient can visit without any authentication. is_public is the only lever: true both publishes and yields the link in this same response; false revokes access to any previously issued share_url immediately. This is the only way to control who can view a test result without requiring MCP authentication.

NameTypeReqDescription
is_publicbooleanyestrue to make the test publicly shareable, false to make it private.
tidstringyesThe 8-character test ID returned by gvt_run_visibility_test.
NameTypeReqDescription
is_publicboolean–The new public visibility state
share_urlstring|null–Public share URL, present when is_public is true; the recipient needs no authentication. Null when sharing failed or the test is private
successboolean–True when the visibility change was applied
tidstring–The test that was modified

No examples provided.

Common questions

What is the iGods GEO Visibility Tool (GVT) MCP server?

iGods GEO Visibility Tool (GVT) is an MCP server listed in the public MCP registry as com.igods/gvt. GEO visibility tests, score trends, sitemap discovery, and domain monitoring for AI agents. This page covers its hosted endpoint (https://mcp.geo.igods.com/mcp).

Is the iGods GEO Visibility Tool (GVT) MCP server safe to use?

iGods GEO Visibility Tool (GVT) scores 83 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the iGods GEO Visibility Tool (GVT) MCP server expose?

iGods GEO Visibility Tool (GVT) exposes 19 tools: gvt_run_visibility_test, gvt_get_test_results, gvt_list_tests, gvt_get_baseline, gvt_get_latest, and 14 more. Their descriptions and schemas cost roughly 4,072 tokens of context every time the server is loaded.

Does the iGods GEO Visibility Tool (GVT) MCP server require authentication?

Yes. iGods GEO Visibility Tool (GVT) asked us for credentials when we connected, so you will need to authorise it in your MCP client before it can do anything.

Is the iGods GEO Visibility Tool (GVT) MCP server still maintained?

iGods GEO Visibility Tool (GVT) is still listed as active in the MCP registry. We last reached this channel on 30 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.