Skip to main content
Glama

MCPMem

by designly1
README.md7.78 kB
# MCPMem ![NPM Version](https://img.shields.io/npm/v/mcpmem) ![Static Badge](https://img.shields.io/badge/build-passing-brightgreen) ![NPM License](https://img.shields.io/npm/l/mcpmem) ![TypeScript](https://img.shields.io/badge/TypeScript-007ACC?logo=typescript&logoColor=white) ![Node.js](https://img.shields.io/badge/Node.js-339933?logo=nodedotjs&logoColor=white) ![OpenAI](https://img.shields.io/badge/OpenAI-412991?logo=openai&logoColor=white) A robust Model Context Protocol (MCP) tool for storing and searching memories with semantic search capabilities using SQLite and embeddings. ## Author Jay Simons - https://yaa.bz ## Features - 🧠 **Memory Storage**: Store text-based memories with metadata - 🔍 **Semantic Search**: Find memories by meaning, not just keywords - ⚡ **Vector Embeddings**: Uses OpenAI's embedding models for semantic understanding - 🗄️ **SQLite Backend**: Lightweight, local database with vector search capabilities - 🔧 **MCP Compatible**: Works with any MCP-compatible AI assistant - 💻 **CLI Tools**: Full command-line interface for memory management - 📦 **Easy Installation**: Install via npm and start using immediately - ⚙️ **Flexible Config**: Use config files or environment variables ## Installation ### Global Installation (Recommended) ```bash npm install -g mcpmem@latest ``` ## Quick Start ### Option 1: Using Environment Variables (Simplest) ```bash # Set your API key export OPENAI_API_KEY=sk-your-openai-api-key-here # Optional: Customize model and database path export OPENAI_MODEL=text-embedding-3-small export MCPMEM_DB_PATH=/path/to/memories.db # Test the configuration mcpmem test # Start using the CLI or MCP server mcpmem stats ``` ### Option 2: Using Configuration File 1. **Initialize configuration**: ```bash mcpmem init ``` This creates `mcpmem.config.json` and updates `.gitignore`. 2. **Edit the configuration file** and add your OpenAI API key: ```json { "embedding": { "provider": "openai", "apiKey": "your-openai-api-key-here", "model": "text-embedding-3-small" }, "database": { "path": "./mcpmem.db" } } ``` 3. **Test the configuration**: ```bash mcpmem test ``` ## CLI Usage MCPMem provides a comprehensive command-line interface for managing memories: ### 📝 Storing Memories ```bash # Store a simple memory mcpmem store "Remember to review the quarterly reports" # Store memory with metadata mcpmem store "API endpoint returns 500 errors" -m '{"project":"web-app","severity":"high"}' ``` ### 🔍 Searching Memories ```bash # Semantic search mcpmem search "database issues" # Custom limits and thresholds mcpmem search "bugs" --limit 5 --threshold 0.8 ``` ### 📋 Listing Memories ```bash # Show recent memories mcpmem list # Show more memories mcpmem list --limit 50 ``` ### 🔍 Getting Specific Memory ```bash # Get memory details by ID mcpmem get abc123-def456-789 ``` ### 🗑️ Deleting Memories ```bash # Delete with confirmation mcpmem delete abc123-def456-789 # Force delete (no confirmation) mcpmem delete abc123-def456-789 --force # Clear all memories (with confirmation) mcpmem clear # Force clear all memories (no confirmation) mcpmem clear --force ``` ### 📊 Database Info ```bash # Show database statistics mcpmem stats # Show database file location and details mcpmem ls_db ``` ### 📚 Help ```bash # Show all available commands mcpmem --help # Show detailed examples and usage mcpmem help-commands # Get help for a specific command mcpmem search --help ``` ## MCP Server Usage ### Using with Cursor/Claude Desktop Add to your MCP configuration file: #### With Environment Variables (Recommended) ```json { "mcpServers": { "mcpmem": { "command": "mcpmem", "env": { "OPENAI_API_KEY": "your-openai-api-key-here", "OPENAI_MODEL": "text-embedding-3-small", "MCPMEM_DB_PATH": "/path/to/memories.db" } } } } ``` ### Available MCP Tools When running as an MCP server, the following tools are available: - **`store_memory`**: Store a new memory with optional metadata - **`search_memories`**: Search memories using semantic similarity - **`get_memory`**: Retrieve a specific memory by ID - **`get_all_memories`**: Get all memories (most recent first) - **`update_memory`**: Update an existing memory - **`delete_memory`**: Delete a memory by ID - **`get_memory_stats`**: Get statistics about the memory database - **`get_version`**: Get the version of mcpmem - **`ls_db`**: Show database file location and details - **`clear_all_memories`**: Delete all memories from the database ## Examples ### CLI Examples ```bash # Store project-related memories mcpmem store "Fixed the authentication bug in user login" -m '{"project":"web-app","type":"bug-fix"}' mcpmem store "Meeting notes: Discussed Q4 roadmap priorities" -m '{"type":"meeting","quarter":"Q4"}' # Search for memories mcpmem search "authentication issues" mcpmem search "meeting" --limit 3 # Manage memories mcpmem list --limit 10 mcpmem get memory-id-here mcpmem delete old-memory-id --force mcpmem clear --force ``` ### MCP Usage Examples When connected to an MCP-compatible assistant: ``` Assistant: I'll help you store that memory about the bug fix. *Uses store_memory tool* - Content: "Fixed authentication timeout issue in production" - Metadata: {"severity": "high", "environment": "production"} Memory stored successfully with ID: abc123-def456 ``` ``` Assistant: Let me search for previous issues related to authentication. *Uses search_memories tool with query "authentication problems"* Found 3 related memories: 1. Fixed authentication timeout issue (similarity: 85%) 2. Updated auth middleware configuration (similarity: 78%) 3. Resolved login redirect bug (similarity: 72%) ``` ## Development ### Building ```bash # Install dependencies pnpm install # Build the project pnpm build # Type checking pnpm tc ``` ### Testing ```bash # Run tests pnpm test # Test configuration mcpmem test ``` ## Database MCPMem uses SQLite with the `sqlite-vec` extension for vector similarity search. The database schema includes: - **memories**: Stores memory content, metadata, and timestamps - **embeddings**: Stores vector embeddings for semantic search The database file is created automatically and includes proper indexing for fast retrieval. ## Supported Embedding Models Currently supports OpenAI embedding models: - `text-embedding-3-small` (1536 dimensions, default) - `text-embedding-3-large` (3072 dimensions) - `text-embedding-ada-002` (1536 dimensions, legacy) ## Troubleshooting ### Common Issues 1. **"OPENAI_API_KEY environment variable is required"** - Set the environment variable: `export OPENAI_API_KEY=sk-...` - Or add it to your `mcpmem.config.json` file 2. **"Could not determine executable to run"** (with npx) - The package might not be published yet - Use local installation instead: `npm install -g /path/to/mcpmem` 3. **Database permission errors** - Ensure the directory for the database path exists and is writable - MCPMem automatically creates parent directories 4. **Vector search not working** - Ensure you have a valid OpenAI API key - Check that embeddings are being generated: `mcpmem stats` ### Debug Commands ```bash # Check configuration and connectivity mcpmem test # View database statistics mcpmem stats # List recent memories to verify storage mcpmem list --limit 5 ``` ## License MIT ## Contributing 1. Fork the repository 2. Create a feature branch 3. Make your changes 4. Add tests if applicable 5. Submit a pull request --- For more information and updates, visit the [GitHub repository](https://github.com/designly1/mcpmem).

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/designly1/mcpmem'

If you have feedback or need assistance with the MCP directory API, please join our Discord server