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.
Metadata
Release files for bofusions-geo-mcp 1.2.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| bofusions_geo_mcp-1.2.1.tar.gz | 29.9 kB | Without provenance | Details for bofusions_geo_mcp-1.2.1.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| bofusions_geo_mcp-1.2.1-py3-none-any.whl | Python 3 | none | any | Details for bofusions_geo_mcp-1.2.1-py3-none-any.whl |
Total release size: 69.8 kB
Release files / bofusions_geo_mcp-1.2.1.tar.gz
| Download URL | bofusions_geo_mcp-1.2.1.tar.gz |
|---|---|
| Size | 29.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
fcfaa565870002e885e4be97d55aa0a011ddd17469cd20dbd6b1fbe67c4bddac
|
|
BLAKE2b-256 checksum How to use checksums |
7f563ffbd6880cd1e3384dfc9bad2659ebad1ed53df1ae22f926ba05ee03c6a9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.13
|
Release files / bofusions_geo_mcp-1.2.1-py3-none-any.whl
| Download URL | bofusions_geo_mcp-1.2.1-py3-none-any.whl |
|---|---|
| Size | 40.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
3681b292eaa61eb2245bf82fc2a0c0a5231e0e0cab5e8bf2237a601195b7e67f
|
|
BLAKE2b-256 checksum How to use checksums |
aa06e51e4129c88a34f8fc86e3cac1a8571ad0817474ba7a8d456e5400ff472b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.13
|
Security for bofusions-geo-mcp 1.2.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.