mcpbeat Sign in

Citehound MCP Server

by andacuzel Your server? Claim it
not responding

Citehound is listed as active in the registry but did not answer our last check. It exposes 13 tools. Last commit 26 Oct 2026.

Scan any domain for AI readiness and generate llms.txt, robots.txt and schema. Free, read-only.

Uptime history 17 days of history · worst day 0%
17 days agonow
0.0%
Uptime 24h
0 of 92 checks
13
Tools
read from the server
104 ms
Response time
average over 24h
0
Stars
last commit 26 Oct 2026

What the code does

We read the source, 5 d ago · tools taken from the live server · rules 995398eba69f

A tool parameter reaches a dangerous call

A value the model can set ends up inside a file or shell call. That is not a flaw by itself — for a terminal server it is the job — but it is where things go wrong when it is not.

A tool parameter reaches a file or shell call get_citation_prompts.vertical → lib/citation/runner.js:521
  fs.writeFileSync(file, JSON.stringify(data, null, 2) + '\n');
Evidence

Things with no honest explanation: a promise that contradicts the code, code that runs at install time while hiding what it does, data leaving the machine.

Claims read-only, but the code runs commands lib/pro-store.js:129
    async delIfEqual(key, value) { return (await redis.eval(RELEASE, [key], [String(value)])) === 1; },
Capabilities

What this server is able to do. For an MCP server this is often the job itself — a terminal server runs commands because that is what it is for. Listed so you know what you are plugging in, not as an accusation.

Builds a file path from a variable lib/mcp-docs.js:80
    const file = path.join(root, rel);
Executes code built at runtime lib/pro-store.js:129
    async delIfEqual(key, value) { return (await redis.eval(RELEASE, [key], [String(value)])) === 1; },

Is this your server and something here is wrong? Tell us — corrections are free and do not require a plan.

A tool parameter here reaches a dangerous call

That is not a flaw by itself — but it is where things go wrong when it is not the job. We re-read this code on every release. Watch it and you hear from us the day another one appears.

Three servers free · no card

Connect this server

Endpoint below is the one we actually reach during checks — not the one copied from a README. Last verified 1 min ago.

run in your terminal
claude mcp add citehound --transport http https://getcitehound.com/api/mcp
Settings → Connectors → Add custom connector, then paste this address
https://getcitehound.com/api/mcp
~/.codex/config.toml
[mcp_servers.citehound]
url = "https://getcitehound.com/api/mcp"
.cursor/mcp.json
{
  "mcpServers": {
    "citehound": {
      "url": "https://getcitehound.com/api/mcp"
    }
  }
}
.vscode/mcp.json
{
  "servers": {
    "citehound": {
      "type": "http",
      "url": "https://getcitehound.com/api/mcp"
    }
  }
}

Available tools 13

Read directly from the server with tools/list, grouped by what they act on. If a tool disappears, we record the date.

