Skip to main content
Glama
Rachit8484

geoseo-mcp

by Rachit8484

geoseo-mcp

The only open-source MCP server that covers traditional SEO and Generative Engine Optimization (GEO) across Google, Bing, Yandex, and the major LLMs — in one server.

PyPI CI License: MIT Python 3.11+ MCP

Why this exists

Every other SEO MCP picks one lane:

  • mcp-gsc — Google Search Console only.

  • brightdata-mcp — web access with a GEO bolt-on, vendor-coupled.

  • geo-optimizer-skill — GEO scoring only, no traditional SEO.

  • Frase / Conductor / Cairrot — closed SaaS.

geoseo-mcp unifies them. One MCP, one config, every search surface that matters in 2026:

Surface

Tools

Google Search

GSC performance, URL inspection, sitemaps, Indexing API

Bing Webmaster

Verified-site stats, query/page stats, URL inspect, fast submit, crawl issues

Bing / Yandex / Naver / Seznam

IndexNow submission

Google AI Overviews

aio_check + aio_citation_check via SerpAPI

LLM citations

Perplexity, ChatGPT (web search), Claude (web search), Gemini (Google Search grounding), plus a multi_llm_* super-tool that fans out across all four in parallel

On-page

Title / meta / heading / schema / internal-link audit + 0-100 score

Internal link graph

Orphans, dead-ends, hubs, dangling links, TF-IDF related-page suggestions with anchor hints

llms.txt

Generate from a folder of HTML, validate against the spec

Trend tracking

Local SQLite snapshots of GSC + LLM citations + AIO; time-series trend tools

MIT licensed. Runs locally over stdio. No hosting, no API key gating, your credentials never leave your machine.

Related MCP server: seoagent

Status

v0.3 — alpha. 36 tools across GSC, Bing Webmaster, IndexNow, ChatGPT, Claude, Gemini, Perplexity, Google AI Overviews, on-page + folder audits, llms.txt, internal link graph + suggestions, and local SQLite trend tracking. See ROADMAP.

Install

# Using uv (recommended)
uvx geoseo-mcp

# Or pip
pip install geoseo-mcp

Or from source:

git clone https://github.com/Rachit8484/geoseo-mcp.git
cd geoseo-mcp
pip install -e ".[dev]"

Try it without any credentials

Several tools work with zero configuration — useful to kick the tires before you wire up any API keys.

# audit a single page
echo '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"audit_page","arguments":{"source":"https://example.com"}}}' \
  | uvx geoseo-mcp

# audit a whole folder of HTML
... "audit_site","arguments":{"folder":"./content"}
# build the internal link graph
... "internal_link_graph","arguments":{"folder":"./content","site_host":"yourdomain.com"}
# generate llms.txt
... "generate_llms_txt","arguments":{"folder":"./content","site_url":"https://yourdomain.com"}

In an MCP client (Cursor / Claude Desktop / Continue / Cline), it's even simpler — just ask:

"Audit my ./content folder and tell me the 5 worst-scoring pages" "Build the internal link graph and find orphan pages" "Generate an llms.txt for yourdomain.com from ./content"

Configure your MCP client

Cursor

Add to ~/.cursor/mcp.json:

{
  "mcpServers": {
    "geoseo": {
      "command": "uvx",
      "args": ["geoseo-mcp"],
      "env": {
        "GEOSEO_GOOGLE_CLIENT_SECRET": "/absolute/path/to/client_secret.json",
        "GEOSEO_BING_WEBMASTER_API_KEY": "your-bing-key",
        "GEOSEO_INDEXNOW_KEY": "your-indexnow-key",
        "GEOSEO_PERPLEXITY_API_KEY": "pplx-...",
        "GEOSEO_OPENAI_API_KEY": "sk-...",
        "GEOSEO_ANTHROPIC_API_KEY": "sk-ant-...",
        "GEOSEO_GEMINI_API_KEY": "AIza...",
        "GEOSEO_SERPAPI_API_KEY": "..."
      }
    }
  }
}

Claude Desktop

Add to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or the Windows equivalent:

{
  "mcpServers": {
    "geoseo": {
      "command": "uvx",
      "args": ["geoseo-mcp"],
      "env": {
        "GEOSEO_GOOGLE_CLIENT_SECRET": "/absolute/path/to/client_secret.json",
        "GEOSEO_BING_WEBMASTER_API_KEY": "your-bing-key",
        "GEOSEO_INDEXNOW_KEY": "your-indexnow-key",
        "GEOSEO_PERPLEXITY_API_KEY": "pplx-...",
        "GEOSEO_OPENAI_API_KEY": "sk-...",
        "GEOSEO_ANTHROPIC_API_KEY": "sk-ant-...",
        "GEOSEO_GEMINI_API_KEY": "AIza...",
        "GEOSEO_SERPAPI_API_KEY": "..."
      }
    }
  }
}

See examples/ for ready-to-paste configs.

