Skip to main content
Glama
competlab

competlab-mcp-server

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
COMPETLAB_API_KEYYesYour CompetLab API key (starts with cl_live_). This key is used for authentication via the 'CL-API-Key' header or the 'api_key' query parameter.

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": true
}
prompts
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
list_projects

List all projects in your organization with status, competitor count, and last monitored timestamp. Start here — call this first to discover available projectId values required by all other tools. Read-only. Returns JSON array of projects.

get_project

Get project details including per-dimension monitoring freshness (techTrust, content, positioning, pricing, aiVisibility), AI monitoring prompts, and overall status. Use this after list_projects to check when each dimension was last updated before fetching dimension data. Read-only. Returns JSON object.

list_competitors

List all competitors being monitored for a project. Includes the user's own domain (marked isOwn: true) for self-analysis comparison. Returns domain, name, and status for each competitor. Use this to get competitorId values needed by list_alerts, get_competitor, and get_content_changelog. Read-only. Returns JSON array.

get_competitor

Get competitor details including monitored pages (homepage URL, pricing page URL) and configuration. Use this when you need specific competitor metadata beyond what list_competitors provides — for example, to find which URLs are being tracked. Requires competitorId from list_competitors. Read-only. Returns JSON object.

list_alerts

Get paginated competitive alerts — detected changes across all monitored dimensions. Filter by dimension (tech-trust, content, positioning, pricing, ai-visibility), severity (critical, high, medium, info), and/or competitorId. Alerts include change diffs and action hints. Use this to find recent competitive changes before diving into specific dimension dashboards. Read-only. Returns paginated JSON array with pagination.hasMore flag.

get_tech_trust_dashboard

Get the latest Tech & Trust Profile for all competitors. Returns security headers (grade A-F, HSTS, CSP, X-Frame-Options), trust signals (compliance, reviews, social proof, certifications — 24 signals in 4 categories), technology stack (47 tech, 43 growth, 27 engagement tools), robots.txt AI bot blocking status, DNS infrastructure, and AI analysis with insights and actions. Use this for the current snapshot; use get_tech_trust_history for past runs. Note: per-competitor securityGrade and securityScore may be null and securitySignalsAvailable: { available: false, reason: 'site_uses_behavioral_protection' } may appear when a competitor uses behavioral bot protection — treat as "unscannable" rather than failing. Read-only. Returns JSON object.

get_tech_trust_history

Get paginated history of Tech & Trust monitoring runs with completion timestamps. Use this to compare changes over time — each run captures a full snapshot of all competitors. Retrieve specific run data with get_tech_trust_run_detail using the runId from this response. Read-only. Returns paginated JSON array with pagination.hasMore flag.

get_tech_trust_run_detail

Get full competitor-by-competitor Tech & Trust data for a specific historical run. Returns the same data structure as get_tech_trust_dashboard but for a past point in time. Use this to investigate what changed between runs or to audit a specific monitoring cycle. Requires runId from get_tech_trust_history. Per-competitor security headers may carry signalsAvailable: { available: false, reason: 'site_uses_behavioral_protection' } for bot-protected targets. Read-only. Returns JSON object.

get_content_dashboard

Get the latest Content Intelligence for all competitors. Returns sitemap URL counts, strategic URL identification, content categorization (11 categories), sitemap structure data, content gap analysis, and AI analysis with insights and actions. Use this for the current snapshot; use get_content_history for past runs or get_content_changelog for URL-level changes. Read-only. Returns JSON object.

get_content_history

Get paginated history of Content Intelligence monitoring runs with completion timestamps. Use this to compare content snapshots over time — each run captures sitemap analysis for all competitors. Retrieve specific run data with get_content_run_detail using the runId from this response. Read-only. Returns paginated JSON array with pagination.hasMore flag.

get_content_run_detail

Get full competitor-by-competitor Content Intelligence data for a specific historical run. Returns the same data structure as get_content_dashboard but for a past point in time. Use this to investigate content strategy changes between runs. Requires runId from get_content_history. Read-only. Returns JSON object.

get_content_changelog

