mem0 (autonomous memory).com
mem0 (autonomous memory).com logo

Mem0 (Autonomous Memory)

Provides autonomous memory capabilities for storing, retrieving, and utilizing conversation information across sessions,...

Created byApr 22, 2025
Mem0 Logo

@pinkpixel/mem0-mcp MCP Server

A Model Context Protocol (MCP) server that integrates with Mem0.ai to provide persistent memory capabilities for LLMs. It allows AI agents to store and retrieve information across sessions.
This server uses the mem0ai Node.js SDK for its core functionality.

Features

Tools

  • `add_memory`: Stores a piece of text content as a memory associated with a specific userId.
  • `search_memory`: Searches stored memories based on a natural language query for a specific userId.
  • `delete_memory`: Deletes a specific memory from storage by its ID.

Prerequisites

This server supports two storage modes:
  1. Cloud Storage Mode (Recommended)
  1. Local Storage Mode

Installation & Configuration

You can run this server in two main ways:

1. Using `npx` (Recommended for quick use)

Install the package globally using npm:
Configure your MCP client (e.g., Claude Desktop, Cursor, Cline, Roo Code, etc.) to run the server using npx:

Cloud Storage Configuration (Recommended)

Note: Replace "YOUR_MEM0_API_KEY_HERE" with your actual Mem0 API key.

Local Storage Configuration (Alternative)

Note: Replace "YOUR_OPENAI_API_KEY_HERE" with your actual OpenAI API key.

2. Running from Cloned Repository

Note: This method requires you to git clone the repository first.
Clone the repository, install dependencies, and build the server:
Then, configure your MCP client to run the built script directly using node:
Important Notes:
  1. Replace /absolute/path/to/mem0-mcp/ with the actual absolute path to your cloned repository
  1. Use the build/index.js file, not the src/index.ts file
  1. The MCP server requires clean stdout for protocol communication - any libraries or code that writes to stdout may interfere with the protocol

Default User ID (Optional Fallback)

Both the add_memory and search_memory tools require a userId argument to associate memories with a specific user.
For convenience during testing or in single-user scenarios, you can optionally set the DEFAULT_USER_ID environment variable when launching the server. If this variable is set, and the userId argument is omitted when calling the search_memory tool, the server will use the value of DEFAULT_USER_ID for the search.
Note: While this fallback exists, it's generally recommended that the calling agent (LLM) explicitly provides the correct userId for both adding and searching memories to avoid ambiguity.
Example configuration using DEFAULT_USER_ID:
Or when running directly with node:

Cloud vs. Local Storage

Cloud Storage (Mem0 API)

  • Persistent by default - Your memories remain available across sessions and server restarts
  • No local database required - All data is stored on Mem0's servers
  • Higher retrieval quality - Uses Mem0's optimized search algorithms
  • Additional fields - Supports agent_id and threshold parameters
  • Requires - A Mem0 API key

Local Storage (OpenAI API)

  • In-memory by default - Data is stored only in RAM and is not persistent long-term. While some caching may occur, you should not rely on this for permanent storage.
  • Data loss risk - Memory data will be lost on server restart, system reboot, or if the process is terminated
  • Recommended for - Development, testing, or temporary use only
  • For persistent storage - Use the Cloud Storage option with Mem0 API if you need reliable long-term memory
  • Uses OpenAI embeddings - For vector search functionality
  • Self-contained - All data stays on your machine
  • Requires - An OpenAI API key

Development

Clone the repository and install dependencies:
Build the server:
For development with auto-rebuild on file changes:

Debugging

Since MCP servers communicate over stdio, debugging can be challenging. Here are some approaches:
  1. Use the MCP Inspector: This tool can monitor the MCP protocol communication:
  1. Console Logging: When adding console logs, always use console.error() instead of console.log() to avoid interfering with the MCP protocol
  1. Environment Files: Use a .env file for local development to simplify setting API keys and other configuration options

Technical Implementation Notes

Advanced Mem0 API Parameters

When using the Cloud Storage mode with the Mem0 API, you can leverage additional parameters for more sophisticated memory management. While not explicitly exposed in the tool schema, these can be included in the metadata object when adding memories:

Advanced Parameters for `add_memory`:

