TOP GUN GEO-Lens
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@TOP GUN GEO-Lensquick check visibility for brand 'Stripe'"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
TOP GUN GEO-Lens — MCP Brand Visibility Auditor
For AI Agents: This is an MCP server. Connect it, call its tools, and instantly know whether any brand is visible to LLMs and AI search engines — with actionable recommendations to improve it.
What This Does
TOP GUN GEO-Lens measures how visible a brand is across the sources that power AI answers: Brave AI Search, Exa neural search, and LLM-indexed content. It returns a scored report with citations, index status, and concrete GEO (Generative Engine Optimization) recommendations.
Use it when an agent needs to answer questions like:
"Is [brand] showing up in AI-powered search results?"
"Why isn't [brand] being recommended by AI assistants?"
"What should [brand] do to rank higher in LLM outputs?"
Related MCP server: Sanbi ADK Agent MCP Server
Tools
geo_quick_check — $0.05 USDC
Fast snapshot of brand visibility in AI-indexed sources.
Output | Detail |
Visibility score | 0–100 |
Score label | Strong / Moderate / Weak / Not Found |
Top 3 citations | URL, title, snippet, source |
2 quick tips | Actionable GEO improvements |
{
"tool": "geo_quick_check",
"query": "Stripe",
"paymentToken": "<stripe-session-id>"
}audit_brand — $1.50 USDC
Full brand visibility audit using dual search (Brave + Exa, 10 results each).
Output | Detail |
Visibility score | 0–100 |
Score label | Strong / Moderate / Weak / Not Found |
Top 5 citations | URL, title, snippet, source, position |
LLM index status | Brave indexed, Exa indexed, estimated reach |
6 GEO recommendations | Prioritized, actionable improvements |
{
"tool": "audit_brand",
"query": "Anthropic",
"paymentToken": "<stripe-session-id>"
}get_payment_info — Free
Returns payment URLs and USDC wallet address for both tiers. Call this first if you don't have a payment token.
{
"tool": "get_payment_info"
}Agent Workflow
1. Call get_payment_info → get payment URLs
2. Direct user to payment link → user pays $0.05 or $1.50 USDC
3. User provides Stripe session ID
4. Call geo_quick_check or audit_brand with paymentToken
5. Parse structured results → score, citations, recommendationsIf paymentToken is omitted, the tool returns a payment link instead of results — no error thrown.
Connecting to Claude / MCP Clients
Add to your claude_desktop_config.json (or equivalent MCP config):
{
"mcpServers": {
"top-gun-geo-lens": {
"command": "node",
"args": ["/path/to/top_gun_mcp_server/dist/index.js"],
"env": {
"STRIPE_SECRET_KEY": "sk_live_...",
"STRIPE_PAYMENT_URL": "https://buy.stripe.com/...",
"STRIPE_QUICK_CHECK_PAYMENT_URL": "https://buy.stripe.com/...",
"BRAVE_SEARCH_API_KEY": "BSA...",
"EXA_API_KEY": "...",
"USDC_WALLET_ADDRESS": "0x..."
}
}
}
}Setup
git clone https://github.com/spacemandomains/top_gun_mcp_server
cd top_gun_mcp_server
npm install
cp .env.example .env # fill in your keys
npm run build
npm startRequired env vars:
Variable | Required | Description |
| Yes | Stripe secret key for payment verification |
| Yes | Payment link for full audit ($1.50 USDC) |
| Yes | Payment link for quick check ($0.05 USDC) |
| No* | Brave Search API key |
| No* | Exa neural search API key |
| No | USDC wallet address shown to payers |
*At least one search API key is required for results.
Pricing Summary
Tool | Cost | Best For |
| $0.05 USDC | Quick sanity check, high-volume workflows |
| $1.50 USDC | Deep audit, client reports, GEO strategy |
Tech Stack
Runtime: Node.js ≥ 18, TypeScript
Protocol: Model Context Protocol (
@modelcontextprotocol/sdk)Search: Brave Search API + Exa neural search
Payments: Stripe + USDC on-chain
Deploy: Vercel-ready
For AI Agents — Key Facts
Transport:
stdioNo streaming — all responses are single text blocks
Scores range 0–100;
>= 70= Strong,40–69= Moderate,1–39= Weak,0= Not FoundPayment tokens are Stripe Checkout Session IDs (format:
cs_live_...)Calling any paid tool without a token returns a structured payment prompt, not an error
audit_brandis strictly more detailed thangeo_quick_check; use quick_check for speed/cost, audit for depth
Available Tools
3 toolsaudit_brandAInspect
Full brand visibility audit across LLM-indexed sources (Brave + Exa, 10 results). Returns a visibility score (0–100), score label, top 5 citation URLs, LLM index status, and 6 actionable GEO recommendations. Costs $1.50 USDC. For a quick snapshot at $0.05 use geo_quick_check.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Brand name, company, or product to audit (e.g. 'Anthropic', 'Linear', 'Vercel') | |
| paymentToken | No | Stripe checkout session ID from a completed $1.50 USDC payment. If omitted, the tool returns a payment link instead of audit results. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It discloses the cost ($1.50 USDC), the return values, and the behavior when paymentToken is omitted (returns payment link). This is comprehensive for a read-only audit tool.
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?
Two concise sentences with no wasted words. First sentence covers purpose and output, second adds cost and alternative. Information density is high and well-organized.
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?
Despite no output schema, the description lists all return components (visibility score, label, citations, index status, GEO recommendations). It also covers payment flow and alternative tool. Completeness is high.
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 coverage is 100% (baseline 3). The description adds value beyond schema by explaining the query parameter with examples and clarifying the paymentToken role. This justifies a higher score.
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 performs a 'Full brand visibility audit across LLM-indexed sources (Brave + Exa, 10 results).' It differentiates from sibling tool 'geo_quick_check' by specifying the scope and depth.
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?
Explicitly suggests using 'geo_quick_check' for a quick snapshot at lower cost, providing clear context for when to choose this tool. Could further state when not to use it (e.g., for non-LLM sources) but is adequate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
geo_quick_checkAInspect
Quick brand visibility snapshot across LLM-indexed sources. Returns a score (0–100), top 3 citation URLs, and 2 quick improvement tips. Single-source search (5 results). Costs $0.05 USDC. For full citations, LLM index status, and 6 GEO recommendations use audit_brand ($1.50).
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Brand name, company, or product to check (e.g. 'Stripe', 'Notion', 'Acme') | |
| paymentToken | No | Stripe checkout session ID from a completed $0.05 USDC payment. If omitted, the tool returns a payment link. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses key behaviors: it is a single-source search (5 results), costs $0.05 USDC, and returns a payment link if no token is provided. However, it does not mention what happens on error (e.g., invalid brand or token) or any rate limits, but the transparency is adequate for a simple read-oriented tool.
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 extremely concise—two sentences that front-load the core purpose and output, then directly contrast with the sibling tool. Every sentence adds essential information without redundancy.
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?
The tool is simple and lacks an output schema, but the description lists the expected return elements (score, URLs, tips). It is complete enough for an agent to understand what the tool does and what it yields. Minor gaps like error handling or result format details are acceptable given the tool's simplicity.
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% (both parameters have descriptions). The description adds value beyond schema by explaining the paymentToken fallback behavior ('If omitted, the tool returns a payment link') and implicitly connecting the query to a brand name, but the schema already handles the basic semantics well.
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 function: a quick brand visibility snapshot across LLM-indexed sources, returning a score, top 3 citations, and 2 tips. It also distinguishes from the sibling 'audit_brand' by emphasizing it's a single-source search with limited results and a lower cost, making the purpose unambiguous.
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 explicitly tells the agent when to use this tool ('quick snapshot') and when to use the sibling 'audit_brand' for full citations and recommendations. It also notes the payment requirement and provides the fallback behavior (returns payment link if token omitted), offering clear guidance on invocation context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_payment_infoAInspect
Get payment URLs and USDC wallet address for both audit tiers.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears full burden. It implies a read-only retrieval operation with no side effects, but does not mention authorization, rate limits, or any behavioral nuances. For a simple getter with zero parameters, the disclosure is adequate but minimal.
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 a single sentence with 11 words, front-loading the core action and resource. Every word earns its place; no redundancy or fluff.
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 no output schema and no annotations, the description could be more explicit about the structure of the returned data (e.g., format of URLs, whether both tiers are returned in a single response). However, for a zero-parameter tool of low complexity, the current description provides a functional minimum.
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 tool has zero parameters, so the description does not need to add parameter info. The schema coverage is vacuously 100%. Baseline for 0 params is 4, and the description correctly focuses on the tool's output, adding no confusion.
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 uses a specific verb 'Get' and clearly identifies the resources: 'payment URLs and USDC wallet address'. It also specifies scope ('for both audit tiers'), which distinguishes it from sibling tools that deal with brand audits and geographic checks. The purpose is unambiguous.
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?
No explicit guidance on when to use this tool versus alternatives. The description implies it is for retrieving payment info, but does not state when not to use it or provide comparative context. The simplicity of the tool (no parameters) makes this gap minor.
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.
3 tool updates
v1.0.0- First observed
audit_brand - First observed
geo_quick_check - First observed
get_payment_info
TDQS
Scored across 3 tools
Get_payment_info is clearly separate from the two audit tools. Geo_quick_check and audit_brand serve the same core purpose but are well-differentiated by cost and depth, reducing ambiguity.
Naming is inconsistent: 'get_payment_info' uses verb_noun, 'geo_quick_check' uses a compound noun, and 'audit_brand' uses verb_noun. No clear pattern across tools.
With only 3 tools, the server feels minimal for a brand visibility service. While each tool has a clear purpose, the surface is thin for typical CRUD or lifecycle coverage.
The core audit functionality is covered, but there are obvious gaps: no tool to retrieve audit history, manage payments, or update user profile. The service likely requires repeated interactions, yet no persistence tools exist.
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
Monitor brand visibility, citations, competitors, sentiment, and GEO performance in AI search.
- CiteHawkOAuthcom.citehawk
AI-search visibility (GEO) analytics: brand scores, competitor rankings, recommendations, evidence.
Measure how AI engines cite your brand. Cross-engine GEO visibility, as agent tools.
GEO platform: track brand visibility, citations, sources and measurement verdicts across AI answers.
Related MCP Servers
- AlicenseAqualityCmaintenanceEnables brand visibility monitoring across major AI platforms like ChatGPT, Claude, Gemini, and Perplexity. It allows users to track visibility scores, analyze competitor data, and receive actionable insights to improve AI-generated brand recommendations.16151MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI agents to run brand-visibility audits by querying multiple AI engines, generating competitive leaderboards, and identifying growth opportunities. Integrates with any MCP-capable client to measure and act on brand discoverability in AI recommendations.MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI assistants to scan brand visibility across ChatGPT, Claude, Gemini & Perplexity, analyze website GEO readiness, compare competitors, and get actionable recommendations.MIT
- AlicenseAqualityCmaintenanceEnables AI visibility analysis for brands, providing scores, sentiment, competitor comparison, and recommendations across multiple AI models like Claude and GPT-4o.2151MIT