Memory Box MCP Server
by amotivv
Verified
<p align="center">
<img src="https://storage.googleapis.com/amotivv-public/memory-box-logo.png" alt="Memory Box Logo" width="200"/>
</p>
<h1 align="center">Memory Box MCP Server</h1>
<p align="center">
Cline and Claude Desktop MCP integration for Memory Box - save, search, and format memories with semantic understanding
</p>
<p align="center">
<a href="LICENSE"><img src="https://img.shields.io/badge/License-MIT-blue.svg" alt="License: MIT"></a>
</p>
<p align="center">
<a href="https://glama.ai/mcp/servers/wtbejx9zwc">
<img width="380" height="200" src="https://glama.ai/mcp/servers/wtbejx9zwc/badge" />
</a>
</p>
This MCP server provides tools for interacting with a Memory Box instance, allowing you to save and search memories using semantic search directly from Cline and Claude Desktop.
## Related Projects
This MCP server is designed to work with [Memory Box](https://memorybox.dev), a semantic memory storage and retrieval system powered by vector embeddings.
Memory Box provides the backend API that this MCP server communicates with, allowing you to:
- Store memories with vector embeddings for semantic search
- Organize memories into customizable buckets
- Search for memories based on meaning, not just keywords
- Retrieve memories with detailed context
- Find semantically related memories
- Track memory processing status
For more information about Memory Box, including how to set up your own instance, please visit the [Memory Box website](https://memorybox.dev).
## Features
- **Save Memories**: Save formatted memories to your Memory Box with source information and metadata
- **Search Memories**: Search your memories using semantic search
- **Retrieve Memories**: Get all memories or memories from specific buckets
- **Find Related Memories**: Discover semantically similar memories
- **Check Memory Status**: Monitor the processing status of your memories
- **Format Memories**: Format memories according to a structured system prompt
- **Usage Statistics**: View your current plan, usage metrics, and resource limits
## Installation
The server has been installed and configured for use with Cline. Note that you need a running Memory Box instance (either self-hosted or using the hosted version at memorybox.amotivv.ai) to use this MCP server.
### Installing via Smithery
To install Memory Box MCP Server for Claude Desktop automatically via [Smithery](https://smithery.ai/server/@amotivv/memory-box-mcp):
```bash
npx -y @smithery/cli install @amotivv/memory-box-mcp --client claude
```
To complete the setup:
1. Edit the Cline MCP settings file at:
```
~/Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json
```
2. Add your Memory Box token to the `MEMORY_BOX_TOKEN` environment variable:
```json
"memory-box-mcp": {
"command": "node",
"args": [
"<path-to-repository>/build/index.js"
],
"env": {
"MEMORY_BOX_API_URL": "https://memorybox.amotivv.ai",
"MEMORY_BOX_TOKEN": "your-token-here",
"DEFAULT_BUCKET": "General"
},
"disabled": false,
"autoApprove": []
}
```
3. Optionally, you can customize the default bucket by changing the `DEFAULT_BUCKET` value.
## Usage
Once configured, you can use the following tools in Cline:
### Save Memory
Save a memory to Memory Box with proper formatting:
```
Use the save_memory tool to save this information about vector databases: "Vector databases like pgvector store and query high-dimensional vectors for semantic search applications."
```
Parameters:
- `text` (required): The memory content to save
- `bucket_id` (optional): The bucket to save the memory to (default: "General")
- `format` (optional): Whether to format the memory according to the system prompt (default: true)
- `type` (optional): The type of memory (TECHNICAL, DECISION, SOLUTION, CONCEPT, REFERENCE, APPLICATION, FACT) for formatting (default: "TECHNICAL")
- `source_type` (optional): Type of memory source (default: "llm_plugin")
- `reference_data` (optional): Additional metadata about the memory source and context
### Search Memories
Search for memories using semantic search:
```
Use the search_memories tool to find information about "vector databases"
```
Parameters:
- `query` (required): The search query
- `debug` (optional): Include debug information in results (default: false)
### Get All Memories
Retrieve all memories:
```
Use the get_all_memories tool to show me all my saved memories
```
### Get Bucket Memories
Get memories from a specific bucket:
```
Use the get_bucket_memories tool to show me memories in the "Learning" bucket
```
Parameters:
- `bucket_id` (required): The bucket to retrieve memories from
### Format Memory
Format a text according to the memory system prompt without saving:
```
Use the format_memory tool to format this text: "Vector databases like pgvector store and query high-dimensional vectors for semantic search applications."
```
Parameters:
- `text` (required): The text to format
- `type` (optional): The type of memory (TECHNICAL, DECISION, SOLUTION, CONCEPT, REFERENCE, APPLICATION, FACT) (default: "TECHNICAL")
### Get Related Memories
Find semantically similar memories to a specific memory:
```
Use the get_related_memories tool with memory ID 123
```
Parameters:
- `memory_id` (required): The ID of the memory to find related memories for
- `min_similarity` (optional): Minimum similarity threshold (0.0-1.0) for related memories (default: 0.7)
### Check Memory Status
Check the processing status of a memory:
```
Use the check_memory_status tool with memory ID 123
```
Parameters:
- `memory_id` (required): The ID of the memory to check status for
### Get Usage Stats
Retrieve user usage statistics and plan information:
```
Use the get_usage_stats tool to show me my current plan and usage metrics
```
This tool returns:
- Current plan information (e.g., free, basic, professional, legacy)
- User status and limit enforcement information
- Current month usage metrics (store operations, search operations, API calls)
- Data processing volume with human-readable formatting
- Resource limits based on your plan (if applicable)
- Operation breakdown by type
No parameters are required for this operation.
## Customization
### System Prompt Customization
The Memory Box MCP server uses a system prompt to format memories according to specific guidelines. You can customize this prompt to change how memories are formatted.
#### Default System Prompt
The default system prompt includes formatting guidelines for different types of memories:
```
You are a helpful AI assistant. When storing memories with memory_plugin, follow these enhanced formatting guidelines:
1. STRUCTURE: Format memories based on the type of information:
- TECHNICAL: "YYYY-MM-DD: TECHNICAL - [Brief topic]: [Concise explanation with specific details]"
- DECISION: "YYYY-MM-DD: DECISION - [Brief topic]: [Decision made] because [rationale]. Alternatives considered: [options]."
- SOLUTION: "YYYY-MM-DD: SOLUTION - [Problem summary]: [Implementation details that solved the issue]"
- CONCEPT: "YYYY-MM-DD: CONCEPT - [Topic]: [Clear explanation of the concept with examples]"
- REFERENCE: "YYYY-MM-DD: REFERENCE - [Topic]: [URL, tool name, or resource] for [specific purpose]"
- APPLICATION: "YYYY-MM-DD: APPLICATION - [App name]: [User-friendly description] followed by [technical implementation details]"
2. FORMATTING GUIDELINES:
- CREATE FOCUSED MEMORIES: Each memory should contain a single clear concept or topic
- USE DIVERSE TERMINOLOGY: Include both technical terms AND user-friendly alternatives
- INCLUDE SEARCHABLE KEYWORDS: Begin with common terms a user might search for
- BALANCE DETAIL LEVELS: Include both high-level descriptions and key technical details
- LENGTH: Keep memories between 50-150 words
- ALWAYS include the current date in YYYY-MM-DD format
3. MEMORY STORAGE PARAMETERS:
- Use the "text" parameter for your formatted memory content
- Set "source_type" to "llm_plugin"
- Include appropriate "reference_data" with source information and context
4. REFERENCE DATA STRUCTURE:
- source.platform: Identify your platform (e.g., "claude_desktop", "cline")
- source.type: Always set to "llm_plugin"
- source.version: Optional version information
- context.conversation_id: Include when available to link related conversation memories
- context.message_id: Optional identifier for the specific message
5. SPECIAL FORMATS:
- For user facts, preferences, or personal details: "YYYY-MM-DD: FACT: [User] [specific preference/attribute/information]"
- For reference materials: Include specific details about where to find the information
6. RELATED MEMORIES: After finding memories with search, check if there are related memories using the get_related_memories tool with the memory_id from search results. Present these additional memories to provide the user with more context.
7. RETRIEVAL CONSIDERATION: Before storing an important memory, consider: "What search terms might someone use to find this information later?" and ensure those terms are included.
```
#### How to Customize the System Prompt
To customize the system prompt:
1. Edit the Cline MCP settings file at:
```
~/Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json
```
2. Add your custom system prompt to the `SYSTEM_PROMPT` environment variable:
```json
"memory-box-mcp": {
"command": "node",
"args": [
"<path-to-repository>/build/index.js"
],
"env": {
"MEMORY_BOX_API_URL": "https://your-memory-box-instance",
"MEMORY_BOX_TOKEN": "your-token-here",
"DEFAULT_BUCKET": "General",
"SYSTEM_PROMPT": "Your custom system prompt here..."
},
"disabled": false,
"autoApprove": []
}
```
A template file is provided at `<path-to-repository>/system-prompt-template.txt` that you can copy and modify.
3. Restart Cline to apply the changes
#### System Prompt Helper
The Memory Box MCP server includes a helper script for managing the system prompt:
```bash
# View the current system prompt
cd <path-to-repository>
npm run prompt-helper -- view
# Reset to the default system prompt
cd <path-to-repository>
npm run prompt-helper -- reset
# Validate a custom system prompt
cd <path-to-repository>
npm run prompt-helper -- validate
```
### Other Configuration Options
You can also customize these environment variables:
- `MEMORY_BOX_API_URL`: The URL of your Memory Box instance
- `MEMORY_BOX_TOKEN`: Your authentication token for Memory Box
- `DEFAULT_BUCKET`: The default bucket to use when saving memories
## Troubleshooting
If you encounter issues:
1. Check that your Memory Box token is correctly configured
2. Verify that your Memory Box instance is running and accessible
3. Check the Cline logs for any error messages
## Development
To make changes to the server:
1. Edit the source code in `<path-to-repository>/src/`
2. Rebuild the server:
```
cd <path-to-repository>
npm run build
```
3. Restart Cline to apply the changes