Limelit MCP · public reference

Give your agent the signal. Keep your team in control.

Connect a supported MCP client to your property's visibility, perception, source, content, search, and crawler evidence. Limelit scopes every call to the property and role attached to your personal access token.

4client families
53role-aware tools
6guided templates

01 · Authenticate once

From account to first tool call.

You need a Limelit account, an active property membership, and a personal API key. The key is shown once; the server stores only its hash.

  1. 1
    Open API keys

    Sign in, choose the intended property, then open Settings → API keys.

    Create key in Settings
  2. 2
    Create and store the key

    Name the key for its client and device. Copy the plaintext value when it appears.

  3. 3
    Configure one client family

    Use the endpoint and Authorization header exactly as shown below.

  4. 4
    Verify before acting

    List tools and prompts, confirm the active property, then approve write calls deliberately.

Four client families

Choose the surface where your team already works.

Every example targets the same HTTPS endpoint and contains a placeholder, never a live credential. Client vendors can change their settings UI; the linked references are the current source of truth for client-specific behavior.

Claude Desktop / Code

Use the local bridge for Claude Desktop, or connect Claude Code directly over Streamable HTTP.

  1. Create a Limelit API key and keep the one-time plaintext value local.
  2. Choose the Desktop config or Claude Code command below.
  3. Restart Desktop or run /mcp in Claude Code, then confirm the limelit server is connected.
Claude Desktopclaude_desktop_config.json · Node.js 18+
{
  "mcpServers": {
    "limelit": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote@0.1.38",
        "https://api.limelit.co/mcp",
        "--header",
        "Authorization:${LIMELIT_AUTH_HEADER}"
      ],
      "env": {
        "LIMELIT_AUTH_HEADER": "Bearer <LIMELIT_API_KEY>"
      }
    }
  }
}
Claude CodeTerminal · user scope
claude mcp add --scope user --transport http limelit \
  https://api.limelit.co/mcp \
  --header "Authorization: Bearer <LIMELIT_API_KEY>"
Official client reference

Cursor

Connect the remote server from a project or global MCP configuration.

  1. Export LIMELIT_API_KEY in the environment used to launch Cursor.
  2. Save the configuration globally or in the current project.
  3. Open Settings → MCP, enable Limelit, and review tool approvals before running writes.
Cursor~/.cursor/mcp.json or .cursor/mcp.json
{
  "mcpServers": {
    "limelit": {
      "url": "https://api.limelit.co/mcp",
      "headers": {
        "Authorization": "Bearer ${env:LIMELIT_API_KEY}"
      }
    }
  }
}
Official client reference

VS Code

Use a masked input variable so the key is not written into the MCP file.

  1. Run MCP: Open User Configuration, or create a workspace .vscode/mcp.json.
  2. Paste the configuration and save it.
  3. Start Limelit from MCP: Show Installed Servers and enter the key at the masked prompt.
VS Code.vscode/mcp.json or user mcp.json
{
  "servers": {
    "limelit": {
      "type": "http",
      "url": "https://api.limelit.co/mcp",
      "headers": {
        "Authorization": "Bearer ${input:limelitApiKey}"
      }
    }
  },
  "inputs": [
    {
      "id": "limelitApiKey",
      "type": "promptString",
      "description": "Limelit API key",
      "password": true
    }
  ]
}
Official client reference

Windsurf

Connect Cascade to the remote endpoint with environment-variable interpolation.

  1. Export LIMELIT_API_KEY in the environment used to launch Windsurf.
  2. Add the remote HTTP configuration to mcp_config.json.
  3. Refresh Cascade's MCP list, enable only the tools you need, and verify the server state.
Windsurf~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "limelit": {
      "serverUrl": "https://api.limelit.co/mcp",
      "headers": {
        "Authorization": "Bearer ${env:LIMELIT_API_KEY}"
      }
    }
  }
}
Official client reference

02 · Productized prompts

Six repeatable briefs with explicit evidence plans.

Discover them with prompts/list and render one with prompts/get. Each prompt embeds the active property context, validates declared arguments, and returns an ordered tool-call plan. It does not run those tools automatically.

MCP prompt

Weekly Pulse

limelit_weekly_pulse

A period-over-period operating brief covering KPIs, competitors, sources, freshness, and next actions.

Arguments
  • window_days — optional, 1–45; defaults to 7
MCP prompt

Competitor Radar

limelit_competitor_radar

A thresholded review of tracked-competitor movement and evidence-supported drivers.

Arguments
  • window_days — optional, 1–45; defaults to 7
  • threshold_pp — optional, 0–100; defaults to 10
MCP prompt

Engine Scorecard

limelit_engine_scorecard

A four-engine comparison of configured coverage, freshness, evidence, and explicit data gaps.

Arguments
  • window_days — optional, 1–90; defaults to 30
MCP prompt

Topic Heatmap

limelit_topic_heatmap

A topic-by-engine coverage map that ranks the most actionable measured blind spots.

Arguments
  • window_days — optional, 1–90; defaults to 30
MCP prompt

Prompt Grader

limelit_prompt_grader

An A-to-F audit of prompt balance, hygiene, funnel, competitor, and engine coverage.

Arguments
  • window_days — optional, 1–90; defaults to 30
MCP prompt

Campaign Tracker

limelit_campaign_tracker

A bounded before-and-after brief that separates measured movement from unsupported causal claims.

Arguments
  • campaign_date — required, YYYY-MM-DD UTC
  • window_days — optional, 1–45; defaults to 14
  • campaign_urls — optional, up to 10 comma-separated absolute HTTP(S) URLs

03 · Complete tool catalog

Fifty-three tools, filtered to the caller's role.

The catalog below documents every registered tool. tools/list returns only tools allowed by the key's effective role: owner includes admin and member; admin includes member; member is the baseline.

member+admin+owner
Property contextConfirm the active property, recent evaluation state, and headline outcomes.3
  • get_active_propertymember+

    Return the active property and caller context.

  • get_overview_kpismember+

    Read trailing visibility, citation, competitor, prompt, and source KPIs.

  • get_run_activitymember+

    Inspect in-flight and recent prompt-evaluation activity.

Perception & matrixRead measured perception signals and create a bounded public report when approved.6
  • get_perception_summarymember+

    Read visibility, Share of Voice, sentiment, average position, and period deltas.

  • get_sentiment_seriesmember+

    Read bucketed sentiment values and their supporting basis counts.

  • list_brand_attributesmember+

    List AI-attributed brand themes with current supporting evidence.

  • list_misinformationmember+

    List flagged claims, source evidence, and correction-draft availability.

  • get_matrixmember+

    Compare prompt and engine outcomes across supported matrix metrics.

  • create_perception_auditadmin+

    Create an expiring, tokenized public perception report.

Agent analyticsConnect known AI-bot retrieval activity to the pages answer engines cite.4
  • list_botsmember+

    List observed known bots with vendor, intent, visit, and recency data.

  • get_agent_visitsmember+

    Read agent-visit totals, failure rate, active bots, and a UTC series.

  • list_crawl_errorsmember+

    Rank canonical paths with HTTP error responses from known bots.

  • get_crawl_citation_joinmember+

    Compare crawled and cited paths, including one-sided gaps.

Prompt researchMaintain the buyer-question set and run evaluations deliberately.6
  • list_promptsmember+

    List tracked prompts and their metadata.

  • create_promptmember+

    Add a prompt to the active property's tracked set.

  • update_promptmember+

    Edit prompt text, category, location, or active state.

  • delete_promptmember+

    Delete a prompt while preserving its prior run history.

  • reevaluate_promptmember+

    Queue an on-demand evaluation for one tracked prompt.

  • reevaluate_all_promptsowner+

    Queue every active prompt, subject to configured spend guards.

Competitors & sourcesCurate the comparison set and inspect the sources appearing in measured answers.10
  • list_competitorsmember+

    List tracked competitors for the active property.

  • list_suggested_competitorsmember+

    List untracked brands surfaced as competitor candidates.

  • track_competitormember+

    Add a named competitor with optional domain and category.

  • untrack_competitormember+

    Stop tracking a competitor without removing prior history.

  • dismiss_suggested_competitormember+

    Suppress an irrelevant competitor suggestion.

  • list_dismissed_suggested_competitorsmember+

    List previously dismissed competitor suggestions.

  • restore_dismissed_suggested_competitormember+

    Allow a dismissed brand to surface again.

  • list_articlesmember+

    List surfaced articles and their current lifecycle state.

  • get_articlemember+

    Read an article's prompt-by-platform citation breakdown.

  • list_top_sourcesmember+

    Rank cited source domains for the active property.

EditorialDraft, review, update, publish, or remove owned content through the existing workflow.6
  • list_draftsmember+

    List draft and published content records.

  • get_draftmember+

    Read a complete draft and its publication metadata.

  • generate_draftmember+

    Generate a draft from a supplied article URL.

  • update_draftmember+

    Update a draft title or working Markdown.

  • delete_draftmember+

    Delete a draft record; published pages remain live.

  • publish_draftmember+

    Publish reviewed working content at its public slug.

Composed workflowsUse opinionated summaries that combine several existing evidence sources.4
  • analyze_my_visibilitymember+

    Build a compact visibility, competitor, and source digest.

  • find_easy_winsmember+

    Find articles that cite competitors but not the active brand.

  • suggest_my_next_blog_postmember+

    Select one evidence-backed counter-post opportunity.

  • summarize_recent_activitymember+

    Summarize recent and in-flight prompt evaluations.

Search ConsoleRead the connected Google Search Console evidence and derived findings.5
  • gsc_property_summarymember+

    Read connection, sync, and URL coverage status.

  • gsc_url_statusmember+

    Inspect the latest URL Inspection result for one URL.

  • gsc_search_analyticsmember+

    Aggregate clicks, impressions, position, and CTR.

  • gsc_weekly_digestmember+

    Read the latest weekly search-performance digest.

  • gsc_findingsmember+

    Run the supported derived Search Console detectors.

