github rohitg00/agentmemory v0.9.8
v0.9.8 — local fallback tools/list returns 7 not 4

3 hours ago

Single-line follow-up to v0.9.7's MCP shim work. v0.9.7 surfaced probe failures, added an AGENTMEMORY_FORCE_PROXY=1 escape hatch, and shipped AGENTMEMORY_DEBUG=1 — but the local-mode tools/list branch was still returning only 4 tools when an agentmemory server was unreachable, not the documented 7-tool IMPLEMENTED_TOOLS set the shim's InMemoryKV actually backs.

Fixed

@agentmemory/mcp local-mode tools/list now exposes all 7 IMPLEMENTED_TOOLS

The local-fallback branch in src/mcp/standalone.ts filtered getVisibleTools() through IMPLEMENTED_TOOLS, but getVisibleTools() honors the shim process's own AGENTMEMORY_TOOLS env var:

unset / "core" → 8 ESSENTIAL_TOOLS
"all"          → 51 tools

The intersection of ESSENTIAL_TOOLS (8) and IMPLEMENTED_TOOLS (7) is exactly 4 tools:

memory_save, memory_recall, memory_smart_search, memory_sessions

Those four were the only ones MCP clients saw when no agentmemory server was reachable — even though the shim's InMemoryKV implements all seven (the four above plus memory_export, memory_audit, memory_governance_delete).

The filter source was wrong: the shim dispatches by IMPLEMENTED_TOOLS, not by ESSENTIAL_TOOLS, so a server-tier env var should never have shaped the shim's local-fallback list. Switched to:

const fallback = getAllTools().filter((t) => IMPLEMENTED_TOOLS.has(t.name));

IMPLEMENTED_TOOLS.has(t.name) still picks the right 7 names — but now from the unfiltered universe regardless of AGENTMEMORY_TOOLS.

Refactor for testability

The tools/list handler was inline inside the createStdioTransport callback. Extracted into an exported handleToolsList() so it's directly testable. Added a regression test asserting the local-fallback path returns exactly the 7 names under both AGENTMEMORY_TOOLS=core and unset.

Verified live via stdio

$ {
    printf '%s\n' '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{...}}'
    printf '%s\n' '{"jsonrpc":"2.0","method":"notifications/initialized","params":{}}'
    printf '%s\n' '{"jsonrpc":"2.0","id":2,"method":"tools/list","params":{}}'
    sleep 1
  } | node dist/standalone.mjs 2>/dev/null \
    | grep -o '"name":"memory_[^"]*"' | sort -u
"name":"memory_audit"
"name":"memory_export"
"name":"memory_governance_delete"
"name":"memory_recall"
"name":"memory_save"
"name":"memory_sessions"
"name":"memory_smart_search"

(#283, closes #234)

Changed

  • @agentmemory/mcp package version bumped 0.9.7 → 0.9.8 to lockstep with the main package.

Install / upgrade

npm i -g @agentmemory/agentmemory@0.9.8
# or
npx @agentmemory/agentmemory

# MCP standalone shim
npx -y @agentmemory/mcp

Full changelog: v0.9.7...v0.9.8

Don't miss a new agentmemory release

NewReleases is sending notifications on new releases.