Skip to content

Releases: apocryphx/ES-Memory-Bridge

v1.2.0 — zero file IO, fixed port 59123

17 Apr 06:08

Choose a tag to compare

Major simplification. The bridge no longer reads any files outside its own bundle.

Why

Previous versions read server.plist from the ES Memory app's sandbox container to discover the HTTP endpoint URL. That triggered macOS TCC prompts for cross-container access, and because the bridge is ad-hoc signed, each new .mcpb release created a fresh TCC identity that invalidated any prior user consent. Net result: the dialog kept coming back every update.

The fix

  • Fixed port: bridge hardcodes http://localhost:59123/mcp. No discovery, no plist, no filesystem reads.
  • Port 59123 was chosen because 5000 (the previous default) is occupied by macOS AirPlay Receiver on most Macs. 59123 is in the IANA dynamic/private range and not associated with any common service.
  • Zero file IO in the bridge = zero TCC prompts, permanently, for any macOS version.

Degraded mode unchanged

If the host isn't running, the bridge still surfaces a single es_memory_setup tool with a "Launch ES Memory.app from /Applications" message inside Claude — and auto-recovers on the next successful forward.

Requires

ES Memory v1.0.5 or later, configured to bind to port 59123. (The host change is in commit 49b8210mcpServer.customPorts = @[@(59123)].) Earlier host versions bound to port 5000 and won't be reachable from this bridge.

If you're on an older host, v1.1.2 still works with the plist-based discovery path.

Install

  1. Download ES-Memory-Bridge.mcpb below.
  2. Drag onto Claude Desktop's Drag .MCPB or .DXT files here to install in Settings.
  3. Already on an earlier version? Drag the new .mcpb on top — Claude Desktop upgrades in place.
  4. Launch ES Memory.app from /Applications.

v1.1.1 — schema cache fix (tools_generated)

17 Apr 05:11

Choose a tag to compare

Patch release. One manifest change, no code change.

What's fixed

tools_generated: true is now declared in the manifest. Without it, Claude Desktop and Claude Code cache the tool schema they fetched at install time and validate every subsequent call against that snapshot — forever. When the ES Memory host ships a schema change, the client keeps rejecting calls against the stale schema until the .mcpb is reinstalled.

This flag tells the client that the manifest's tools list is representative only and the runtime tools/list endpoint is the source of truth. Schema changes on the host now propagate to the client without re-installation.

When you'd want this

If you're on v1.1.0 and have ever seen Invalid arguments for tool ... errors after the host shipped a tool change, this is the fix.

Install

  1. Download ES-Memory-Bridge.mcpb below.
  2. Drag onto Claude Desktop's Drag .MCPB or .DXT files here to install in Settings.
  3. Already on v1.1.0? Drag the new .mcpb on top — Claude Desktop will upgrade in place.

Bridge binary is unchanged from v1.1.0 — same polling, degraded mode, version handshake, and bundle ID.

v1.1.0 — polling, degraded mode, version handshake

17 Apr 03:39

Choose a tag to compare

Second release of the ES Memory Bridge. Five refinements, all additive.

What's new

  • Startup polling. If ES Memory is still launching when Claude Desktop starts the bridge, the bridge polls every 500ms for up to 5 seconds before giving up. No more races on cold-start.
  • Graceful degraded mode. If the host really isn't running, the bridge no longer exits silently. It stays alive and responds to initialize and tools/list with a stub containing an es_memory_setup tool that tells the user inside Claude: "ES Memory is not running. Launch ES Memory.app from /Applications, then ask Claude to retry." Auto-recovers on any later request once the host comes up.
  • Version handshake. Bridge logs the ES Memory app's version on connect (read from the new version key in server.plist). Groundwork for future compatibility warnings.
  • Distinct bundle ID. Bridge is now signed as com.elarity.es-memory-bridge (was sharing the host's ID). The host's container path is a compile-time constant in main.m. Cleaner story for App Store review and no risk of macOS bundle-ID-keyed subsystems tripping over duplicates.
  • Single source of truth for URL. Host now writes the full MCP endpoint URL (including /mcp) into server.plist. Bridge uses it verbatim — no URL munging, no split knowledge.

Requires

ES Memory v1.0.4 or later. The v1.1.0 bridge depends on the new server.plist contract (full URL with /mcp, version key, deleted on host terminate). Earlier host versions won't work — use v1.0.0 of the bridge if you're on an older host.

Install

  1. Download ES-Memory-Bridge.mcpb below.
  2. Open Claude Desktop → Settings.
  3. Drag the .mcpb onto Drag .MCPB or .DXT files here to install.
  4. Make sure ES Memory is running locally.

Already on v1.0.0? Drag the new .mcpb on top — Claude Desktop will upgrade in place.

v1.0.0 — Initial release

17 Apr 03:01

Choose a tag to compare

First public release of the ES Memory Bridge.

Install

  1. Download ES-Memory-Bridge.mcpb below.
  2. Open Claude Desktop → Settings.
  3. Drag the .mcpb onto Drag .MCPB or .DXT files here to install.
  4. Make sure the ES Memory app is running locally.

The bridge discovers the locally-running ES Memory HTTP server via the host's sandbox container and forwards JSON-RPC over HTTP. Loopback only — nothing leaves your machine. See README for details.

What's signed

Bridge binary inside the bundle is signed ad-hoc with hardened runtime.