Inspect Indexing
inspect_indexing(domain: string, url: string)Google's own indexing status for one URL: indexed?, canonical Google chose, rich results, last crawl.
Google's authoritative URL inspection result: index verdict, Google-selected canonical vs user-declared canonical, robots.txt status, crawl timestamp, and rich result validation.
Input Parameters
2 arguments| Parameter | Type | Requirement | Default / Constraints | Description |
|---|---|---|---|---|
domain | string | required | A tracked website's primary_domain (e.g. example.com). | |
url | string | required | The exact URL to inspect. |
Return Envelope (OFE / 1.0)
Open Fact EnvelopeEvery response adheres to the strict ofe/1.0 envelope schema, returning verified data, typed facts, entity references, and follow-up tool suggestions:
data Payload
Google's authoritative URL inspection result: index verdict, Google-selected canonical vs user-declared canonical, robots.txt status, crawl timestamp, and rich result validation.
coverage & Freshness
Reports returned count vs total items, observation timestamp as_of, and scope notes. Cached in KV for 4 hours.
resources (Dataset Exports)
If a query yields high row counts (e.g. >1,000 queries in Search Console), full unpaginated tables are persisted to R2 and linked as an mcpseo:// URI for follow-up retrieval via export_dataset.
next_actions
Provides suggested follow-up tool calls with pre-filled arguments so your AI agent can navigate from discovery to detailed inspection autonomously.
Emitted Facts & Entities
Knowledge GraphTyped Facts
Facts emitted in the facts[] array with provenance receipts:
| Fact Type | Claim Description | Emitted Data Fields |
|---|---|---|
gsc.index_status | Google index status: verdict (PASS/FAIL), coverage state, Google canonical, user canonical, last crawl time, and crawler user-agent. | verdictcoverage_staterobots_txt_stateindexing_statepage_fetch_statelast_crawl_timecrawled_asgoogle_canonicaluser_canonical |
gsc.rich_results | Rich snippets evaluation (Product, FAQ, Breadcrumbs, Article schema). | verdictdetected_items |
Registered Entities
Entities registered in the entities[] array to establish subject relationships:
Search Console property.
Inspected URL entity.
Request & Response Examples
Live MCP PayloadsExact JSON schemas transmitted over Model Context Protocol (stdio or HTTP SSE transport):
1. Client Tool Invocation
{
"tool": "inspect_indexing",
"arguments": {
"domain": "example.com",
"url": "https://example.com/blog/mcp-guide"
}
}2. Server Envelope Response
{
"schema_version": "ofe/1.0",
"domain": "gsc",
"data": {
"domain": "example.com",
"url": "https://example.com/blog/mcp-guide",
"inspectionResultLink": "https://search.google.com/search-console/inspect?resource_id=sc-domain%3Aexample.com&id=..."
},
"facts": [
{
"type": "gsc.index_status",
"subject": [
"urn:page:https%3A%2F%2Fexample.com%2Fblog%2Fmcp-guide",
"urn:property:ws_12345"
],
"data": {
"verdict": "PASS",
"coverage_state": "Submitted and indexed",
"robots_txt_state": "ALLOWED",
"indexing_state": "INDEXING_ALLOWED",
"page_fetch_state": "SUCCESSFUL",
"last_crawl_time": "2026-09-22T14:15:30Z",
"crawled_as": "GOOGLEBOT_DESKTOP",
"google_canonical": "https://example.com/blog/mcp-guide",
"user_canonical": "https://example.com/blog/mcp-guide"
},
"provenance": {
"source_class": "webmaster_console",
"method": "searchconsole.urlInspection.index.inspect",
"confidence": 1,
"observed_at": "2026-09-24T00:00:00Z",
"cache_hit": true
}
}
],
"entities": [
{
"id": "urn:property:ws_12345",
"kind": "property",
"label": "Example Prod"
},
{
"id": "urn:page:https%3A%2F%2Fexample.com%2Fblog%2Fmcp-guide",
"kind": "page",
"label": "https://example.com/blog/mcp-guide"
}
],
"coverage": {
"returned": 2,
"total": 2,
"as_of": "2026-09-22T14:15:30Z",
"scope_note": "Direct inspection API call cached for 4 hours."
},
"deltas": [],
"resources": [],
"next_actions": []
}LLM Agent Workflow
Claude & Cursor IntegrationPrompt Trigger
"Why is https://example.com/blog/mcp-guide not showing up in search results?"
Agent Decision & Reasoning
The agent calls inspect_indexing to check whether Googlebot fetched the page, whether robots.txt blocked it, and if Google picked a different canonical URL.
Recommended Follow-up Tools
Provenance Guarantees & Error Handling
ReliabilityEvery fact emitted by Vouched includes source_class, method, observed_at ISO timestamp, and a published confidence score. LLM agents can inspect these citations to distinguish first-party verified facts (e.g. Search Console) from modeled competitor estimates.
Billing & API Keys
Free on every plan: it reads your own Google data, so there's no per-call cost. Works the same when self-hosted.
Connection Required: Requires connecting your Google Search Console property via OAuth. Until it's connected, calls return a connection_required error saying where to connect it (Settings in the dashboard).
Error Conditions
ConnectionRequiredError: no Search Console site configured for domain. Add connection via /dashboard/connections.
More Search Console Tools
2 sibling toolsget_search_performance()Query/page/date/country/device performance from Search Console, with filters and period-over-period comparison.
list_sitemaps()Submitted sitemaps for a tracked website: last-read status, warnings/errors, submitted counts (Google's indexed count here is deprecated, always 0).