[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
To use these parameters with the MCP server, include them in your metadata object when calling the add_memory tool. For example:

Advanced Parameters for `search_memory`:

The Mem0 v2 search API offers powerful filtering capabilities that can be utilized through the filters parameter:
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
The filters parameter supports complex logical operations (AND, OR) and various comparison operators:
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
Example of using complex filters with the search_memory tool:
This would search for memories related to Alice's hobbies where the user_id is "alice" AND the agent_id is either "travel-agent" OR "sports-agent", returning at most 5 results with a similarity score of at least 0.5.
For more detailed information on these parameters, refer to the Mem0 API documentation.

SafeLogger

The MCP server implements a SafeLogger class that selectively redirects console.log calls from the mem0ai library to stderr without disrupting MCP protocol:
  • Intercepts console.log calls and examines stack traces to determine source
  • Only redirects log calls from mem0ai library or our own code
  • Preserves clean stdout for MCP protocol communication
  • Automatically cleans up resources on process exit
This allows proper functioning within MCP clients while maintaining useful debug information.

Environment Variables

The server recognizes several environment variables that control its behavior:
  • MEM0_API_KEY: API key for cloud storage mode
  • OPENAI_API_KEY: API key for local storage mode (embeddings)
  • DEFAULT_USER_ID: Default user ID for memory operations

Made with by Pink Pixel
Mem0 Logo

@pinkpixel/mem0-mcp MCP Server

A Model Context Protocol (MCP) server that integrates with Mem0.ai to provide persistent memory capabilities for LLMs. It allows AI agents to store and retrieve information across sessions.
This server uses the mem0ai Node.js SDK for its core functionality.

Features

Tools

  • `add_memory`: Stores a piece of text content as a memory associated with a specific userId.
  • `search_memory`: Searches stored memories based on a natural language query for a specific userId.
  • `delete_memory`: Deletes a specific memory from storage by its ID.

Prerequisites

This server supports two storage modes:
  1. Cloud Storage Mode (Recommended)
  1. Local Storage Mode

Installation & Configuration

You can run this server in two main ways:

1. Using `npx` (Recommended for quick use)

Install the package globally using npm:
Configure your MCP client (e.g., Claude Desktop, Cursor, Cline, Roo Code, etc.) to run the server using npx:

Cloud Storage Configuration (Recommended)

Note: Replace "YOUR_MEM0_API_KEY_HERE" with your actual Mem0 API key.

Local Storage Configuration (Alternative)

Note: Replace "YOUR_OPENAI_API_KEY_HERE" with your actual OpenAI API key.

2. Running from Cloned Repository

Note: This method requires you to git clone the repository first.
Clone the repository, install dependencies, and build the server:
Then, configure your MCP client to run the built script directly using node:
Important Notes:
  1. Replace /absolute/path/to/mem0-mcp/ with the actual absolute path to your cloned repository
  1. Use the build/index.js file, not the src/index.ts file
  1. The MCP server requires clean stdout for protocol communication - any libraries or code that writes to stdout may interfere with the protocol

Default User ID (Optional Fallback)

Both the add_memory and search_memory tools require a userId argument to associate memories with a specific user.
For convenience during testing or in single-user scenarios, you can optionally set the DEFAULT_USER_ID environment variable when launching the server. If this variable is set, and the userId argument is omitted when calling the search_memory tool, the server will use the value of DEFAULT_USER_ID for the search.
Note: While this fallback exists, it's generally recommended that the calling agent (LLM) explicitly provides the correct userId for both adding and searching memories to avoid ambiguity.
Example configuration using DEFAULT_USER_ID:
Or when running directly with node:

Cloud vs. Local Storage

Cloud Storage (Mem0 API)

  • Persistent by default - Your memories remain available across sessions and server restarts
  • No local database required - All data is stored on Mem0's servers
  • Higher retrieval quality - Uses Mem0's optimized search algorithms
  • Additional fields - Supports agent_id and threshold parameters
  • Requires - A Mem0 API key

Local Storage (OpenAI API)

  • In-memory by default - Data is stored only in RAM and is not persistent long-term. While some caching may occur, you should not rely on this for permanent storage.
  • Data loss risk - Memory data will be lost on server restart, system reboot, or if the process is terminated
  • Recommended for - Development, testing, or temporary use only
  • For persistent storage - Use the Cloud Storage option with Mem0 API if you need reliable long-term memory
  • Uses OpenAI embeddings - For vector search functionality
  • Self-contained - All data stays on your machine
  • Requires - An OpenAI API key

Development

Clone the repository and install dependencies:
Build the server:
For development with auto-rebuild on file changes:

Debugging

Since MCP servers communicate over stdio, debugging can be challenging. Here are some approaches:
  1. Use the MCP Inspector: This tool can monitor the MCP protocol communication:
  1. Console Logging: When adding console logs, always use console.error() instead of console.log() to avoid interfering with the MCP protocol
  1. Environment Files: Use a .env file for local development to simplify setting API keys and other configuration options

Technical Implementation Notes

Advanced Mem0 API Parameters

When using the Cloud Storage mode with the Mem0 API, you can leverage additional parameters for more sophisticated memory management. While not explicitly exposed in the tool schema, these can be included in the metadata object when adding memories:

Advanced Parameters for `add_memory`:

[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
To use these parameters with the MCP server, include them in your metadata object when calling the add_memory tool. For example:

Advanced Parameters for `search_memory`:

The Mem0 v2 search API offers powerful filtering capabilities that can be utilized through the filters parameter:
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
The filters parameter supports complex logical operations (AND, OR) and various comparison operators:
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
Example of using complex filters with the search_memory tool:
This would search for memories related to Alice's hobbies where the user_id is "alice" AND the agent_id is either "travel-agent" OR "sports-agent", returning at most 5 results with a similarity score of at least 0.5.
For more detailed information on these parameters, refer to the Mem0 API documentation.

SafeLogger

The MCP server implements a SafeLogger class that selectively redirects console.log calls from the mem0ai library to stderr without disrupting MCP protocol:
  • Intercepts console.log calls and examines stack traces to determine source
  • Only redirects log calls from mem0ai library or our own code
  • Preserves clean stdout for MCP protocol communication
  • Automatically cleans up resources on process exit
This allows proper functioning within MCP clients while maintaining useful debug information.

Environment Variables

The server recognizes several environment variables that control its behavior:
  • MEM0_API_KEY: API key for cloud storage mode
  • OPENAI_API_KEY: API key for local storage mode (embeddings)
  • DEFAULT_USER_ID: Default user ID for memory operations

Made with by Pink Pixel