Tools Reference

Complete reference for all 11 tools available in Glippy MCP Server.

analyze_domain

Run a comprehensive GEO readiness analysis on a domain. Checks robots.txt, llms.txt, homepage HTML (16 scoring categories), sitemap.xml, and security headers.

Parameters
ParameterTypeRequiredDescription
domainstringYesDomain to analyze (e.g., "example.com"). No https:// prefix.
max_pagesintegerNoPages to crawl (1-10). Default: 10.
page_typeenum or objectNoWhat kind of page the homepage is. One id applies to the homepage; a map of URL to id also sets crawled pages it names. Without it, checks that depend on the page type are shown but not scored. See Page Type.
render_modeenumNo"static" (default), "auto" (static with Chrome fallback on bot-block), or "chrome" (always Chrome). See Render Modes.
output_formatenumNo"text" (default) or "json". Use JSON to pass results to export_report.
Example
Analyze example.com for GEO readiness
Returns
  • Overall GEO score (0-100) with letter grade
  • The page type line: set by the assistant, or not confirmed with the detected type and why
  • 16 category scores with pass/fail/warn checks
  • robots.txt analysis with AI crawler access
  • llms.txt presence and content preview
  • Sitemap discovery status

check_robots_txt

Check a domain's robots.txt specifically for AI crawler access rules. Reports which crawlers (GPTBot, ClaudeBot, etc.) are blocked or allowed.

Parameters
ParameterTypeRequiredDescription
domainstringYesDomain to check. No https:// prefix.
Example
Which AI crawlers are blocked on example.com?
AI Crawlers Detected

GPTBot, Google-Extended, CCBot, anthropic-ai, ClaudeBot, Bytespider, PerplexityBot, ChatGPT-User, AmazonBot, cohere-ai

See also

Auditing your own site? Make sure GlippyBot itself is allow-listed — see the GlippyBot crawler info & allow-list guide for the User-Agent string and robots.txt snippets.

check_llms_txt

Check if a domain has an llms.txt file — the emerging standard for providing context to LLMs about a site's purpose and content.

Parameters
ParameterTypeRequiredDescription
domainstringYesDomain to check. No https:// prefix.
Example
Does example.com have an llms.txt file?

check_agent_access

Run a live agent-access probe against one URL: 12 sequential requests from the machine running the server that differ only in User-Agent (a browser baseline, GlippyBot as a generic-bot control, 8 AI crawlers, a spoofed Googlebot, and a closing browser baseline). Only a difference between those same-IP requests counts as a block. A bare 403 can just mean the IP has a poor reputation, so anything short of differential evidence is reported as "could not tell from this vantage", never as blocked.

Parameters
ParameterTypeRequiredDescription
domainstringYesDomain or full URL to probe, e.g. "example.com" or "https://example.com/pricing". A bare domain probes the homepage.
output_formatenumNo"text" (default) for a readable report, or "json" for the raw verdict, controls, and per-crawler states.
Example
Can ChatGPT and Perplexity actually fetch https://example.com/pricing?
Returns
  • A session verdict: open, ua_block, allowlist_block, verifies_identity, blanket_bots, vantage_blocked, rate_limited_vantage, inconclusive, or not_probed
  • A state per probed crawler: ok, ok_degraded, ua_blocked, charged, inconclusive, or not_probed
  • The control requests each verdict is judged against
  • Impact by crawler role: blocks on citation crawlers cost GEO score, blocks on live fetchers are a lesser warning, and blocks on training crawlers are informational only
  • A vantage caveat naming the network the probe ran from
See also

Can AI and LLMs access my page? explains how the probe works and how to read each state.

get_geo_summary

Get a concise GEO readiness summary: overall score, grade, top 3 strengths, and top 3 issues. Use for quick assessments.

