90trust / 100

GetCited

by app.getcited.dev in Other

MCP serverPassing, checked 2 h ago

SEO and AI-visibility operator tools: site health, ranked actions, ranks, visitor behavior.

https://app.getcited.dev/api/mcp

Last 30 days

All checks passedSome failedAll failedNot checked
Uptime
100%
Response time
283 ms typical, 322 ms slowest 5%
Last check
2 h ago
Next check
in 5 h

How to call it

Add it to any MCP client that supports remote servers.

{
  "mcpServers": {
    "getcited": {
      "type": "http",
      "url": "https://app.getcited.dev/api/mcp"
    }
  }
}

29 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

    Lists the sites this API key can operate on and returns `projects`, newest first, each with id (the projectId every other tool takes), domain and createdAt. Read-only. Sites removed with remove_project are not listed, and an empty array means nothing is tracked yet. To find the s

  • 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

    Returns the project's current state: the latest crawl (status, pages crawled, when), issue counts by severity and by rule, the open action count and the scores, where a dimension with no data yet is null rather than 0. Read-only. Call it after run_audit to see whether the crawl f

  • 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

    Returns the prioritized problems filed for a project, most urgent first; priority 1 is most urgent, 5 least. Read-only. 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 actio

  • get_action

    Returns one action in full: type, priority, title, rationale (what was measured and why it matters), targetUrl, status, the claim and closing fields, and `payload`, the evidence (the audit rule id and its measured values, such as the current title and its length; the shape varies

  • claim_action

    Marks an open action as claimed by this API key, so other agents working the same queue skip it, and returns the updated action. Only an open action can be claimed: one already claimed (by any agent, this one included), done or dismissed answers not_found, so a repeat call change

  • 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

    Queues a fresh crawl and audit of the site and returns the crawl id and status, 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,

  • add_keywords

    Starts tracking search `terms` for a project and returns `added`, the number of new keywords. Pass terms as an array of plain search phrases (terms: ["seo tool", "rank tracker"]) with the projectId from add_project or list_projects. Terms are lowercased, and one already tracked i

  • list_keywords

    Returns `keywords`, one row per tracked keyword, newest first: id (the keywordId rank_history takes), term, country, language, createdAt, `metric` (search volume, cpc, difficulty, fetchedAt) and `rank` (latest position within the top 30, null when the site is not in it, foundUrl,

  • 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

    Queues a search-position check (top 30 results) for every keyword tracked on this project and returns status, jobId and the keyword count. The work runs asynchronously in the worker: the searches are submitted immediately and the results land about ten minutes later, sometimes lo

  • 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

    Returns how often the site appears in AI answers: one row per tracked prompt, and within it one entry per engine with runs, citedRuns, mentionedRuns, citedRate and mentionedRate, plus the competitor domains cited instead, over the last `days`. Read-only. Frequency over the window

  • check_geo

    Queues a run of every tracked GEO prompt against each configured AI answer engine and returns status, jobId and the prompt count. 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 si

  • refresh_actions

    Rebuilds this project's action list from what is already measured (crawl findings, ranks, AI-engine citations, visitor behavior) by fixed rules: no model, no provider call, no quota. Every crawl already triggers one, so call it only after check_rankings or check_geo results have

  • get_behavior_digest

    Returns visitor analytics from the site's own traffic over the last `days`: sessions, engaged and bounce rates, channels including AI assistants, top pages, exit pages, statistically flagged high-bounce pages (z-test, n>=30) and friction (rage and dead clicks). Read-only. Needs t

  • 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

    Returns the visitor behaviour of one page over the last `days`: pageviews, entries, bounce rate, exits, 50% and 100% scroll rates, average active time, rage and dead clicks, and vsSite, a two-proportion z-test of its bounce rate against the rest of the site (only meaningful with

Security scan

  • No findings. We scan names, descriptions and tool definitions for hidden instructions and other prompt-injection patterns.

Recent checks

WhenResultHTTPTime
2 h agoPassed200252 ms
11 h agoPassed200283 ms
20 h agoPassed200339 ms
29 h agoPassed200322 ms