Docs›MCP Server

MCP Server

The BobBuilds MCP server exposes your workspace as a set of tools usable directly from Claude Desktop, Cursor, Windsurf, or any MCP-compatible client. Run scans, query visibility data, configure prompts, and get GEO recommendations — all through natural language.

Installation

Build the MCP server from the BobBuilds monorepo:

git clone https://github.com/bobbuilds/bobbuilds
cd bobbuilds
pnpm install
pnpm --filter @bobbuilds/mcp build

The compiled output will be at apps/mcp/dist/index.js.

Authentication

The server requires a BOBBUILDS_API_KEY environment variable. Generate one from your dashboard under Settings → API Keys.

BOBBUILDS_API_KEY=bb_your_key_here

Claude Desktop

Edit ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):

{
 "mcpServers": {
 "bobbuilds": {
 "command": "node",
 "args": ["/path/to/bobbuilds/apps/mcp/dist/index.js"],
 "env": {
 "BOBBUILDS_API_KEY": "bb_your_key_here"
 }
 }
 }
}

Cursor

Open Settings → MCP and add:

{
 "bobbuilds": {
 "command": "node",
 "args": ["/path/to/bobbuilds/apps/mcp/dist/index.js"],
 "env": {
 "BOBBUILDS_API_KEY": "bb_your_key_here"
 }
 }
}

Tool Reference

14 tools across 5 categories. All tools are scoped to your workspace automatically.

Scans

run_scan

Trigger a brand visibility scan across all connected AI providers (ChatGPT, Gemini, Perplexity, Claude, Google AI Overview). Returns a jobId to poll for status.

No parameters required.

get_scan_status

Poll the progress of a running scan. Call every few seconds until status is 'completed'.

Parameters

jobIdstringrequiredThe jobId returned by run_scan
stop_provider

Stop a specific AI provider mid-scan.

Parameters

jobIdstringrequiredThe jobId of the running scan
providerenumrequiredProvider to stop: chatgpt | gemini | perplexity | claude | ai-overview

Workspace

get_workspace

Get workspace details: name, domain, schedule, and enabled providers.

No parameters required.

get_schedule

Get the cron schedule for automatic scans (e.g. '0 9 * * *' for daily at 9am).

No parameters required.

set_schedule

Set or clear the cron schedule for automatic scans. Pass null to disable.

Parameters

schedulestring | nullrequiredCron expression (e.g. '0 9 * * *') or null to disable
get_providers

Get the list of AI providers currently enabled for this workspace.

No parameters required.

set_providers

Update which AI providers are enabled for scans.

Parameters

enabledProvidersstring[]requiredArray of provider identifiers to enable

Prompts

store_prompts

Save one or more prompts to the workspace. These are the questions asked to AI providers during scans.

Parameters

promptsstring[]requiredArray of prompt strings to store
get_prompts

List all configured prompts for the workspace.

No parameters required.

get_prompt_sources

Fetch aggregated source and citation data — which URLs are cited by AI providers in response to your prompts.

No parameters required.

Analysis

analyze_metrics

Run AI analysis on all unanalyzed prompt responses. Extracts brand mention scores, sentiment, citations, and ranking.

Parameters

analyzeAllbooleanRe-analyze all responses, not just new ones (default: true)
get_analysis

Fetch all analysis records for the workspace — brand scores, sentiment, citation counts, provider breakdowns.

No parameters required.

GEO Advisor

geo_chat

Chat with the GEO advisor agent. Ask questions about your brand's AI visibility and get actionable recommendations.

Parameters

messagesarrayrequiredConversation history: [{role: "user" | "assistant", content: string}]
brandNamestringrequiredName of the brand to analyze
crawl_brand

Crawl a brand's website to build brand memory used by the GEO advisor.

Parameters

brandNamestringrequiredBrand name
domainstringrequiredBrand domain, e.g. 'acme.com'
get_brand_memory

Get the stored brand memory summary, key claims, and tone used by the GEO advisor.

No parameters required.

get_recommendations

Generate GEO optimization recommendations based on current AI visibility data.

Parameters

brandNamestringrequiredBrand name
brandDomainstringrequiredBrand domain, e.g. 'acme.com'