Skip to content

Releases

v1.2.2

Choose a tag to compare

@Backroads4Me Backroads4Me released this 11 Nov 23:01

ProjectionLab MCP 1.2.2

A release that lets several server instances share one WebSocket port, so hosts that keep a server running per session (such as Claude Desktop) connect to the browser from whichever session is in use.

Improvements & Changes

• On-Demand Port Hand-Over: When a tool call arrives at an instance that does not hold PL_WS_PORT, it asks the instance that does to hand the port over. The holder finishes its operations in progress, releases the port, and the browser extension reconnects to the new holder in about 2 seconds. No extension update or configuration change is needed.
• Safer Plan Writes: The check that the plans are unchanged and the write itself now run as one step on the bridge, so a hand-over or another operation cannot run between them. A plan changed in the meantime is refused with PLAN_CONFLICT rather than overwritten.
• Clearer Port Diagnostics: projectionlab_check_connection distinguishes a holder that did not hand the port over (for example a session still on an older version), a holder still busy with its own operations, and a port held by a program that is not projectionlab-mcp.
• Independent Extension Releases: Extension releases use their own extension-v tags. Server releases (v tags) publish to npm only; the extension stays at 1.2.1 on the Chrome Web Store and Firefox Add-ons.

Upgrading

Fully quit and reopen your MCP host so every session starts the new version. A session still running an older version cannot hand the port over.

v1.2.1

Choose a tag to compare

@Backroads4Me Backroads4Me released this 11 Nov 10:35

ProjectionLab MCP 1.2.1

A release decoupling the browser extension release cycle from the MCP server, updating documentation to point directly to the Chrome Web Store and Firefox Add-ons, and clarifying settings migration.

Improvements & Changes

• Decoupled Extension Versioning: The browser extension now versions independently (v1.2.1 on Chrome Web Store and Firefox Add-ons). The server enforces MIN_EXTENSION_VERSION = "1.2.0", meaning the MCP server can iterate and release without forcing extension updates unless wire-level features change.
• Store Installation Guidance: Documentation and update notices point users directly to the Chrome Web Store and Firefox Add-ons rather than manual zip downloads.
• Options Page Cleanup: The browser extension options page removes stale references to GitHub releases, adds direct store links, and shows update notices only when connected to a server requiring a newer extension.
• Migration Accuracy: Update notices and setup documentation clarify that browsers isolate extension storage by extension ID, so moving from an unpacked developer copy to the official store release requires copying the token from ~/.projectionlab-mcp/ws-token.
• Canonical URLs: Updated Chrome Web Store URLs across documentation and code to the canonical store slug, eliminating HTTP 301 redirects.

v1.2.0

Choose a tag to compare

@Backroads4Me Backroads4Me released this 10 Nov 06:41

ProjectionLab MCP 1.2.0

A hardening release from a full code audit, plus two things users will notice:
the assistant now says when an update is available, and two browsers no longer
compete for the connection. Update the server and the extension together. A
1.1.0 extension still works with this server (the wire protocol version is
unchanged), but the standby and version-line behavior needs the 1.2.0
extension.

New

  • Update notices. projectionlab_check_connection reports the server,
    extension, and latest npm release versions, with plain-language notices
    when something is out of date. The assistant mentions a notice once and
    carries on.
  • Version line in the extension. The options page shows a line when the
    extension and the server it reached are different releases, with a link to
    the releases page or a hint to restart the assistant.
  • PL_UPDATE_CHECK (default on): the server makes one request per start
    to npm to read the latest release number. The request carries no personal,
    plan, or configuration data. Set it to false to turn the check off. See
    Privacy.
  • Standing by. The browser that is connected keeps the connection. A
    second browser shows "Standing by", retries every 30 seconds, and connects
    on its own when the first one goes away. Pressing Save on a standby
    browser's options page switches to it. The bootstrap snippet follows the
    same rule.

Security and safety fixes

  • A frame that is valid JSON but not an object (null, 42) no longer ends
    the server process. Any local client could trigger this without the token.
  • A blank PL_WS_TOKEN counts as unset and a token is generated; it no longer
    lets a client authenticate with an empty string.
  • The Plugin API key is scrubbed from every log line, from the fatal-error
    output, and from the error details of the plan-data and summary resources.
  • Snapshots store the Plugin API key as a placeholder and put the real key
    back on rollback, so a rollback of settings restores a working key. A
    snapshot written by an earlier version that holds [REDACTED] in its
    settings is refused with an explanation, in the dry run as well as on
    confirm.
  • A write payload that still holds [REDACTED] under a secret-named field is
    refused, dry runs included, naming the paths. This stops a redacted read
    from being written back as real data.
  • projectionlab_update_plan_section validates the shape of sectionData
    for the section named. An omitted value, null, or the wrong container no
    longer deletes or corrupts a section.

