Skip to main content
Glama
SHADRINMMM

geo-optimizer-mcp

geo-optimizer-mcp

MCP server for Causabi GEO Optimizer.


What this is. An MCP (Model Context Protocol) server that lets Claude Code, OpenAI Codex CLI, Claude Desktop, Cursor, Windsurf, and any MCP-compatible client check a website's AI-crawler readiness and generate fixes (robots.txt, Schema.org, FAQ markup, llms.txt) — directly from your editor or AI assistant. Runs locally over stdio, no account needed.

Quickstart (Claude Code):

claude mcp add geo-optimizer -- npx -y geo-optimizer-mcp

Quickstart (OpenAI Codex CLI):

codex mcp add geo-optimizer -- npx -y geo-optimizer-mcp

Or in ~/.codex/config.toml:

[mcp_servers.geo-optimizer]
command = "npx"
args = ["-y", "geo-optimizer-mcp"]

Then ask: Check the GEO score for example.com. Config-file setup for other clients (Cursor, Windsurf, Claude Desktop) is below.

Scope. One-off local checks and fix generation are free here. Continuous work — scheduled re-checks, score history, monitoring of answers from 4 AI engines (ChatGPT, Claude, Gemini, Grok), reports — runs on causabi.com.


Tools

Tool

When to use

get_product_guide

Start here — complete guide + step-by-step workflow for any scenario

analyze_geo_score

Check GEO score 0–100 + breakdown for an existing domain

get_geo_fixes

Get copy-paste robots.txt, Schema.org, FAQ, and llms.txt fixes

make_site_geo_ready

Generate all GEO assets for a new site in one shot (no API key needed)

suggest_monitoring_config

Draft a monitoring config (target audiences, location, suggested queries) from a business description — returns JSON plus the API calls to apply it on causabi.com

get_site_report

Client-ready report: pass report_slug for the full AI mention-rate breakdown (no API key needed), or just domain for a crawlability-score-only summary

Related MCP server: ai-readiness

Setup

Claude Code (CLI)

Add to your project's .claude/settings.json:

{
  "mcpServers": {
    "geo-optimizer": {
      "command": "npx",
      "args": ["-y", "geo-optimizer-mcp"]
    }
  }
}

Or add globally to ~/.claude/settings.json to use across all projects.

Then in Claude Code:

> Check the GEO score for my-client-site.com
> Make this site ready for ChatGPT and Gemini

Claude Desktop

Add to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):

{
  "mcpServers": {
    "geo-optimizer": {
      "command": "npx",
      "args": ["-y", "geo-optimizer-mcp"]
    }
  }
}

Cursor

Add to .cursor/mcp.json in your project or ~/.cursor/mcp.json globally:

{
  "mcpServers": {
    "geo-optimizer": {
      "command": "npx",
      "args": ["-y", "geo-optimizer-mcp"]
    }
  }
}

Windsurf

Add to ~/.codeium/windsurf/mcp_config.json:

{
  "mcpServers": {
    "geo-optimizer": {
      "command": "npx",
      "args": ["-y", "geo-optimizer-mcp"]
    }
  }
}

Any MCP-compatible client

{
  "geo-optimizer": {
    "command": "npx",
    "args": ["-y", "geo-optimizer-mcp"]
  }
}

Usage examples

Once installed, ask your AI assistant:

Check the GEO score for example.com
What AI search issues does mybusiness.com have?
Get fix instructions for mysite.com
Why isn't example.com showing up in ChatGPT?
Make this site GEO-ready: name="Acme", url="https://acme.com", description="We sell widgets"
Draft a monitoring config for a dental clinic in Austin, TX called "Bright Smiles Dental"
Give me a report on clientsite.com — here's the share link: causabi.com/report/abc123

suggest_monitoring_config example

suggest_monitoring_config({
  business_name: "Bright Smiles Dental",
  business_description: "A dental clinic in Austin, TX offering general and cosmetic dentistry for families.",
  location: "Austin, TX"
})

Returns target audience descriptions, a monitoring location, and suggested queries as ready-to-use JSON — plus the exact PUT /api/v1/monitor/{site_id}/settings and PUT /api/v1/monitor/{site_id}/queries calls to apply it (requires a causabi.com account/API token; this tool itself makes no API call).