Parameters
ParameterTypeRequiredDescription
domainstringYesDomain to check. No https:// prefix.
page_typeenumNoWhat kind of page the homepage is (one id). See Page Type.
render_modeenumNo"static" (default), "auto", or "chrome". See Render Modes.
Example
Give me a quick GEO summary of example.com

extract_page_content

Extract one page's main content, cleaned and structured, so the AI model you are working with can judge what heuristics cannot: whether the positioning is distinctive or generic, whether claims are supported, which questions the page leaves unanswered, and which sections do not stand alone. It runs the same content engine as Glippy's content checks. Use analyze_urls when you want a scored audit instead.

It is also the first step of the classify-then-analyse flow: the output names the page type Glippy detected, with its reason, and lists every valid id, so the model can decide the type from the text and pass it to analyze_urls. The beta wording checks are never scored; the model may judge them itself from the returned sections.

Parameters
ParameterTypeRequiredDescription
urlstringYesFull URL of one public page, e.g. "https://example.com/pricing". Include https://.
page_typeenumNoOptional here: leave it out on a first call to get the detected type, or pass one id to score the content scores for that type. See Page Type.
max_sectionsintegerNoSections to return, in page order (1-100). Default: 30.
max_charsintegerNoCap on the total page text returned (1,000-100,000). Default: 15000. Section texts are trimmed first, then the lowest-ranked quotable passages are dropped.
render_modeenumNo"static" (default), "auto", or "chrome". robots.txt is checked first in every mode. See Render Modes.
Example
Read https://example.com/pricing with extract_page_content and tell me which positioning lines are generic, which claims need evidence, and how to rewrite the sections that do not stand alone.
Returns
  • Detected language, content type, and word count
  • detected_page_type and detected_page_type_reason, page_type (whether a type was set), and valid_page_types (every id with a one-line description)
  • Title, meta description, H1, and lead paragraph
  • Sections in page order, flagged as self-contained, answer-first, or opening with a reference back
  • The most quotable passages, statistical claims and proof points, and positioning sentences
  • Content scores per category with their failing and warning checks
  • A review guide that tells the model what to judge
Fetch policy

Reads one public page as GlippyBot and checks robots.txt first. If the rules disallow the URL, or robots.txt cannot be read, nothing else is fetched and the tool explains why. See the GlippyBot crawler info.

compare_domains

Analyze multiple domains in parallel and compare their GEO scores side by side. Perfect for competitive analysis.

Parameters
ParameterTypeRequiredDescription
domainsarray[string]Yes2-50 domains to compare. No https:// prefix. For more than 50, run multiple times and merge the results.
max_pagesintegerNoPages per domain (1-10). Default: 10.
page_typeenum or objectNoOne id for every domain's homepage, or a map of domain to id, e.g. {"a.com": "homepage", "b.com": "service"}. See Page Type.
render_modeenumNo"static" (default), "auto", or "chrome". Applied per domain. See Render Modes.
output_formatenumNo"text" (default) or "json". Use JSON to pass results to export_bulk_report.
Example
Compare GEO scores: example.com, competitor1.com, competitor2.com

analyze_sitemap

Fetch a sitemap XML, extract URLs, and analyze each page. Supports regular sitemaps and sitemap index files.

Parameters
ParameterTypeRequiredDescription
sitemap_urlstringYesFull URL to sitemap (e.g., "https://example.com/sitemap.xml")
max_urlsintegerNoMax URLs to analyze (1-50,000). Default: all found.
rate_limitnumberNoRequests/second per domain (0.1-100). Default: 5.
render_modeenumNo"static" (default), "auto", or "chrome". Applied per URL. See Render Modes.
output_formatenumNo"text" (default) or "json". Use JSON to pass results to export_bulk_report.
Example
Analyze all pages in https://example.com/sitemap.xml

analyze_urls

Run GEO analysis on a specific list of URLs. URLs can span multiple domains.