Behavior changes

  • A plan or event name that partially matches more than one item is refused
    with the list of candidates, where it used to pick the first match.
  • The legacy patch input of projectionlab_update_plan_event validates
    existing fields the way pathChanges does, and reports each change as
    { "before": ..., "after": ... }. A field the patch adds reports
    "before": "[ABSENT]".
  • projectionlab_rollback reports success: true whenever the restore is
    accepted, with a separate verified flag for the re-read check, like the
    other write tools.
  • A path that addresses an array with anything other than an index, such as
    length, is refused.
  • An invalid PL_WS_PORT or PL_APP_URL stops the server at startup with a
    message naming the variable. An unknown LOG_LEVEL falls back to info.
  • An API error that merely contains the digits 401 or 403 is no longer
    reported as a bad Plugin API key.

Extension

  • A wrong token or protocol mismatch is not retried until you press Save, and
    that now holds across the browser restarting the background worker.
  • Save works without editing a field, in Chrome and Firefox.
  • The extension reconnects within a few seconds after the server restarts.

Housekeeping

  • Files written for results too large to return inline are deleted after 30
    days, like snapshots.
  • Snapshot retention goes by file modification time and no longer reads every
    snapshot on each write.
  • When a new browser replaces the connected one, cached data and in-flight
    requests from the old one are dropped at once.

The extension was verified in Chromium and Firefox with two browsers sharing
one server.

v1.1.0

Choose a tag to compare

@Backroads4Me Backroads4Me released this 09 Nov 10:11

ProjectionLab MCP 1.1.0

New tools for comparing and deleting plans, a field reference for safer
edits, and clearer guidance for assistants. The browser extension works with
this server at 1.0.1 or 1.1.0 (the wire protocol is unchanged).

New

  • projectionlab_diff shows field-level changes between two snapshots, a
    snapshot and the live data, or two plans (planA and planB). It is
    read-only, so it works in read-only mode.
  • projectionlab_delete_plan deletes a plan by exact ID. It is a dry run
    until confirmed, snapshots first, and refuses to delete the last plan.
  • Data model resource (projectionlab://data-model): field meanings,
    units, and allowed values for ProjectionLab 4.6.0. listPaths reads carry
    these annotations, and writes refuse values outside a confirmed option list.
  • writesEnabled in projectionlab_check_connection, so the assistant
    knows whether changes are turned on before it offers one.
  • Rollback by recency or time: choose a snapshot with nBack or
    beforeTime as well as snapshotId.
  • Confirmed writes return their snapshotId, so the backup taken before a
    change can be found directly.

Improved

  • Real estate in Current Finances and describe_schema is labeled with market
    value and loan balance separately.
  • Plan copies and plan writes are verified more thoroughly against what
    ProjectionLab saved, including Current Finances.
  • Plan-to-plan diffs ignore each event's random internal key.
  • Delete, plan-write verification, and net worth match ProjectionLab 4.6.0.
  • The server exits when the MCP host closes its connection.

Guidance for assistants

  • Assistants describe change previews in plain words (plan, item, old and new
    value) rather than showing JSON.
  • The guide covers units and rate scales (inflation is stored in percentage
    points), with worked write-tool examples.
  • The knowledge resource is limited to concepts and links to ProjectionLab
    help articles; yearly tax figures are left to ProjectionLab.
  • The guide explains that the export is stored data, not the app's logic, and
    that a one-time event's stored end date is ignored.

Fixes and security

  • Fixes from an audit: clone verification, asset values, redaction of plan
    reads, and a crash before authentication.
  • The extension and bootstrap snippet run only the Plugin API methods the wire
    protocol defines.
  • zod upgraded to 4.6.7 and @hono/node-server to 2.1.6. npm audit reports
    no vulnerabilities.

Documentation

Install

  • Server: npx -y projectionlab-mcp (see the README).
  • Extension: download the zip for your browser below and load it unpacked, or
    install from the Chrome Web Store or Firefox Add-ons once listed.

v1.0.1

Choose a tag to compare

@Backroads4Me Backroads4Me released this 08 Nov 04:33
ea667fc

What's Changed

Full Changelog: v1.0.0...v1.0.1

v1.0.0

Choose a tag to compare

@Backroads4Me Backroads4Me released this 07 Nov 12:04
b06542b

First public release of the ProjectionLab MCP server and the ProjectionLab MCP Bridge browser extension.

  • MCP server on npm: npx -y projectionlab-mcp (Node.js 20+). Read and safely edit ProjectionLab plans, Current Finances, assumptions, Monte Carlo and withdrawal-strategy settings from any MCP-compatible AI assistant.
  • Writes are off by default (PL_READ_ONLY=false enables them), every write is a dry run until confirmed, every confirmed change is snapshotted for projectionlab_rollback, and plan writes refuse with PLAN_CONFLICT when a plan was saved in ProjectionLab meanwhile.
  • Browser extension zips for Chromium (Chrome, Edge, Brave) and Firefox 128+ are attached below. See the README for setup.