# GetCited Muse connector

From musedirectory.ai, the independent directory of Meta Muse connectors. Not affiliated with Meta.

## GetCited

Monitor your website's SEO health, search rankings, and visibility in AI answer engines.

- Record: https://musedirectory.ai/connector/getcited
- Category: Marketing & Ads
- Developer: GetCited (https://getcited.dev/docs/mcp)
- Muse status: Extra setup. Not in Muse's Connectors list yet. Muse can still use it: its page gives you a request to paste into Muse.
- Health: Working, 1328ms, checked 2026-09-28T08:01:37Z
- Endpoint: https://app.getcited.dev/api/mcp
- Auth: Needs an access key; Pricing: unknown
- Screening: Screened, no issues found (2026-09-24T02:21:01Z)
- Source: Found in the official MCP Registry (dev.getcited/mcp) https://registry.modelcontextprotocol.io/v0/servers?search=dev.getcited%2Fmcp

GetCited tracks website SEO issues, search keyword rankings, and citations in AI answer engines like ChatGPT. It crawls your site for technical problems, monitors your position for tracked keywords, measures visibility in AI responses, and flags visitor behavior issues.

Example request: "Check how my website ranks for key search terms and where I'm missing visibility compared to competitors."

How to connect: Not in Muse's Connectors list yet, but Muse can still use it. Paste this into Muse: "Use GetCited to help me. It is a free service with an MCP server at https://app.getcited.dev/api/mcp. It needs an API key from GetCited; ask me to enter it through your secure credential prompt. Ask me before you share anything with it." Muse asks before it shares anything with the app's site. Meta does not review apps used this way, so only use ones you trust. We tested this in the Muse app on September 24, 2026: Muse used an app's link directly this way and returned a live answer.

Tools:
- how_to_authenticate: This server is not authenticated, so none of its SEO tools will answer. Call this for the exact steps to fix it. Retrying other tools will not help.
- get_setup_status: The onboarding as a checklist for one project: each step (profile, tech stack, competitors, first audit, keywords, rank check, GEO prompts, GEO check, visitor snippet) with whether it is done, what it needs and the tool that completes it, plus `next`, the first step still open. C
- list_projects: List the sites this API key can operate on.
- add_project: Register the site you are working in, and get its project id back. Pass the domain you derived from this codebase (git remote, deployed URL, site config). Safe to call every run: if the site is already tracked you get the same project back with created=false, so call this before 
- remove_project: Stop tracking a site: it leaves list_projects, stops being crawled or checked, and frees a site slot on the plan. Nothing is erased. Its crawls, findings and history are kept, and add_project on the same domain brings the same project back with its history intact. Use it for a si
- get_site_health: Latest crawl status, issue counts by severity and rule, open action count and scores. Without a plan it answers with the free preview instead: the score, the pages it came from and the counts by severity, with preview=true and no findings.
- get_next_work: The one call an unattended agent needs: the findings worth acting on now, most important first, or an instruction to stand by until a given time. Ordering is severity weighted by the page's own measured traffic. Pages the owner excluded are never returned, and a page fixed recent
- list_actions: Prioritized problems for a project, most urgent first; priority 1 is most urgent, 5 least. Defaults to open ones. By default it answers grouped: one entry per rule (or type) with the count, the priority, the rationale once and up to five example action ids, so a site with hundred
- get_action: One problem in full: its category, target URL, rationale and evidence payload.
- claim_action: Mark an open problem as claimed by this agent before working on it.
- complete_action: Mark a problem done after you have addressed it in the codebase. Pass `note` to record what you changed; the owner reads it to tell a real fix from a box ticked. Pass `commit` with the sha that carries the change: it is what lets a later move in rank or citations be traced to thi
- dismiss_action: Drop a problem you are deliberately not acting on, and say why. `reason` is required and is shown to the site owner: explain what makes this finding wrong or inapplicable here, in a sentence they could disagree with. A dismissal without a real reason is worse than leaving the pro
- run_audit: Queue a fresh crawl and audit of the site, up to maxPages pages (default 100; the response says how many it used). Most crawls finish in under 30 seconds: pass wait: true to get the finished crawl in this call (it holds for at most 60 seconds, then answers with retryAfterSeconds)
- add_keywords: Pass `terms`, an array of plain search phrases (terms: ["seo tool", "rank tracker"]), with the projectId from add_project or list_projects. Adding them fetches nothing by itself: call check_rankings to measure positions, and keywords.enrich runs when the worker schedule is on. Se
- list_keywords: Tracked keywords with latest volume, difficulty, position and AI Overview status.
- rank_history: Pass `keywordId`, which is the id field of an entry from list_keywords, together with the projectId that keyword belongs to. Returns the position samples for that keyword over the last N days (default 30), one per rank check, and a status saying whether it has ever been checked: 
- check_rankings: Queue a search-position check for every keyword tracked on this project. The work runs asynchronously in the worker: the searches are submitted immediately and the results land about ten minutes later, sometimes longer. This returns as soon as the run is queued, so do not wait on
- add_geo_prompts: Pass `prompts` as an array of objects, not strings: each is { prompt: "best seo tool for agents", stage?: "tofu" | "mofu" | "bofu", format?: "keyword" | "conversational" | "list" }, with the projectId from add_project or list_projects. These are the questions the brand should be 
- geo_summary: Appearance frequency per prompt and engine over the last N days (default 30): runs, cited and mentioned rates, competitor domains, fan-out queries. Never a per-run rank.
- check_geo: Queue a run of every tracked GEO prompt against each configured AI answer engine. The work runs asynchronously in the worker and takes minutes; this returns as soon as it is queued. Poll geo_summary for the result, and remember a single run is not evidence: frequency over several
- run_brain: Turns measurements into actions: queues an analysis pass over everything already measured for this project (crawl issues, ranks, GEO visibility, visitor behavior) and files what it finds as new actions. A crawl already runs it on its own; call it after check_rankings or check_geo
- get_behavior_digest: Visitor analytics from the site's own traffic (needs the vp.js snippet; get_setup_status has it) over the last N days (default 7): sessions, engaged and bounce rates, channels incl. AI assistants, top pages, exit pages, statistically flagged high-bounce pages (z-test, n>=30) and 
- set_project_profile: Step one of the growth recipe, and the gate on the rest of it. Record what this site sells in the owner's words: productSummary (a paragraph, at most 600 characters), valueProposition (at most 300), audience (at most 300), plus optional marketCountry and marketLanguage as two low
- get_project_profile: The stored profile for a project: the three texts as they were written and where they came from, the market country and language, the tracked competitors, the declared techStack next to the detectedStack the latest crawl saw, whether it is complete, and `missing`, which names the
- list_opportunities: The opportunity queue: one row per query the site should hold and does not, or holds badly, built only from rows already measured. Keywords come from rank checks, prompts from AI answer-engine runs, and fanout rows from the sub-questions engines issued while answering them; `kind
- get_content_brief: Evidence for building a page for one query. Contains no wording; what to write is yours. `query` is one row's `query` from list_opportunities, exactly as it came back (a tracked keyword, a tracked prompt, or a fan-out sub-question); anything else answers not_found. You get back: 
- get_page_history: Every measurement that touched one page, newest first, so a change can be matched to its effect. `url` is the full url of a page on the tracked site (https://example.com/guide); `days` defaults to 90. Three kinds of row on one timeline: `crawl` carries the status, word count, JSO
- list_regressions: What is measurably worse than it was, over the last `days` (default 30). Three kinds: `rank`, a keyword whose best position over the last three checks is at least three places worse than over the three before, or that ranked and no longer does; `citation`, a prompt and engine who
- get_page_profile: Behavior profile for one path over the last N days: pageviews, entries, bounce and scroll rates, active time, rage/dead clicks, and a z-test of its bounce rate against the rest of the site.

Screening checks:
- MCP handshake: pass (Answered in 188ms)
- Domain against threat feeds (Cloudflare security DNS): pass (app.getcited.dev, getcited.dev not flagged)
- Published packages against the OSV malicious-package database: n/a (No npm or PyPI package published)
- Hidden instructions or invisible characters in tool text: pass (24 tools read, nothing found)
- Inputs asking for passwords, card numbers or seed phrases: pass (None found)
- Domain and redirects: pass (Domain registered 7 days ago)
- AI review of purpose and tool behavior: pass (No concerns)
