# MCP changelog

Source: https://getanalog.io/docs/mcp-changelog/

Notable, user-facing changes to analog-mcp.

Release notes for `analog-mcp`. `analog-mcp` is a thin MCP server
over `analog-sdk`, versioned together with it — most of what an
upgrade delivers arrives through the SDK underneath; see
`analog-sdk`'s release notes for that surface.

## 0.11.0 — 2026-09-16
### Added

- The `analog` tool accepts `expand_all` and `load_all`: opt into expanding collapsed per-item disclosure toggles (accordion rows, FAQ answers, spec panels) or clicking through "Load more" before capture. The response reports available controls under `browse_actions`; request `guidance: true` for an available executable next action.

- Result document sections now denote the page's main prose content: the Markdown section carrying an article's title and body is marked `role="main_content"` (at most one per result), so an agent can go straight to the body.

### Changed

- The `analog` tool's `page_sweep` facts now include `stated_total` and `stated_total_source`: the collection size the page itself states and where it states it (its pagination range or a count heading), beside `record_count`. `pagination` gains the same `stated_total_source`.

- `analog` and `analog_describe` accept `guidance: true` for at most one available next action. Advice never displaces receipt evidence. Acquisition receipts verify that a saved handle can be reopened before offering it.
- Receipts preserve whether a next-document link is confirmed to continue the same collection.

- `analog_describe` shows section and field summaries. `complete: true` includes hidden fields in the summary; `guidance: true` can point to `analog_section` for records.

- The `pages` parameter is labeled experimental. Compatible sections pool across pages, with missing fields represented as null and disclosed; sections that cannot be pooled remain separate.

- Tool results no longer include the `reuse_token` field. Sweeps behave identically without it.

- Multi-page results' sweep summary now lists `page_partial_fields` — fields only some merged pages carried, null on records from pages without them.

### Fixed

- `analog_describe` now includes Markdown regions in page order without changing the record indices used by `analog_section`.

## 0.10.0 — 2026-08-19
### Added

- The `assess` tool's JSON now includes `declared_feeds`: the syndication feeds the page declares in its head, read from the HTML and never fetched.

### Changed

- Full result payloads now include the required `document_section_plan` that defines their mixed record-and-Markdown reading order.

- Navigation arrives inside `structured_content` as sections of kind `"navigation"` (with `placement`) instead of a separate `navigation` payload; the `analog_navigation` tool is retired, and the section-kind filters on the re-slice tools serve the site map.

- Result receipts no longer expose the `bot_protection` classification.

## 0.9.0 — 2026-08-05
### Added

- Extraction and saved-result outputs carry the result's `subject_withheld` disclosure — why a single-subject reading of the page was weighed and not returned, when one was.

### Changed

- Section locations in MCP results now preserve every exact page region used by a section instead of presenting one incomplete location.

- The server now runs on MCP Python SDK v2 and speaks the 2026-07-28 stateless MCP protocol; clients on earlier protocol revisions keep working unchanged.

- Saved-result search now finds prose in Markdown sections and returns bounded context with its page-section source.

### Fixed

- Tool failures now state their reason directly — the "Error executing tool …" preamble no longer precedes every error message.
- An error inside a tool no longer misreports the call as having invalid arguments; that message is reserved for arguments the tool's schema actually rejected.

## 0.8.2 — 2026-07-27
### Changed

- Bound the headline extraction receipt while keeping complete saved results available through explicit follow-up tools.

- Return JSON-shaped MCP results as navigable structured content while keeping text formats text-only.

### Fixed

- Browser-backed `analog` and `assess` calls now run successfully through MCP clients instead of failing with a Playwright event-loop error.

- Domain errors now retain their useful guidance without exception quotes, validator boilerplate, repeated label lists, or doubled punctuation.

- Saved-result guidance now names MCP tools and arguments instead of showing Python or CLI syntax.

- Publish and enforce numeric bounds for pagination, history limits, and saved-result indices.

- Pagination guidance from `assess` now names the `analog` tool and its `pages` argument instead of showing Python or CLI syntax.

- Keep private-address refusals in MCP terms instead of suggesting a Python-only opt-in.