Parameters
ParameterTypeRequiredDescription
urlsarray[string]YesFull URLs to analyze (1-50,000). Include https://.
page_typeenum or objectNoOne id for every URL, or a map of URL to id. A URL the map does not name runs unconfirmed. See Page Type.
rate_limitnumberNoRequests/second per domain (0.1-100). Default: 5.
render_modeenumNo"static" (default), "auto", or "chrome". Applied per URL. See Render Modes.
output_formatenumNo"text" (default) or "json". Use JSON to pass results to export_bulk_report.
Example
Analyze these pages: https://example.com/about, https://example.com/pricing

export_report

Generate a styled, shareable report in Markdown or HTML format — matching the Glippy browser extension's export.

Parameters
ParameterTypeRequiredDescription
formatenumYes"markdown", "markdown_full", or "html"
domainstringNo*Domain to analyze. No https:// prefix.
max_pagesintegerNoPages to crawl (1-10). Default: 10. Ignored if analysis_result provided.
render_modeenumNo"static" (default), "auto", or "chrome". Ignored if analysis_result provided. See Render Modes.
analysis_resultobjectNo*Pre-computed result from analyze_domain (with output_format='json').

*Provide either domain or analysis_result

Example
Generate an HTML report for example.com

export_bulk_report

Generate a styled report for bulk analysis: domain comparison, URL list, or sitemap crawl.

Parameters
ParameterTypeRequiredDescription
formatenumYes"markdown" or "html"
domainsarray[string]No*Compare 2-50 domains. No https:// prefix.
urlsarray[string]No*Analyze 1-50,000 URLs. Include https://.
sitemap_urlstringNo*Full URL to sitemap to crawl.
analysis_resultsobjectNo*Pre-computed results from compare_domains, analyze_urls, or analyze_sitemap (with output_format='json').
max_pagesintegerNoFor domains: pages per domain (1-10). Default: 10.
max_urlsintegerNoFor sitemap: max URLs to analyze (1-50,000).
rate_limitnumberNoRequests/second per domain (0.1-100). Default: 5.
render_modeenumNo"static" (default), "auto", or "chrome". Ignored if analysis_results provided. See Render Modes.

*Provide exactly one of: domains, urls, sitemap_url, or analysis_results

Example
Generate an HTML comparison report for example.com and competitor.com

Page Type

Some content checks only make sense for one kind of page: a product page is not expected to cite sources the way an article is, and an article does not need a price. Glippy used to guess the page type, and every serious content-check error came from a wrong guess. So the page type now comes from the AI assistant that calls the tools, through the optional page_type parameter of analyze_urls, analyze_domain, get_geo_summary, compare_domains and extract_page_content.

Classify, then analyse
  1. Decide what kind of page it is: look at it, or call extract_page_content, which returns detected_page_type with its reason, the list of valid ids, and the text.
  2. Pass page_type to the scoring tool. Where your reading disagrees with the detected type, yours wins.
extract_page_content { "url": "https://example.com/pricing" }
  -> detected_page_type: "article", detected_page_type_reason: "Detected from og:type=article, ..."
analyze_urls { "urls": ["https://example.com/pricing"], "page_type": "product" }
Without page_type

Every check that depends on the page type is shown with its finding but carries no points, with the reason "Not scored: this check depends on the page type, which has not been confirmed." The other checks score as usual. "auto" is the same as leaving it out.

Validation and reports

Only the ids below are accepted (case and surrounding spaces are ignored). Any other value is ignored with a note in the output (pageTypeNotes in JSON), and that page runs unconfirmed; there is no fuzzy matching. For the multi-URL tools, pass one id for every page or a map of URL (or domain) to id. Reports state the page type of every page, Page type: Article (set by the assistant). or Page type: not confirmed (detected: Article, from og:type=article, which many sites put on every page)., and flag a set type that Glippy's own detection disagrees with.

