geoscore
Checks whether Google-Extended (Google's AI training/grounding crawler) is allowed by a site's robots.txt, reports its allowed/blocked status in the GEO score breakdown, and generates a robots.txt that explicitly admits it.
Checks whether PerplexityBot is allowed by a site's robots.txt, reports its allowed/blocked status in the GEO score breakdown, and generates a robots.txt that explicitly admits it so the site can be crawled and cited by Perplexity.
This server does not currently have a deployable release on Glama. Follow the repository's setup instructions to install and configure it for your MCP client, including any required credentials and local dependencies.
geoscore
Can ChatGPT, Claude and Perplexity actually see your site? geoscore checks a website's readiness for AI crawlers and search — its GEO (Generative Engine Optimization) — and hands back the fixes as copy-paste assets: a robots.txt that lets the named AI crawlers in, Schema.org Organization and FAQ markup, and an llms.txt. It runs locally over stdio, needs no account and no API key.
Five tools do the work. analyze_geo_score grades an
existing domain from 0 to 100 with a per-category
breakdown. get_geo_fixes renders the repair kit for
that domain. make_site_geo_ready generates every
asset for a brand-new site in one shot from a name, a
URL and a description. suggest_monitoring_config
drafts the monitoring setup for a business — target
audiences, suggested queries, and the exact causabi.com
API calls that would apply it. get_site_report
returns a client-ready report: the full mention-rate
breakdown when you have a causabi.com share slug, or
the crawlability score on its own when you only have a
domain.
Honest scope notes
Labelled subset —
get_product_guideis omitted. The original server ships six tools; the sixth returns the vendor's own guide document, whose contents are not published in any readable record, so an honest rebuild cannot reproduce it. Only the five tools above are built.The scoring weights are a labelled reconstruction. The original publishes its check list (crawlability; robots.txt per AI crawler; visible without JavaScript; Schema.org; FAQ; name and contacts; freshness / accessibility / llms.txt hygiene with a small weight) but not the weights. geoscore's composition — crawlability 20, robots 20, visibility 20, schema 15, FAQ 10, contacts 10, hygiene 5 — is this rebuild's, documented in
src/geo.ts.The report wire path is a reconstruction. The share pages at
causabi.com/report/<slug>are public; the API path behind them (https://causabi.com/api/v1/reports/<slug>) is this rebuild's rendering of that behaviour.
Related MCP server: AEO Scanner
Configuration
None. No environment variables, no API key. Site facts are fetched directly from the domain being checked, with a fixed 15-second per-request timeout.
Tools
analyze_geo_score— GEO score 0–100 plus a breakdown for an existingdomain. The result is a JSON object:{domain, score, breakdown: {crawlability, robots, visibility, schema, faq, contacts, hygiene}, robots: {<crawler>: "allowed" | "blocked"}, facts: {home_status, has_llms_txt, has_json_ld}}. The eight crawlers tracked are GPTBot, ClaudeBot, PerplexityBot, ChatGPT-User, Claude-User, OAI-SearchBot, Google-Extended and CCBot. If the home page cannot be fetched at all the tool fails withsite unreachable: <domain>; a reachable page with an HTTP error status is scored, not fatal.get_geo_fixes— the copy-paste fixes for adomain, as a markdown document with four sections: a robots.txt block allowing every named AI crawler (listing any the current robots.txt blocks), an Organization JSON-LD template filled with the site's title when discoverable, a FAQPage JSON-LD skeleton, and an llms.txt skeleton.make_site_geo_ready— all GEO assets for a new site in one shot (no API key needed). Takesname,urlanddescription, plus optionalservices(array of strings),email, andfaq(array of{question, answer}). Returns one document: Organization JSON-LD, a FAQPage JSON-LD block whenfaqis given, an llms.txt body (with a Services list when given), and a robots.txt allowing the named AI crawlers. Fully local — it never fetches.suggest_monitoring_config— draft a monitoring config frombusiness_nameandbusiness_description, with an optionallocation. Returns JSON:{business_name, location, audiences, suggested_queries, apply_calls}, whereapply_callsholds the two calls that apply the config on causabi.com —PUT https://causabi.com/api/v1/monitor/{site_id}/settingsandPUT https://causabi.com/api/v1/monitor/{site_id}/queries— with the{site_id}placeholder. This tool itself makes no API call.get_site_report— passreport_slugfor the full AI mention-rate breakdown (no API key needed), or justdomainfor a crawlability-score-only summary: theanalyze_geo_scoreJSON plus anotefield explaining how to get the full report. One of the two arguments is required.
CLI
npx @reneturcios/geoscore analyze_geo_score '{"domain":"example.com"}'
npx @reneturcios/geoscore get_geo_fixes '{"domain":"example.com"}'
npx @reneturcios/geoscore make_site_geo_ready '{"name":"Acme Corp","url":"https://acme.com","description":"We help small businesses grow."}'
npx @reneturcios/geoscore suggest_monitoring_config '{"business_name":"Bright Smiles Dental","business_description":"A family dental clinic.","location":"Austin, TX"}'
npx @reneturcios/geoscore get_site_report '{"report_slug":"abc123"}'
npx @reneturcios/geoscore --versionEach subcommand takes one JSON argument string and prints the tool's result text. Exit codes: 0 success, 1 tool error, 2 usage error.
MCP
npx -y @reneturcios/geoscore mcpMCP client config:
{
"mcpServers": {
"geoscore": {
"command": "npx",
"args": ["-y", "@reneturcios/geoscore", "mcp"]
}
}
}Docker
docker run -i ghcr.io/cloudcorprecords/geoscore # stdio MCP server (CMD defaults to "mcp")
docker run --rm ghcr.io/cloudcorprecords/geoscore analyze_geo_score '{"domain":"example.com"}' # CLI via containerDevelopment
npm install
npm run build # tsc -> dist/ (dist/cli.js is the bin)
npm test # tsx --test test/*.test.ts — fixture-based, no network
npm run dev # tsx src/cli.ts — run the CLI from sourceLicense
MIT — see LICENSE (Copyright (c) 2026 Rene Turcios).
This server cannot be deployed
Maintenance
Related MCP Connectors
Live AEO, GEO, JSON-LD Schema, robots.txt AI crawler, and Agent Readiness diagnostic auditor.
Audit any URL for ChatGPT, Claude & Perplexity GEO citation readiness, llms.txt & Schema.org.
Checks llms.txt, AI crawler access in robots.txt, and sitemap - with a 0-100 AI readiness score.
Audit websites for AI search readiness and generate or validate llms.txt. Free quick check.
Related MCP Servers
- AlicenseAqualityCmaintenanceEnables scanning websites for AI search readiness, generating fixes like llms.txt, and comparing GEO scores across domains.81MIT
- AlicenseAqualityDmaintenanceEnables users to scan any website for AI search visibility, producing AEO, GEO, agent readiness, and mention-readiness scores along with AI identity and business profile insights. Paid tools extend this to competitive comparisons, detailed audits, and generated fixes.41MIT
- AlicenseAqualityCmaintenanceEnables auditing, comparing, and optimizing websites for AI readiness, performance, SEO, AEO, GEO, and AI crawler accessibility.4MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI coding agents to score any live domain for visibility in AI answer engines and then generate and apply paste-ready fixes — robots.txt, llms.txt, JSON-LD, titles and meta — either directly to project files or as click-by-click admin steps for hosted platforms like Squarespace, Wix and Shopify. It also re-checks edits, reads server access logs to confirm which crawlers actually arrived and whether they were genuine, and offers hosted tools for citation testing, score history, drift and competitor comparison.145 npmMIT