DiffiCat
com.difficat/difficat · 3.22.4
Compare a website before and after a migration: missing pages, content changes, visual diffs.
Nobody here has read this server's code, because it publishes none. The description above is the maker's own, from the registry. A connection test shows whether it answers and what tools it says it has; it never calls a tool, so it cannot show what one does with your data.
Where it sits in the directory's order
What can be seen from outside, weighed as the directory publishes.
Observable signals: 45 of 100 points (at most 60 here)
| Input | Points | What was seen |
|---|---|---|
| Source published | held at 0 | No entry here publishes source: that is what puts it in this directory. |
| Licence stated | held at 0 | With no files, there is nothing for a licence to be stated in or held against. |
| Advisory state | held at 0 | Advisory databases index packages, and these entries publish none, so there is nothing to look up. |
| Auth declared | 0 of 15 | The registry entry declares no key. That is what it declares, not a finding that it has no protection. |
| Latest connection test reached it | 20 of 20 |
Where it answers
https://app.difficat.com/mcpstreamable-http
Connection test
The MCP handshake, then a request for the tool list, with no key and no data of yours. Run nightly, and by anyone, at most once every ten minutes per server.
It completed the handshake and listed 12 tools.
- Protocol
- 2025-06-18
- Calls itself
- difficat 3.43.0
- Handshake time
- 380 ms
- HTTP status
- 200
The tools it lists (12, as of 3 days ago)
The tool-description rules found nothing in these descriptions. They look for instructions aimed at a model and for hidden characters; they cannot see what a tool does when it runs.
discover_pagesFree 3 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 for urls. Do not call it before start_comparison only to price a job: a job without urls discovers for itself. Lists at most maxPages pages, 500 without it (up to 5000 when paid); truncated: true means the ceiling cut the list. Example: { "sourceUrl": "https://old.example", "targetUrl": "https://new.example", "maxPages": 50 }. Answers with pages (sourceUrl, targ
capture_screenshotFree 3 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 check. Do not call it for pages a comparison job covers: get_report names their screenshots for get_screenshot. Example: { "url": "https://new.example/pricing", "viewportWidth": 375 }. Answers with jobId, jobToken, filename, url, dimensions, bytes, links.file and, on a free run, sample and allowanceRemaining.
start_comparisonFree up to 10 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 on the pages it compares. Call it for a migration or redesign check: sourceUrl and targetUrl let discovery pick the pages (maxPages caps them), or urls names the pairs; then wait_for_comparison until it ends and get_report with failedOnly: true. Not for one page you only want to see: that is capture_screenshot. dryRun: true answers the page count and price (0.02 USD a page, 0.01 beyond
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 reads it). Call it when a paid call’s result never arrived. Do not call it for a free run, which records no credential. Free.
How this entry becomes a listing
For the maker. The catalogue lists what it can read, and this server publishes nothing to read yet. There are two routes, and only the first is open today.
Publish the source Open today
- Put the server's source in a public repository on github.com, with a licence.
- Keep a server.json in that repository naming this server,
com.difficat/difficat, and declare the repository in it:"repository": { "url": "https://github.com/owner/repo", "source": "github" }, adding"subfolder"when the server lives in a folder. - Publish that version to the official MCP registry.
- The nightly registry sweep records the declaration. This page stays, dated, and says the source is declared but not yet read.
- The catalogue reads declared repositories at a pinned commit, in batches run by hand, and lists the servers that meet the batch's rules (among them a server.json at that commit naming the server, an https endpoint and a licence). When it lists this server, this page links to the listing. There is no schedule, so no date can be promised.
List it through the maker studio Not open yet
From the official MCP registry, last updated there 12 days ago. The registry entry · difficat.com