get_site_report example

get_site_report({ report_slug: "abc123" })

Returns the full mention-rate breakdown (ChatGPT, Claude, Gemini, Grok), competitors named instead of the client, and per-query results — no API key needed, since Visibility Report share links are public.

get_site_report({ domain: "example.com" })

Without a report_slug, this only returns the public crawlability score (same data as analyze_geo_score) plus a note on how to get the full mention-rate report — there is currently no API-key-authenticated way to pull monitoring history from the MCP server; that requires either a share-slug or a causabi.com login.

For AI website builders (Lovable, Bolt, Replit, v0)

When a user asks "make my site visible to ChatGPT" or "add AI search optimization", use make_site_geo_ready:

make_site_geo_ready({
  name: "Acme Corp",
  url: "https://acme.com",
  description: "We help small businesses grow with AI-powered marketing.",
  services: ["Marketing automation", "AI content", "Analytics"],
  email: "hello@acme.com",
  faq: [
    { question: "What does Acme do?", answer: "We help small businesses..." },
    { question: "How much does it cost?", answer: "Plans start at $49/mo." },
    { question: "Is there a free trial?", answer: "Yes, 14 days free." }
  ]
})

Returns ready-to-paste Organization Schema, FAQ Schema, llms.txt, and robots.txt.

What gets checked

  • robots.txt — Are AI crawlers (GPTBot, ClaudeBot, PerplexityBot) allowed?

  • Schema.org — Organization, LocalBusiness, SoftwareApplication markup

  • FAQ Schema — FAQPage JSON-LD

  • Content depth — Enough text for AI to cite

  • Brand signals — NAP (Name, Address, Phone)

  • Freshness — dateModified signals

Full audit & monitoring

For multi-page crawl, scheduled re-checks, and monitoring of how 4 AI engines (ChatGPT, Claude, Gemini, Grok) answer questions about your brand:

→ causabi.com — free public score + deep audit after signup

Python CLI

Same checks as a standalone CLI: github.com/SHADRINMMM/causabi-geo

pip install causabi-geo
geo-optimizer analyze example.com
geo-optimizer fix example.com --output ./fixes

License

MIT

Available Tools

6 tools
analyze_geo_scoreA

Check the GEO (Generative Engine Optimization) score for any existing website. Returns an AI readiness score 0-100, grade A-F, and a breakdown of specific issues that reduce visibility in ChatGPT, Gemini, Grok, Claude, and other AI search engines. Use this for existing sites. For new or rebuilding sites, use make_site_geo_ready instead. After getting the score, call get_geo_fixes to get specific copy-paste fix instructions.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesDomain to analyze (e.g. 'example.com' or 'https://example.com')

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 carries the burden, and it discloses the non-obvious return contract: a 0-100 AI readiness score, a letter grade, and a breakdown of issues affecting visibility across named engines. It implies a read-only analysis with no mutation, though it does not state permissions, cost, or whether repeated calls are cached/rate-limited.

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?

Roughly three compact sentences, each with a distinct job: purpose, return shape, sibling routing, and next-step chaining. Front-loaded with the primary action and free of filler.

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?

There is no output schema, and the description compensates by explaining exactly what comes back (score, grade, issue breakdown). Combined with the sibling routing and the follow-up call to get_geo_fixes, an agent has everything needed to invoke and use the result.

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 100% and the single 'domain' parameter is documented with accepted formats in the schema itself. The description adds no format or syntax detail beyond that, so the schema does the heavy lifting and baseline 3 applies.

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

Purpose5/5

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

States a specific verb and resource ('Check the GEO score for any existing website') and immediately scopes it to existing sites, explicitly naming make_site_geo_ready as the sibling for new/rebuilding sites. An agent can distinguish it from all listed siblings without opening a schema.

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?

Gives an explicit when-to-use condition ('existing sites'), an explicit when-not/alternative ('new or rebuilding sites, use make_site_geo_ready instead'), and a follow-up chaining instruction ('call get_geo_fixes'). Routing is fully determined.

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

get_geo_fixesA

