Workflow & recipe gallery
The shared gallery of investigation playbooks behind the Whisper MCP server: discover them with list_workflows, run one or more in a single call with run_workflow, and cite the evidence trail behind every step.
Workflow & recipe gallery Documentation
The workflow & recipe gallery is a shared library of investigation playbooks. It's the same library that powers the use cases on this site and the investigations in the console. Over MCP, an agent finds a playbook with list_workflows and runs it with run_workflow. A single run_workflow call can cover a multi-step pivot — resolve DNS to an IP, the IP to its ASN, check threat intel — and it returns the evidence trail behind every step.
This is the connector's headline feature. Instead of stitching together five query round-trips, an agent runs one named playbook and gets chained, evidence-backed results.
The catalog is large — over 170 curated flows in total (the guided workflows plus the deeper recipe library). A slice of them are surfaced as the use cases on this site; the rest are reachable over MCP. list_workflows is the authoritative, always-current index — the tables below are a starting point, not the whole catalogue.
New to the connector? Start with the Setup guide, then the Reference for the full 6-tool surface. The two gallery tools are
list_workflowsandrun_workflow.
How it works
- Discover.
list_workflowssearches the gallery and returns matching playbooks, each with its summary and its full parameter space — every dial, with options, ranges, and defaults — so an agent can run any variant, not just the default. - Run.
run_workflowtakes one or more slugs (with optionalinput/params) and runs them in a single call. It returns chained per-step results, derived signals, and anevidencetrail. - Cite. Each result carries an
evidencearray: per step, the exact Cypher that ran, the row count, and the latency. The agent can show its work.
The tmpl-* slug scheme
tmpl-* slug schemeGallery playbooks are addressed by slug. The tmpl- prefix marks a templated recipe — a parameterised investigation you run by name. A few flagship slugs:
| Slug | What it answers |
|---|---|
tmpl-brand-variants | Registered typosquats and lookalikes of a domain (14 mutation algorithms) |
tmpl-whois-history | WHOIS history for a domain — registrar, nameserver, and ownership changes over time |
tmpl-recon-origin-ips | Candidate true-origin IPs behind a CDN / proxy |
tmpl-threat-identify-host | Whose infrastructure a host is — vendor, canonical name, host class |
tmpl-threat-assess-host | A coverage-qualified clean / suspicious verdict for a host |
These five cover the most common one-shot investigations — a brand sweep, a WHOIS timeline, a CDN de-cloak, host identity, and a host verdict.
Flagship recipes
| Slug | What it answers | Example input |
|---|---|---|
tmpl-brand-variants | Registered lookalikes of a brand domain | paypal.com |
tmpl-whois-history | Ownership / registrar timeline for a domain | google.com |
tmpl-whois-history-snapshots | BGP / WHOIS snapshots for an IP, prefix, or ASN | 8.8.8.0/24 |
tmpl-recon-origin-ips | True-origin IPs behind a CDN | www.cloudflare.com |
tmpl-threat-identify-host | Identity (vendor / class) of a host | raw.githubusercontent.com |
tmpl-threat-assess-host | Clean / suspicious verdict, with coverage | 185.220.101.42 |
The gallery holds many more — list_workflows is the authoritative, always-current index. Treat this table as a starting point, not the whole catalogue.
list_workflows — the contract
list_workflows — the contractSearch the gallery; get back each item's summary and its full parameter space.
Returns
{
"workflows": [
{
"slug": "tmpl-brand-variants",
"title": "Brand variants & typosquats",
"summary": "Registered lookalikes of a domain, with the mutation method and a confidence score.",
"personas": ["brand-protection", "threat-intel"],
"task": "brand-protection",
"layers": ["dns", "threat-intel", "whois"],
"inputs": [{ "name": "domain", "type": "hostname", "required": true }],
"params": [
{ "name": "includeNonExistent", "type": "boolean", "default": false },
{ "name": "algorithms", "type": "string[]", "options": ["omission", "homoglyph", "bitsquat", "tld-swap", "…"] }
],
"stepCount": 4,
"requiresCapability": null,
"expectedOutput": "A table of registered variant domains, each with method, confidence, and any threat-feed listings."
}
],
"count": 1
}
Because every dial is described (options / ranges / default), the agent can run a non-default variant — e.g. flip includeNonExistent on, or narrow algorithms — without guessing the shape.
run_workflow — the contract
run_workflow — the contractRun one or more playbooks by slug in a single call.
Input
{
"runs": [
{ "slug": "tmpl-brand-variants", "input": "paypal.com" },
{ "slug": "tmpl-whois-history", "input": "paypal.com", "params": { "limit": 20 } }
],
"format": "compact"
}
runs[]— one or more{ slug, input?, params? }. Multiple runs execute in the same call.format—table/graph/compact(defaultcompact).
Output
{
"results": [
{
"slug": "tmpl-brand-variants",
"success": true,
"complete": true,
"coverage": { "stepsTotal": 2, "stepsWithData": 2, "stepsEmpty": 0, "stepsSkipped": 0, "stepsError": 0, "byStep": { "1": "data", "2": "data" } },
"steps": [ { "title": "Generate variants", "rows": [ /* … */ ] } ],
"derived": { "registeredCount": 7, "threatListedCount": 2 },
"evidence": [
{ "step": 1, "title": "Generate variants", "cypher": "RETURN whisper.variants(\"paypal.com\")", "rowCount": 34, "executionTimeMs": 41 },
{ "step": 2, "title": "Check registration + threat", "cypher": "MATCH (h:HOSTNAME) WHERE h.name IN $variants RETURN …", "rowCount": 7, "executionTimeMs": 88 }
],
"paramValues": { "includeNonExistent": false },
"totalLatencyMs": 129
}
],
"references": { "schema": "https://www.whisper.security/docs/whisper-graph/schema", "cypherGuide": "https://www.whisper.security/docs/cypher", "apiReference": "https://www.whisper.security/docs/cypher-api/reference", "slugsRun": ["tmpl-brand-variants"] },
"quota": { "plan": "free", "perMinuteRemaining": 58, "perDayRemaining": 940 }
}
That evidence array is what makes the result auditable: every step ships the exact Cypher it ran, its row count, and its executionTimeMs, so the agent can cite the query and the rows behind each conclusion. complete and the coverage map flag any step that was skipped or returned nothing — a coverage gap is a finding, not a clean result (no-data != benign) — and references hands back the schema / Cypher / API doc links plus the slugs that ran. derived carries the rolled-up signals (counts, verdicts) an agent usually wants without re-deriving them, and paramValues records exactly which dials were used.
Worked example: a typosquat sweep, end to end
A user asks: "Is anyone squatting on paypal.com, and is any of it dangerous?"
1 — discover the recipe.
list_workflows({ query: "typosquat brand protection" })
→ { workflows: [{ slug: "tmpl-brand-variants", inputs: [{name:"domain"}], params: [{name:"includeNonExistent", default:false}], … }], count: 1 }
2 — run it.
run_workflow({ runs: [{ slug: "tmpl-brand-variants", input: "paypal.com" }] })
3 — read the result and cite the evidence. The agent answers in plain language —
Found 7 registered lookalikes of paypal.com; 2 are on threat feeds (
paypa1.com,paypal-secure.net). The rest resolve but aren't flagged.
— and can back every number with the evidence trail:
| Step | Cypher (abridged) | Rows | Latency |
|---|---|---|---|
| 1 | RETURN whisper.variants("paypal.com") | 34 | 41 ms |
| 2 | MATCH (h:HOSTNAME) WHERE h.name IN $variants RETURN h.name, h.threatLevel | 7 | 88 ms |
4 — pivot, still in one call. To go further, chain a second recipe in the same run_workflow:
run_workflow({ runs: [
{ slug: "tmpl-brand-variants", input: "paypal.com" },
{ slug: "tmpl-whois-history", input: "paypa1.com" }
]})
That returns the lookalikes and the WHOIS history of the worst offender — two investigations, one round-trip, both with their own evidence trails.
Live numbers will differ. WhisperGraph reflects the current state of the internet, not a fixed snapshot — counts, verdicts, and registrants change as feeds and routing refresh.
Next steps
- MCP Reference — the full 6-tool surface and the
evidencemodel. - Setup guide — connect a client and run your first investigation.
- Agent Skills — client-side skills that pick the right gallery recipe for you.
- Use cases — the same playbooks, as guided flows you can run in the browser.