list_brandsList brands
Every brand tracked in this workspace with its domain, question count, open fixes and latest visibility (share of scored buyer questions where AI named the brand).
› No arguments.
The CiteBrief MCP server lets Claude, Cursor, VS Code and any Model Context Protocol client read your workspace: which buyer questions name your brand, on which engines, who gets named instead, the pages engines cite, and the fixes and outreach that close the gap. Every tool reads; none runs a check or changes anything.
› A workspace can hold 10 active keys. Revoke one in the same place; anything using it stops at once.
export CITEBRIEF_API_KEY=cb_your_key claude mcp add --transport http citebrief https://getcitebrief.com/api/mcp \ --header "Authorization: Bearer $CITEBRIEF_API_KEY"
Check it with claude mcp list, then ask in any session. Add --scope user to use it in every project.
{
"mcpServers": {
"citebrief": {
"url": "https://getcitebrief.com/api/mcp",
"headers": {
"Authorization": "Bearer ${env:CITEBRIEF_API_KEY}"
}
}
}
}{
"servers": {
"citebrief": {
"type": "http",
"url": "https://getcitebrief.com/api/mcp",
"headers": {
"Authorization": "Bearer ${env:CITEBRIEF_API_KEY}"
}
}
}
}Bridge to the remote server with mcp-remote, which runs locally and forwards to CiteBrief with your header. Add this to the client’s config (Claude Desktop: Settings, Developer, Edit config).
{
"mcpServers": {
"citebrief": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://getcitebrief.com/api/mcp",
"--header",
"Authorization:${CITEBRIEF_AUTH}"
],
"env": {
"CITEBRIEF_AUTH": "Bearer cb_your_key"
}
}
}
}Send one JSON-RPC message per POST. Clients normally call initialize and tools/list first; a direct call works too.
curl -s https://getcitebrief.com/api/mcp \
-H "Authorization: Bearer $CITEBRIEF_API_KEY" \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"get_visibility","arguments":{"brand":"acme.com"}}}'Ask in plain words. The assistant picks the tools; start broad and narrow down.
› CiteBrief tracks whether AI engines (ChatGPT, Gemini, Perplexity, Google AI Overviews and others) name a brand for the questions its buyers ask. Read tools change nothing; keys made with “Can make changes” also get write tools (pause_prompts, save_competitor, pause_weekly_checks, create_article, update_fix) that never run a check, draft a page or touch a site. Start with list_brands, then get_visibility, get_competitors and get_citations; get_outreach and list_fixes say what to do next. Visibility is the share of scored buyer questions where the brand was named, from one answer per question per engine per weekly check.
8 read tools for every key, and 5 write tools for keys made with “Can make changes”. Write tools never run a check, draft a page or change your site, and each call is in the audit log. Brands can be named by name, domain or id; list_brands shows them.
Every brand tracked in this workspace with its domain, question count, open fixes and latest visibility (share of scored buyer questions where AI named the brand).
› No arguments.
How often AI engines name the brand for its scored buyer questions: latest check overall and per engine, plus confidence over the last four checks (average, range, whether the latest change beats the usual swing, and how steady each question × engine pair is).
| Argument | Type | Description |
|---|---|---|
| brand required | string | The brand's name, domain or id. Call list_brands to see them. |
| engine | string | Optional engine id to focus on: chatgpt, gemini, grok or aio (Google AI Overviews). |
The buyer questions tracked for a brand, each with its type, whether it is scored, which engines named the brand in the latest check, the best position and the change since the check before.
| Argument | Type | Description |
|---|---|---|
| brand required | string | The brand's name, domain or id. Call list_brands to see them. |
Share of brand mentions in AI answers for the brand and its rivals, how each share moved over the last four checks, the scored questions each rival wins where the brand is missing, and the source cited most when AI names them.
| Argument | Type | Description |
|---|---|---|
| brand required | string | The brand's name, domain or id. Call list_brands to see them. |
The pages AI engines cited in the latest check, grouped by domain and typed (your site, competitor, review site, forum, video, wiki, social, editorial), with gap sources cited only when the brand was left out, per-engine source differences and the web searches engines ran before answering.
| Argument | Type | Description |
|---|---|---|
| brand required | string | The brand's name, domain or id. Call list_brands to see them. |
| engine | string | Optional engine id to focus on: chatgpt, gemini, grok or aio (Google AI Overviews). |
Pages AI cites when it names a rival instead of the brand (last four checks), ranked, each with the kind of source, the play (get reviewed, ask to be added to a list, join the thread…) and the user's progress. No link buying: every play is a real listing, review or reply.
| Argument | Type | Description |
|---|---|---|
| brand required | string | The brand's name, domain or id. Call list_brands to see them. |
Fixes from the brand's site audit that help AI read and cite the site (structured data, llms.txt, FAQ, meta and content), with priority, how each is applied and its status.
| Argument | Type | Description |
|---|---|---|
| brand required | string | The brand's name, domain or id. Call list_brands to see them. |
| status | open | live | rechecking | done | dismissed | all | Defaults to open. |
What each engine actually answered to one buyer question in the latest check: whether it named the brand, its position, the other brands named, the URLs cited and the answer text.
| Argument | Type | Description |
|---|---|---|
| brand required | string | The brand's name, domain or id. Call list_brands to see them. |
| question required | string | The question's id, or words from its text. |
Pause prompts so weekly checks skip them (their history stays), or resume them. Name prompts by id or exact text from list_questions.
| Argument | Type | Description |
|---|---|---|
| brand required | string | The brand's name, domain or id. Call list_brands to see them. |
| prompts required | array | Prompt ids or exact texts. |
| paused required | boolean | true pauses, false resumes. |
Track a competitor for the brand, or set its other names (aliases count as naming it from the next check).
| Argument | Type | Description |
|---|---|---|
| brand required | string | The brand's name, domain or id. Call list_brands to see them. |
| name required | string | The competitor's name. |
| aliases | array | Optional other names AI uses for it. Replaces the current ones. |
Pause the brand's weekly checks (history stays, checks by hand still work) or resume them.
| Argument | Type | Description |
|---|---|---|
| brand required | string | The brand's name, domain or id. Call list_brands to see them. |
| paused required | boolean |
Start a New page opportunity on a topic: it appears on Opportunities and Articles, ready to draft in CiteBrief. Does not write the draft (drafts are metered and reviewed in the app).
| Argument | Type | Description |
|---|---|---|
| brand required | string | The brand's name, domain or id. Call list_brands to see them. |
| topic required | string | What the page should cover, 8 to 160 characters. |
Change a site fix's status: done (you made the change; a re-check follows when the plan has them), dismiss (skip it) or reopen. Fix ids come from list_fixes.
| Argument | Type | Description |
|---|---|---|
| fix_id required | string | |
| action required | done | dismiss | reopen |
| Response | When | What to do |
|---|---|---|
| 401 | No key, a malformed key, or a revoked one | Send the header exactly as shown; create a new key if it was revoked |
| 403 | The workspace is on the Free plan | The MCP server comes with every paid plan |
| 429 | More than 120 calls a minute on one key, or 30 bad-key attempts a minute from one address | Wait for the Retry-After seconds |
| isError: true | A tool could not answer: an unknown brand, question or engine, or a missing argument | The message says what exists; the assistant usually corrects itself |
| -32603 | Something failed on our side | Try again in a moment |
› Numbers match the app: visibility is the share of scored buyer questions where the brand was named, from one answer per question per engine per check. Confidence comes from the last four checks.
Paid plans start at $39 a month, with unlimited team members.
Enter your website. It takes about a minute, and there’s no card.
Paid plans from $39 a month.