Knownwise MCP server
Connect Claude, ChatGPT or Cursor to the same numbers you see in Knownwise.
This reference is in English.
Knownwise shows how AI assistants talk about your brand. This MCP server gives Claude, ChatGPT, Cursor or any MCP client the numbers you see in the Knownwise dashboard: visibility, share of voice, competitors, the questions you track and the answers behind them, sources, sentiment, visits from AI assistants, alerts, audits and reports.
Connect
- Server URL:
https://knownwise.com/api/mcp(Streamable HTTP). - Claude.ai, ChatGPT and Cursor: add a custom connector with the server URL, sign in to Knownwise and allow access.
- Claude Code, Claude CLI and tools without a sign-in step: create a key in Knownwise under Settings → AI clients and send it as
Authorization: Bearer <key>. Tick "Allow changes" if the tool should propose changes.
How it works
- Call
list_brandsfirst. Pass the brand'sbrandIdto every other tool. You can leave it out when the workspace has one brand. rangeis7d,30dor90d. Leave it out and you get the window the dashboard would show; every result says which window it used.engine(chatgpt, claude, gemini or perplexity) andtopicfilter wherever the dashboard offers those filters.- Changes are proposals.
propose_prompt_changes,propose_brand_changesandpropose_competitor_changesreturn one review link per call. Nothing changes until the workspace owner approves it in Knownwise, unless the owner has turned on automatic apply. Then small changes (adding or restoring questions, a brand's client group) apply at once, and the owner can undo them in Settings → AI clients.get_mutation_statusreports what happened.
Limits
- 60 reads and 10 proposals per minute per workspace.
- Every plan can read. Proposing changes needs a paid plan and a connection or key that was allowed to make changes.
- Traffic tools (
get_referrals,get_search_performance) need a paid plan, as the Traffic page does. - Errors read
tool error <code>: <message>, with the codesinvalid_input,not_found,forbidden_brand,insufficient_plan,conflictandinternal. A call your plan or connection does not allow readsauthorization denied: <code>, and a call over the rate limit readsrate limited: <reason>; retry after <seconds>s.
Tools
compare_with_competitor
Head to head with one tracked competitor: answers that mention both, only the brand, only the competitor or neither, and the questions where the competitor wins
Read-only.
Arguments:
brandId(a string): The brand's id from list_brands. Optional when the workspace has exactly one brand.competitorId(a string, required): The competitor's id from get_competitors.range(a string, one of 7d, 30d, 90d): Time window: 7d, 30d or 90d. Leave it out to get the window the dashboard shows by default.engine(a string, one of chatgpt, claude, gemini, perplexity): Only this AI engine: chatgpt, claude, gemini or perplexity. Leave it out for all engines.topic(a string): Only tracked questions in this topic, as list_prompts shows it.
export_report
The brand report as the Report page shows it, a CSV of the answers in the window, and the public share link when the report is shared
Read-only.
Arguments:
brandId(a string): The brand's id from list_brands. Optional when the workspace has exactly one brand.format(a string, one of csv, json, default "csv"): csv or json. Either way the result has the report model and the answers as CSV text; the value you pass is echoed back as format.range(a string, one of 7d, 30d): Report window: 7d or 30d. Leave it out to get the window the Report page shows by default.
get_alerts
The brand's alerts. status open, the default, returns unread warnings and critical alerts; all returns every recent alert
Read-only.
Arguments:
brandId(a string): The brand's id from list_brands. Optional when the workspace has exactly one brand.status(a string, one of open, all, default "open"): open: unread warnings and critical alerts. all: every recent alert.limit(an integer, default 20): How many rows to return, 1 to 50.
get_audit
The AI-readiness audit of the brand's website: score, category scores, how many issues it found and the report link. Pass auditId for one specific audit
Read-only.
Arguments:
brandId(a string): The brand's id from list_brands. Optional when the workspace has exactly one brand.auditId(a string): One audit's id; leave it out for the latest audit of the brand's website.
get_brand_profile
The brand's settings and plan: name, website, aliases, tracking status, runs per week, model tier, client group, competitors, the last and next run, and the plan's limits with current usage
Read-only.
Arguments:
brandId(a string): The brand's id from list_brands. Optional when the workspace has exactly one brand.
get_citation_gap
Domains the AI engines cite for competitors but not for the brand
Read-only.
Arguments:
brandId(a string): The brand's id from list_brands. Optional when the workspace has exactly one brand.range(a string, one of 7d, 30d, 90d): Time window: 7d, 30d or 90d. Leave it out to get the window the dashboard shows by default.engine(a string, one of chatgpt, claude, gemini, perplexity): Only this AI engine: chatgpt, claude, gemini or perplexity. Leave it out for all engines.topic(a string): Only tracked questions in this topic, as list_prompts shows it.
get_competitors
The brand next to each tracked competitor: visibility, change, share of voice, average position, recommended rate and net sentiment, plus untracked names the engines mention
Read-only.
Arguments:
brandId(a string): The brand's id from list_brands. Optional when the workspace has exactly one brand.range(a string, one of 7d, 30d, 90d): Time window: 7d, 30d or 90d. Leave it out to get the window the dashboard shows by default.engine(a string, one of chatgpt, claude, gemini, perplexity): Only this AI engine: chatgpt, claude, gemini or perplexity. Leave it out for all engines.topic(a string): Only tracked questions in this topic, as list_prompts shows it.
get_fanout
Related questions the AI engines searched while answering, with how often they came up, on which engines, the source mix, whether a tracked question covers them and whether a competitor was mentioned
Read-only.
Arguments:
brandId(a string): The brand's id from list_brands. Optional when the workspace has exactly one brand.range(a string, one of 7d, 30d, 90d): Time window: 7d, 30d or 90d. Leave it out to get the window the dashboard shows by default.
get_fix_status
The status of one fix job: a pull request Knownwise opened on the brand's site
Read-only.
Arguments:
brandId(a string): The brand's id from list_brands. Optional when the workspace has exactly one brand.jobId(a string, required): The fix job's id.
get_mutation_status
Whether a proposed change is waiting, applied, rejected, expired or failed, with the result or the reason.
Read-only.
Arguments:
mutationId(a string, required): The mutationId a propose tool returned.
get_prompt
One tracked question: its 7-day visibility, average position and recommended rate, visibility by engine, and its latest answers with the raw text, the brands mentioned and the sources cited
Read-only.
Arguments:
brandId(a string): The brand's id from list_brands. Optional when the workspace has exactly one brand.promptId(a string, required): The question's id from list_prompts.engine(a string, one of chatgpt, claude, gemini, perplexity): Only this AI engine: chatgpt, claude, gemini or perplexity. Leave it out for all engines.answers(an integer, default 3): How many of the latest answers to include.
get_referrals
Visits from AI assistants measured by Google Analytics: totals, by assistant and by landing page, with changes. Paid plans only
Read-only.
Arguments:
brandId(a string): The brand's id from list_brands. Optional when the workspace has exactly one brand.range(a string, one of 7d, 30d, 90d): Time window: 7d, 30d or 90d. Leave it out to get the window the dashboard shows by default.
get_scorecard
The brand's 30-day scorecard: the headline numbers, engines, competitors, top domains and the audit's top issues, with the share link when one exists
Read-only.
Arguments:
brandId(a string): The brand's id from list_brands. Optional when the workspace has exactly one brand.
get_search_performance
Google Search Console clicks, impressions, click-through rate and position with changes, plus the top queries and pages. Paid plans only
Read-only.
Arguments:
brandId(a string): The brand's id from list_brands. Optional when the workspace has exactly one brand.range(a string, one of 7d, 30d, 90d): Time window: 7d, 30d or 90d. Leave it out to get the window the dashboard shows by default.
get_sentiment
How the engines talk about the brand: positive, neutral, negative and mixed mentions, the net score with its change, by engine, example snippets and the domains behind them
Read-only.
Arguments:
brandId(a string): The brand's id from list_brands. Optional when the workspace has exactly one brand.range(a string, one of 7d, 30d, 90d): Time window: 7d, 30d or 90d. Leave it out to get the window the dashboard shows by default.engine(a string, one of chatgpt, claude, gemini, perplexity): Only this AI engine: chatgpt, claude, gemini or perplexity. Leave it out for all engines.topic(a string): Only tracked questions in this topic, as list_prompts shows it.
get_sources
Where AI answers get their information: citations, the brand's own share and competitors' share by source type, the most cited domains and the citation gap. Pass domain to list that domain's cited pages
Read-only.
Arguments:
brandId(a string): The brand's id from list_brands. Optional when the workspace has exactly one brand.range(a string, one of 7d, 30d, 90d): Time window: 7d, 30d or 90d. Leave it out to get the window the dashboard shows by default.engine(a string, one of chatgpt, claude, gemini, perplexity): Only this AI engine: chatgpt, claude, gemini or perplexity. Leave it out for all engines.topic(a string): Only tracked questions in this topic, as list_prompts shows it.domain(a string): A domain from the leaderboard, such as example.com, to list its cited pages.
get_visibility
The overview numbers: visibility, share of voice, average position and recommended rate, each with its change against the previous window, plus visibility by engine and by topic and the daily trend
Read-only.
Arguments:
brandId(a string): The brand's id from list_brands. Optional when the workspace has exactly one brand.range(a string, one of 7d, 30d, 90d): Time window: 7d, 30d or 90d. Leave it out to get the window the dashboard shows by default.engine(a string, one of chatgpt, claude, gemini, perplexity): Only this AI engine: chatgpt, claude, gemini or perplexity. Leave it out for all engines.topic(a string): Only tracked questions in this topic, as list_prompts shows it.
list_actions
Prioritised, evidence-backed improvement actions for the brand
Read-only.
Arguments:
cursor(a string): The nextCursor from the previous page, when the tool returns one.limit(an integer, default 20): How many rows to return, 1 to 50.brandId(a string): The brand's id from list_brands. Optional when the workspace has exactly one brand.
list_brands
Every brand in this workspace with its id, website, tracking status and client group. Call this first and pass a brand's id to the other tools
Read-only.
Arguments:
limit(an integer, default 20): How many rows to return, 1 to 50.
list_prompts
The tracked buyer questions with visibility, change, average position, stability and which engines mention the brand
Read-only.
Arguments:
brandId(a string): The brand's id from list_brands. Optional when the workspace has exactly one brand.range(a string, one of 7d, 30d, 90d): Time window: 7d, 30d or 90d. Leave it out to get the window the dashboard shows by default.engine(a string, one of chatgpt, claude, gemini, perplexity): Only this AI engine: chatgpt, claude, gemini or perplexity. Leave it out for all engines.topic(a string): Only tracked questions in this topic, as list_prompts shows it.stability(a string, one of stable, moving, noisy, new): Only questions whose visibility is stable, moving, noisy or new.includeArchived(a boolean, default false): Include questions that are no longer tracked.limit(an integer, default 20): How many rows to return, 1 to 50.offset(an integer, default 0): How many rows to skip, for the next page.
propose_brand_changes
Propose changes to the brand's settings: name, website, aliases, runs per week, model tier, pausing or resuming tracking, or the client group. Changing only the client group applies at once when automatic apply is on; anything else returns one review link and waits for the owner's approval in Knownwise.
Proposes a change; the workspace owner approves it in Knownwise.
Arguments:
brandId(a string): The brand's id from list_brands. Optional when the workspace has exactly one brand.name(a string): The brand's new name.website(a value): The brand's website URL, or an empty string for none.aliases(an array of string): The full new list; it replaces the current aliases.runsPerWeek(an integer): How many measurement runs per week, 0 to 7, up to the plan's limit.modelTier(a string, one of default, flagship): default, or flagship on the Scale plan.status(a string, one of active, paused): active resumes tracking; paused stops scheduled runs.groupLabel(a string): The client group label, or an empty string to clear it.
propose_competitor_changes
Propose tracking a new competitor. Returns one review link; nothing changes until the workspace owner approves it in Knownwise.
Proposes a change; the workspace owner approves it in Knownwise.
Arguments:
brandId(a string): The brand's id from list_brands. Optional when the workspace has exactly one brand.add(an object, required): The competitor to add.
propose_prompt_changes
Propose adding, editing, archiving or restoring tracked questions. Adding and restoring questions apply at once when the workspace owner has turned on automatic apply; anything else returns one review link and waits for the owner's approval in Knownwise.
Proposes a change; the workspace owner approves it in Knownwise.
Arguments:
brandId(a string): The brand's id from list_brands. Optional when the workspace has exactly one brand.changes(an array of values, required): 1–20 changes applied together: { op: "create", text, topic? }, { op: "edit", promptId, text?, topic? } (at least one of text or topic), { op: "archive", promptId } or { op: "restore", promptId }. The rules are the dashboard’s.