Get detected content changes over time — new URLs, removed URLs, moved URLs. Filter by competitor and/or content category (e.g., blog, docs, tools, landing, caseStudies). Use this instead of comparing full runs when you only need to know what changed. Complements get_content_dashboard which shows the current state. Read-only. Returns paginated JSON array with pagination.hasMore flag.

get_positioning_dashboard

Get the latest Positioning analysis for all competitors. Returns homepage messaging: page title, main headline, tagline, value proposition, primary/secondary CTAs, key offerings, target audience, main differentiator, pricing mentions, free trial info, and AI analysis with insights and actions. Use this for the current snapshot; use get_positioning_history for past runs. Read-only. Returns JSON object.

get_positioning_history

Get paginated history of Positioning monitoring runs with completion timestamps. Use this to track how competitors change their homepage messaging over time. Retrieve specific run data with get_positioning_run_detail using the runId from this response. Read-only. Returns paginated JSON array with pagination.hasMore flag.

get_positioning_run_detail

Get full competitor-by-competitor Positioning data for a specific historical run. Returns the same data structure as get_positioning_dashboard but for a past point in time. Use this to investigate how competitor messaging evolved between runs. Requires runId from get_positioning_history. Read-only. Returns JSON object.

get_pricing_dashboard

Get the latest Pricing Intelligence for all competitors. Returns structured pricing plans (name, price, billing interval, summary — up to 5 plans per competitor), market pricing statistics, pricing gap analysis, and AI analysis with insights and actions. Use this for the current snapshot; use get_pricing_history for past runs. Read-only. Returns JSON object.

get_pricing_history

Get paginated history of Pricing Intelligence monitoring runs with completion timestamps. Use this to track how competitor pricing changes over time. Retrieve specific run data with get_pricing_run_detail using the runId from this response. Read-only. Returns paginated JSON array with pagination.hasMore flag.

get_pricing_run_detail

Get full competitor-by-competitor Pricing Intelligence data for a specific historical run. Returns the same data structure as get_pricing_dashboard but for a past point in time. Use this to investigate pricing changes between runs or audit a specific monitoring cycle. Requires runId from get_pricing_history. Read-only. Returns JSON object.

get_ai_visibility_dashboard

Get the latest AI Visibility scores for all competitors. This is CompetLab's unique dimension — no other CI platform tracks how LLMs rank brands. Returns AI Visibility Score (weighted 0-100 composite), Mention Rate (fraction of queries where brand is mentioned), per-provider breakdowns (OpenAI, Claude, Gemini), competitor rankings, and aggregated AI analysis. Each check queries 3 prompts across 3 LLMs = 9 total AI queries. Use this for the current snapshot; use get_ai_visibility_history for past checks or get_ai_visibility_trend for time-series data. Read-only. Returns JSON object.

get_ai_visibility_history

Get paginated history of AI Visibility checks with completion timestamps. Note: uses checkId (not runId) — AI Visibility has a different data model where each check is one 3-prompt x 3-LLM query cycle. Use this to browse past checks; retrieve full detail with get_ai_visibility_check_detail, or use get_ai_visibility_trend for aggregate time-series. Read-only. Returns paginated JSON array with pagination.hasMore flag.

get_ai_visibility_check_detail

Get full detail for a specific AI Visibility check including per-competitor rankings, mention rates, AI Visibility Scores, and per-provider results (OpenAI, Claude, Gemini). Returns the same data structure as get_ai_visibility_dashboard but for a past point in time. Uses checkId (not runId) — get checkId values from get_ai_visibility_history. Read-only. Returns JSON object.

get_ai_visibility_trend

Get AI Visibility trend data over time — track how LLM brand perception changes. Returns up to 200 data points. Without provider filter: returns pre-computed aggregate summaries across all LLMs. With provider filter (openai, claude, gemini): computes from raw per-provider results. Use this for time-series analysis; use get_ai_visibility_dashboard for the latest snapshot or get_ai_visibility_check_detail for a specific check. Read-only. Returns JSON array. Dates are ISO-8601 format.

list_schedules

