AgentStack
Browse Sign in
Browse Why AgentStack Sell Docs
Sign in
MCP verified MIT Self-run

Geo Analyzer

mcp-houtini-ai-geo-analyzer · by houtini-ai

GEO analysis MCP server for Claude - scores your content on the signals that get it cited by ChatGPT, Perplexity and Google AI Overviews. Claim density, E-E-A-T, extractability.

No reviews yet
0 installs
0 views
view→install

Install

$ agentstack add mcp-houtini-ai-geo-analyzer

✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

View the full security report →

Verified badge

Passed review? Show it. Paste this badge into your README, it links to the public security report.

AgentStack Verified badge Links to your public security report.
[![AgentStack Verified](https://agentstack.voostack.com/badges/verified.svg)](https://agentstack.voostack.com/security/report/mcp-houtini-ai-geo-analyzer)

Reliability & compatibility

Security review passed
0 installs to date
no reviews yet
3d ago

Declared compatibility

Claude CodeClaude DesktopCursorWindsurf

Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.

Preview Execution monitoring

We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.

How agent discovery & health will work →
Are you the author of Geo Analyzer? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

GEO Analyzer

[](https://www.npmjs.com/package/@houtini/geo-analyzer) [](https://registry.modelcontextprotocol.io) [](https://snyk.io/test/github/houtini-ai/geo-analyzer) [](https://opensource.org/licenses/MIT)

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](#what-it-does) | [Installation](#installation) | [Usage examples](#usage-examples) | [Output](#output) | [Tools](#tools) | [Troubleshooting](#troubleshooting) | [Research foundation](#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.

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.json
  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Linux: ~/.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@latest

Verify with:

claude mcp get geo-analyzer

You should see Status: Connected.

Requirements

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/article

Analyse 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=summary

Output

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 | |-----------|----------|-------------| | url | Yes | URL to analyse | | query | No | Topic context for relevance scoring | | output_format | No | detailed (default) or summary |

analyze_text

Analyses pasted content directly.

| Parameter | Required | Description | |-----------|----------|-------------| | content | Yes | Text to analyse (min 500 chars) | | query | No | Topic context for relevance scoring | | output_format | No | detailed (default) or summary |

Troubleshooting

"ANTHROPICAPIKEY 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 build

Research 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

arxiv.org/abs/2311.09735

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

Source & license

This open-source MCP server is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet, be the first.

Versions

  • v0.1.0 Imported from the upstream source.