# Knownwise MCP server 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 `. Tick "Allow changes" if the tool should propose changes. ## How it works 1. Call `list_brands` first. Pass the brand's `brandId` to every other tool. You can leave it out when the workspace has one brand. 2. `range` is `7d`, `30d` or `90d`. Leave it out and you get the window the dashboard would show; every result says which window it used. 3. `engine` (chatgpt, claude, gemini or perplexity) and `topic` filter wherever the dashboard offers those filters. 4. Changes are proposals. `propose_prompt_changes`, `propose_brand_changes` and `propose_competitor_changes` return 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_status` reports 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 : `, with the codes `invalid_input`, `not_found`, `forbidden_brand`, `insufficient_plan`, `conflict` and `internal`. A call your plan or connection does not allow reads `authorization denied: `, and a call over the rate limit reads `rate limited: ; retry after 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.