Get monitoring schedules for all 5 dimensions. Returns enabled/disabled status, interval in days, next run timestamp, and last run timestamp per dimension. Dimension names use marketing names (tech-trust, content, positioning, pricing, ai-visibility). Use this to check when the next monitoring run is due or verify scheduling configuration. Read-only. Returns JSON array.

get_action_plan

Get the AI-generated competitive action plan aggregated across all 5 monitoring dimensions. Returns insights (with evidence and related competitors) and recommended actions (with rationale), plus per-dimension analysis freshness timestamps. This is the highest-level intelligence output — start here for a strategic overview before drilling into specific dimensions. Read-only. Returns JSON object.

check_sitemap

Live sitemap analysis for any domain — discovers URLs, categorizes by section, identifies content gaps and depth. Works on any public domain (no project setup required). Read-only. Returns JSON object.

check_ai_crawlers

Live check of AI crawler access via robots.txt and meta tags — covers GPTBot, ClaudeBot, Google-Extended, PerplexityBot, and others. Returns per-crawler allow/block verdict. Works on any public domain (no project setup required). Read-only. Returns JSON object.

start_tech_stack_scan

Start an async tech-stack detection on any domain — 117 detection rules across tech stack (hosting / frameworks / CMS / payments), growth stack (analytics / marketing / CRM / advertising), and engagement stack (support / forms / video / monitoring). Returns scanId immediately; poll with get_tech_stack_scan. Typical completion: 30-90 seconds. Creates a scan record.

get_tech_stack_scan

Retrieve status or full results of a tech-stack scan by scanId. Returns current status while running, detected technologies with confidence scores when complete. May include top-level partialDetection: { headersAvailable: false, reason: 'site_uses_behavioral_protection' } when the target uses behavioral bot protection — HTML-based detections (~85% of matchers) still fire, only header-derived hosting/CDN signals are missing. Recommended poll interval: 5-10 seconds. Read-only.

start_trust_signals_scan

Start an async trust-signals analysis on any domain — 34 signals across enterprise readiness, third-party validation, social proof, brand authority, and risk reversal. Returns scanId immediately; poll with get_trust_signals_scan. Typical completion: 30-90 seconds. Creates a scan record.

get_trust_signals_scan

Retrieve status or full results of a trust-signals scan by scanId. Returns current status while running, per-signal verdicts and tier verdict when complete. May include top-level signalsAvailable: { available: false, reason: 'site_uses_behavioral_protection' } when the target uses behavioral bot protection — in that case verdict, signalsDetected, suspiciousPatterns, and gapsVsBenchmark carry placeholder values (tier: 'minimal', score: 0) and the scan should be treated as unscannable; always check signalsAvailable first. Recommended poll interval: 5-10 seconds. Read-only.

start_agent_adoption_scan

Start an async Agent-Adoption Check on any domain — 25 checks across discoverability, access control, content readability, and agent endpoints, per the open Agent-Adoption Specification. Returns scanId immediately; poll with get_agent_adoption_scan. Typical completion: 30-90 seconds. Creates a scan record.

get_agent_adoption_scan

Retrieve status or full results of an Agent-Adoption Check by scanId. Returns current status while running, complete results when finished. For bot-protected targets the link-headers and cache-header-hygiene checks emit details.reason: 'site_uses_behavioral_protection' with neutral messaging (scored: false, weight: 0 — no score impact). The counter meta.counters.heavyFetchCalls tracks heavy-fetch usage (renamed from n8nCalls as of 2026-05-22 — update consumers). Recommended poll interval: 5-10 seconds. Read-only.

fetch_url

Fetch any URL with automatic JS-rendering and common bot-protection handling — advanced behavioral fingerprinting may still block header retrieval (surfaced via headersAvailable: false). Returns body, headers, cleanStats. Optional cleanHtml strips HTML noise while preserving text content — token-cost win for LLM consumption.

Prompts

Interactive templates invoked by user choice

NameDescription
competitive_overviewGet a full competitive briefing for a project — action plan, alerts, and all 5 dimension dashboards in one go.
ai_visibility_reportAnalyze how AI models (ChatGPT, Claude, Gemini) perceive and rank your brand vs competitors.

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/competlab/competlab-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server