Connector changelog
What changed on the Whisper MCP connector — tools, resources, prompts, response fields and the workflow gallery — with the date each change landed and how to see the current shape yourself.
On this page (6)
Connector changelog Documentation
This page logs changes to the MCP connector specifically — its tools, its resources, its prompts, the fields a response carries, and the workflow gallery behind run_workflow. For product and data-layer changes across all of WhisperGraph, see the general changelog.
An MCP client caches a tool list. That is the reason this page exists separately: a change to the connector's shape is a change to a contract your agent has already read, and it is not visible in a log about data layers.
Check the current shape, don't trust this page alone
Three endpoints answer "what does the connector look like right now", and all three are live:
| Question | Where to ask |
|---|---|
| Which tools, resources and prompts exist? | tools/list, resources/list, prompts/list on your connected client — the authoritative contract. |
| What is public about that surface without connecting? | /.well-known/mcp-manifest.json — tool names and their read-only annotations. |
| How fresh is the data behind an answer? | The whisper://stats resource. It carries per-layer refresh timestamps and a per-layer coverage value, so a stale or degraded layer is visible before you read a result rather than inferred afterwards. |
A changelog entry says what moved. Only those three say what is true today.
2026-09
- Ten validation rules. A tenth query-safety rule joins the set: a fixed-length, untyped outgoing expansion from an announced or registered prefix is rejected with a fix, because the engine cannot serve that shape. Type the relationship, expand into the anchor, use a
[*1..N]form, or anchor on aPREFIX. See Query language. explain_indicatorsays when it cannot score. A row the engine has evidence for but no score to report now readsscore: null,level: UNSCOREDandscoreUnavailable: true, never a clean-lookingNONE. An ASN's reputation composite travels separately asreputation{value, scale, direction, category};recoveredScoreappears only when the recovered number is onscore's own scale.- Roster listings are no longer counted as threats. Each
sources[]entry carries its feedcategoryand athreatCategoryflag, and the row carriesthreatFeedCountandnonThreatFeedCount, so a Tor roster or a popularity list is a fact about the node rather than an abuse report. Every advisory is spelled out inexplanation, a row listed in a threat feed never reads "No known risk", anddataCoverageis present on every row. - Per-layer freshness on
whisper://stats. Each query-time layer reportslastRefresh,ageSecondsand a coverage verdict (OK/DEGRADED/EMPTY), so a stale or thin layer is visible before you read a result rather than inferred afterwards. run_workflowreports over the declared step list. Coverage is reconciled against the workflow's declared steps, so a step that never reported back isskippedrather than missing. An entity sent insideparamsis still used and flagged viainputSource; a key matching no declared param comes back inignoredParams.identifyconfidence bands are documented ranges.DIRECT>DERIVED(0.70–0.89) >HEURISTIC(0.4) >UNKNOWN(0.0); do not threshold on a single number. Seeidentify.
2026-08
- The connector became read-only, and it is not a default.
submit_indicatorandsubmit_feedbackwere removed along with themcp:writescope. Every remaining tool is annotatedreadOnlyHint: true, destructiveHint: false. There is no contribution or feedback tool on this surface, under any scope or deployment. Engine procedures that write (whisper.submit,whisper.watch) are refused by name on thequerypath — see Procedures. assessandwalkfolded intoexplain_indicatorandidentify.explain_indicatorgained thedetailknob (auto/full/band) and the batchindicators[]argument;identifygained the automatic structural-neighbourhood fallback for hosts it cannot place. Both remain callable as procedures (whisper.assess,whisper.walk) insidequery.identifyjoined the tool surface. Vendor and role attribution for a batch of hosts, deliberately not a threat verdict. Seewhisper.identify().- Every result is held to a response-size budget. An over-budget
queryresult is fitted rather than dropped (rowstrimmed,truncated/budgetTruncated: true, apaginationcontinuation pointer); every other tool returns an honest, schema-valid empty result with aresultTruncated{}block. Nothing is capped silently. run_workflowruns inside a wall-clock budget. On expiry it returns a successful partial (success: true,partial: true, guidance inwarnings[]), never a hang.attack-surfacecannot fit that budget on any input and is refused up front withnotRun: true, areasonand ahowToNarrowhint.- OAuth scopes are enforced and documented.
mcp:readandoffline_access(plus the legacymcp:query) are what the discovery documents advertise; Client ID Metadata Documents join Dynamic Client Registration as a way to register a client; refresh tokens can be revoked; any browser origin is served by default. - Feeds and categories anchor on
.id.explain_schemaand the tool descriptions teach the stable slug rather than the display name, andevidence.cyphercarries the query that actually ran — the rewritten form if the engine auto-bounded or corrected yours.
2026-07
run_workflowgained server-owned output profiles.profile(console/website/mcp/raw) selects a server-maintained response shape; the defaultmcpprofile returns a budgeted markdown report with a numbered evidence appendix.outputfine-tunes on top of a profile and replaces its slice list rather than merging with it. See the Workflow gallery.- Truncation became explicit. Anything a report's budget dropped is recorded in
truncations[]and non-fatal warnings land inprofileWarnings[]. Nothing is dropped silently. - The docs are read live.
read_docslists, searches or fetches the published documentation at call time, so nothing about the query language has to sit in always-on context.
2026-06
- The tool surface was reworked around the gallery.
list_workflowsandrun_workflowarrived alongsideexplain_schemaandread_docs; the always-listed resources were trimmed to four; the prompts are generated from the gallery, one per flagship workflow. querylearned to correct itself. A typed error envelope with machine-readableerrorCodes, afixobject for corrections an agent must apply, automatic bounding of limit-less queries,format: compact, count-first pagination, and anevidenceblock on every call.- The agent tool set landed.
identify,assessandwalkreached the connector alongside the reconciled threat verdict —verdictScore,verdictLevel,verdictBlocking— so an agent reads one answer instead of reconciling feed signals itself. - Verdicts carry coverage. Every
explain_indicatorrow gained thecoverageblock that separates "not listed at this granularity" from "safe", andsharedHostflags multi-tenant apexes where a hostname-level verdict is structurally uninformative. - Authentication is always enforced, and a refresh token keeps an active connection signed in for up to six months.
Reading a change that affects you
- A field that appears is safe to ignore until you want it. Responses are objects; an unknown key is not an error.
- A field that disappears, or a tool that is renamed, is the case that breaks an agent silently, because a request built against the old name usually still returns a valid-looking response. Those changes are announced here and governed by the deprecation policy.
- The workflow gallery moves independently. Workflows are added and retired without a connector release. Discover them with
list_workflowsat call time rather than hard-coding a slug list —list_workflowswith no argument returns the whole catalogue.