- Reject unknown MCP tool arguments instead of silently ignoring misspelled controls.

## 0.8.1 — 2026-07-26
- **A failed call says so.** Every tool failure — unknown handle,
  out-of-range index, refused export, bad argument, sign-in or network
  trouble — now reaches the client as an MCP error result
  (`isError: true`) with the same plain message text as before, so a
  client that keys on the error flag stops reading failures as data.
  Informative empty answers (a page with no navigation regions, a
  result saved without a handle) are unchanged: successful calls.
- **Argument mistakes are explained in plain language.** An invalid
  tool argument (a format outside the enum, a wrong-typed index) used
  to surface framework internals; it now names the tool, the argument,
  and the accepted values.
- `analog_export` accepts `fmt="markdown"` as an alias for `"md"` —
  the same alias the `analog` CLI takes.

### Fixed

- Saved-result MCP tools now advertise exact handles, friendly names, and `latest` consistently in their schemas and errors.

## 0.8.0 — 2026-07-25
- `analog_export` markdown output now carries the withheld disclosure
  the structured views show: when a section's values exist on the page
  only as unnamed icons, the markdown leads with a note naming those
  columns instead of rendering blank cells that read as "no value".

## 0.7.1 — 2026-07-23
- `analog_feedback` confirmations now include the submission's opaque report
  ID, so an agent can cite the durable receipt during later triage.
- New `analog_collection` tool — return one saved Collection as a
  canonical, deduplicated records view with its physical Section provenance,
  without fetching or extracting again.
- Compatibility release for `analog-sdk` 0.16.0 (its serializer
  surface became methods).

## 0.7.0 — 2026-07-18
- New `analog_navigation` tool — a saved result's navigation map by
  handle: the page's nav, header, footer, and sidebar link structure as
  labeled trees, including menu content collapsed at rest (mega-menus).
  The site's own answer to "where can I go from here", without paying
  for another extraction. The `analog` tool's description now points at
  the navigation map, and every re-slice tool list includes the new
  tool.

## 0.6.1 — 2026-07-15
- New `analog_history` tool — list your saved extractions, newest
  first, as cheap metadata (handle, url, when it was saved, size), so a
  handle that has dropped out of context can be recovered and re-opened
  instead of re-extracting the page.
- New `analog_describe` tool — a token-cheap preview of a saved result
  (each section's shape plus a couple of sample records) for orienting
  on a large result, e.g. after a `pages=N` sweep, without pulling the
  full JSON or the page's markdown.
- `analog_find` gained a `field` argument to scope a search to one
  field's values.
- `analog_export` no longer fails on a multi-section result, and the
  tool contracts read more clearly to an agent — typed export formats,
  sharper input-schema descriptions, and corrected tool wording.
- Fetches now decline local and private-network addresses by default;
  see `analog-sdk`'s notes for the fetch-safety change underneath.

## 0.6.0 — 2026-07-11

- The `analog_feedback` tool's reason labels all name what you
  observed (`no_records_found`, `misfielded_values`, …), enumerated
  in the tool's input schema. Requires `analog-sdk` >= 0.13.0.
- The `assess` tool returns what an agent acts on: `recommendation`,
  the measured markdown size, the `guidance` menu, and the
  structured probes (`feed_probe`, `sitemap_probe`, `pagination`).

## 0.5.4 — 2026-07-10

The `analog` tool gained `pages=N` (bounded sweeping of a paginated
collection, disclosed in the response); `assess` carries the sitemap
disclosure; the feedback vocabulary gained `undetected_block`; the
package ships `py.typed`; sessions survive the first-ever fetch on a
fresh machine; and repeated `analog` calls in one session got much
faster.

## 0.5.3 — 2026-07-06

New `analog_feedback` tool (quality reports + feature requests).
Extraction URLs are never logged; a quality report includes the URL you
explicitly submit and never page content. The SDK underneath moved its
credential out of the OS keychain — run `analog login` once after
upgrading. `assess` reworked around measured facts and task guidance.

## 0.5.2 — 2026-07-04

Compatibility with `analog-sdk` 0.11; tool responses inherit its
honest disclosures (guessed-name notes, truncation flags,
withheld-column warnings).