get_memories
Browse and filter stored coding preferences by user, agent, date, or other criteria using structured queries with pagination support.
Instructions
Page through memories using filters instead of search.
Use filters to list specific memories. Common filter patterns:
- Single user: {"AND": [{"user_id": "john"}]}
- Agent memories: {"AND": [{"agent_id": "agent_name"}]}
- Recent memories: {"AND": [{"user_id": "john"}, {"created_at": {"gte": "2024-01-01"}}]}
- Multiple users: {"AND": [{"user_id": {"in": ["john", "jane"]}}]}
Pagination: Use page (1-indexed) and page_size for browsing results.
user_id is automatically added to filters if not provided.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| filters | No | Structured filters; user_id injected automatically. | |
| page | No | 1-indexed page number when paginating. | |
| page_size | No | Number of memories per page (default 10). | |
| enable_graph | No | Set true only if the caller explicitly wants graph-derived memories. |
Implementation Reference
- src/mem0_mcp_server/server.py:305-339 (handler)The handler function that implements the core logic of the get_memories tool by preparing arguments, injecting default filters, and calling the Mem0 client's get_all method.def get_memories( filters: Annotated[ Optional[Dict[str, Any]], Field(default=None, description="Structured filters; user_id injected automatically."), ] = None, page: Annotated[ Optional[int], Field(default=None, description="1-indexed page number when paginating.") ] = None, page_size: Annotated[ Optional[int], Field(default=None, description="Number of memories per page (default 10).") ] = None, enable_graph: Annotated[ Optional[bool], Field( default=None, description="Set true only if the caller explicitly wants graph-derived memories.", ), ] = None, ctx: Context | None = None, ) -> str: """List memories via structured filters or pagination.""" api_key, default_user, graph_default = _resolve_settings(ctx) args = GetMemoriesArgs( filters=filters, page=page, page_size=page_size, enable_graph=_default_enable_graph(enable_graph, graph_default), ) payload = args.model_dump(exclude_none=True) payload["filters"] = _with_default_filters(default_user, payload.get("filters")) payload.setdefault("enable_graph", graph_default) client = _mem0_client(api_key) return _mem0_call(client.get_all, **payload)
- src/mem0_mcp_server/schemas.py:61-70 (schema)Pydantic BaseModel defining the input schema (arguments) for the get_memories tool, including filters, pagination, and graph options.class GetMemoriesArgs(BaseModel): filters: Optional[Dict[str, Any]] = Field( None, description="Structured filters; user_id injected automatically." ) page: Optional[int] = Field(None, description="1-indexed page number.") page_size: Optional[int] = Field(None, description="Number of memories per page.") enable_graph: Optional[bool] = Field( None, description="Set True only when the user wants graph knowledge." )
- src/mem0_mcp_server/server.py:292-304 (registration)The @server.tool decorator that registers the get_memories function as an MCP tool, including its description.@server.tool( description="""Page through memories using filters instead of search. Use filters to list specific memories. Common filter patterns: - Single user: {"AND": [{"user_id": "john"}]} - Agent memories: {"AND": [{"agent_id": "agent_name"}]} - Recent memories: {"AND": [{"user_id": "john"}, {"created_at": {"gte": "2024-01-01"}}]} - Multiple users: {"AND": [{"user_id": {"in": ["john", "jane"]}}]} Pagination: Use page (1-indexed) and page_size for browsing results. user_id is automatically added to filters if not provided. """ )