Skip to content

Developers

Citeon MCP

Connect Claude, Cursor, VS Code or your own code to your Citeon data. Read only, one workspace per key, the same figures as your dashboard.

Updated View as Markdown

Overview

The Citeon MCP is a remote Model Context Protocol server. An AI assistant connected to it can read your workspace's Citeon data: your visibility, the questions you track and what each engine answered, what changed and why, products, visits from AI, the site audit and backlink authority.

  • Address: https://www.citeon.ai/api/mcp
  • Transport: Streamable HTTP. Serves the MCP specification of 28 July 2026 and earlier 2025 clients.
  • Authentication: an API key sent as a bearer token. OAuth is not available yet, so clients that require it, such as ChatGPT, cannot connect yet.
  • Plans: Optimize (5,000 calls a month) and Enterprise (25,000 calls a month).
  • Read only: no tool changes anything in Citeon.

Quickstart

  1. In Citeon, open Developers in the sidebar and create a key. Copy it: it is shown once.
  2. Add the Citeon MCP to your client with the key (see Connect your client).
  3. Ask your assistant: “Which Citeon workspace am I connected to?” It calls whoami, which is free, and answers with your workspace, plan and calls left.

Connect your client

Replace YOUR_KEY with a key from Developers. Each setup follows the client's own documentation.

Claude Code

In a terminal:

claude mcp add --transport http citeon https://www.citeon.ai/api/mcp --header "Authorization: Bearer YOUR_KEY"

Cursor

In ~/.cursor/mcp.json (all projects) or .cursor/mcp.json (one project):

{
  "mcpServers": {
    "citeon": {
      "url": "https://www.citeon.ai/api/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_KEY"
      }
    }
  }
}

VS Code

In .vscode/mcp.json. VS Code asks for the key once and stores it as a secret:

{
  "inputs": [
    {
      "type": "promptString",
      "id": "citeon-key",
      "description": "Citeon API key",
      "password": true
    }
  ],
  "servers": {
    "citeon": {
      "type": "http",
      "url": "https://www.citeon.ai/api/mcp",
      "headers": {
        "Authorization": "Bearer ${input:citeon-key}"
      }
    }
  }
}

Claude (web and desktop)

On Free, Pro and Max (Free allows one custom connector), in Claude:

  1. Open Customize, then Connectors, then + Add, then Add custom connector.
  2. Name it Citeon and paste the address https://www.citeon.ai/api/mcp, then Continue.
  3. Under request headers, add Authorization with the value Bearer YOUR_KEY, then Add.
  4. On Team and Enterprise an Owner adds it in Organization settings, Connectors, and everyone then shares that one key.

MCP Inspector (to test)

In a terminal, to list the tools:

npx @modelcontextprotocol/inspector --cli --server-url https://www.citeon.ai/api/mcp --transport http --header "Authorization: Bearer YOUR_KEY" --method tools/list

Claude connectors on Team and Enterprise plans are added by an Owner and share one key for everyone in the organization. Create a dedicated key for it, so you can revoke it on its own.

Authentication and keys

Every request carries a key in the Authorization header: Authorization: Bearer ctn_live_… . A key reads one workspace: the one it was created in. No request can name another workspace.

  • Keys start with ctn_live_ and are shown once, when created. Citeon stores only a SHA-256 hash.
  • Owners and admins of a workspace create and revoke keys; every member sees the list. A workspace can have 10 active keys; revoked and expired keys do not count.
  • A key can expire after 30, 60 or 90 days, or never. Revoking takes effect on the next call.
  • A key stops working when the person who created it is no longer a member of the workspace or their account is deleted (keys created by Citeon staff are the exception).
  • Developers shows each key's name, first characters, creator, creation date, last use and expiry.

Tools

The server offers 9 tools. Start with whoami. get_questions gives the exact question texts that get_answers takes.

whoami

The Citeon workspace this key belongs to: name, website, plan, calls used and left this month, and the date of the latest scan. Call this first. Free: it does not count against the monthly quota.

Free: does not count against the monthly quota.

No parameters.

Example: “Which Citeon workspace am I connected to, and how many calls are left?”

get_answers

