Skip to content

MCP shim: --tools all returns only 7 tools due to IMPLEMENTED_TOOLS hardcode #234

@cl0ckt0wer

Description

@cl0ckt0wer

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions