Releases: apocryphx/ES-Memory-Bridge
v1.2.0 — zero file IO, fixed port 59123
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 49b8210 — mcpServer.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
- Download
ES-Memory-Bridge.mcpbbelow. - Drag onto Claude Desktop's Drag .MCPB or .DXT files here to install in Settings.
- Already on an earlier version? Drag the new
.mcpbon top — Claude Desktop upgrades in place. - Launch ES Memory.app from /Applications.
v1.1.1 — schema cache fix (tools_generated)
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
- Download
ES-Memory-Bridge.mcpbbelow. - Drag onto Claude Desktop's Drag .MCPB or .DXT files here to install in Settings.
- Already on v1.1.0? Drag the new
.mcpbon 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
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
initializeandtools/listwith a stub containing anes_memory_setuptool 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
versionkey inserver.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) intoserver.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
- Download
ES-Memory-Bridge.mcpbbelow. - Open Claude Desktop → Settings.
- Drag the
.mcpbonto Drag .MCPB or .DXT files here to install. - 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
First public release of the ES Memory Bridge.
Install
- Download
ES-Memory-Bridge.mcpbbelow. - Open Claude Desktop → Settings.
- Drag the
.mcpbonto Drag .MCPB or .DXT files here to install. - 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.