Bofusions GEO MCP Server — AI Search Engine Optimization (GEO) analysis tools for MCP clients
Project description
Bofusions GEO MCP
AI Search Engine Optimization (GEO) Analysis Tools for MCP Clients
Optimize your website for AI-powered search engines — ChatGPT, Claude, Perplexity, Gemini, Google AI Overviews.
GEO (Generative Engine Optimization) focuses on being the source AI models quote — not just ranking on Google.
Built by Bofusions
Why GEO?
| Traditional SEO | GEO (This Tool) |
|---|---|
| Optimize for Google crawlers | Optimize for AI model training data |
| Rank #1 on search results | Be the cited source in AI answers |
| Keywords & backlinks | Citability, brand authority, structured data |
| Google-focused | ChatGPT, Claude, Perplexity, Gemini, AIO |
The market is shifting:
- AI-referred traffic grew +527% year-over-year
- GEO services market projected $7.3B by 2031
- AI traffic conversion rate 4.4x higher than organic
Installation
# Run directly (recommended)
uvx bofusions-geo-mcp
# Or install with pip
pip install bofusions-geo-mcp
CLI Usage
# Full GEO audit
bofusions-geo audit https://example.com
# AI citation scoring
bofusions-geo citability https://example.com/blog
# Brand mention scan
bofusions-geo brand-scan "Acme Corp" --domain acme.com
# llms.txt validate or generate
bofusions-geo llmstxt https://example.com --mode generate
# Technical SEO analysis
bofusions-geo technical https://example.com
# Schema markup analysis
bofusions-geo schema https://example.com
# Comprehensive report
bofusions-geo report https://example.com --brand "Acme Corp"
# AEO simulation — measure brand visibility in AI responses
bofusions-geo aeo-simulate https://example.com --brand-name "Acme Corp" --industry "SaaS" --location "Turkey"
MCP Client Configuration
Claude Desktop
Add to your claude_desktop_config.json:
{
"mcpServers": {
"Bofusions GEO": {
"command": "uvx",
"args": ["bofusions-geo-mcp"]
}
}
}
Cursor / VS Code / 5ire / Other MCP Clients
{
"mcpServers": {
"bofusions-geo": {
"command": "uvx",
"args": ["bofusions-geo-mcp"]
}
}
}
pip install (alternative)
{
"mcpServers": {
"Bofusions GEO": {
"command": "python",
"args": ["-m", "bofusions_geo_mcp.server"]
}
}
}
Tools (8)
| Tool | Input | Description |
|---|---|---|
geo_audit |
URL | Full GEO audit with scoring (0-100) and prioritized action items |
geo_citability |
URL | Score every content passage for AI citation readiness |
geo_brand_scan |
Brand name | Scan brand presence across YouTube, Reddit, Wikipedia, LinkedIn, GitHub + 7 platforms |
geo_llmstxt |
URL + mode | Validate existing llms.txt or generate a new one |
geo_technical |
URL | Technical analysis — SSR detection, robots.txt AI directives, meta tags, security headers |
geo_schema |
URL | Detect and validate JSON-LD structured data for AI discoverability |
geo_report |
URL + brand | Comprehensive markdown report combining all analyses |
geo_aeo_simulate |
URL + brand + industry + location | NEW — Measure brand visibility in AI responses (ChatGPT, Perplexity) |
AEO Simulator (New in v1.2.0)
Answer Engine Optimization — measure how visible your brand is in AI-generated responses.
2-Tier Approach
| Tier | Method | API Key Required |
|---|---|---|
| Tier 1 | Website content analysis | No |
| Tier 2 | Direct ChatGPT + Perplexity API | Yes (optional) |
AEO Score Formula
AEO Score = (Brand Recognition × 0.20) + (Market Score × 0.20) + (Presence Quality × 0.40) + (Sentiment × 0.10) + (Share of Voice × 0.10)
4 Query Types
| Type | Example |
|---|---|
| Brand | "Botfusions nedir" |
| Discovery | "best GEO companies Turkey" |
| Comparison | "Botfusions vs Semrush" |
| Synthetic | "GEO tool recommendation Turkey" |
MCP Usage
Simulate AI queries for brand "Acme Corp" on https://acme.com — industry SaaS, location Turkey, competitors "CompetitorA,CompetitorB"
Environment Variables (Tier 2)
export OPENAI_API_KEY=sk-... # Optional — enables real ChatGPT queries
export PERPLEXITY_API_KEY=pplx-... # Optional — enables real Perplexity queries
Without API keys, the tool estimates scores from website content analysis (Tier 1).
Usage Examples
Once connected to your MCP client, just ask naturally:
Full GEO Audit
Run a GEO audit on https://example.com
AI Citability Scoring
Score https://example.com/blog/post for AI citation readiness
Brand Presence Scan
Scan brand "Acme Corp" across AI-cited platforms
llms.txt Generation
Generate an llms.txt file for https://example.com
AEO Simulation
Run an AEO simulation for "Botfusions" on https://botfusions.com — industry GEO, location Turkey, competitors "Semrush,Ahrefs"
Full Report
Generate a comprehensive GEO report for https://example.com with brand "Acme Corp"
GEO Score Breakdown
Every geo_audit and geo_report produces a GEO Score (0-100):
| Component | Weight | What It Measures |
|---|---|---|
| AI Citability | 25% | Passage-level scoring — how likely AI will quote your content |
| Brand Authority | 20% | Presence on YouTube, Reddit, Wikipedia, LinkedIn (3x stronger than backlinks) |
| Content Quality | 20% | E-E-A-T signals, readability, statistical density |
| Technical | 15% | SSR rendering, robots.txt AI crawler access, meta tags |
| Structured Data | 10% | JSON-LD schema completeness (Organization, WebSite, etc.) |
| Platform Optimization | 10% | llms.txt existence, AI crawler friendliness |
Grading: A (80+) / B (65+) / C (50+) / D (35+) / F (<35)
Citability Scoring Engine
Each content passage is scored on 5 dimensions:
| Dimension | Weight | Optimal |
|---|---|---|
| Answer Block Quality | 30% | Definition patterns, early answers, quotable claims |
| Self-Containment | 25% | 134-167 words, low pronoun density, named entities |
| Structural Readability | 20% | 10-20 word sentences, list patterns, paragraph breaks |
| Statistical Density | 15% | Percentages, dollar amounts, named sources |
| Uniqueness Signals | 10% | Original research, case studies, specific tools |
Key finding: Optimal AI-cited passages are 134-167 words, self-contained, and fact-rich.
AI Crawler Coverage
The technical analysis checks access for 14 AI crawlers:
GPTBot, OAI-SearchBot, ChatGPT-User, ClaudeBot, anthropic-ai, PerplexityBot, CCBot, Bytespider, cohere-ai, Google-Extended, GoogleOther, Applebot-Extended, FacebookBot, Amazonbot
Brand Scan Platforms
| Platform | Correlation | Why It Matters |
|---|---|---|
| YouTube | 0.737 (strongest) | Video transcripts are major AI training source |
| High | Authentic discussions heavily cited by AI | |
| Wikipedia | High | Structured entity data, knowledge graph |
| Moderate | Thought leadership, company authority | |
| GitHub | Moderate | Developer brand, open-source authority |
| + 7 more | Varies | Quora, Stack Overflow, G2, Trustpilot, Crunchbase, Product Hunt |
Output Format
All tools return Markdown — optimized for LLM consumption and human readability:
# GEO Audit Report
> **Bofusions GEO MCP** | `https://example.com`
## Overall GEO Score: 72.5/100 (Grade B)
| Component | Weight | Score |
|-----------|--------|-------|
| Ai Citability | 25% | 68.2 |
| Brand Authority | 20% | 45.0 |
| Content Quality | 20% | 71.3 |
| Technical | 15% | 85.0 |
| Schema | 10% | 75.0 |
| Platform | 10% | 90.0 |
## Priority Action Items
1. Restructure content into 134-167 word self-contained passages
2. Add Organization + WebSite JSON-LD schema
...
Development
git clone https://github.com/botfusions/geo-seo-aeo.git
cd geo-seo-aeo
python -m venv .venv
# Windows:
.venv\Scripts\activate
# macOS/Linux:
source .venv/bin/activate
pip install -e .
python -m bofusions_geo_mcp.server
Run Tests
python -c "
import asyncio
from bofusions_geo_mcp.tools.technical import run_technical
print(asyncio.run(run_technical('https://example.com')))
"
Tech Stack
- Framework: FastMCP — Model Context Protocol server
- HTTP Client: httpx — async HTTP with SSL fallback
- HTML Parsing: BeautifulSoup4 + lxml
- Python: 3.11+ (3.12, 3.13 supported)
Requirements
- Python >= 3.11
- mcp[cli] >= 1.6.0
- httpx >= 0.27.0
- beautifulsoup4 >= 4.12.0
- lxml >= 5.0.0
- validators >= 0.22.0
License
MIT License — Copyright (c) 2026 Bofusions
Bofusions — Building the future of AI-powered search optimization.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file bofusions_geo_mcp-1.2.1.tar.gz.
File metadata
- Download URL: bofusions_geo_mcp-1.2.1.tar.gz
- Upload date:
- Size: 29.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fcfaa565870002e885e4be97d55aa0a011ddd17469cd20dbd6b1fbe67c4bddac
|
|
| MD5 |
d3cfbd4eac4fe5c0e92ec83713e72a0a
|
|
| BLAKE2b-256 |
7f563ffbd6880cd1e3384dfc9bad2659ebad1ed53df1ae22f926ba05ee03c6a9
|
File details
Details for the file bofusions_geo_mcp-1.2.1-py3-none-any.whl.
File metadata
- Download URL: bofusions_geo_mcp-1.2.1-py3-none-any.whl
- Upload date:
- Size: 40.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3681b292eaa61eb2245bf82fc2a0c0a5231e0e0cab5e8bf2237a601195b7e67f
|
|
| MD5 |
31e509f499d4e4b5168ff8ab349189c3
|
|
| BLAKE2b-256 |
aa06e51e4129c88a34f8fc86e3cac1a8571ad0817474ba7a8d456e5400ff472b
|