get_memories
Retrieve stored memories using structured filters for specific users, agents, or time periods, with pagination support for browsing results.
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 for the 'get_memories' tool. It prepares the payload using GetMemoriesArgs, injects default user filters, and calls 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-69 (schema)Pydantic model defining the input schema 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 registers the get_memories function as an MCP tool with 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. """ )