generate
generate_llms_txt
Builds an llms.txt file — an optional convention for describing a site and its key pages, with no demonstrated effect on Google — from a name, a one-sentence description and a list of key pages. Pure text generation — fetches nothing.
generate_robots_txt
Builds a robots.txt file that explicitly allows or blocks named AI crawlers from Citehound’s tracked list of 10, plus an optional Sitemap line. Pure text generation — fetches nothing. Call list_ai_crawlers first if you need the exact tracked crawler names.
generate_schema
Fetches a domain’s homepage for its real title, meta description and declared language, then returns ready-to-paste JSON-LD structured data of the requested type. Fields the scan cannot know — a FAQ’s actual questions, a product’s real price — come back as clearly bracketed placeholders, never invented values.
citation
get_citation_prompts
Returns the set of buying-intent questions Citehound uses to test whether an AI assistant names a brand, for one vertical, plus a short protocol a person can run in their own assistant: ask each question in a separate conversation three to five times, note whether the brand is named and whether it appears in a heading, list label, table or bold text, and judge the spread rather than one answer. The questions don’t name any brand in the category being measured. A few mention an integration platform such as Slack or Google Workspace, because that is how buyers ask. Read-only: it reads a content file and queries no model. There is deliberately no tool that runs the check for you: a run is about 90 model calls at about five seconds each, far past this server’s time limit, and it would spend a quota anyone could drain. Question sets exist for: consumerapps, crm, cybersecurity, devtools, ecommerce, fintech, health, hospitality, hrtech, legal, localservices, marketplaces, martech, realestate. Use when the user asks how to check whether an assistant names their brand, or wants the questions for their category.
get_citation_sample
Returns Citehound’s anonymised sample citation run as readable text: the model, the date, how many times each question was asked, the questions in three groups (named in every try, unstable, never named), the overall rate of being named with its range across sweeps, and a note on the limits. It is one model on one date, so it is not a ranking, says nothing about other assistants and is not a forecast of traffic. It names no brand in the category being measured, no domain and no competitor. Read-only: it reads a content file and queries no model. Use when the user wants to see what a citation result looks like, or asks how much the same question varies between tries.
benchmark
get_benchmark
Returns Citehound’s own archived scan data for one category — average, median and range of scores, pillar breakdowns, per-crawler blocked, limited and open counts, and the most common failed checks, with sample size and scan date — or a ranked summary across every category when called with no argument. This is archived data, not a live scan, and fetches nothing external.
compare
compare_sites
Scans two domains — one after the other, not in parallel — and reports both scores plus every check where they differ. Useful for comparing your site against a named competitor.
crawlers
list_ai_crawlers
Lists the 10 AI crawlers Citehound tracks: which company runs each, what allowing or blocking it means, and this project’s robots.txt generator’s default for it. Use before generate_robots_txt if you need the exact tracked names. Fetches nothing.
methodology
get_methodology
Explains how the Citehound AI readiness score is built, read from the scanner’s own check registry so it matches what runs. With no argument it returns the three pillars with their weights (they add up to 100), every check with its category, points, what it tests and why it matters, and the limits of the scan: it measures readiness and not whether any assistant names a brand; it gives half credit for a crawler with any applicable Disallow rule, usually an ordinary path; and it reads the homepage only. With a check label it returns that one check in detail. An unknown label returns an error listing the valid labels. Read-only, fetches nothing external. Use when the user asks how a score is calculated, why a check carries the points it does, or what the scan cannot tell them.
playbook
get_playbook
Returns the full GEO/AEO playbook for one of Citehound’s fourteen verticals, as plain readable text: the strategic shift, three actionable strategies, outdated pitfalls to avoid, and an expert-tip placeholder. Called with no argument it returns the list of the fourteen verticals with their track (B2B SaaS, consumer and e-commerce brands, local and independent professionals), so call it with no argument first when you do not know which vertical fits. Read from this project’s own content file, so it matches what a visitor to the site sees. Fetches nothing external. Use after scan_site to turn a failed check into the strategy that applies to the site’s category.
research
get_research
Returns Citehound’s published research: with no argument, the list of reports (the llms.txt and crawler study, the AgaOne case study and the benchmark data) with title, date, one-line finding and URL; with a slug, the key findings, the method limits, the URL and a ready line for citing it. Findings are checked against the published pages and data files. Every study measures readiness inputs, not whether any assistant names a brand. Read-only, fetches nothing external. Use when the user wants evidence for a claim about AI crawler access or llms.txt, a statistic to cite, or the reports behind the benchmarks.
sample
get_sample_report
Returns the sample Pro report as readable text: a real crawl of Citehound’s own site on a stated date, with the results shown as recorded. It gives the whole-site score beside the homepage score, the pillar averages, the priorities from the executive summary with the label saying what wrote it, the checks failing by number of pages, and the link to the full report, which also lists every page alphabetically and gives an estimated score if the fixes are applied. It shows what a full-site crawl adds to a one-page scan. It is our own site, not a customer’s, and it measures readiness, not whether any assistant names the site. Read-only, fetches nothing external. Use when the user asks what a full-site report looks like or what a crawl shows that a homepage scan cannot.
scan
scan_site
Scans a domain’s public robots.txt, llms.txt, sitemap declaration and homepage, and scores it out of 100 across three pillars: discoverability (can AI crawlers reach it), technical foundation (can machines parse it), and content & trust (does it look like a credible source). Returns the score, the three pillar scores, access state for the 10 tracked AI crawlers, every failed check with its fix, and how the score compares to Citehound’s own benchmark data. If the site looks like a store (two or more of five signals), it also reports a separate agentic-commerce sub-score: whether a UCP merchant profile exists at /.well-known/ucp, whether one product page has Product schema with name, price, availability and image, and whether the llms.txt looks like a platform default. That sub-score is never part of the 100. Call this first for any domain. It fetches the live site (a store scan reads up to one extra product page), so avoid calling it in a tight loop for the same domain.

