The Diploria MCP (Model Context Protocol) server lets Claude Desktop, Cursor, Windsurf, Zed, and other MCP-compatible AI assistants read your brand's AI visibility data directly. Once connected, you can ask your AI assistant natural-language questions, including "which prompts have the lowest mention rate this month?", "where are competitors outperforming us?", and "has our visibility improved since the last content update?", and get answers pulled from your live Diploria data without opening a browser.
In short
- Install the MCP server with
npx -y diploria-mcp, no manual package management needed.- Generate an API key in Diploria under Settings → API Keys and paste it into your AI assistant's config.
- The MCP exposes 25 tools covering visibility, prompts, competitors, citations, readiness, accuracy, and more.
- You do not need to write queries or look up IDs yourself; the AI assistant handles orchestration.
What is the Model Context Protocol?
The Model Context Protocol is an open standard, developed by Anthropic, that lets AI assistants call external tools during a conversation. When you connect Diploria via MCP, your AI assistant gains access to a named set of functions: get_brand_dashboard, get_competitor_gaps, get_visibility_trend, and so on, which it can call automatically when you ask a question that requires that data.
The practical result is that you can have a genuine back-and-forth with your AI assistant about your brand's performance. You ask a question; the assistant calls whichever tools it needs, reads the results, and writes an answer in plain language. It can combine data from multiple tools in one response. For instance, it can read both the visibility trend and the competitor gap data to answer "why did our score drop last month?" without you having to look anything up manually.
What do you need before you start?
Before setting up the MCP you need three things: a Diploria account with at least one brand configured and at least one completed poll run, an API key from Diploria, and one of the supported AI assistants installed on your machine.
The API key controls access. Generate one under Settings → API Keys inside Diploria. Copy the full key when it is shown. It will not be displayed again. The key authenticates every request the MCP server makes on your behalf.
The supported AI assistants are Claude Desktop, Cursor, Windsurf, Zed, and any other application that supports MCP servers over stdio. The setup steps are similar across all of them; the differences are only in which config file to edit.
How do you install the MCP server?
You do not install anything manually. When you add npx -y diploria-mcp as the command in your assistant's MCP config, the assistant handles downloading and running the package each time it starts. The package is published to npm as diploria-mcp.
The config block is the same across Claude Desktop, Cursor, and Windsurf:
{
"mcpServers": {
"diploria": {
"command": "npx",
"args": ["-y", "diploria-mcp"],
"env": {
"DIPLORIA_API_KEY": "dip_your_key_here",
"DIPLORIA_API_BASE": "https://diploria.ai/api"
}
}
}
}
Replace dip_your_key_here with your API key. The DIPLORIA_API_BASE value is the same for all users and does not need to change.
Claude Desktop
Open Claude Desktop, go to Settings → Developer → Edit Config, and paste the block above into claude_desktop_config.json. Save the file, then quit and re-open Claude Desktop. The 🔨 tools icon in any conversation confirms Diploria is connected.
Cursor
Go to Cursor Settings → MCP → Add new global MCP server and paste the config block into ~/.cursor/mcp.json. Restart Cursor and open a new chat. The Diploria tools should appear in the tools panel.
Windsurf
Go to Windsurf Settings → Cascade → MCP Servers → View raw config and paste the block into ~/.codeium/windsurf/mcp_config.json. Restart Windsurf. The Diploria server should appear in the MCP Servers list as Connected.
Zed
Open ~/.config/zed/settings.json and add the config block under a top-level "context_servers" key. Restart Zed.
What data is available through the MCP?
The MCP exposes 25 tools organized into six areas: brand overview, prompt and performance detail, competitor analysis, content readiness, accuracy monitoring, and authority signals. Each tool maps to a specific slice of your Diploria data.
Brand overview
list_brands: Returns all brands in your account with their IDs, names, and domains. Call this first in any new conversation to find the brandId values needed by all other tools.
get_brand_dashboard: Returns visibility scores, mention rates, and last poll date for a brand across the last 30 days. Includes a combined visibilityScore (0–100) plus a byType breakdown splitting branded, non-branded, and scenario prompt results separately. Use byType.nonBranded for organic AI presence — the combined score is skewed upward by branded prompts where the brand is almost always mentioned.
Prompts and performance
get_prompts: Lists every tracked prompt with its text, type (branded, non-branded, scenario), intent, format, which engines it runs on, which markets it covers, SEO volume, and labels. This is the foundational tool. Use it to enumerate what is being monitored before diving into performance data. Supports filtering by active, type, and intent.
get_poll_history: Returns recent poll run history: dates, statuses, and prompt counts. Useful for finding a specific runId to pass to get_poll_results.
get_poll_results: Returns the full per-engine, per-prompt mention breakdown for a single poll run, including whether the brand was mentioned, its position, sentiment, and which market the result covers.
get_prompt_answers: Returns the full AI-generated answer text per prompt and engine. The most recent response for each (prompt, engine) pair. Use this when you want to read exactly what ChatGPT, Claude, or Gemini wrote, not just whether the brand appeared. Supports filtering by promptId, engine, and date.
get_visibility_trend: Returns share-of-voice score and average mention position for each completed poll run over time. The right tool for answering "has our visibility improved?" or "when did the drop start?". Configurable look-back window up to 365 days.
get_performance_by_prompt: Returns per-prompt mention rate, average position, and three sub-breakdowns: by engine (ChatGPT vs Gemini vs Claude vs Perplexity vs Grok), by coverage type (memory vs live_search), and by market. The most complete cross-sectional view of what is working and what is not.
get_market_breakdown: Returns mention rate and average position aggregated by market (country or region). Shows where the brand performs strongest and where it has gaps geographically.
get_engine_coverage_breakdown: Returns three views: by engine, by coverage type (memory = trained knowledge, live_search = web-grounded responses), and by the combination of both. Useful for understanding whether the brand's gap is in trained knowledge or live retrieval.
get_tag_analytics: Returns mention rates broken down by intent category and engine. Answers questions like "which intent categories are we weakest in?" or "which engine is most responsive to navigational queries?".
get_discovered_questions: Returns questions about the brand's category that were discovered via Reddit threads, fan-out extraction, and keyword analysis. These are real questions being asked in the market, a direct source of content gap ideas. Filter by status: new, tracked, brief_created, dismissed, or all.
Competitor analysis
get_competitor_gaps: Returns side-by-side mention rate comparisons between the brand and its tracked competitors across every prompt. Shows exactly which questions competitors are winning and by how much.
get_competitor_citations: Returns URLs that cite competitors but not the brand. A prioritized outreach list: these are the sources already covering the category where the brand is absent.
get_load_bearing_sources: Returns the URLs appearing most frequently across all AI engine citations. These are the "load-bearing" sources that disproportionately shape what AI engines say about the category.
Content readiness
get_readiness_index: Returns the overall AI readiness score with category breakdown across structure, access, authority, accuracy, and content pillars.
get_readiness_scans: Returns scanned URLs with their pillar-by-pillar readiness scores. Each scan checks a page across multiple criteria.
get_readiness_recommendations: Returns specific actionable fixes from failed readiness checks, ranked by potential score improvement. The fastest path to prioritized technical work.
get_optimization_quadrant: Maps pages by readiness score versus citation rate. Surfaces quick wins (cited but not ready) and distribution gaps (ready but not cited).
get_ai_access_status: Returns the per-check status for every AI access signal: robots.txt allow-list, edge bot blocking, noindex tags, raw HTML availability, and snippet controls. overallBlocked: true means something is actively preventing AI systems from reading the site.
Accuracy monitoring
get_accuracy_facts: Returns the brand's ground-truth fact set: the authoritative claims used as the baseline for hallucination detection (pricing, founding year, key differentiators, and so on).
get_accuracy_incidents: Returns detected hallucinations and misstatements with severity levels. Shows what AI engines are currently saying incorrectly about the brand.
Authority signals
get_offsite_authority: Returns the off-site authority score (0–100) and six underlying dimensions: source presence rate, entity completeness (Wikipedia, Wikidata, LinkedIn, Crunchbase, G2), community presence, branded demand, channel diversity, and accuracy standing. Pinpoints which dimension is limiting the authority band.
get_agent_traffic_summary: Returns AI bot traffic metrics (GPTBot, ClaudeBot, PerplexityBot, etc.) on the brand domain, including how frequently AI crawlers visit and which ones are most active.