mcp
Run the local MCP server so agents can drive squirrelscan
The mcp command starts a local Model Context Protocol server over stdio. Agents like Claude Code and Cursor launch it to call squirrelscan’s audit engine and cloud features as tools.
Usage
squirrel mcpThe server runs in the foreground and speaks JSON-RPC on stdin/stdout. You rarely run it directly. Your agent spawns it from its MCP config. See the MCP Server guide for connect instructions.
Tools
| Tool | Auth | Description |
|---|---|---|
audit_website | None | Full deterministic audit of a URL; cloud enrichment added when logged in. |
quick_check | None | Fast, local-only single-pass health check of one URL. |
list_rules | None | List all built-in audit rules. |
get_rule | None | Full definition of one rule by id. |
list_audits | Login | Your org’s running/pending audits. |
get_report | Login | Fetch a published report by audit id. |
list_issues | Login | Supplant-aware issue state for a website. |
get_issue | Login | A single issue by website + number. |
comment_on_issue | Login | Comment on an audit issue. |
Authentication for agent/CI use
Tools marked “Login” above need a credential to reach the squirrelscan API. The local server reuses the same token resolution as the rest of the CLI: it checks SQUIRRELSCAN_API_KEY (or the older SQUIRREL_API_TOKEN alias) first, then falls back to a squirrel auth login session.
For a headless agent or CI runner that spawns squirrel mcp without ever calling squirrel auth login, set the env var on the process:
SQUIRRELSCAN_API_KEY=sq_xxxxxxxxxxxx squirrel mcpIf neither the env var nor a login session is present, an authed tool call returns a clear error naming both fixes instead of a generic failure. A call that’s denied for lacking a scope (e.g. an audits:read-only key calling a write tool) names the missing scope in the error text as well.
Quick start with Claude Code
claude mcp add squirrelscan -- squirrel mcpRelated
- MCP Server: full connect guide for Claude Code, Cursor, and other clients
- Using with Agents: skills-based integration