GEO Analysis for AI SEO
This server analyzes web content and text for AI search optimization, helping you understand how well your content will be cited by AI systems like ChatGPT, Claude, Perplexity, and Google AI Overviews.
Two analysis modes:
Analyze a URL: Fetch and evaluate any publicly accessible web page
Analyze text: Directly paste content (minimum 500 characters) in markdown, plain text, or HTML
Both modes assess AI slop detection, writing quality, E-E-A-T signals (Experience, Expertise, Authoritativeness, Trustworthiness), and actionability.
Key metrics evaluated:
Claim density (target: 4+ claims per 100 words)
Information density and answer frontloading
Semantic triples and entity recognition
Sentence structure (optimal 15–20 word average)
Scores generated (0–10):
Overall content quality
Extractability (how easily AI can extract facts)
Readability (structure quality for AI parsing)
Citability (how quotable and attributable)
Additional options:
Add a topic/query for relevance scoring
Choose between detailed output (with prioritized recommendations, before/after examples) or a condensed summary
All analysis runs locally without data leaving your system
Evaluates content against metrics such as sentence length and extractability to improve the likelihood of being featured in Google AI Overviews.
Measures content structure and extractable facts to enhance search visibility and attribution within Perplexity's AI-powered search results.
Deprecated and no longer maintained. GEO Analyzer's AI-search content analysis has been consolidated into SEO Audit Console (npm i @houtini/seo-audit-console) — which scores AI-Overview citation, passage relevance, agent readiness and content extractability alongside a full technical SEO audit, all in one MCP. Please migrate there.
GEO Analyzer
Content analysis for AI search visibility. Measures what actually matters for getting cited by ChatGPT, Claude, Perplexity, and Google AI Overviews.
Quick Navigation
What it does | Installation | Usage examples | Output | Tools | Troubleshooting | Research foundation
What It Does
GEO Analyzer examines content for the signals AI systems use when selecting sources to cite:
Claim Density - Extractable facts per 100 words
Information Density - Word count vs predicted AI coverage
Answer Frontloading - How quickly key information appears
Semantic Triples - Structured (subject, predicate, object) relationships
Entity Recognition - Named entities AI can reference
Sentence Structure - Optimal length for AI parsing
The analysis runs locally using Claude Sonnet 4.5 for semantic extraction. No external services, no data leaving your machine.
Related MCP server: agentaeo-mcp-server
Installation
Claude Desktop
Add to your claude_desktop_config.json:
{
"mcpServers": {
"geo-analyzer": {
"command": "npx",
"args": ["-y", "@houtini/geo-analyzer@latest"],
"env": {
"ANTHROPIC_API_KEY": "sk-ant-..."
}
}
}
}Config locations:
Windows:
%APPDATA%\Claude\claude_desktop_config.jsonmacOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonLinux:
~/.config/Claude/claude_desktop_config.json
Restart Claude Desktop after saving.
Claude Code (CLI)
Claude Code uses a different registration mechanism -- it doesn't read claude_desktop_config.json. Use claude mcp add instead:
claude mcp add -e ANTHROPIC_API_KEY=sk-ant-... -s user geo-analyzer -- npx -y @houtini/geo-analyzer@latestVerify with:
claude mcp get geo-analyzerYou should see Status: Connected.
Requirements
Node.js 20+
Anthropic API key (console.anthropic.com)
Usage Examples
Analyse a Published URL
Analyse https://example.com/article for "topic keywords"The topic context helps score relevance but isn't required:
Analyse https://example.com/articleAnalyse Text Directly
Paste content for analysis (minimum 500 characters):
Analyse this content for "sim racing wheels":
[Your content here]Summary Mode
Get condensed output without detailed recommendations:
Analyse https://example.com/article with output_format=summaryOutput
Scores (0-10)
Score | Measures |
Overall | Weighted average of all factors |
Extractability | How easily AI can extract facts |
Readability | Structure quality for AI parsing |
Citability | How quotable and attributable |
Key Metrics
Information Density:
Word count with coverage prediction
Optimal range: 800-1,500 words
Pages under 1K words: ~61% AI coverage
Pages over 3K words: ~13% AI coverage
Answer Frontloading:
Claims and entities in first 100/300 words
First claim position
Score indicating answer immediacy
Claim Density:
Target: 4+ claims per 100 words
Extractable facts, statistics, measurements
Sentence Length:
Target: 15-20 words average
Matches Google's ~15.5 word chunk extraction
Recommendations
Prioritised suggestions with:
Specific locations in content
Before/after examples
Rationale based on research
Tools
analyze_url
Fetches and analyses published web pages.
Parameter | Required | Description |
| Yes | URL to analyse |
| No | Topic context for relevance scoring |
| No |
|
analyze_text
Analyses pasted content directly.
Parameter | Required | Description |
| Yes | Text to analyse (min 500 chars) |
| No | Topic context for relevance scoring |
| No |
|
Troubleshooting
"ANTHROPIC_API_KEY is required"
Add your API key to the env section in config.
"Cannot find module" after config change Restart Claude Desktop completely.
"Content too short" Minimum 500 characters required for meaningful analysis.
Paywalled content returns errors The analyser can only access publicly available pages.
Performance
URL analysis: ~8-10 seconds
Text analysis: ~5-7 seconds
Cost: ~$0.14 per analysis (Sonnet 4.5)
Migration from v1.x
v2.0 removed external dependencies. Update your config:
Old (v1.x):
{
"env": {
"GEO_WORKER_URL": "https://...",
"JINA_API_KEY": "jina_..."
}
}New (v2.x):
{
"env": {
"ANTHROPIC_API_KEY": "sk-ant-..."
}
}Development
git clone https://github.com/houtini-ai/geo-analyzer.git
cd geo-analyzer
npm install
npm run buildResearch Foundation
The analysis methodology draws from peer-reviewed research and empirical studies:
MIT GEO Paper (2024)
Aggarwal et al., "GEO: Generative Engine Optimization" - ACM SIGKDD
Key findings applied:
Claim density target of 4+ per 100 words
Optimal sentence length of 15-20 words
40% improvement in AI citation rates with extractability focus
Dejan AI Grounding Research (2025)
Empirical analysis of 7,060 queries and 2,275 pages
Key findings applied:
~2,000 word total grounding budget per query
Rank #1 source gets 531 words (28% of budget)
Rank #5 source gets 266 words (13% of budget)
Average extraction chunk: 15.5 words
Pages <1K words: 61% coverage
Pages 3K+ words: 13% coverage
dejan.ai/blog/how-big-are-googles-grounding-chunks
dejan.ai/blog/googles-ranking-signals
MIT License - Houtini.ai
Available Tools
2 toolsanalyze_textB
Analyze pasted text content for AI search optimization. Performs comprehensive content quality analysis including AI slop detection, writing quality, E-E-A-T signals, data points, originality, and actionability.
| Name | Required | Description | Default |
|---|---|---|---|
| content | Yes | The text content to analyze (markdown, plain text, or HTML) | |
| query | No | Optional context string describing the content topic (e.g., "sim racing equipment", "SEO guide"). Used for relevance scoring only. Defaults to "general content analysis". | |
| output_format | No | Output verbosity: "detailed" (default) includes all suggestions and recommendations; "summary" provides condensed results | detailed |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden for behavioral disclosure. While it mentions the analysis dimensions and output format options, it lacks critical behavioral details: no information about rate limits, authentication requirements, processing time, error conditions, or what constitutes 'comprehensive' analysis. The description doesn't contradict annotations (none exist), but fails to provide sufficient behavioral context for a tool with no annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately concise with two sentences that efficiently convey the tool's purpose and scope. The first sentence states the core function, and the second elaborates on analysis dimensions. No redundant or unnecessary information is included. However, it could be slightly more front-loaded by mentioning the key parameters or output options earlier.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 3 parameters with 100% schema coverage but no annotations and no output schema, the description is moderately complete. It covers the tool's purpose and analysis dimensions adequately but lacks important contextual information about behavioral characteristics (rate limits, auth needs, processing behavior) and doesn't describe the output format or structure. For a text analysis tool with no output schema, more detail about return values would be helpful.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all three parameters thoroughly. The description adds minimal parameter semantics beyond the schema - it mentions 'pasted text content' which aligns with the 'content' parameter, and 'AI search optimization' context which relates to the 'query' parameter's purpose. However, it doesn't provide additional meaning or usage examples beyond what's already in the schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Analyze pasted text content for AI search optimization' with specific analysis dimensions listed (AI slop detection, writing quality, E-E-A-T signals, etc.). It distinguishes from the sibling tool 'analyze_url' by specifying 'pasted text content' rather than URL analysis. However, it doesn't explicitly contrast with the sibling tool's functionality.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context through 'pasted text content' and 'AI search optimization,' suggesting when this tool is appropriate. It mentions the sibling tool 'analyze_url' exists but provides no explicit guidance on when to use this tool versus that alternative. No exclusion criteria or prerequisites are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
analyze_urlC
Analyze a published URL for AI search optimization. Performs comprehensive content quality analysis including AI slop detection, writing quality, E-E-A-T signals, and actionability.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | The URL to analyze | |
| query | No | Optional context string describing the content topic (e.g., "sim racing wheels", "content optimization"). Used for relevance scoring only. Defaults to "general content analysis". | |
| output_format | No | Output verbosity: "detailed" (default) includes all suggestions and recommendations; "summary" provides condensed results | detailed |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions 'comprehensive content quality analysis' but doesn't describe what the analysis returns, potential limitations (e.g., rate limits, authentication needs, or what 'AI slop detection' entails), or side effects. For a tool with no annotations and no output schema, this leaves significant gaps in understanding how the tool behaves.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is highly concise and front-loaded: a single sentence that efficiently states the tool's purpose and key analysis components without unnecessary words. Every phrase ('AI search optimization', 'comprehensive content quality analysis', specific detection types) adds value, making it zero waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (analyzing URLs for multiple quality signals) and lack of annotations and output schema, the description is incomplete. It doesn't explain what the analysis returns, potential errors, or behavioral traits like rate limits or permissions. The agent is left guessing about the output format and operational constraints, which is inadequate for a tool with no structured output information.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, so the schema already documents all parameters thoroughly. The description adds no additional parameter semantics beyond what's in the schema (e.g., it doesn't explain how 'query' affects 'relevance scoring' in more detail or what 'output_format' choices imply beyond the schema's enum). Baseline 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Analyze a published URL for AI search optimization' with specific components like 'content quality analysis', 'AI slop detection', 'writing quality', 'E-E-A-T signals', and 'actionability'. It distinguishes from the sibling 'analyze_text' by specifying URL analysis rather than text analysis. However, it doesn't explicitly contrast with the sibling tool in the description text itself.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. While it implies usage for URL analysis (versus text analysis for the sibling), there's no explicit mention of the sibling tool, prerequisites, or scenarios where this tool is preferred over others. The agent must infer usage context from the purpose alone.
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. Dates show when Glama detected each change.
2 tool updates
v3.0.3- First observed
analyze_text - First observed
analyze_url
TDQS
The two tools have clearly distinct purposes: analyze_text for pasted text content and analyze_url for published URLs. While their analysis components overlap significantly (both include AI slop detection, writing quality, E-E-A-T signals, and actionability), the input type distinction prevents confusion. The only minor ambiguity is that analyze_text mentions additional features like data points and originality not listed for analyze_url.
Both tools follow a perfect verb_noun pattern with consistent snake_case naming: analyze_text and analyze_url. The naming is completely predictable and readable, with no deviations in style or convention across the tool set.
With only 2 tools for a server named 'GEO Analysis for AI SEO' that suggests geographical and SEO analysis capabilities, the tool count feels too thin. The server's name implies broader functionality (potentially geographical data analysis, keyword research, competitor analysis, etc.), but the tools only cover content analysis of text and URLs, leaving significant gaps in the apparent domain scope.
The tool set is severely incomplete for the server's stated purpose of 'GEO Analysis for AI SEO'. While the two tools provide content quality analysis, there are obvious gaps: no geographical analysis tools (e.g., location-based SEO, regional keyword analysis), no SEO-specific tools (e.g., keyword research, backlink analysis, ranking tracking), and no AI SEO optimization beyond content assessment. This will likely cause agent failures when trying to perform comprehensive GEO or SEO tasks.
Maintenance
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
SEO, GEO & AI Visibility — research, write, optimize, publish & monitor content. 122 tools.
1Track AI visibility (ChatGPT, Gemini, AI Overviews), research SEO keywords, write, publish, prove.
Free AI visibility (GEO/AEO) audit: can ChatGPT, Claude and Perplexity find and cite your website?
Measure how AI engines cite your brand. Cross-engine GEO visibility, as agent tools.
Related MCP Servers
- AlicenseBqualityDmaintenanceAdvanced content gap analysis using Query Decomposition and Keyword Fan-Out (Google's patented methodology). Tells you exactly what user queries your content covers - and what it misses. Built on academic research because I needed to understand how AI search engines actually evaluate content.122712Apache 2.0
- AlicenseAqualityDmaintenanceAudit your brand's visibility across ChatGPT, Perplexity, Claude, and Google AI - get citation rates, AEO health scores, content gap analysis, and a 9-page content suite to rank in AI-generated answers.584MIT
- AlicenseAqualityCmaintenanceUnifies traditional SEO and Generative Engine Optimization (GEO) for Google, Bing, Yandex, and major LLMs, providing tools for search performance analysis, citation tracking, on-page audits, and internal link graph analysis.363MIT
- -licenseNot gradedqualityCmaintenanceEnables AI assistants to perform comprehensive SEO and GEO measurements, including site audits, keyword research, ranking tracking, and brand visibility analysis across search engines and generative AI platforms.-
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/houtini-ai/geo-analyzer'
If you have feedback or need assistance with the MCP directory API, please join our Discord server