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"Changed
@agentmemory/mcppackage 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/mcpFull changelog: v0.9.7...v0.9.8