Endpoints

URLTransportStateLatencyChecked
https://getcitehound.com/api/mcp streamable-http answering 104 ms 1 min ago

Alternatives to Citehound

same job, measured the same way
Geoscore
by cloudcorprecords

AI-crawler readiness checks and fixes: GEO score, robots.txt, schema.org, FAQ and llms.txt.

286 installs/wk local only
LLMready
by lovable-answer-engine-ready

Audit websites for AI search readiness and generate or validate llms.txt. Free quick check.

7 tools answering
MAJR AI SEO
by majrdotapp

Audit a page for search and AI answer engines; generate robots.txt, sitemap, head, llms.txt.

answering
AI Site Scorer
by minglesai

Check website AI-readiness: Schema.org, llms.txt, E-E-A-T, robots.txt. Works in Cursor & Claude.

5 tools answering
Glippy MCP
by jbobbink

GEO (Generative Engine Optimization) analysis: check any domain's AI-readiness for LLM search

147 installs/wk local only
AI SEO
by automatelab-tech

MCP server for AI-SEO auditing: schema, robots.txt, llms.txt, citation scoring, and AEO/GEO rewrites

74 installs/wk local only
Crawl Readiness
by grubbomatic

Check what AI crawlers may read and what a page permits, generate llms.txt and schema.

216 installs/wk local only
LanceRoylo
by lanceroylo

AEO scoring, llms.txt audit, and agent-readiness checks for AI agents.

92 installs/wk local only

Citehound — questions

Answers built from our own checks of this server.

What can Citehound do?
It exposes 13 tools, read directly from the server on our last check. Among them: compare_sites, generate_llms_txt, generate_robots_txt, generate_schema, get_benchmark, get_citation_prompts and 7 more. The full list with descriptions is on this page — we take it from the server itself via tools/list, not from a README. How MCP servers expose tools in the first place →
What is Citehound mostly used for?
Its tools cluster around generate and citation. That is what this server is built to work with — the grouping comes from the actual tool names, not from a category we assigned.
Is Citehound working right now?
We send a real MCP handshake every 15 minutes. Over the last 24 hours 0 of 92 checks got a reply (0.0%), average response time 104 ms. The bar chart above shows every period we have measured.
The registry lists Citehound as active — why does it not respond?
The official MCP registry stores what the author submitted; it does not verify that the server still runs. We check the endpoint ourselves, and this one does not answer. Catalogues that copy the registry without checking will show it as working.
How do I connect Citehound?
Copy the ready config from this page. We generate it for Claude Code, Claude Desktop, Codex, Cursor and VS Code, each in the form that client actually reads. It is a remote server, so there is nothing to install — the client connects to the address.
Does Citehound need an API key?
No. Citehound completed a full MCP handshake with us as an anonymous client and listed its tools without asking for anything. All 13 of them are readable on this page. This is what we observed, not what the docs claim.
Is Citehound open source?
We cannot say either way: written in JavaScript and 0 stars on GitHub, but we could not determine the licence, and without one the code is not open source by default.