Skip to content

MCP changelog

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.

  • 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.
  • 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.

  • 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.
  • 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.

  • 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.
  • 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.

  • 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.

  • 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.
  • Saved-result MCP tools now advertise exact handles, friendly names, and latest consistently in their schemas and errors.
  • 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”.
  • 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).
  • 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.
  • 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.
  • 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).

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.

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.

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