mcp-memory
by bobmatnyc
README.md
# MCP Memory Service
A standalone memory service that provides persistent storage for AI assistants via the Model Context Protocol (MCP).
## Features
- **3-Tier Memory System**: SYSTEM, LEARNED, and MEMORY layers for hierarchical knowledge organization
- **Entity Management**: Track people, organizations, projects, and other entities with relationships
- **Interaction History**: Store and retrieve conversation history with context
- **Vector Search Ready**: Prepared for semantic similarity search (future enhancement)
- **MCP Protocol**: JSON-RPC 2.0 over stdio for Claude Desktop integration
- **REST API**: Alternative HTTP interface for web applications
## Architecture
```
mcp-memory/
├── src/
│ ├── core/ # Core memory logic
│ ├── models/ # Data models
│ ├── mcp/ # MCP server implementation
│ └── api/ # REST API (optional)
├── tests/ # Test suite
├── config/ # Configuration files
└── scripts/ # Utility scripts
```
## Installation
```bash
# Clone the repository
git clone https://github.com/yourusername/mcp-memory.git
cd mcp-memory
# Create virtual environment
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
# Install dependencies
pip install -r requirements.txt
# Set up environment variables
cp .env.example .env
# Edit .env with your Turso database credentials
```
## Configuration
### Environment Variables
```bash
# Required
TURSO_URL=libsql://your-database.turso.io
TURSO_AUTH_TOKEN=your-auth-token
# Optional
MCP_DEBUG=0 # Enable debug logging (0 or 1)
LOG_LEVEL=INFO # Logging level
```
### Claude Desktop Integration
Add to your Claude Desktop config (`~/Library/Application Support/Claude/claude_desktop_config.json`):
```json
{
"mcpServers": {
"memory": {
"command": "python",
"args": ["/path/to/mcp-memory/src/mcp_server.py"],
"env": {
"TURSO_URL": "your-database-url",
"TURSO_AUTH_TOKEN": "your-auth-token"
}
}
}
}
```
## Usage
### MCP Server (for Claude Desktop)
```bash
# Start the MCP server
python src/mcp_server.py
# Or with debug logging
MCP_DEBUG=1 python src/mcp_server.py
```
### Python Client
```python
from mcp_memory import MemoryClient
# Initialize client
client = MemoryClient()
# Add a memory
await client.add_memory(
title="Meeting with John",
content="Discussed project timeline and deliverables",
memory_type="professional",
tags=["meeting", "project-x"]
)
# Search memories
results = await client.search_memories(
query="project timeline",
limit=5
)
# Create an entity
entity = await client.create_entity(
name="John Doe",
entity_type="person",
company="Acme Corp",
title="Project Manager"
)
```
### MCP Tools Available
- **memory_add**: Add new memory to database
- **memory_search**: Search memories by query
- **memory_delete**: Delete memory by ID
- **entity_create**: Create new entity
- **entity_search**: Search entities by query
- **entity_update**: Update entity fields
- **unified_search**: Search across all data types
- **get_statistics**: Get database statistics
- **get_recent_interactions**: Get recent interactions
## Development
### Running Tests
```bash
# Run all tests
pytest
# Run with coverage
pytest --cov=src tests/
# Run specific test file
pytest tests/test_memory_core.py
```
### Code Quality
```bash
# Format code
black src/ tests/
# Lint
ruff check src/ tests/
# Type checking
mypy src/
```
## Database Schema
### Entities Table
- Stores people, organizations, projects, and other entities
- Supports hierarchical relationships
- Includes contact info and metadata
### Memories Table
- Three-tier system (SYSTEM, LEARNED, MEMORY)
- Full-text search capable
- Importance scoring and tagging
### Interactions Table
- Conversation history
- User prompts and assistant responses
- Feedback and sentiment tracking
### Learned Patterns Table
- Pattern recognition from user feedback
- Response style adaptation
- Usage statistics
## Roadmap
- [ ] Vector embeddings for semantic search
- [ ] Remote MCP server support
- [ ] Web dashboard for memory management
- [ ] Export/import functionality
- [ ] Multi-user support with access control
- [ ] Memory compression and archiving
- [ ] Integration with popular AI platforms
## License
MIT License - See LICENSE file for details
## Contributing
Contributions are welcome! Please read CONTRIBUTING.md for guidelines.
## Support
For issues and questions:
- Open an issue on GitHub
- Contact: your-email@example.comThis server cannot be deployed
Maintenance
ActivityInactive
ResponsivenessNo issues