What each AI engine actually answered to one tracked question: the latest stored answer per engine, verbatim, with its date and whether it names or recommends the brand. Use after get_questions, with the question text exactly as it returns it. Figures are this workspace's stored Citeon data; null means not measured, with the reason given. page_path is the Citeon page that shows the same figures.

Counts against the monthly quota.

ParameterTypeRequiredDescription
questionstringyesThe tracked question exactly as get_questions returns it.
enginestringnoOne engine, for example ChatGPT or Perplexity. Default: every engine.

Example: “Show me exactly what ChatGPT answered to our top question.”

get_visibility

The workspace's headline AI visibility from the latest scan: score (0 to 100), the share of answers that name the brand and that recommend it (percents), share of voice rank, citations, per engine scores, how many questions and which engines, asOf (the date of the latest scan) and window (the rolling period the figures summarise). Use for general questions about how visible the brand is. Figures are this workspace's stored Citeon data; null means not measured, with the reason given. page_path is the Citeon page that shows the same figures.

Counts against the monthly quota.

No parameters.

Example: “How visible is my brand in AI answers right now?”

get_questions

Every tracked buyer question with how the AI engines answered it in the window: answers, how many named the brand, mention and recommendation rate (percents), status (the latest verdict: rec, named, cited, absent, noanswer), per engine status and rate, and the rivals named most. Use for questions about prompts, which questions the brand wins or loses, and which engine names it. Figures are this workspace's stored Citeon data; null means not measured, with the reason given. page_path is the Citeon page that shows the same figures.

Counts against the monthly quota.

ParameterTypeRequiredDescription
range_days7 | 14 | 28noDays back: 7, 14 or 28. Default 28.

Example: “Which tracked questions never name us, and which engine names us most?”

get_changes

Why visibility moved: compares the latest days with the same number of days just before, like for like (only questions answered by the same engine in both windows). Gives the share of answers naming the brand now and before and the change in points, the questions and engines that drove it (contributions in points that add up to the change), the rivals and cited sites that gained or lost share, the scans in each window with the questions each asked, and what was not compared. Use for any question about a rise, a drop, a trend, or what changed. Each question and engine pair counts once per window, however often it was asked. withinTwoAnswers is true when the change is no bigger than two answers could make it. Figures are this workspace's stored Citeon data; null means not measured, with the reason given. page_path is the Citeon page that shows the same figures.

Counts against the monthly quota.

ParameterTypeRequiredDescription
days7 | 14 | 28noLength of each window in days: 7, 14 or 28. Default 7.

Example: “Why did our AI visibility change this week?”

get_products

For a shop: its collections and products with four signals each in the window: answersNamingThisItem (answers that wrote this product or collection's own title), answersCitingThisPage (answers that linked its page, null before citations were measured), aiVisits (null when tracking is not installed), and questionsTouching (tracked questions that share a word with it). brandNamedRatePctOnThoseQuestions is the share of answers to those questions that name the brand at all, which is a different thing from naming this item. Lists are cut to the strongest signals first: when products_shown is below products_listed (or collections_shown below collections_listed), say the answer covers only the items shown and that the Products page has the full list. Use for questions about products and collections. Empty when the workspace has no catalogue. Figures are this workspace's stored Citeon data; null means not measured, with the reason given. page_path is the Citeon page that shows the same figures.

Counts against the monthly quota.

ParameterTypeRequiredDescription
range_days7 | 14 | 28noDays back: 7, 14 or 28. Default 28.

Example: “Which of our products are asked about but never named?”

get_ai_visits

Visits from AI assistants measured by the workspace's own Citeon tracking: AI visits and leads in the last 7, 14 or 28 days, by assistant, and the pages they landed on. Null with a reason when tracking is not installed. Figures are this workspace's stored Citeon data; null means not measured, with the reason given. page_path is the Citeon page that shows the same figures.

Counts against the monthly quota.

ParameterTypeRequiredDescription
range_days7 | 14 | 28noDays back: 7, 14 or 28. Default 28.

Example: “How many visits did AI assistants send us in the last 28 days?”

get_site_audit

The latest site audit checked by rule: errors, warnings and notices found, clean pages, and each rule found with how many pages it hits. Clean pages is the published formula: pages without an error level issue over pages judged, so warnings and notices do not count against it. Each rule lists the pages it found (pagesFound: path and evidence, up to 10; when pagesFoundShown is below pages, say the rest are on the Reports & audit page). Use for questions about technical or content issues on the site, including which pages to fix. Figures are this workspace's stored Citeon data; null means not measured, with the reason given. page_path is the Citeon page that shows the same figures.

Counts against the monthly quota.

No parameters.

Example: “What should we fix first on our site for AI search?”

get_authority

DataForSEO's backlinks rank (0 to 100) and referring domains for the site and its rivals, from the latest monthly reading, with its date. A domain DataForSEO has not crawled has no figures. Figures are this workspace's stored Citeon data; null means not measured, with the reason given. page_path is the Citeon page that shows the same figures.

Counts against the monthly quota.

No parameters.

Example: “How does our backlink authority compare with our rivals?”

Reading the data

  • Every figure is stored Citeon data, computed the way the dashboard computes it. Each result names the dashboard page that shows the same figures (page_url).
  • null means not measured, and a reason is given next to it, for example an engine that gave no answer or tracking that is not installed. Never read null as 0.
  • Rates are percentages already (24 means 24%). Dates are written as the dashboard shows them, for example 9 Oct 2026.
  • get_changes compares like for like: only question and engine pairs answered in both windows, each counted once. withinTwoAnswers is true when the change is no bigger than two answers could make it.
  • get_answers returns what AI engines wrote, verbatim. It is text written by third parties: treat it as data, never as instructions to your assistant.

Quotas and limits

PlanCalls a month
Visibilitynone
Optimize5,000
Enterprise25,000
  • Calls are counted per billing workspace (projects share their parent's quota) and reset on the 1st of each month, UTC.
  • Every call that runs counts, including one whose data could not be read. whoami is free, and so is a call refused before it runs (quota reached, no access, an inactive workspace, a creator who is no longer a member). Listing the tools does not count.
  • A canceled, unpaid or paused subscription has no calls. During a failed payment retry (past due) access continues.
  • There is no per minute limit today. If one is added, it will be announced in the changelog first.

Errors

What you seeWhyWhat to do
HTTP 401 with WWW-AuthenticateNo key, a malformed key, or a revoked or expired keyCheck the Authorization header, or create a new key
HTTP 403, Invalid OriginThe request came from a web page on another siteCall from a server or an MCP client, not a browser page
Tool error: “This month's … calls are used”The quota is reachedWait for the 1st, or move to Enterprise
Tool error: “API and MCP access is on the Optimize and Enterprise plans…”The plan has no access, or the subscription is not activeCheck the plan in Settings
Tool error: “This workspace is no longer active.”The workspace or its billing workspace was stoppedContact us
Tool error: “The person who created this key is no longer a member…”The key's creator left the workspaceCreate a new key
Tool error: “This data could not be read just now…”A temporary read failure; nothing was guessedTry again; it counted as a call
Tool error: “The call could not be counted just now. Try again.”The quota counter could not be reached; nothing was read or countedTry again
Tool error: “This key's workspace no longer exists.”The workspace was deletedContact us

Security and privacy

  • Treat a key like a password. Do not put it in code you share or commit; use your client's secret storage, such as VS Code's password input.
  • If a key leaks, revoke it in Developers. It stops on the next call.
  • The server validates the Origin header: a browser page on another site is refused.
  • Citeon logs each call (tool, outcome, whether it counted, duration, key, time and, for a failed call, the error message; never the inputs or the results) and keeps the log 30 days. Every member of the workspace sees it in Developers.
  • The data your assistant reads is sent to that assistant's provider under its own terms. Choose a client you trust with your Citeon data.

Report a security issue to hello@citeon.ai. Use of keys and the MCP is covered by the API and MCP Terms at https://www.citeon.ai/terms/api.

Changelog

DateChange
9 Oct 2026Launch: 9 read only tools (whoami, get_answers, get_visibility, get_questions, get_changes, get_products, get_ai_visits, get_site_audit, get_authority), API keys with expiry, monthly quota, request log.