idPage typeUse for
homepageHomepageThe front page of a site or brand: what it offers and where to go next.
productProduct pageOne product for sale, with its price, options and details.
categoryCategory pageA shop listing of several products, often with filters and sorting.
articleArticleA news story, blog post, guide or essay.
indexIndex or hub pageA news front, blog index or hub page that lists and links to other pages.
docsDocumentationTechnical documentation, a reference page or a dictionary entry.
faqFAQ or help pageQuestions and answers, or a help-centre article about a product or service.
serviceService or local businessA business selling a service: trades, practices, restaurants, agencies or software.
lodgingHotel or holiday rentalA hotel, B&B, campsite or holiday rental with rooms to book.
eventEventOne event, concert or show with its date, venue and tickets.
recipeRecipeA recipe with ingredients and steps.
infoPublic information pageInformation from a government body or a nonprofit organisation.
contactContact, about or legal pageContact details, an about page, terms, privacy or an imprint.
forumForum or Q&A threadA discussion thread, or a question with answers from users.

The domain tools analyse the homepage, which is usually homepage; a news front or blog index is index, a one-page local business site is service, a single-product site is product.

Render Modes

Reference

Every analysis tool accepts a render_mode parameter controlling how HTML is fetched for scoring. Some sites (Cloudflare, Akamai, DataDome, PerimeterX, Incapsula) block plain Node fetches; Chrome-backed modes drive a real browser to get past them. Auditing your own site? The cleaner fix is to allow-list the GlippyBot User-Agent — see the GlippyBot allow-list guide.

Modes
ModeBehaviorUse when
static (default)Plain Node fetch. Fast, no Chrome needed.Targets don't block bots, or you want the static-crawler view.
autoStatic first; retry via Chrome if the response looks bot-blocked (401/403/407/429/503 or empty 2xx).Mixed workloads — most sites stay on the fast path, only blocked ones pay the Chrome cost. Recommended for competitive audits.
chromeEvery URL fetched via Chrome. Slowest, most resilient.Target aggressively detects headless, or you want uniform Chrome rendering.
Result field

The returned analysis includes a renderMode field indicating which path ran:

ValueMeaning
staticStatic fetch succeeded; Chrome not invoked.
chromeLaunched directly via Chrome (explicit mode).
chrome-fallbackStatic fetch was blocked; Chrome recovered a 2xx.
chrome-blocked-<code>Chrome was tried but also got blocked with the given status.
static-blockedStatic fetch failed and Chrome was unavailable or errored.
Chrome setup

Auto and chrome modes need a local Chrome/Chromium binary. The server auto-detects from CHROME_PATH, PUPPETEER_EXECUTABLE_PATH, or common install paths (Windows: C:\Program Files\Google\Chrome\Application\chrome.exe; macOS: /Applications/Google Chrome.app/Contents/MacOS/Google Chrome; Linux: /usr/bin/google-chrome). If none is found, render_mode: "static" continues to work; other modes will record static-blocked.

Attaching to your own Chrome

Sites that fingerprint the headless build can still block the server-launched browser. Launch a separate Chrome with remote debugging and have the server attach to it by setting CHROME_REMOTE_URL in the MCP server env:

# macOS
/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome \
  --remote-debugging-port=9222 --user-data-dir=/tmp/glippy-chrome &

# Windows (PowerShell)
& "C:\Program Files\Google\Chrome\Application\chrome.exe" `
  --remote-debugging-port=9222 --user-data-dir=C:\Temp\glippy-chrome

# Linux
google-chrome --remote-debugging-port=9222 --user-data-dir=/tmp/glippy-chrome &

# Then in your MCP config env:
#   CHROME_REMOTE_URL=http://localhost:9222

Using a dedicated --user-data-dir keeps this session isolated from your normal browsing. When attached, the fetcher leaves UA/headers/stealth untouched so requests look identical to a human browsing from that profile.

Check your site for AI search readiness

Start free with the Glippy Chrome extension for instant page checks. Scaling up? Automate audits across many URLs and your whole sitemap with the Glippy MCP server.

Add Glippy to Chrome – free Automate with the MCP server →