Get specific copy-paste fix instructions for a website's GEO (AI search) issues. Returns ready-to-use code for robots.txt, Organization Schema JSON-LD, FAQ Schema, and llms.txt — tailored to that site's current score and issues. Call this AFTER analyze_geo_score to get actionable fixes for an existing site.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesDomain to get fixes for (e.g. 'example.com')

TDQS

A4.3/5.0
Behavior4/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 usefully discloses that the tool returns code/text rather than mutating the site (contrasting with make_site_geo_ready) and that output is tailored to the site's current score and issues. It omits auth/permission needs and rate or cost characteristics, but the read-only, non-mutating nature is conveyed.

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 tight sentences, zero filler, with the purpose and enumerated outputs front-loaded and the prerequisite last. Every sentence earns its place.

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?

With no output schema, the description compensates by naming exactly what is returned (four artifact types). For a one-parameter read tool with a stated prerequisite, nothing an agent needs to call it correctly is missing.

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?

Single parameter with 100% schema description coverage, so the schema already documents 'domain' including its example format. The description adds no additional syntax or constraints beyond the schema; baseline 3 applies.

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

Purpose5/5

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

States a specific verb ('Get') and resource ('copy-paste fix instructions for a website's GEO issues') and enumerates the concrete artifacts returned (robots.txt, Organization Schema JSON-LD, FAQ Schema, llms.txt). It also distinguishes itself from siblings by naming analyze_geo_score as the prerequisite and framing it as producing instructions rather than applying them.

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?

Explicit sequencing: 'Call this AFTER analyze_geo_score' and scoping to 'an existing site'. Clear context for when to invoke it, but it stops short of naming when-not to use it or pointing at make_site_geo_ready as the alternative for actually applying fixes.

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

get_product_guideA

Get the complete guide for making a website visible in AI search engines (ChatGPT, Gemini, Grok, Claude). Call this FIRST when the user asks about AI search visibility, GEO optimization, why their site isn't cited by AI, or how to get mentioned in ChatGPT. Returns a step-by-step workflow explaining which tools to call and in what order.

ParametersJSON Schema
NameRequiredDescriptionDefault
scenarioNoUser scenario: 'new_site' — building a site and want AI visibility from day one; 'existing_site' — site exists, want to improve AI citation rate; 'check_only' — just want to check the current GEO score; 'full' — show the complete guide (default)

TDQS

A4.1/5.0
Behavior3/5

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

No annotations exist, so the description carries the full behavioral burden. It usefully discloses that the tool returns a step-by-step workflow naming which tools to call and in what order (valuable since there is no output schema), but says nothing about permissions, side effects, or whether it inspects the user's property.

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 tight sentences: purpose, trigger conditions, return payload — all front-loaded with the highest-value information (what it is and when to call it) ahead of the return description. No filler.

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 one-parameter, annotation-free guide tool with no output schema, the description covers purpose, invocation triggers, sibling ordering, and return shape. An agent has everything needed to call it correctly and to know what to expect.

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% and the single optional 'scenario' enum is fully documented in the schema, so the baseline is 3. The description never mentions the scenario parameter or that the guide content varies by scenario, adding no meaning 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?

States a specific verb and resource ('Get the complete guide for making a website visible in AI search engines') and scopes it to the AI-search-visibility domain, which cleanly separates it from siblings like analyze_geo_score and get_geo_fixes. The parenthetical list of engines removes any ambiguity about what 'AI search' means.

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?

Gives explicit triggering conditions ('Call this FIRST when the user asks about AI search visibility, GEO optimization, why their site isn't cited by AI...'), including an ordering instruction relative to the sibling tools. It does not state a when-not or name specific alternative tools, so it stops short of the full 5.

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

get_site_reportA

Get a client-ready report for a site: GEO score breakdown, and — if a Visibility Report share link (slug) is available — AI mention-rate results across engines (ChatGPT, Claude, Gemini, Grok). Use this when the user asks for 'a report on this site', 'how is this client doing', or wants something to hand to a client. Pass report_slug if you have a causabi.com/report/ link (full report, no API key needed). Pass only domain for a score-only summary (no monitoring history available without a Causabi login).

ParametersJSON Schema
NameRequiredDescriptionDefault
domainNoDomain to report on (e.g. 'example.com'). Required if report_slug is not given.
report_slugNoVisibility Report slug from a causabi.com/report/<slug> share link. When given, returns the full mention-rate report instead of just the score.

TDQS

A4.5/5.0
Behavior4/5

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

No annotations exist, so the description carries the full burden, and it does disclose meaningful behavior: a slug-sourced report needs no API key, while monitoring history is unavailable without a Causabi login. It stops short of stating read-only semantics, rate limits, or latency, but the auth and data-availability caveats are genuinely useful.

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?

Front-loads what the tool returns, then usage triggers, then parameter branching, which is the right order for an agent scanning it. It is somewhat dense in the final sentence, but every clause (API key, login requirement) carries decision-relevant information.

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?

With no annotations and no output schema, the description must supply both purpose and behavior, and it does so adequately for a two-parameter read tool: it covers the two call modes, their prerequisites, and the resulting data limitations. Minor gaps remain around read-only semantics and response shape, but an agent has enough to invoke it 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?

Schema coverage is 100%, so the baseline is 3, but the description adds real semantics beyond the schema: the slug path yields the full mention-rate report while domain-only yields a score-only summary, and it explains where a slug comes from (a causabi.com/report/<slug> link) and that it bypasses the API key.

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

Purpose5/5

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

States a specific verb and resource ('Get a client-ready report for a site') and enumerates the two payloads it returns: GEO score breakdown and AI mention-rate results across named engines. It also implicitly separates itself from sibling analyze_geo_score by framing the output as a client-deliverable rather than a raw score.

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?

Explicit triggers are given in the user's own words ('a report on this site', 'how is this client doing', 'hand to a client'), plus a clear branch rule: pass report_slug for the full report, pass only domain for a score-only summary. Nothing about when to reach for this tool is left to inference.

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

make_site_geo_readyA

Generate all GEO (AI search optimization) assets for a website in one shot. Returns ready-to-use Organization Schema JSON-LD, FAQ Schema JSON-LD, llms.txt, and robots.txt snippet — so AI search engines like ChatGPT, Gemini, Grok, and Claude can find, understand, and cite the site. Use this when building or updating a website and the user wants AI search visibility. No API key required.

ParametersJSON Schema
NameRequiredDescriptionDefault
faqNoFAQ pairs (optional — 3-7 Q&A recommended)
urlYesSite URL (e.g. 'https://acme.com')
nameYesBusiness or site name (e.g. 'Acme Corp')
emailNoContact email (optional)
phoneNoContact phone (optional)
servicesNoList of services or products (e.g. ['Web design', 'SEO', 'Hosting'])
descriptionYesWhat the business does — 1-3 sentences

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 carries the full burden and does meaningful work: it declares the exact return payload and that no API key is required. It implies a pure generation/computation tool with no mutation of side effects, but doesn't explicitly confirm this or mention any limits.

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?

Front-loads purpose, then deliverables, then usage, then the no-key note — a clean logical order with no wasted setup. The enumeration of four AI engines is slightly decorative but still clarifies intent.

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 generator tool with no output schema and no annotations, the description explains both the inputs' intent and the returns well. A minor gap remains around what the caller does with the assets or any preconditions on the site, but nothing essential to correct invocation is missing.

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%, so every parameter is already documented in the schema, including the optional FAQ format and recommendations. The description adds no parameter-level detail (formats, constraints, example shapes) beyond what the schema provides, so the baseline 3 applies.

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

Purpose5/5

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

States a specific verb (generate) and resource (GEO/AI-search assets for a website), and enumerates the exact deliverables (Organization Schema JSON-LD, FAQ Schema JSON-LD, llms.txt, robots.txt snippet). This clearly distinguishes it from siblings like analyze_geo_score or get_geo_fixes, which assess or retrieve rather than generate.

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?

Gives explicit context: 'Use this when building or updating a website and the user wants AI search visibility.' This tells the agent when to reach for it, though it does not name an alternative sibling or state when not to use it, so it falls short of full routing guidance.

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

suggest_monitoring_configA

Generate a complete AI monitoring configuration for a business: target audience descriptions, monitoring location, and query suggestions. Use this when the user describes their business and wants to set up monitoring for the right audience and location. Returns ready-to-use configuration JSON and API instructions to apply it. AI agents can use this to auto-fill monitoring settings without the user having to manually describe their audience.

ParametersJSON Schema
NameRequiredDescriptionDefault
locationNoPrimary location or service area (city, region, or country). Used to localize AI search monitoring.
business_nameYesBusiness name
target_queriesNoOptional: existing target queries. If provided, audience suggestions will be tuned to match how these queries are typically asked.
business_descriptionYesWhat the business does — the more detail, the better the config. Include: who the customers are, what problems you solve, where you operate.

TDQS

A3.9/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 return artifact ('ready-to-use configuration JSON and API instructions to apply it'), which implies a non-mutating generation step, but it never states that it writes nothing, whether an API key is needed to apply the config, or any rate/cost limits. Adequate but leaves real behavioral gaps.

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?

Purpose and output contents are front-loaded in the first sentence, and the when-to-use condition follows immediately. The final sentence ('AI agents can use this to auto-fill...') largely restates the usage clause and is the one element that does not fully earn its place.

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?

There is no output schema, but the description compensates by naming what comes back (audience descriptions, location, queries, ready-to-use JSON plus apply instructions). For a four-parameter generation tool with no side effects this is close to sufficient; only error/edge behavior when the business description is thin is unaddressed.

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%, so all four parameters are already documented, including the note that target_queries tunes audience suggestions. The description restates that tuning idea ('audience suggestions will be tuned to match how these queries are typically asked') without adding format, syntax, or constraint details beyond the schema. Baseline 3 is appropriate.

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

Purpose5/5

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

States a specific verb ('Generate') and resource ('AI monitoring configuration for a business') and enumerates the artifacts produced: target audience descriptions, monitoring location, query suggestions. None of the siblings (analyze_geo_score, get_geo_fixes, get_site_report) overlap, so the agent can distinguish it without opening the schema.

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?

Explicit trigger condition: 'Use this when the user describes their business and wants to set up monitoring for the right audience and location,' plus a secondary agent-facing use case in the final sentence. Clear context, but no when-not-to-use guidance or named alternatives (e.g., when to just run the monitoring directly instead of generating a config).

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 6 tool updatesv0.5.0
    • First observedanalyze_geo_score
    • First observedget_geo_fixes
    • First observedget_product_guide
    • First observedget_site_report
    • First observedmake_site_geo_ready
    • First observedsuggest_monitoring_config

TDQS

A4.2/5.0

Scored across 6 tools

Disambiguation4/5

Tool triggers and workflows are mostly distinct, with explicit cross-references (analyze then get_geo_fixes; guide first). However, get_geo_fixes and make_site_geo_ready produce overlapping artifacts (schema, llms.txt, robots.txt) and could be confused for existing vs. rebuilding sites, and analyze_geo_score overlaps with get_site_report on score reporting.

Naming Consistency5/5

All tools use consistent snake_case with a verb-first pattern (analyze_, get_, make_, suggest_), making the set predictable and readable.

Tool Count5/5

Six tools form a well-scoped set for a GEO optimization assistant; each tool covers a distinct phase (guide, audit, fixes, asset generation, monitoring config, reporting) without redundant entries.

Completeness4/5

The surface covers audit, remediation guidance, asset generation, monitoring suggestions, and reporting. Minor gaps remain: no tool to apply or validate generated assets, and no direct management of monitoring configs after suggestion.

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    B
    maintenance
    Enables AI agents to check whether a public website is crawlable, understandable, and ready for AI search workflows through local-only audits of robots.txt, sitemaps, metadata, and llms.txt.
    3
    45 npm
    1
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Generates a complete suite of AI readiness files (llms.txt, ai.txt, schema, RAG indexes) for any website to optimize representation in ChatGPT, Claude, Gemini, and Perplexity.
    2 npm
    3
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    Checks a website's robots.txt and Cloudflare settings to identify AI crawler blocking. Also generates llms.txt content to improve visibility to AI answer engines.
    3
    44 npm
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables AI agents to run a free AI-readiness audit of any URL, checking AI crawler rules, JavaScript-free page text, JSON-LD, llms.txt, sitemap, meta description, FAQ schema, and returning a score with findings and fixes. Also exposes the same capability via an A2A agent endpoint.
    MIT