Summary
agentmemory mcp --tools all (and AGENTMEMORY_TOOLS=all env var) silently returns only 7 tools instead of 51. The issue is in src/mcp/standalone.ts — even though getVisibleTools() correctly returns all 51 when mode is "all", the result is filtered through a hardcoded IMPLEMENTED_TOOLS set of 7 tool names.
Root cause
src/mcp/standalone.ts:
const IMPLEMENTED_TOOLS = new Set([
"memory_save", "memory_recall", "memory_smart_search",
"memory_sessions", "memory_export", "memory_audit",
"memory_governance_delete",
]);
tools/list returns: getVisibleTools().filter((t) => IMPLEMENTED_TOOLS.has(t.name))
Even with --tools all, getVisibleTools() returns all 51, then the filter reduces it to 7.
Impact
Every non-Claude-Code user (OpenCode, Cursor, Gemini CLI, Cline, etc.) is affected. Users get 7 tools and have no path to the remaining 44 (actions, graphs, signals, sentinels, slots, lessons, etc.) without writing a custom HTTP→stdio bridge.
Proposed fix
When in proxy mode (detected server via AGENTMEMORY_URL), delegate tools/list to the server: GET <base>/agentmemory/mcp/tools and return its response directly, bypassing the local filter. The server already has all 51 tools registered.
Environment
- agentmemory: v0.9.4 (Docker, iii-engine 0.11.6)
- Client: OpenCode (stdio MCP)
- Workaround: custom 22-line Node.js bridge proxying stdio → HTTP on Docker worker
Summary
agentmemory mcp --tools all(andAGENTMEMORY_TOOLS=allenv var) silently returns only 7 tools instead of 51. The issue is insrc/mcp/standalone.ts— even thoughgetVisibleTools()correctly returns all 51 when mode is "all", the result is filtered through a hardcodedIMPLEMENTED_TOOLSset of 7 tool names.Root cause
src/mcp/standalone.ts:tools/listreturns:getVisibleTools().filter((t) => IMPLEMENTED_TOOLS.has(t.name))Even with
--tools all,getVisibleTools()returns all 51, then the filter reduces it to 7.Impact
Every non-Claude-Code user (OpenCode, Cursor, Gemini CLI, Cline, etc.) is affected. Users get 7 tools and have no path to the remaining 44 (actions, graphs, signals, sentinels, slots, lessons, etc.) without writing a custom HTTP→stdio bridge.
Proposed fix
When in proxy mode (detected server via
AGENTMEMORY_URL), delegatetools/listto the server:GET <base>/agentmemory/mcp/toolsand return its response directly, bypassing the local filter. The server already has all 51 tools registered.Environment