
DiffiCat MCP server
Which MCP servers are DiffiCat's own, from the official registry and from asking its own domain, whether they answer, and what they offer. A program checked each of these, nobody copied them from a product page.
read 2026-10-24
- Registry namecom.difficat/difficatverified in the MCP registry
The registry name sits under difficat.com. The registry only lets a publisher use that namespace after proving control of the domain through DNS or HTTP.
- Stateanswerschecked 2026-10-24
- Tools15
- Server calls itselfdifficat
- Server version3.129.1
- Protocol version2025-06-18
On 2026-10-24 the server answered initialize and tools/list without a sign-in. First answer in 222 ms.
- Its tools do every use case we checked: compare old and new site pages for missing or broken URLs; check page layout differences at phone, tablet and desktop widths.
- Checked on 4 of the 7 days it takes to judge reliability.
Once connected
- Keep approval on for send_feedback: they delete, send or pay without saying so.
- cancel_comparison, send_feedback change data without a sign-in: anyone with the address can call them.
Said by rules from the measurements above. The likely first call is a model's pick from the tool list; read its description before relying on it.
- INITE MCP scoreafter a weeka score needs 7 daily checks: 4 so far
- What an agent can do with it2 of 2 use cases
- Answeredmeasuring4 of the 7 daily checks it takes to print a share
- Median first answer422 ms
- Space in an agent's context≈ 7,052 tokensthe definitions of all its tools (15), which an agent carries on every turn
- Tool definitionsA · 99 of 100
- Typed results15 of 15 toolsdeclared outputSchema: results come typed, read once
- Parameters without a type: in 1 of 15
What an agent can do with it
- can do · compare old and new site pages for missing or broken URLs
- can do · check page layout differences at phone, tablet and desktop widths
- not sure · snapshot a single site before changing it
Each of the product's use cases, put to Jev against this server's tool list: can an agent do it with these tools?
Worth a look
- Tools that delete, send or pay, marked as not destructive: send_feedback
- Tools that change data, on a server that answers without a sign-in: cancel_comparison, send_feedback
A program checks the server once a day: initialize and tools/list, no model. Tokens are the definitions' length at about four characters a token. The grade averages six checks of every tool's name, description, schema and annotations; it says how well the tools are described, not whether they work. The score weighs what was measured and nothing else: answering (25%), doing the product's job (25%), definitions (20%), context (10%), use (10%) and how readily a client connects (10%). A part that was not measured is left out, and a hidden instruction caps the score at 40. The state of vendors' MCP servers: method and numbers →
discover_pagesFree 5 times a day per client address (at most 50 pages each), no key needed. Lists the pages of Site A (sitemap, robots.txt or crawl), mapped onto Site B when given. Call it to see which pages a comparison would cover or to pick pairs…
capture_screenshotFree 5 times a day per client address, no key needed. Full-page PNG of one URL at the given viewport width, returned inline when small, else as links.file to fetch with the jobToken. Call it for a one-off look at a page or a mobile-width…
start_comparisonFree up to 40 pages a day per client address, no key needed; sample report: https://difficat.com/agents/sample/report.json. Compares Site A against Site B on page existence, content and visual regression, priced per page compared. For a…
recover_comparisonReturns the job or screenshot the payment credential in _meta paid for, with a new jobToken that replaces the old one; or, when the request carries a key and _meta no credential, the latest job that key paid for (no jobToken: the key…
get_comparisonStatus and progress of a job and, once it is terminal, its summary: passed, failed and issuesBySeverity. To wait for the end, call wait_for_comparison instead. Free.
cancel_comparisonStop a running job; the job reports cancelled within a minute, with the pages compared so far in its report. Free.
wait_for_comparisonWaits until the job reaches a terminal status (completed, failed or cancelled) or timeoutSeconds pass (default 60, at most 300), then answers like get_comparison: status, progress and, once terminal, the summary with passed, failed and…
get_reportThe finished report. Call it first with failedOnly: true and view: "digest": results, total and nextOffset then cover only the pages that failed, one small object per page with its issues, diff percentage and largest visual regions, and a…
get_screenshotFetch one screenshot PNG by filename. Call it when a get_report page result or a capture_screenshot result names a screenshot you want to see; a PNG over the inline cap comes back as links.file to fetch with the jobToken. Pass a report…
get_balanceThe prepaid balance and the last 20 ledger entries of the key the request carries in its Authorization: Bearer or X-DiffiCat-Key header. Call it to check what a key can still pay for; request_prepaid_key is the way to obtain a key. The…
request_prepaid_keyMints a prepaid key and a Checkout link for a human to pay by card, so later paid calls are debited from its balance instead of challenged. Call it when a call was refused for payment and your human prefers a card to a wallet; with a key…
send_feedbackSends one message to the people who run this service: why a price, a payment path or a result did not fit. Call it when you stop short of a paid call or a result was not what the task needed; a person reads every message. Do not call it…
list_snapshotsLists the saved snapshots the DiffiCat account behind the request’s key owns or was given access to, newest first, each with access owner or reader. Call it to find a snapshotId for get_snapshot or compare_snapshot. Needs an account’s key…
get_snapshotA saved snapshot of a site: without n, the snapshot (label, origin, width, check mode, status) with its page list (n, path, status, whether a screenshot exists) and your compares that use it; with n, that page’s stored record: path…
compare_snapshotFree up to 40 pages a day per client address for a live compare, no key needed. Compares a saved snapshot, as Site A, against a live targetUrl (every stored page paired by path, or the urls pairs you name) at the snapshot’s width and…
How to connect
Add the server to your MCP client config. Claude Desktop, Cursor and most other clients read this shape:
{
"mcpServers": {
"difficat": {
"type": "http",
"url": "https://app.difficat.com/mcp"
}
}
}Add it
Claude Code, in a terminal
claude mcp add --transport http difficat https://app.difficat.com/mcpclaude.ai, ChatGPT and other clients: add https://app.difficat.com/mcp as a custom connector in the settings.
Each line is something a program found when it went looking: the registry entry, the server's own answer, a spec that parses. A missing line means we did not find it, not that it does not exist.
Cookies
Before we count this visit
Analytics and ad measurement tell us which pages and which of our ads do their job: Google Analytics and Google Ads, the Meta pixel, Yandex Metrica, and one first-party id of our own. Nothing is stored until you answer, and declining changes nothing about the site.