Get credentials

  • Google Search Console — see docs/setup-gsc.md. One-time OAuth flow.

  • IndexNow — generate any random 32-char hex string and host it at https://yourdomain.com/<key>.txt. Spec.

  • PerplexityAPI key from settings. Pay-as-you-go, ~$1 per 1000 queries.

  • OpenAIAPI key. Uses the Responses API + web_search_preview tool.

  • AnthropicAPI key. Uses Claude with the web_search_20250305 server-side tool.

  • GeminiAPI key from AI Studio. Uses Google Search grounding (the same signal Google's AI Overviews are built on).

  • Bing WebmasterAPI key from Bing Webmaster Tools → Settings → API access.

  • SerpAPIAPI key. Free tier: 100 searches/month. Used for Google AI Overviews tracking (aio_check, aio_citation_check).

All credentials are optional — tools that need a key you don't have will return a clear error, the rest still work.

Tools (v0.3 — 36 total)

Status / discovery

  • geoseo_status — show which engines are configured.

  • list_llm_engines — show which LLM engines have keys.

Google Search Console

  • gsc_list_sites, gsc_performance, gsc_inspect_url, gsc_submit_sitemap

Bing Webmaster Tools (new in v0.3)

  • bing_list_sites, bing_query_stats, bing_page_stats, bing_url_info, bing_submit_url, bing_crawl_issues

Indexing

  • indexnow_submit_url — single URL → Bing/Yandex/Naver/Seznam/Yep.

  • indexnow_submit_urls — batch up to 10,000 URLs.

LLM citations (the GEO/AEO core)

  • perplexity_query / perplexity_citation_check

  • openai_query — ChatGPT with web search.

  • claude_query — Claude with server-side web search.

  • gemini_query — Gemini with Google Search grounding.

  • multi_llm_query — fan out one question to every configured LLM in parallel.

  • multi_llm_citation_check — citation-share metrics for your domain across ChatGPT + Claude + Gemini + Perplexity in one call. This is the headline tool.

Google AI Overviews (new in v0.3)

  • aio_check — does AIO fire for this query? Which URLs does it cite?

  • aio_citation_check — AIO fire-rate + citation-share for your domain across a batch of queries.

On-page audit

  • audit_page — local file or URL: title, meta, H1-H3, word count, schema, OG, freshness, GEO quotability, 0-100 score, list of findings.

  • audit_site — recursive audit over a folder, with worst-pages report.

  • internal_link_graph — orphans, dead-ends, hub pages, dangling hrefs.

  • suggest_internal_links — TF-IDF related-page suggestions per file with anchor-text hints.

llms.txt

  • generate_llms_txt — produce a spec-compliant llms.txt from a folder of HTML pages, grouped by URL prefix.

  • validate_llms_txt — validate an existing file/URL with line-numbered issue list.

Trend tracking (new in v0.3 — local SQLite)

  • trend_init, trend_stats

  • snapshot_gsc — persist a GSC performance pull as a timestamped snapshot.

  • snapshot_llm_citations — persist multi_llm_citation_check results.

  • snapshot_serp_aio — persist AIO citation results.

  • trend_gsc — clicks/impressions/position over time (filterable by query/page).

  • trend_llm_citations — citation share over time (per engine).

Snapshots are append-only and stored at $GEOSEO_DB (default: platform user-data dir / geoseo.sqlite). Schedule the snapshot_* tools weekly to build a private time-series of your AI-search visibility — no SaaS.

Roadmap

  • v0.4 — Yandex Webmaster API, Grok citations, schema linter, broken-link prospector, vertical packs (YMYL / health / e-commerce).

  • v1.0 — Stable API, full test coverage, optional remote (HTTP) transport.

See docs/architecture.md for the engine plug-in interface — adding a new search engine or LLM is one file.

Contributing

PRs welcome. Each engine lives in src/geoseo_mcp/engines/<name>.py and implements the Engine ABC. Add yours, register it in engines/__init__.py, expose tools in tools/, ship.

License

MIT. See LICENSE.

Available Tools

36 tools
aio_checkA

Run a Google search via SerpAPI and parse the AI Overview block.

Returns aio_present, the AIO answer text, the URLs/domains AIO cites, and the top-10 organic results for context. Use this to track which pages Google's generative answers actually source.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes
locationNo
hlNoen
glNous
google_domainNogoogle.com

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior4/5

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

No annotations provided, so description carries full burden. It explicitly lists outputs (aio_present, answer text, cites, top organic results) and implies a read-only operation. No contradictions or hidden effects.

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

Conciseness5/5

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

Two sentences, front-loaded with purpose, followed by output summary and use case. No redundancies or filler.

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

Completeness3/5

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

Explains return values (helped by output schema existence) but does not clarify how optional parameters like location or hl affect AIO retrieval. Lacks details on required vs optional inputs beyond the schema.

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

Parameters2/5

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

Schema description coverage is 0%, but description only mentions 'query' implicitly via 'Run a Google search' and provides no details on location, hl, gl, or google_domain. This fails to compensate for the low schema coverage.

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?

Clearly states 'Run a Google search via SerpAPI and parse the AI Overview block,' specifying the action and resource. It also describes return values and use case ('track which pages Google's generative answers actually source'), effectively distinguishing it from siblings like claude_query or gemini_query.

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

Usage Guidelines3/5

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

Gives a use case ('Use this to track which pages Google's generative answers actually source') but does not exlicitly state when to avoid it or compare to alternatives like aio_citation_check or other search tools.

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

aio_citation_checkA

For a batch of queries, report AIO fire-rate and citation share for target_domain.

This is the GEO companion to multi_llm_citation_check — same idea, but specifically for Google's on-SERP AI Overviews. Run weekly and snapshot to snapshot_serp_aio to track AIO visibility over time.

ParametersJSON Schema
NameRequiredDescriptionDefault
queriesYes
target_domainYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.7/5.0
Behavior4/5

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

No annotations provided, so description carries full burden. It discloses the report type (AIO fire-rate and citation share) and context (Google AI Overviews). Does not mention rate limits or execution characteristics, but overall behavior is well-understood.

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

Conciseness5/5

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

Three sentences: core purpose, sibling context, and usage guidance. Front-loaded and efficient with no wasted words.

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?

Despite no annotations and 0% schema coverage, the description covers purpose, sibling differentiation, and a usage workflow. Output schema exists, so return details are not needed. Complete for a batch query 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 0%, but description names 'batch of queries' and 'target_domain' which map directly to the two parameters. The description adds meaning beyond the schema by clarifying that queries are batched and the domain is the target.

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?

Description clearly states the tool reports AIO fire-rate and citation share for target_domain from Google's on-SERP AI Overviews. It distinguishes from sibling multi_llm_citation_check by specifying it's the GEO companion for AIO specifically.

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 says 'Run weekly and snapshot to snapshot_serp_aio to track AIO visibility over time', providing a clear usage pattern. Also contrasts with multi_llm_citation_check to guide when to use which.

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

audit_pageA

Audit a single page (local file path or http(s) URL).

Returns a structured report with: title/meta/headings, word count, link counts, image alt coverage, JSON-LD schema types, Open Graph, Twitter Card, freshness signals, GEO-quotability score, and a list of human-readable findings. Plus a 0-100 overall score.

Examples: audit_page("seo/aa-meetings-what-to-expect.html") audit_page("https://soberpath.com/blog/quit-drinking")

ParametersJSON Schema
NameRequiredDescriptionDefault
sourceYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior4/5

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

Without annotations, the description effectively discloses the output (report with specific fields and a score) and that it is an audit (read-only). No side effects mentioned, but the behavior is well-specified.

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

Conciseness5/5

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

The description is concise and well-structured: purpose first, then output contents, then examples. Every sentence adds value with no redundancy.

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

Completeness4/5

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

Given the single parameter and output schema existence, the description covers key aspects. It could mention error handling (invalid URL/path), but overall it's sufficient.

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

Parameters5/5

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

With 0% schema description coverage, the description adds critical meaning: 'source' can be a local file path or URL, with explicit examples. This fully compensates for the schema gap.

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?

The description clearly states the tool audits a single page (local or URL) and lists the comprehensive report contents, differentiating it from siblings like audit_site. Examples reinforce the purpose.

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

Usage Guidelines3/5

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

Usage is implied (single page audit) but no explicit when-to-use or when-not-to-use vs alternatives like audit_site. Examples show how to call it but lack context for choosing this tool.

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

audit_siteA

Recursively audit every HTML file under a folder.

Returns per-file scores, an aggregate summary (mean score, worst pages, most common findings), and the top opportunities for improvement.

Useful as the first call against a content directory to spot the worst offenders quickly.

ParametersJSON Schema
NameRequiredDescriptionDefault
folderYes
patternNo*.html
limitNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior4/5

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

Without annotations, the description carries the full burden. It discloses recursive behavior and the return of per-file scores, aggregate summary, and top opportunities. It does not mention authentication needs or rate limits, but the read-only nature is implied. Overall, it gives sufficient behavioral context for the agent.

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

Conciseness5/5

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

The description is only three sentences, each adding value: scope, return values, and use case. No unnecessary words; it is concise and front-loaded.

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?

Given the tool has an output schema, the description need not detail return values, but it still gives a high-level summary. It covers purpose, behavior, and usage context completely for an agent to decide when to invoke it.

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

Parameters3/5

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

Schema coverage is 0%, so the description must compensate. It implicitly explains the 'folder' and 'pattern' parameters by stating 'every HTML file under a folder,' but the 'limit' parameter is not mentioned. Thus, it adds some meaning but not complete compensation.

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?

The description clearly states the tool recursively audits every HTML file under a folder, distinguishing it from audit_page (single page) and other sibling tools. The verb 'audit' and resource 'every HTML file under a folder' are specific and unambiguous.

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

Usage Guidelines4/5

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

The description explicitly notes 'Useful as the first call against a content directory to spot the worst offenders quickly,' providing clear when-to-use guidance. While it does not explicitly say when not to use it, the sibling context implies using audit_page for single pages.

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

bing_crawl_issuesC

Crawl errors / blocked URLs / DNS issues reported by Bingbot.

ParametersJSON Schema
NameRequiredDescriptionDefault
site_urlYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.6/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It only states what the tool retrieves but does not disclose behavioral traits such as authentication needs, pagination, or data freshness. Minimal context.

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?

The description is a single, concise phrase with no wasted words. However, it is slightly terse and could benefit from a bit more structure.

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

Completeness2/5

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

Although an output schema exists (which may explain return values), the description lacks context about the scope of issues (e.g., timeframe, severity) and fails to make the tool self-contained. Given the low parameter count, more detail is expected.

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

Parameters1/5

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

The schema has one required parameter (site_url) with 0% description coverage. The description does not add any meaning to this parameter—no format, examples, or constraints are mentioned.

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

Purpose4/5

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

The description clearly states it retrieves crawl errors, blocked URLs, and DNS issues from Bingbot. It uses specific terms like 'crawl errors' and 'Bingbot', but does not differentiate from sibling tools like bing_url_info or bing_page_stats.

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

Usage Guidelines2/5

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

No guidance on when to use this tool over alternatives. The sibling list includes many Bing-related tools, but the description offers no hints about scenarios or exclusions.

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

bing_list_sitesB

List all Bing-verified sites for the API key owner.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are present, and the description provides minimal behavioral context beyond 'list all sites'. It does not disclose whether the operation is read-only, requires specific permissions, or has rate limits. For a tool with no annotations, the description should offer more behavioral detail.

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

Conciseness5/5

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

The description is a single sentence that is perfectly concise and front-loaded. Every word is essential, and there is no wasted text.

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

Completeness4/5

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

Given that the tool has no parameters and an output schema exists, the description is adequate. It clearly states what the tool does, but could optionally add context about the output format or typical use cases. However, for a simple listing tool, it is nearly complete.

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?

The tool has zero parameters, and the schema coverage is 100% (empty schema). According to the guidelines, 0 parameters defaults to a baseline score of 4. No additional parameter information is necessary.

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

Purpose4/5

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

The description clearly states the tool lists all Bing-verified sites for the API key owner. It uses a specific verb and resource. Although it doesn't explicitly differentiate from sibling tools like 'bing_crawl_issues' or 'bing_page_stats', the name and description make the purpose distinct.

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

Usage Guidelines2/5

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

No usage guidelines are provided. The description does not mention when to use this tool versus alternatives, nor does it specify any preconditions or contexts where it is appropriate or not.

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

bing_page_statsC

Per-page stats from Bing Webmaster.

ParametersJSON Schema
NameRequiredDescriptionDefault
site_urlYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.4/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It only implies a read operation via 'stats', but does not explicitly state if it is read-only, whether it requires authentication, or any side effects. Significant transparency gaps remain.

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

Conciseness3/5

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

The description is very concise with only one sentence, which is efficient but lacks necessary detail. It earns its place by being short, but the brevity comes at the cost of clarity and completeness. A middle score is appropriate.

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

Completeness2/5

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

Given the simple input schema and presence of an output schema, the description could be sufficient, but it fails to explain what the tool returns or how to interpret the results. The AI is left to guess from the tool name and siblings, which is not complete for reliable use.

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

Parameters2/5

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

Schema description coverage is 0%, meaning the schema provides no explanation for the 'site_url' parameter. The description does not compensate by explaining what format or value 'site_url' expects (e.g., full URL, domain). This leaves the AI with insufficient guidance to correctly invoke the tool.

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

Purpose3/5

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

The description states 'Per-page stats from Bing Webmaster', which identifies the resource (Bing Webmaster) and the nature of the data (stats per page). However, it lacks a specific action verb and does not clarify what kind of stats (e.g., impressions, clicks). This vagueness makes it harder for an AI to distinguish from siblings like 'bing_query_stats'.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. There is no mention of prerequisites, context, or scenarios where this tool is appropriate or inappropriate. The description gives no hints about usage context.

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

bing_query_statsA

Last-6-months query stats from Bing Webmaster (clicks, impressions, position).

site_url must match what Bing has verified, e.g. https://example.com/.

ParametersJSON Schema
NameRequiredDescriptionDefault
site_urlYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior3/5

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

The description reveals that results are limited to the last 6 months and requires the site_url to match Bing's verified format. However, with no annotations provided, it does not address read-only behavior, authentication needs, rate limits, or pagination. The output schema exists but is not referenced in the description.

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

Conciseness5/5

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

The description is extremely concise with two sentences. It front-loads the core purpose and follows with the critical parameter requirement. Every part is necessary and there is no redundancy.

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

Completeness4/5

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

Given the tool's simplicity (1 required parameter, output schema present), the description adequately covers purpose and parameter constraint. It lacks guidance on data representativeness (e.g., is it aggregated daily?) but is sufficient for an agent to use the tool correctly.

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?

The input schema has no description for site_url (0% coverage). The description compensates by explaining that site_url must match Bing's verified format with an example. No other parameters exist, so this adds necessary context beyond the schema.

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?

The description clearly states the tool retrieves 'Last-6-months query stats from Bing Webmaster' including clicks, impressions, and position. It distinguishes from siblings like bing_page_stats (page-level) and bing_crawl_issues (issues) by specifying the kind of data and time range.

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

Usage Guidelines3/5

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

The description implies the tool is for historical query performance data over the last 6 months, but does not explicitly mention when to use it compared to alternatives such as bing_page_stats for page-level metrics or gsc_performance for Google. No exclusions or alternative tools are named.

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

bing_submit_urlB

Submit a URL for fast crawling. Daily quota applies (default ~10/day).

ParametersJSON Schema
NameRequiredDescriptionDefault
site_urlYes
urlYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.3/5.0
Behavior3/5

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

With no annotations, the description must disclose behavioral traits; it mentions the daily quota but does not explain implications of exceeding it, auth requirements, or what 'fast crawling' entails. It provides minimal transparency beyond the quota.

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?

The description is extremely concise, fitting one sentence and a parenthetical. It is well-front-loaded but could benefit from slightly more structure or detail without losing brevity.

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

Completeness3/5

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

For a simple submission tool with an output schema, the description covers basic usage but lacks completeness regarding error states, authentication, or post-submission behavior. It is minimally adequate but has clear gaps.

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

Parameters1/5

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

The input schema has two parameters with 0% description coverage, and the description adds no explanation of 'site_url' or 'url' beyond their names. This forces reliance on inference, which is insufficient for correct invocation.

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?

The description clearly states the action ('Submit') and the resource ('URL for fast crawling'), making the tool's purpose immediately obvious. It effectively distinguishes itself from siblings through the action of submitting to Bing, though not explicitly naming alternatives.

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

Usage Guidelines3/5

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

The description mentions a daily quota, providing some context for usage, but does not guide on when to use this tool versus alternatives like indexnow_submit_url. It lacks explicit when-to-use or when-not-to-use instructions.

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

bing_url_infoC

Index status + crawl info for a single URL on Bing.

ParametersJSON Schema
NameRequiredDescriptionDefault
site_urlYes
urlYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description carries full burden for behavioral disclosure. It only states the tool provides index status and crawl info, but does not clarify if it is read-only, whether it triggers API calls, rate limits, or what happens if the URL is not found. Minimal transparency for a mutation-free information retrieval tool.

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

Conciseness5/5

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

The description is a single, front-loaded sentence that immediately states the tool's core function. Every word earns its place, with no redundancy or extraneous information.

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

Completeness2/5

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

While the tool is simple (2 params, no nested objects), the description lacks context about how it fits among 20+ sibling tools. An agent would not know when to choose this over similar tools like bing_page_stats or gsc_inspect_url. The output schema exists but does not mitigate the lack of usage context.

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

Parameters1/5

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

Schema has 0% description coverage for its two required parameters (site_url, url), and the description adds no semantic information about them. It does not explain expected format (e.g., full URL vs domain), relationships between parameters, or valid values. The description fails to compensate for the schema's deficiency.

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?

The description clearly states the tool provides 'Index status + crawl info for a single URL on Bing.' This specifies the verb (get/report), the resource (URL on Bing), and the scope (single URL), distinguishing it from sibling tools like bing_page_stats (page-level metrics) or bing_crawl_issues (crawl issues).

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. For example, it does not explain when to prefer this over bing_page_stats or bing_crawl_issues, nor does it mention prerequisites or limitations. The description is purely functional.

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

claude_queryB

Ask Claude (with server-side web search) a question; return answer + cited URLs.

ParametersJSON Schema
NameRequiredDescriptionDefault
questionYes
modelNo
system_promptNo
max_tokensNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description must disclose behavioral traits. It mentions 'server-side web search' and the return format, but it does not state whether the operation is read-only, destructive, or any side effects, nor does it mention authentication, rate limits, or error conditions.

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

Conciseness5/5

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

The description is a single, well-structured sentence that conveys the core purpose and output without any extraneous words. It is front-loaded with the action and resource.

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

Completeness2/5

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

Despite having 4 parameters and no annotation, the description lacks details on parameter usage, return format beyond 'answer + cited URLs', and behavioral context. The output schema exists but is not detailed in the prompt, and the description does not compensate for the missing annotations.

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

Parameters1/5

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

The input schema has 0% description coverage and the description does not explain any parameters. While the schema defines parameters like question, model, system_prompt, and max_tokens, the description adds no meaning beyond the raw schema names, leaving the agent without guidance on how to set them.

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?

The description clearly identifies the verb 'ask', the resource 'Claude (with server-side web search)', and the output 'answer + cited URLs'. It distinguishes this tool from siblings like gemini_query or openai_query by specifying both the model and the web search capability.

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

Usage Guidelines3/5

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

The description implies usage for asking questions with web search, but it does not provide explicit guidance on when to use this tool versus alternatives such as gemini_query or perplexity_query, nor does it mention when not to use it.

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

gemini_queryA

Ask Gemini (with Google Search grounding) a question; return answer + cited URLs.

Grounding sources here are the same signal Google uses for AI Overviews, so this is the closest open-API proxy for "what AIO might cite for this query".

ParametersJSON Schema
NameRequiredDescriptionDefault
questionYes
modelNo
system_promptNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior4/5

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

No annotations exist, so description must disclose behavioral traits. It reveals Google Search grounding and the AI Overviews proxy nature, which is key behavioral insight beyond a simple query. However, details like idempotency, rate limits, or default model behavior are omitted.

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

Conciseness5/5

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

Two sentences concisely cover purpose, grounding, and the unique value proposition. Front-loaded with the main action, and no fluff.

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

Completeness3/5

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

With 3 parameters and an output schema, the description only addresses the required 'question' parameter. The optional parameters are undocumented, leaving gaps for effective use. The output schema likely covers return values, but the description could hint at optional params.

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

Parameters1/5

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

Schema description coverage is 0%, yet the description only mentions 'a question' and ignores the optional 'model' and 'system_prompt' parameters. No parameter details are provided, failing to compensate for the schema gap.

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?

The description clearly states the tool asks Gemini with Google Search grounding a question and returns answer with cited URLs. It specifies the verb 'Ask', the resource 'Gemini (with Google Search grounding)', and distinguishes from sibling tools like claude_query and openai_query by highlighting the AI Overviews proxy use case.

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

Usage Guidelines3/5

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

The description implies use when seeking grounded Gemini answers or AI Overview insights but lacks explicit when-not to use or alternative suggestions. Sibling tools cover other LLMs, so context is provided, but no direct guidance on choosing this over others.

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

generate_llms_txtA

Generate a draft llms.txt from a folder of HTML pages.

llms.txt (https://llmstxt.org) is the emerging standard for telling LLM crawlers where your canonical content lives. This tool reads each page's <title> and meta description, groups by URL prefix, and produces spec-compliant Markdown ready to drop at /llms.txt.

section_strategy controls grouping: - first_path_segment (default): groups by first URL path segment, e.g. all /blog/... pages under "Blog". - flat: a single "Pages" section.

ParametersJSON Schema
NameRequiredDescriptionDefault
folderYes
site_urlYes
site_titleNo
site_summaryNo
patternNo*.html
section_strategyNofirst_path_segment
limitNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior4/5

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

With no annotations, the description discloses key behaviors: reading HTML files, extracting title/meta description, grouping by URL prefix, and outputting Markdown. It does not cover error handling or side effects, but sufficient for non-destructive file generation.

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

Conciseness5/5

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

The description is concise and well-structured: a one-sentence summary, a brief background on llms.txt, the basic operation, and a parameter explanation. No superfluous content.

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

Completeness4/5

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

Given the presence of an output schema and the description's coverage of core functionality (grouping strategy, output format), it is fairly complete. Minor omissions: default limits and pattern are not mentioned, but schema supplies those.

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

Parameters2/5

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

Schema coverage is 0%, yet description only explains 'section_strategy' (with two modes). Critical parameters like 'folder', 'site_url', 'limit', and 'pattern' are not described, leaving agents to infer from names alone.

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?

The description clearly states the tool's purpose: 'Generate a draft llms.txt from a folder of HTML pages.' It explains the standard and distinguishes from sibling 'validate_llms_txt' by focusing on generation.

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

Usage Guidelines4/5

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

The description provides context on when to use (initial generation) and explains the section_strategy options. It does not explicitly mention alternatives or when not to use, but the sibling list implies 'validate_llms_txt' is for post-generation checking.

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

geoseo_statusA

Report which engines are configured and reachable.

Always safe to call. Returns a dict keyed by engine name with configured: bool and a short message. Use this as the first call in a session to know what's available.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A5/5.0
Behavior5/5

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

With no annotations, the description carries the full burden and thoroughly discloses behavior: it is safe (no side effects), returns a dict with structured output (configured: bool and message), and reports configured and reachable status.

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

Conciseness5/5

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

Three sentences with no wasted words, front-loaded with the purpose, and efficiently conveys all necessary information.

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?

For a stateless, no-parameter tool with an output schema, the description is complete: it describes the output format and usage context, leaving no gaps.

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

Parameters5/5

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

No parameters exist, so the description adds value by explaining the return structure (dict keyed by engine name) beyond the empty schema, which is appropriate for 0-param tools.

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?

The description clearly states the tool reports which engines are configured and reachable, using the verb 'report' and specifying the resource. It distinguishes from siblings like 'list_llm_engines' by focusing on configuration and reachability status.

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 states 'Always safe to call' and recommends using it as the first call in a session to know what's available, providing clear when-to-use guidance.

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

gsc_inspect_urlA

Get index status for a specific URL via the URL Inspection API.

Returns coverage state, last crawl time, mobile usability, indexed verdict, and indexing rich-result data. Slow (~1s/call); rate-limited by Google.

ParametersJSON Schema
NameRequiredDescriptionDefault
site_urlYes
urlYes
language_codeNoen-US

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior5/5

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

With no annotations provided, the description carries full burden. It fully discloses that the tool returns specific data (coverage state, last crawl time, mobile usability, etc.) and notes performance constraints (slow, rate-limited). No destructive behavior is implied.

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

Conciseness5/5

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

Three concise sentences: purpose, return data, and performance warning. No redundant or extraneous information. Front-loaded with the core action.

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

Completeness4/5

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

The description covers return values (partially listed, but output schema exists for details) and performance characteristics. It lacks prerequisites (e.g., GSC access) or error handling info, but for a simple inspection tool, it is reasonably complete.

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

Parameters2/5

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

Schema description coverage is 0%, and the description does not add meaning to the three parameters (site_url, url, language_code). It only generically refers to 'a specific URL', leaving the agent to infer parameter roles from the schema alone.

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?

The description uses a specific verb ('Get') and clearly identifies the resource ('index status for a specific URL via the URL Inspection API'). It enumerates the return fields, distinguishing it from sibling tools that handle different operations (e.g., gsc_list_sites, gsc_performance).

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

Usage Guidelines4/5

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

The description explicitly warns about slowness (~1s/call) and rate limiting, providing crucial usage context. It does not explicitly state when not to use the tool or name alternatives, but the warning helps agents decide whether to use it.

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

gsc_list_sitesA

List all Search Console properties the authenticated user can access.

Returns a list of site entries with siteUrl and permissionLevel. Use siteUrl from this list as input to other gsc_* tools.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It mentions 'authenticated user' and the return format, but does not disclose whether the operation is read-only, pagination details, or potential side effects. Lacks explicit safety or behavioral traits beyond the listing itself.

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

Conciseness5/5

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

Three concise sentences with clear front-loading of purpose, then return details, then usage guidance. No unnecessary words.

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?

For a simple listing tool with no parameters and an existing output schema, the description covers all needed context: purpose, return fields, and how to use the output with sibling tools. Complete and sufficient.

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?

No parameters defined in the schema; baseline score of 4 as per guidelines. The description adds value by explaining the output structure, but there are no params to document.

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?

Clearly states the verb 'List' and the resource 'Search Console properties', and describes the return fields. Explicitly distinguishes from sibling tools by directing use of siteUrl as input to other gsc_* tools.

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

Usage Guidelines4/5

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

Provides explicit guidance: 'Use siteUrl from this list as input to other gsc_* tools.' This tells when to use this tool as a prerequisite. No explicit when-not, but the guidance is clear and actionable.

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

gsc_performanceC

Query GSC search analytics.

ParametersJSON Schema
NameRequiredDescriptionDefault
site_urlYesThe property as it appears in GSC (e.g. ``sc-domain:example.com`` or ``https://example.com/``).
start_dateNoISO date (YYYY-MM-DD). Defaults to 28 days ago.
end_dateNoISO date. Defaults to 2 days ago (GSC has ~2-day latency).
dimensionsNoOne or more of ``query``, ``page``, ``country``, ``device``, ``date``, ``searchAppearance``. Defaults to ``["query"]``.
row_limitNoMax rows (capped at 25,000).
search_typeNo``web``, ``image``, ``video``, ``news``, or ``discover``.web
countryNoISO 3166-1 alpha-3 country filter (e.g. ``usa``).
deviceNo``desktop``, ``mobile``, or ``tablet``.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.5/5.0
Behavior2/5

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

No annotations are provided, and the description does not disclose behavioral traits such as read-only nature, rate limits, data latency, or that the tool queries historical data with default dates. Without annotations, the description should fill this gap but fails to do so.

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

Conciseness3/5

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

The description is extremely concise at two words, which is efficient but at the cost of necessary detail. It front-loads the verb but provides no structure or additional context that earns its presence.

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

Completeness2/5

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

Despite the existence of an output schema, the description fails to provide sufficient context for a tool with 8 parameters and many sibling tools. It does not mention typical use cases, what the output represents, or how to interpret results, making it incomplete.

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

Parameters3/5

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

Schema description coverage is 100%, with all parameters having adequate descriptions within the schema. The tool description itself adds no additional semantic meaning beyond what the schema already provides, so the baseline of 3 is appropriate.

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

Purpose3/5

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

The description states 'Query GSC search analytics', which specifies a verb and a resource, but it is overly generic and does not differentiate this tool from sibling tools like gsc_inspect_url or snapshot_gsc. It conveys the basic purpose but lacks specificity.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus alternatives such as gsc_inspect_url or trend_gsc. The description provides no context about preferred use cases or conditions that would make this tool appropriate.

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

gsc_submit_sitemapC

Submit (or resubmit) a sitemap URL to GSC.

feedpath is the absolute URL of the sitemap, e.g. https://example.com/sitemap.xml.

ParametersJSON Schema
NameRequiredDescriptionDefault
site_urlYes
feedpathYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.7/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions submission/resubmission but does not disclose side effects (e.g., overwrites, re-crawl triggering), rate limits, authentication needs, or success/failure behavior. This is a significant gap for a mutation tool.

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?

The description is concise with two short sentences. The first sentence clearly states the purpose, and the second provides parameter insight. No redundant content, though it could be more structured with bullet points.

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

Completeness2/5

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

The tool has 2 required parameters, no annotations, and an output schema (not shown). The description is too minimal to cover what the tool does, what is expected, or how to interpret results. More context about the submission process and response is needed.

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

Parameters2/5

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

Schema description coverage is 0%. The description explains only feedpath (absolute URL with example) but omits site_url. It adds partial meaning but does not compensate for the missing schema descriptions, leaving one parameter completely unexplained.

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

Purpose4/5

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

The description clearly states the action (submit/resubmit) and the resource (sitemap URL to GSC). It also explains the feedpath parameter. However, it does not explicitly distinguish from sibling tools like bing_submit_url or indexnow_submit_url, but the tool name and context make it specific to GSC.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives, nor does it specify prerequisites or exclusions. It only implies usage for submitting sitemaps to GSC.

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

indexnow_submit_urlB

Notify Bing, Yandex, Naver, Seznam, and Yep that a single URL was published or updated.

Requires GEOSEO_INDEXNOW_KEY env var (a 32-char hex string you also host at https://yourdomain.com/<key>.txt).

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It mentions the notification of multiple search engines and the env var requirement, but lacks details on rate limits, error handling, or what happens if prerequisites aren't met. The behavioral disclosure is minimal.

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?

The description is concise with two sentences. The first sentence states the purpose, and the second adds a prerequisite. It is front-loaded and wastes no words, though structure could be slightly improved by grouping requirements separately.

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

Completeness2/5

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

Given the low complexity (one parameter, no enums) and presence of an output schema, the description still lacks explanation of return values, side effects, or domain restrictions. It leaves the agent with incomplete context for a production environment.

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

Parameters1/5

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

Schema description coverage is 0%, and the description adds no meaning beyond the schema for the 'url' parameter. It only says 'a single URL' without specifying format, validation, or other constraints.

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?

The description clearly states the verb 'Notify' and the resource 'a single URL', listing specific search engines. It distinguishes from the sibling tool 'indexnow_submit_urls' by specifying 'single URL'.

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

Usage Guidelines3/5

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

The description provides a prerequisite (env var and hosted key file) but does not explicitly state when to use this tool vs alternatives or when not to use it. Usage is implied but not fully guided.

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

indexnow_submit_urlsA

Batch-notify search engines about up to 10,000 URLs (must share one host).

Best for sitemap-wide rebuilds or large content updates.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior3/5

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

Without annotations, the description carries full burden. It discloses the batch constraint (shared host) but lacks details on idempotency, error handling, or rate limits.

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

Conciseness5/5

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

Two sentences: first defines action and capacity, second provides usage guidance. No redundant words.

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

Completeness4/5

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

Covers purpose, batch limit, and host constraint. Output schema exists, so return values are not required. Could briefly mention protocol to avoid ambiguity, but not necessary.

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 0%, but description compensates by adding the essential constraint that all URLs must share one host, which is not in the schema.

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?

The description clearly states the tool's action ('batch-notify search engines') and scope ('up to 10,000 URLs, must share one host'), distinguishing it from sibling tools like 'indexnow_submit_url'.

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

Usage Guidelines4/5

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

The description suggests use cases ('Best for sitemap-wide rebuilds or large content updates'), but does not explicitly exclude single URL submissions or reference alternatives.

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

list_llm_enginesA

Return the LLM engines currently configured (have an API key).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.5/5.0
Behavior4/5

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

With no annotations, the description communicates a safe read operation. It implies no side effects, which is sufficient for this simple list tool.

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

Conciseness5/5

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

The description is a single, concise sentence that conveys the tool's purpose directly. No wasted words.

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?

For a tool with no parameters and an output schema, the description is complete. It tells exactly what the tool returns and the condition for inclusion.

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?

There are no parameters (0 params), so the baseline is 4. The description does not need to add parameter meaning.

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?

The description clearly states the tool returns LLM engines that have an API key, with a specific verb and resource. It effectively distinguishes from siblings like openai_query or gemini_query, which are query tools.

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

Usage Guidelines4/5

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

The description provides clear context for when to use the tool (to check configured engines), but doesn't explicitly state alternatives or when not to use it.

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

multi_llm_citation_checkA

Citation-share metrics for target_domain across every configured LLM.

This is the headline GEO/AEO tool: feed it your top 20-50 user questions, get a per-engine breakdown of how often ChatGPT/Claude/Gemini/Perplexity cite your domain, plus the top competing domains per engine. Run weekly and diff to track AI-search visibility over time.

ParametersJSON Schema
NameRequiredDescriptionDefault
questionsYes
target_domainYes
enginesNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations provided, the description carries full burden. It discloses the tool's behavior: it produces citation-share metrics and top competing domains per engine, based on user questions. It also positions the tool as a headline metric for GEO/AEO and suggests a diffing workflow, which adds behavioral context beyond a simple read operation.

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

Conciseness5/5

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

The description is two paragraphs with front-loaded purpose: the first sentence states the core action. Every sentence adds value, with no fluff. It efficiently covers purpose, inputs, usage, and output nature.

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?

Given the presence of an output schema (not shown but indicated), the description does not need to detail return values. It provides complete context: inputs (questions, target_domain, engines), usage advice (top 20-50, weekly diff), and output nature (per-engine breakdown, top competing domains). It also explains the tool's strategic role as a headline GEO/AEO metric.

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

Parameters3/5

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

Schema description coverage is 0%, so the description must compensate. It explains that 'questions' are 'your top 20-50 user questions' and 'target_domain' is the domain to check. 'engines' is implied by 'per-engine breakdown'. However, it does not specify constraints like question length limits, domain format, or the default behavior for engines (null meaning all).

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?

The description uses specific verbs ('Citation-share metrics', 'feed it your top 20-50 user questions', 'get a per-engine breakdown') and clearly identifies the resource (target_domain) across configured LLMs. It distinguishes itself from siblings like 'perplexity_citation_check' (single engine) and 'multi_llm_query' (querying) by positioning itself as the 'headline GEO/AEO tool' and describing its scope.

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

Usage Guidelines4/5

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

The description explicitly recommends use cases: 'feed it your top 20-50 user questions' and suggests a cadence ('Run weekly and diff to track AI-search visibility over time'). It implies that for single-engine citation checks, one would use engine-specific tools (e.g., 'perplexity_citation_check'), but does not explicitly state when not to use this tool.

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

multi_llm_queryA

Ask the same question to all (or selected) configured LLM engines in parallel.

engines: optional subset of ["perplexity","openai","anthropic","gemini"]. Default: every engine with credentials configured (see geoseo_status). Engines that error are reported per-engine and don't block the others.

ParametersJSON Schema
NameRequiredDescriptionDefault
questionYes
enginesNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations, the description discloses important behavioral traits: parallel execution, per-engine error reporting, and default engine selection. It clearly states the non-blocking nature of errors. However, it doesn't explicitly confirm that the operation is non-destructive, though that is implied.

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

Conciseness5/5

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

The description is concise, comprising two sentences that front-load the main purpose and provide essential details in a structured manner. No redundant information.

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?

Given the tool has only two parameters (one required), an output schema, and a straightforward purpose, the description is sufficiently complete. It covers the optional engine selection, default behavior, and error handling, leaving no critical gaps.

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

Parameters3/5

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

Schema coverage is 0%, so the description must compensate. It adds meaning for the 'engines' parameter by listing allowed values ("perplexity","openai","anthropic","gemini") and explaining the default. However, it does not describe the 'question' parameter beyond its name, leaving some semantics to the schema.

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?

The description clearly states the tool's purpose: 'Ask the same question to all (or selected) configured LLM engines in parallel.' This distinguishes it from sibling tools like claude_query, gemini_query, openai_query, and perplexity_query which target single engines, and multi_llm_citation_check which has a different purpose.

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

Usage Guidelines4/5

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

The description explains when to use the tool (for parallel queries to configured LLM engines) and how to optionally select engines. It mentions default behavior (every engine with credentials) and error handling. However, it doesn't explicitly state when not to use it or compare alternatives, though the context is already clear.

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

openai_queryB

Ask ChatGPT (with web search) a question; return answer + cited URLs.

Uses the OpenAI Responses API with the web_search_preview tool. Default model: GEOSEO_OPENAI_MODEL (gpt-4o-mini).

ParametersJSON Schema
NameRequiredDescriptionDefault
questionYes
modelNo
system_promptNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.3/5.0
Behavior2/5

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

With no annotations provided, the description must fully disclose behavioral traits. It reveals the underlying API (OpenAI Responses with web_search_preview) and default model, but omits important aspects like rate limits, token usage, cost implications, error handling, or whether the tool is read-only. This is insufficient for an agent to reliably invoke it.

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?

The description is concise with two sentences, front-loading the core purpose and key technical detail. It earns its place without redundancy, though it could be slightly more informative without losing conciseness.

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

Completeness3/5

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

Given the complexity (3 parameters, output schema exists), the description provides a basic overview but lacks depth on return format beyond 'answer + cited URLs' and parameter semantics. It is adequate for simple use cases but insufficient for nuanced invocation.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate. It only mentions the default model, offering minimal insight into the 'model' parameter. The 'question' and 'system_prompt' parameters are not explained at all (no length limits, purpose, or how they affect behavior).

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?

The description clearly states the tool's purpose: ask ChatGPT with web search and return answer plus cited URLs. It specifies the verb 'ask', the resource 'ChatGPT (with web search)', and the output, effectively distinguishing it from sibling tools like claude_query or gemini_query which may not use web search.

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

Usage Guidelines3/5

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

The description implies the tool is for questions requiring web search, providing clear context by mentioning 'with web search'. However, it lacks explicit guidance on when to use this tool versus alternatives like perplexity_query or multi_llm_query, and no exclusion criteria.

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

perplexity_citation_checkC

Citation share for target_domain across a Perplexity question batch.

ParametersJSON Schema
NameRequiredDescriptionDefault
questionsYes
target_domainYes
modelNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.6/5.0
Behavior2/5

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

No annotations are provided, and the description does not disclose behavioral traits such as side effects, authorization requirements, rate limiting, or whether the tool is read-only. The description is insufficient for the agent to understand operational behavior.

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

Conciseness3/5

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

The description is a single sentence, which is concise but lacks essential details. It is not overly verbose, but it sacrifices completeness for brevity.

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

Completeness2/5

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

Despite having an output schema, the description does not explain return values or provide enough context for a 3-parameter tool. The description is incomplete for an agent to use the tool effectively without additional lookup.

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

Parameters2/5

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

Schema description coverage is 0%, yet the description only mentions 'target_domain' and 'questions' without explaining their format, constraints, or the optional 'model' parameter. The description fails to add meaningful context beyond the schema.

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

Purpose4/5

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

Description clearly indicates the tool checks citation share for a target domain across a batch of Perplexity questions. It distinguishes itself from sibling tools like 'aio_citation_check' by specifying Perplexity as the source.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives like 'snapshot_llm_citations' or 'multi_llm_citation_check'. No preconditions or use cases are mentioned.

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

perplexity_queryC

Ask Perplexity a question; return answer + cited URLs/domains.

ParametersJSON Schema
NameRequiredDescriptionDefault
questionYes
modelNo
system_promptNo
max_tokensNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.7/5.0
Behavior2/5

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

With no annotations, the description should disclose behaviors. It mentions returning cited URLs but omits details on model selection, system prompt, max_tokens, or any side effects/limitations.

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?

Single sentence, front-loaded, and to the point. Could be longer but remains efficient for its scope.

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

Completeness1/5

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

Incomplete given 4 parameters with zero schema descriptions and no annotations. Lacks information on return format, citation details, or potential errors. Output schema existence does not excuse missing behavioral coverage.

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

Parameters1/5

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

Schema description coverage is 0%, yet the description adds no parameter details. It only implies 'question' usage, ignoring model, system_prompt, and max_tokens. Fails to compensate for schema gap.

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?

The description clearly states the tool's function: ask Perplexity a question and return answer with cited URLs/domains. This specific verb+resource combination distinguishes it from sibling tools like claude_query or gemini_query.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives like perplexity_citation_check or multi_llm_query. The description does not provide context for selection.

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

snapshot_gscB

Run a GSC performance query and persist the rows as a snapshot.

Run this on a schedule (cron, n8n, launchd — anything that can invoke an MCP tool) to build a local time-series of search performance. Default dimensions: ["query"].

ParametersJSON Schema
NameRequiredDescriptionDefault
site_urlYes
start_dateNo
end_dateNo
dimensionsNo
row_limitNo
search_typeNoweb

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.3/5.0
Behavior2/5

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

With no annotations, the description carries full burden. It states persistence but does not disclose side effects (overwrite vs. append), idempotency, or permission requirements. The only behavioral detail is default dimensions.

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

Conciseness5/5

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

The description is two sentences with no fluff. The first sentence states purpose and the second provides usage guidance. Every word earns its place.

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

Completeness2/5

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

Given 6 parameters, no schema descriptions, and no annotations, the description is incomplete. It lacks parameter semantics and behavioral details. The output schema exists but is not referenced, so the description does not compensate.

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

Parameters1/5

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

Schema coverage is 0% and the description only mentions default dimensions for one parameter. It provides no explanation for site_url, start_date, end_date, row_limit, or search_type, leaving 5 of 6 parameters undocumented.

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?

The description clearly states the verb 'Run' and the resource 'GSC performance query' with the outcome 'persist the rows as a snapshot'. It distinguishes from sibling gsc_performance by emphasizing persistence and scheduling for time-series.

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

Usage Guidelines4/5

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

The description explicitly says to run on a schedule (cron, n8n, lauchd) to build a time-series, providing clear use context. However, it does not mention when not to use or explicitly compare to alternatives like gsc_performance.

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

snapshot_llm_citationsA

Run multi-LLM citation check and persist the per-question results.

Builds the dataset behind trend_llm_citations. engines defaults to every configured LLM (see geoseo_status).

ParametersJSON Schema
NameRequiredDescriptionDefault
questionsYes
target_domainYes
enginesNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. It discloses that the tool runs a multi-LLM citation check and persists results, but it does not mention important behaviors such as whether it is destructive, rate-limited, or requires specific permissions. It also omits side effects like overwriting previous snapshots.

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

Conciseness5/5

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

The description is extremely concise, with two sentences plus a note about defaults. It is front-loaded with the tool's purpose and efficiently provides necessary detail without fluff.

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

Completeness3/5

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

Given the tool has an output schema (not shown), return values need not be explained. However, the description omits context about prerequisites (e.g., configured LLM engines), potential costs (multi-LLM queries can be expensive), or whether it can be run multiple times without harmful effects. For a moderately complex tool, this information would improve completeness.

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

Parameters3/5

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

Schema description coverage is 0%, so the description must add meaning. It explains that 'engines defaults to every configured LLM,' which adds value beyond the schema. However, it does not describe 'questions' or 'target_domain' beyond their names, which are fairly self-explanatory but could benefit from context (e.g., format or constraints).

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?

The description clearly states the tool's action: 'Run multi-LLM citation check and persist the per-question results.' It distinguishes from siblings like 'multi_llm_citation_check' (which likely does not persist) and 'trend_llm_citations' (which builds on this snapshot).

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

Usage Guidelines4/5

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

The description says it 'Builds the dataset behind trend_llm_citations,' providing context for when to use it (when you need persist results for trending). It also notes that 'engines defaults to every configured LLM,' giving default behavior. However, it does not explicitly state when not to use it or name alternatives like multi_llm_citation_check.

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

snapshot_serp_aioC

Run AIO citation check via SerpAPI and persist as serpapi_aio engine rows.

ParametersJSON Schema
NameRequiredDescriptionDefault
queriesYes
target_domainYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior2/5

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

No annotations provided, so the description must convey side effects and constraints. 'Persist' implies state change, but there is no mention of idempotency, permissions, rate limits, or cost (SerpAPI is external). The description does not warn about potential destructive or resource-heavy behavior.

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

Conciseness5/5

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

The description is a single sentence with no fluff. It efficiently conveys the core action and data flow.

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

Completeness3/5

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

The description covers the basic operation and output storage, but lacks guidance on input semantics and behavioral expectations. Given the existence of an output schema, return values need not be detailed, but the overall context for tool selection is thin.

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

Parameters2/5

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

Schema description coverage is 0%, yet the description does not explain what the 'queries' and 'target_domain' parameters mean. The agent must infer that queries are search terms and target_domain is the scope, which is insufficient for correct invocation.

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

Purpose4/5

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

The description clearly states the action: run an AIO citation check via SerpAPI and persist results. It distinguishes from siblings like aio_check and aio_citation_check by emphasizing persistence. However, the term AIO is not defined, and 'engine rows' is jargon that may confuse an agent.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus siblings. Sibling tools include multiple citation check and snapshot tools, but the description provides no context about when to choose this one, e.g., for which scenarios or data needs.

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

trend_gscA

Time-series of clicks/impressions/position from stored GSC snapshots.

Aggregates by captured_at. Filter by query and/or page to drill in. Returns up to limit most recent snapshots in chronological order.

ParametersJSON Schema
NameRequiredDescriptionDefault
site_urlYes
queryNo
pageNo
limitNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior3/5

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

No annotations provided, so description carries full burden. It mentions aggregation by captured_at, filtering, chronological ordering, and limit. However, it does not explicitly state read-only behavior, data freshness, or that it queries stored snapshots (though that's implied). Additional behavioral context like safety or rate limits would be beneficial.

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

Conciseness5/5

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

Two sentences, each serving a purpose: first defines the tool's output, second explains aggregation and filtering. No redundant wording. Optimal length for the information provided.

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

Completeness4/5

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

The description covers the core functionality: time-series from stored GSC snapshots, filtering, and ordering. With an existing output schema, it is reasonably complete. However, missing details like data source freshness or parameter format slightly reduce completeness.

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

Parameters3/5

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

Schema description coverage is 0%, so description must compensate. It adds meaning to site_url (required), query and page (optional filters), and limit (default 50). However, it lacks details on valid formats or constraints for parameters, especially query and page. The description provides minimal extra value beyond the schema structure.

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?

The description clearly states the tool returns time-series data (clicks/impressions/position) from stored GSC snapshots, aggregated by captured_at. It distinguishes itself from siblings like gsc_performance and snapshot_gsc by specifying the source and aggregation.

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

Usage Guidelines4/5

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

The description explains filtering by query and page for drill-down, and the limit parameter. It implies usage for trend analysis but doesn't explicitly state when not to use or mention alternatives. Sibling context provides additional guidance.

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

trend_initB

Create the local SQLite snapshot DB if it doesn't exist; return its path.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It discloses the conditional creation and returned path, which is adequate for a simple tool. However, it omits details like error handling, file locking, or whether existing DBs are overwritten (implied not, but not explicit). With no annotations, more transparency would be beneficial.

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?

The description is a single concise sentence that front-loads the action and outcome. It contains no superfluous information. While it could be slightly more structured (e.g., listing side effects), it is efficient.

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

Completeness4/5

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

Given zero parameters and the existence of an output schema (implied), the description provides the essential purpose and return. It does not explain relation to siblings or prerequisites, but for a simple init tool, it is sufficiently complete. The context signals confirm no parameters and an output schema, so the description does not need to detail return values.

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?

The tool has zero parameters, so the schema coverage is 100% trivially. The description adds no parameter-level detail, but none is needed. Baseline for 0 params is 4, and the description is adequate.

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

Purpose4/5

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

The description clearly states the tool creates a local SQLite snapshot DB conditionally and returns its path. The verb 'create' and resource 'local SQLite snapshot DB' are specific, and the condition 'if it doesn't exist' adds clarity. However, it does not explicitly differentiate from sibling snapshot_* tools, which may have overlapping functionality.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. Given multiple sibling tools like snapshot_gsc and trend_gsc, an explicit context or prerequisite relationship would help. The tool likely serves as initialization, but this is not stated.

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

trend_llm_citationsB

Per-snapshot citation share for target_domain over time.

engine filters to one of perplexity|openai|anthropic|gemini|serpapi_aio. Returns rows of {captured_at, engine, questions, cited, citation_share}.

ParametersJSON Schema
NameRequiredDescriptionDefault
target_domainYes
engineNo
limitNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations, the description must disclose behavioral traits. It does not mention whether the tool is read-only, requires authentication, has rate limits, or any side effects. It only describes the output format, leaving the agent uninformed about important behavioral context.

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

Conciseness5/5

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

The description is extremely concise: two sentences that front-load the purpose and output, then clarify the engine parameter. Every word adds value, with no fluff or redundancy.

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

Completeness3/5

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

While an output schema exists and the description lists output columns, it lacks context on what a snapshot is, how timestamps are handled, and the limit parameter's effect. For a time-series tool, additional detail would improve completeness, but the basic functionality is conveyed.

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

Parameters3/5

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

Schema coverage is 0%, so the description must compensate. It explains that engine filters to one of five specific values and that target_domain is a domain string. However, limit parameter is not mentioned, and the description does not fully cover all parameters.

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

Purpose4/5

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

The description clearly identifies the tool's purpose: returning per-snapshot citation share for a target domain over time. It specifies the output columns and the optional engine filter, making the intent unambiguous. However, it does not explicitly differentiate from siblings like snapshot_llm_citations or multi_llm_citation_check.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives (e.g., snapshot_llm_citations for a single snapshot, list_llm_engines for available engines). No prerequisites, when-not-to-use, or context for choosing this trend tool.

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

trend_statsB

Inventory of what's stored: row counts, sites/domains, oldest/newest snapshots.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.3/5.0
Behavior2/5

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

With no annotations, the description carries the full burden, but only lists output types. It does not disclose read-only behavior, rate limits, or data freshness. The minimal behavioral insight limits transparency.

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

Conciseness5/5

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

Single sentence, no superfluous words. Front-loaded with the core action 'Inventory of what's stored'. Efficient and to the point.

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

Completeness4/5

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

For a simple parameterless tool with an output schema, the description adequately summarizes the content. It could benefit from mentioning the output format (list/object) but the existing output schema likely covers that.

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?

Since there are zero parameters and schema coverage is 100%, the description adds context about the output (row counts, sites/domains, snapshots), which goes beyond the empty schema. Baseline 4 is appropriate.

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

Purpose4/5

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

The description clearly states the tool returns an inventory of stored data including row counts, sites/domains, and snapshot ages. It uses a specific verb and resource, but does not explicitly differentiate from sibling tools like trend_gsc or trend_init.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. The description does not mention use cases, prerequisites, or exclusions.

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

validate_llms_txtA

Validate an llms.txt file (local path or URL) against the spec.

Returns parsed structure plus an issues list with line numbers for any violations (missing H1, broken link syntax, non-http(s) URLs, etc).

ParametersJSON Schema
NameRequiredDescriptionDefault
sourceYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

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

Without annotations, the description carries the burden of behavioral disclosure. It explains that it returns a parsed structure and an issues list with line numbers, and lists some violation types (missing H1, broken links, non-HTTP URLs). However, it does not mention side effects, auth needs, or rate limits.

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

Conciseness5/5

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

The description is two sentences long, front-loaded with the main purpose, and the second sentence adds valuable detail on output. No unnecessary words.

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

Completeness4/5

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

Given the tool has a single parameter, an output schema (present), and low complexity, the description is sufficiently complete. It covers what the tool does and the output structure without needing to repeat schema details.

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

Parameters3/5

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

The schema has 0% description coverage. The description adds meaning by specifying that 'source' can be a local path or URL, but it does not detail format requirements or expected schemes. This is helpful but minimal for a single parameter.

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?

The description clearly states the tool validates an llms.txt file against a spec, with a specific verb ('validate') and resource. It distinguishes from sibling tools like generate_llms_txt and other audit tools.

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

Usage Guidelines2/5

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

The description does not provide any guidance on when to use this tool versus alternatives, nor does it mention prerequisites, exclusions, or context. It only states what the tool does.

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

TDQS

A3.5/5.0
Disambiguation5/5

Each tool has a clearly distinct purpose, with descriptions that precisely differentiate similar-sounding tools (e.g., aio_check vs aio_citation_check, multi_llm_query vs individual query tools). There is no ambiguity; agents can reliably select the correct tool for each task.

Naming Consistency4/5

Tool names consistently use snake_case and often follow a descriptive pattern (e.g., audit_page, bing_crawl_issues, snapshot_llm_citations). A few tools like geoseo_status or internal_link_graph deviate from a strict verb_noun pattern, but the overall naming is clear and predictable.

Tool Count3/5

36 tools is high for typical MCP servers, but each tool serves a specific function within the comprehensive GEO/SEO domain. The set covers audits, search engines, monitoring, and trend analysis, so the count is justified, though it may be overwhelming for simple tasks.

Completeness5/5

The tool surface is remarkably complete for GEO/SEO work, covering page/site audits, internal linking, search console data, AI overviews, multi-LLM citation checks, IndexNow submission, llms.txt management, and trend tracking. There are no obvious dead ends or missing operations for the stated purpose.

Maintenance

ActivityInactive
ResponsivenessUnresponsive

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    F
    maintenance
    GEO (Generative Engine Optimisation). This tool shows you exactly how AI search engines see your content - claim density, writing quality, E-E-A-T signals, extractability. Research-backed metrics that correlate with 40% higher AI citation rates.
    2
    87
    21
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Agent-first SEO toolkit with 24 MCP tools for keyword research, rank tracking, site audits up to 50k pages, competitor analysis, content gap detection, domain reputation, backlink intelligence, Google Search Console integration, and AI-powered strategy generation with Claude, GPT, and Ollama. SQLite-backed and bring-your-own-key.
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    AI search intelligence + Ahrefs-class SEO suite as 59 MCP tools. Track your brand across ChatGPT, Google AI Overview, Gemini, Claude, and Perplexity with persona-anchored Brand Radar dispatches.
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    Monitors brand mentions, citations, sentiment, competitor share of voice, and GEO performance across AI search engines.
    1
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Rachit8484/geoseo-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server