TrueSource GEO MCP Server
README.md
# TrueSource GEO MCP Server
> AI-Readiness auditing as an MCP tool surface — for Claude Desktop, Cursor, VS Code Copilot, and 70+ other MCP clients.
## What is this?
This is a [Model Context Protocol (MCP)](https://modelcontextprotocol.io/) server that exposes TrueSource's GEO-Audit methodology as standardized tools. Any MCP-compatible AI assistant can:
- **Audit websites** for AI-readiness (robots.txt, llms.txt, schema markup, E-E-A-T signals)
- **Generate GEO files** (AI-optimized robots.txt, llms.txt)
- **Create VibeTags** for emotional AI brand resonance
- **Check robots.txt** for AI bot allow/block status
## Quick Start
### Option A: npx (Recommended)
> ⚠️ The `-y` flag is **critical** — without it, npx silently waits for install confirmation in the background and the server freezes.
#### Claude Desktop
Edit `~/Library/Application Support/Claude/claude_desktop_config.json`:
```json
{
"mcpServers": {
"truesource": {
"command": "npx",
"args": ["-y", "truesource-geo-mcp"],
"env": {
"TRUESOURCE_API_KEY": "your-api-key-here"
}
}
}
}
```
#### Cursor / VS Code
Add to `.cursor/mcp.json` or VS Code MCP settings:
```json
{
"mcpServers": {
"truesource": {
"command": "npx",
"args": ["-y", "truesource-geo-mcp"],
"env": {
"TRUESOURCE_API_KEY": "your-api-key-here"
}
}
}
}
```
### Option B: Local Build
```bash
cd packages/geo-mcp
npm install
npm run build
```
```json
{
"mcpServers": {
"truesource-geo": {
"command": "node",
"args": ["/absolute/path/to/packages/geo-mcp/build/index.js"],
"env": {
"TRUESOURCE_API_KEY": "your-api-key-here"
}
}
}
}
```
### 3. Restart Your MCP Host & Use
Ask your AI assistant:
- *"What's the AI-readiness score for my-website.com?"*
- *"Generate a robots.txt for https://example.com"*
- *"Check which AI bots are blocked on competitor.com"*
- *"Create VibeTags for our brand at my-website.com"*
## Available Tools
| Tool | Trigger | Description |
|------|---------|-------------|
| `geo_score` | "audit", "score", "check AI readiness" | Full AI-readiness audit → 0-100 score, grade, checks, recommendations |
| `geo_inject` | "generate robots.txt", "create llms.txt" | Generate AI-optimized robots.txt + llms.txt (ready to deploy) |
| `vibetags_generate` | "brand perception", "VibeTags", "how AI sees" | Emotional AI brand resonance analysis (4-layer VibeGap Bridge) |
| `geo_check_robots` | "robots.txt", "which bots blocked" | Quick robots.txt AI bot status check (9 bots) |
## Environment Variables
| Variable | Required | Default | Description |
|----------|----------|---------|-------------|
| `TRUESOURCE_API_KEY` | **Yes** | — | API key for Railway backend authentication |
| `TRUESOURCE_API_URL` | No | Railway production URL | GEO-Inject API base URL |
| `TRUESOURCE_TIMEOUT` | No | `30000` | Request timeout in ms (MCP hosts timeout at ~60s) |
## Testing with MCP Inspector
```bash
npm run inspect
```
This opens the interactive MCP Inspector at `http://localhost:6274`, where you can:
- See all registered tools and their schemas
- Invoke tools with test data
- Inspect JSON-RPC request/response pairs
## Architecture
```
┌─────────────────────────────┐
│ MCP Host (Claude Desktop) │
│ User: "Audit example.com" │
└─────────────┬───────────────┘
│ Stdio (JSON-RPC 2.0)
▼
┌─────────────────────────────┐
│ truesource-geo-mcp v1.2.0 │
│ (TypeScript MCP Server) │
│ │
│ Tools: │
│ ├── geo_score │
│ ├── geo_inject │
│ ├── vibetags_generate │
│ └── geo_check_robots │
└─────────────┬───────────────┘
│ HTTPS + Bearer Auth
▼
┌─────────────────────────────┐
│ Railway API │
│ (FastAPI / Python) │
│ truesource-mcp-api │
│ │
│ POST /audit/robust │
│ POST /activate/robots │
│ POST /activate/llms │
│ POST /semantize │
│ GET /check/robots │
└─────────────────────────────┘
```
## Changelog
### v1.2.0 (2026-03-29) — Gemini Review Release
- **Security:** API key authentication (Bearer token via `TRUESOURCE_API_KEY`)
- **Performance:** Timeout reduced 180s → 30s (MCP host compatibility)
- **Performance:** HTML streaming with `</head>` early-abort for Schema/OG checks
- **DX:** Improved tool descriptions with explicit trigger words for better LLM routing
- **DX:** `npx -y` install flow documented (prevents silent freeze)
### v1.1.0 (2026-03-29) — Optimization Release
- **Performance:** Parallelized 5 checks with `Promise.allSettled` (3s → ~1s)
- **Bugfix:** Register `geo_check_robots` tool
- **Bugfix:** Fix `{{HOST}}` placeholder in generated robots.txt
- **Bugfix:** Fix response format mismatch in check-robots
### v1.0.0 (2026-03-28) — Initial Release
- 3 tools: `geo_score`, `geo_inject`, `vibetags_generate`
- Stdio transport, Railway API integration
## License
MIT — TrueSource AI / Sascha Deforth
TDQS
A4.4/5.0
Scored across 4 tools
Disambiguation5/5
Each tool has a clearly distinct purpose: checking robots.txt, generating robots/llms files, scoring AI readiness, and generating VibeTags. No overlap or ambiguity.
Naming Consistency5/5
All tool names follow a consistent verb_noun pattern in snake_case (e.g., geo_check_robots, vibetags_generate). The naming is predictable and clear.
Tool Count5/5
With 4 tools, the server is well-scoped for its domain of AI visibility and brand perception. Each tool covers a core functionality without being excessive or insufficient.
Completeness5/5
The tool set covers the essential workflows: checking, generating, scoring, and brand analysis. There are no obvious gaps for the stated purpose of managing AI visibility and brand perception.
Maintenance
ActivityInactive
ResponsivenessNo issues