GTM operations & spendMove reviewed content into GTM operations and inspect evaluation cost controls.6
  • gtm_create_draftmember+

    Create a GTM draft from structured campaign inputs.

  • gtm_publish_draftmember+

    Publish a GTM draft and return its canonical URL.

  • gtm_list_draftsmember+

    List GTM drafts by supported lifecycle status.

  • gtm_score_postmember+

    Read the supported 14-day performance score for a published URL.

  • gtm_queue_taskmember+

    Queue a supported task in the Operate inbox.

  • get_spend_summarymember+

    Read current LLM spend and configured caps.

Organization administrationOwner-only identity, membership, and budget configuration.3
  • update_brand_identityowner+

    Update the active property's brand name or domain.

  • list_org_membersowner+

    List active organization members and roles.

  • set_spending_capsowner+

    Set daily and monthly LLM evaluation budgets.

04 · External agent logs

Bring crawler evidence from the edge.

Agent-log ingestion uses a dedicated source token—not your MCP API key. An owner creates a source, stores its one-time lmlog_… credential in the sending platform, and validates the first known-bot request in the Agents view.

Open Agents setup
POST/rest/v1/agent-logs/ingest
Strict JSON batch ingest

Request

curl --request POST \
  https://api.limelit.co/rest/v1/agent-logs/ingest \
  --header "Authorization: Bearer <LIMELIT_SOURCE_TOKEN>" \
  --header "Content-Type: application/json" \
  --data '{
    "delivery_id": "collector:2026-07-10T20:01:11Z:batch-001",
    "entries": [{
      "timestamp": "2026-07-10T20:01:11Z",
      "request_method": "GET",
      "request_url": "https://example.com/docs/mcp",
      "response_status": 200,
      "user_agent": "<ORIGINAL_USER_AGENT>",
      "country_code": "US"
    }]
  }'

Success

{
  "accepted": 1,
  "dropped_non_bot": 0
}
Authentication
Bearer source token
Content type
application/json
Body limit
2 MiB
Batch limit
500 entries, atomic
Source limit
60 requests/minute, shared
Rate metadata
X-RateLimit-* headers

Envelope and entry schema

delivery_idoptionalStable 1–128 byte retry key; same payload replays safely for seven days

timestamprequiredRFC3339 timestamp

request_methodrequiredHTTP method token

request_urlrequiredAbsolute HTTP(S) URL or rooted path

response_statusrequiredInteger from 100 to 599

user_agentrequiredOriginal request user agent

country_codeoptionalTwo-letter country code

client_ipoptionalValidated and discarded; never stored

refereroptionalAbsolute HTTP(S) URL or rooted path

Response contract

200Accepted and dropped counts.

400Malformed, trailing, or unknown JSON fields.

401Missing, invalid, or revoked source token.

409A delivery ID was reused for different entries.

413Body or batch exceeds a hard limit.

422One or more entries fail field validation.

429Authentication or source rate limit reached; inspect reset headers.

503Shared limiter state is unavailable; the body was not read.

Abuse backstop: Malformed source credentials are rejected locally. A bounded cluster-wide lookup gate runs before valid-format tokens reach storage, then the authenticated source receives its own shared 60-request budget.

Adapter 01 · Cloudflare

Worker Route proxy

Put a module Worker Route in front of the existing origin. The template preserves the origin response and forwards a bounded known-bot event with waitUntil. Do not attach it as a Custom Domain, which can recurse when the Worker fetches origin.

  1. Create a cloudflare source and store the token with wrangler secret put LIMELIT_LOG_TOKEN.
  2. Deploy the Worker and bind a narrow production route over the existing origin.
  3. Send one known-bot test request and confirm the unchanged origin response plus the normalized path in Agents.

Delivery: direct mode is best-effort and at-most-once. A 429 is logged and not retried. For sustained volume above the source limit, buffer with a queue and send atomic batches of at most 500.

Adapter 02 · Vercel

Log Drain collector

Deploy the App Router handler in a small collector project that is excluded from the Drain's selected projects. The adapter verifies the raw HMAC-SHA1 signature before parsing and translates one delivery into one atomic Limelit batch.

  1. Set LIMELIT_LOG_TOKEN and VERCEL_DRAIN_SIGNATURE_SECRET as encrypted environment variables.
  2. Create a Logs / JSON custom Drain pointed at the collector and select only the production projects to measure.
  3. Run Vercel's endpoint test, then confirm a known-bot request in Agents.

Delivery: Vercel is at-least-once. The adapter hashes the signed raw body into a seven-day idempotency key, so an ambiguous matching retry returns the original counts without inserting twice. Bodies above 2 MiB or deliveries above 500 known-bot rows are rejected before any rows are written.