Skip to content

Clean up inert limit / user_identifier params on MCP tools + integration wrappers #170

Description

@Andy2003

Surfaced during #169 (generic backend-typed MemoryClient) and deferred from it as out of scope: several MCP tools and framework-integration wrappers still expose parameters that are no-ops on both backends. This is pre-existing — #169 did not change the runtime behavior or these public signatures — but the params (and their docstrings) mislead callers.

Affected sites

  • src/neo4j_agent_memory/mcp/_tools.py
    • memory_set_entity_feedback(..., user_identifier=...) — ignored
    • memory_get_entity_history(..., limit=...) — not applied
    • memory_get_reflections(..., limit=...) — not applied
  • src/neo4j_agent_memory/integrations/pydantic_ai/memory.py
    • set_entity_feedback(..., user_identifier=...) — ignored
    • get_entity_history(..., limit=...) — not applied
  • src/neo4j_agent_memory/integrations/strands/tools.py
    • set_entity_feedback(..., user_id=...) — ignored

Why they're inert

On the bolt backend get_entity_history / get_reflections / set_entity_feedback raise NotSupportedError (Platinum/NAMS-only). On NAMS, the feedback endpoint reads only user_score/confirmed (ignores user_identifier/user_id), and history/reflections don't slice by limit. So neither backend honors these args, and the base Protocol correctly omits them (as of #169). The wrapper/tool surfaces were never updated.

Options

  1. Remove the inert params from the tool/wrapper signatures and drop the overclaiming docstring lines ("scopes to a user identity", "capped at limit"). Simplest; honest surface.
  2. Honor them locally where cheap: apply limit by slicing the returned list in the wrapper; and/or wire per-user scoping if/when a backend supports it (feature work).

Refs: #169 (resolved review threads), tracking issue #144.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions