ENDPOINT 1
https://mcp.squirrelscan.com/mcp
MCP server metadata
- Name
- squirrelscan
- Version
- 0.0.1
squirrelscan audits websites: crawl + 260+ rules across SEO, performance, security, accessibility, and content, scored into a report. Pricing is flat and predictable: 50 credits per audit plus 2 credits per rendered page (the base is charged when the audit starts, pages as they render). Failed audits are refunded automatically. Start with whoami to see which organization you act for and the credit balance. Running an audit: call run_audit with the URL. The estimate round-trip is optional, not a required first step: if the user has already approved the spend, pass confirm: true on the first call and the audit starts immediately. Without confirm, a run over the auto-run threshold comes back as status "confirmation_required" with the estimate to show the user; a cheap enough run just starts. Read "sufficient" on that response before you retry: sufficient: true means the organization can cover the run, so show the estimate and call run_audit again with confirm: true. sufficient: false means it cannot: the response then carries what the run needs, the balance, the date the monthly credits reset and an upgrade_url for that organization. Relay those instead. Confirming anyway is refused, so do not retry until the balance covers the base or the user upgrades. Size the crawl with max_pages (max_pages: 1 audits just the entry URL, the cheapest run); a value over the plan's page ceiling is clamped and reported in a notice rather than rejected. Audits are asynchronous (minutes): poll get_audit_status with the returned run_id until completed, then call get_report (format "summary" first; "llm" or "markdown" for full detail). The website is registered automatically on first audit. IDs: run_id identifies one audit run (status + report). website_id identifies a registered website (issues live under it). audit_id ties a run to the website's audit history. To go from a website_id back to its reports: list_websites rows carry last_report_run_id for the newest one, and list_audits with website_id pages through every run of that site (limit/offset, total/has_more). What changed since last time: compare_audits diffs two completed audits of a website (latest vs previous by default) into seven kinds (new, resolved, worsened, improved, unchanged, still_open, not_crawled) plus per-category score movement. A page not visited in the newer audit comes back as not_crawled, never as resolved, and a finding the newer audit did not republish is still_open rather than unchanged. Issues: each website keeps a tracker of open issues found by audits. list_issues -> get_issue -> comment_on_issue to record analysis or fixes for the team. One-off checks: pass ephemeral: true to run_audit for any "just check this URL" audit the user is not going to monitor. The audit runs and the report is returned as normal, but the site never joins the website list and never consumes a slot under the plan's website limit. Without it, every throwaway check becomes a tracked site forever. Auditing that same domain again WITHOUT ephemeral promotes it to a tracked site: that is how a user keeps one they decided they want, and the response says adopted: true when it happens. Owned vs prospect: websites carry a kind, either owned (something the user runs and monitors) or prospect (a lead or competitor audited once). Set it on add_website or run_audit, and filter list_websites by it. An unclassified site reads as owned, so kind: "prospect" returns ONLY sites explicitly marked disposable: that is what makes it safe to build a delete list from. Deleting a website (delete_website, two-step confirm) is a soft delete: past audits, reports, and issues are preserved and published report links keep working, but the site leaves listings and frees a slot under the plan's website limit. Re-adding the same domain later registers a fresh website with a new website_id. A deleted site's runs and reports stay reachable through list_audits with its old website_id, so keep that id if you may want its reports later. To clear out many sites at once use delete_websites, which takes up to 50 ids per call and echoes the domain behind every one: show the user those domains, not the ids, before and after. Feedback: call send_feedback any time something surprises you mid-session (a squirrelscan bug, a feature it should have, what worked, what confused you, missing report data, tool ergonomics): it works with any authenticated credentials, including read-only API keys. Accounting: get_report's "summary" includes a per-audit "cost" breakdown (base + rendered pages + services + any refunds). list_credit_transactions is the full org accounting log (grants, debits, refunds) with a run_id on each so an audit's spend can be grouped. Catching up: list_notifications is the feed of what happened while you were away (audits completed, audits failed, new issues) across every website in the org, so you do not have to poll each site. Entities: list_entities is what a site declares about itself in JSON-LD, such as Organization, Person and Product, collapsed across every crawled page, so the same Organization on 60 pages is one entity with 60 occurrences rather than sixty findings. get_entity opens one of them, get_entity_graph exports the graph, get_entity_findings gives the rules' verdicts with the entity keys they affect, and compare_entities diffs two audits. The loop an agent runs: list_entities with problem "no-id" to find entities nothing ties together, fix the site's JSON-LD, run_audit, then compare_entities to see them under gainedId. Read-only tools: whoami, get_audit_status, get_report, compare_audits, list_audits, list_websites, list_issues, get_issue, list_rules, get_rule, get_credit_balance, list_credit_transactions, list_notifications, list_entities, get_entity, get_entity_graph, get_entity_findings, compare_entities. Write tools: run_audit (spends credits), add_website, delete_website and delete_websites (both two-step confirm), comment_on_issue, create_api_key (requires the keys:write scope), send_feedback (no scope required).
Known tools 25
list_auditsList the organization's audit runs: currently active (pending/running) plus recent runs of any status.
Inferred read-onlylist_websitesList websites the organization has audited, with their latest run status, health score, and owned/prospect kind.
Inferred read-onlyadd_websiteRegister a website with the organization without running an audit (run_audit registers automatically, so this is only needed to set a site up ahead of time).
Inferred read-onlydelete_websiteDelete a website from the organization (soft delete: past audits, reports, and issues are preserved, and published report links keep working).
Potential side effectsdelete_websitesDelete up to 50 websites in one call, for cleaning up a dashboard that has filled with one-off or prospect audits.
Potential side effectsget_reportFetch the finished report for an audit run (use the run_id from run_audit once get_audit_status shows completed).
Inferred read-onlylist_issuesList a website's open audit issues (like a bug tracker: each issue is one failing rule with occurrences across pages, numbered per website).
Inferred read-onlyget_issueFetch one issue by website_id + issue number, including its full description, recommendation, affected pages, occurrence detail from the latest report (which page/image/URL, snippets), and comment thread.
Inferred read-onlycomment_on_issuePost a comment on a website issue — use it to record analysis, a proposed fix, or what you changed, so the team sees it in the dashboard issue thread.
Potential side effectslist_entitiesList the entities a site declares in its JSON-LD, collapsed across every crawled page into one graph, so an Organization declared identically on 60 pages is one row rather than 60.
Inferred read-onlyget_entityGet one entity as the map recorded it: the properties the map keeps (name, url, logo, image, sameAs, telephone, email, address, description), the pages that declare it, the properties whose values disagree between those pages, and the references in and out of it.
Potential side effectsget_entity_graphGet the whole entity graph, or a filtered part of it, in a chosen format: json for the canonical document, jsonld for a validator, mermaid or markdown to read in a conversation, dot or graphml for a graph tool.
Inferred read-onlycompare_entitiesCompare two audits of a site and get the change set: entities added and removed, entities that gained or lost an @id, occurrence changes, new and resolved conflicts and dangling references, summary deltas, and the pages each audit saw that the other did not.
Inferred read-onlyget_entity_findingsGet the schema/entity-* rule verdicts for an audit: what is wrong with the site's entity graph, which entity keys and pages each finding affects, and the fix text for each.
Inferred read-onlylist_rulesBrowse the catalog of 260+ audit rules that run during an audit, grouped into categories (crawlability, meta tags, performance, security, accessibility, content, and more).
Inferred read-onlywhoamiIdentify the current credentials: how you are authenticated, which organization you act for, the plan, and the current credit balance.
Inferred read-onlyget_credit_balanceGet the organization's credit balance: monthly credits (reset each billing period) and pack credits (purchased, never expire).
Inferred read-onlylist_credit_transactionsAudit the organization's credit accounting log: grants (signup/monthly/pack/promo), debits (audit_base 50cr + render 2cr/page + folded 0-cost services), refunds, and adjustments — newest first, paginated.
Inferred read-onlycreate_api_keyMint a new squirrelscan API key for this organization (requires credentials carrying the keys:write scope, which OAuth sign-in grants).
Potential side effectssend_feedbackReport your experience using squirrelscan mid-session: a bug, a missing feature, what worked, what confused you, missing report data, or tool ergonomics.
Inferred read-onlylist_notificationsRead the organization's notification feed, newest first: what finished, what broke, and what changed since you last looked.
Inferred read-onlyCONNECT WITH APPROVAL
Client installation
Review this server and its permissions before adding it. Secret placeholders must be set locally.
Codex
~/.codex/config.toml
[mcp_servers.squirrelscan]
url = "https://mcp.squirrelscan.com/mcp"
enabled = true
Claude Code
.mcp.json
{
"mcpServers": {
"squirrelscan": {
"type": "http",
"url": "https://mcp.squirrelscan.com/mcp"
}
}
}
Claude Desktop
Settings → Connectors → Add custom connector
Name: squirrelscan
Remote MCP URL: https://mcp.squirrelscan.com/mcp
Add this remote URL as a custom connector in Claude Desktop. Availability depends on the user plan and workspace policy.
Cursor
.cursor/mcp.json
{
"mcpServers": {
"squirrelscan": {
"url": "https://mcp.squirrelscan.com/mcp"
}
}
}
Visual Studio Code
.vscode/mcp.json
Add to Visual Studio Code{
"servers": {
"squirrelscan": {
"type": "http",
"url": "https://mcp.squirrelscan.com/mcp"
}
}
}
Generic MCP
Client-specific MCP configuration
{
"name": "squirrelscan",
"transport": "streamable-http",
"url": "https://mcp.squirrelscan.com/mcp"
}
MCP Inspector
Run the official MCP Inspector locally and enter the indexed Streamable HTTP endpoint.
TRUST AND VERIFICATION EVIDENCE
Trust Data Available
BuiltWith Trust API v2 evidence for squirrelscan.com was fetched 2026-08-21T15:45:06.888Z and is being refreshed.
squirrelscan.com is assessed as Trusted: Domain runs a meaningful technology spend, consistent with a real business.
Evidence is source-attributed and does not guarantee that a third-party server is safe. Risk labels are conservative metadata heuristics.