Skip to content

justanotherspy/mcp-agent-memory

Repository files navigation

MCP Agent Memory - v2.0

Python 3.10+ License: MIT Tests

Production-ready MCP server providing shared memory for multi-agent collaboration.


Overview

MCP Agent Memory is an enhanced Model Context Protocol (MCP) server that enables multiple AI agents (like Claude Code instances) to communicate asynchronously through a shared memory space. Think of it as a sophisticated shared notepad where AI agents can leave messages, search for information, and coordinate their work.

Key Features

  • πŸ”’ Concurrency Safe - File locking for shared environments
  • πŸ“ Full CRUD - Create, Read, Update, Delete operations
  • πŸ” Advanced Search - Full-text search across all fields
  • 🏷️ Organization - Tags, priority levels, metadata
  • πŸ“Š Analytics - Comprehensive memory statistics
  • πŸ’Ύ Reliable - Automatic backups and corruption recovery
  • πŸ“‹ Structured Logging - Complete operation visibility
  • πŸ›‘οΈ Health Monitoring - Built-in health check system

Quick Start

Installation

  1. Clone or download this repository
  2. Install dependencies:
    pip install mcp pydantic
  3. Run the server:
    python3 shared_memory_mcp.py

Basic Usage

# Add a memory entry
await add_memory(
    agent_name="claude-alpha",
    content="Analysis complete. Found 3 key insights.",
    tags=["analysis", "complete"],
    priority="high"
)

# Search for entries
results = await search_memory(query="analysis")

# Get statistics
stats = await get_memory_stats()

Configuration

Add to your Claude Code config (~/.claudeCode/config.json):

{
  "mcpServers": {
    "shared-memory": {
      "command": "python3",
      "args": ["/path/to/shared_memory_mcp.py"]
    }
  }
}

What's New in v2.0

New Tools (6 total)

  • βœ… update_memory - Modify existing entries
  • βœ… delete_memory - Remove specific entries
  • βœ… get_memory - Retrieve single entry by ID
  • βœ… search_memory - Full-text search
  • βœ… get_memory_stats - Memory analytics
  • βœ… health_check - System health monitoring

Enhanced Tools

  • ⚑ add_memory - Now supports tags, priority, metadata
  • ⚑ read_memory - Advanced filtering and sorting
  • ⚑ clear_memory - Auto-backup before clearing

Core Improvements

  • πŸ”’ Thread-safe file locking
  • πŸ’Ύ Automatic backups (keeps 10)
  • πŸ“ Structured logging
  • πŸ”„ Auto-rotation at 1000 entries
  • πŸ›‘οΈ Corruption recovery
  • πŸ†” Unique entry IDs (UUID)

Zero breaking changes! All v1 code works without modification.


Architecture

MCP Agent Memory v2.0
β”œβ”€β”€ shared_memory_mcp.py      # Main server (9 MCP tools)
β”œβ”€β”€ utils/
β”‚   β”œβ”€β”€ file_lock.py           # Concurrency safety
β”‚   └── logger.py              # Structured logging
β”œβ”€β”€ tests/
β”‚   β”œβ”€β”€ test_memory_operations.py
β”‚   └── test_concurrency.py
└── docs/
    β”œβ”€β”€ API_REFERENCE_V2.md    # Complete API docs
    β”œβ”€β”€ CHANGELOG_V2.md        # Version history
    β”œβ”€β”€ UPGRADE_GUIDE.md       # v1β†’v2 migration
    └── IMPLEMENTATION_SUMMARY.md

Storage

~/.shared_memory_mcp/
β”œβ”€β”€ memory.json              # Main storage
β”œβ”€β”€ mcp_memory.log          # Rotating logs
└── backups/                # Auto-backups (10 kept)
    └── memory_backup_*.json

Documentation

Getting Started

Reference

Developer


API Overview

Memory Operations

Tool Description Type
add_memory Create new entry with tags/priority Write
read_memory Read with advanced filtering Read
update_memory Modify existing entry Write
delete_memory Remove specific entry Write
get_memory Retrieve single entry by ID Read
search_memory Full-text search Read
get_memory_stats Memory analytics Read
clear_memory Clear all entries Write
health_check System health status Read

See API Reference for detailed documentation.


Testing

Run Basic Tests

python3 run_basic_tests.py

Run Full Test Suite (requires pytest)

pip install pytest pytest-cov
pytest tests/ -v --cov

Test Coverage

  • βœ… 70+ test cases
  • βœ… Unit tests (operations, filtering, search)
  • βœ… Concurrency tests (locking, atomic writes)
  • βœ… Integration tests

Development

Setup Development Environment

# Install dev dependencies
pip install -r requirements-dev.txt

# Install pre-commit hooks
pre-commit install

# Run tests
python3 run_basic_tests.py

# Type checking
mypy shared_memory_mcp.py

# Linting
ruff check .

Code Quality Tools

  • βœ… pytest - Testing framework
  • βœ… mypy - Type checking
  • βœ… ruff - Linting and formatting
  • βœ… pre-commit - Git hooks

Performance

Typical Operations

  • Add entry: 5-15ms (includes backup)
  • Read entries: 2-10ms
  • Search (100 entries): 1-5ms
  • Update/Delete: 5-15ms (includes backup)

Limits

  • Max words per entry: 200
  • Max tags per entry: 10
  • Max entries before rotation: 1000
  • File lock timeout: 10 seconds
  • Backup retention: 10 backups

Use Cases

Multi-Agent Collaboration

# Agent A: Data collector
await add_memory(
    agent_name="data-collector",
    content="Collected 10,000 data points",
    tags=["data", "ready-for-analysis"],
    priority="high"
)

# Agent B: Analyzer picks up work
pending = await read_memory(tags=["ready-for-analysis"])

Task Tracking

# Start task
result = await add_memory(
    agent_name="worker",
    content="Starting analysis...",
    tags=["analysis", "in-progress"],
    priority="high"
)

# Update on completion
await update_memory(
    entry_id=result.entry_id,
    tags=["analysis", "complete"],
    priority="low"
)

Knowledge Base

# Search for information
results = await search_memory(
    query="user behavior insights",
    limit=10
)

# Get statistics
stats = await get_memory_stats()
print(f"Total knowledge: {stats.total_entries} entries")

FAQ

Q: Is v2 compatible with v1 code? A: Yes! 100% backward compatible. All v1 code works without changes.

Q: How does migration work? A: Automatic. v2 detects v1 format and migrates on first write.

Q: Can multiple agents write simultaneously? A: Yes! File locking ensures safe concurrent access.

Q: What happens if storage gets corrupted? A: Automatic recovery from the most recent valid backup.

Q: How much disk space does it use? A: ~500-1000 bytes per entry. 1000 entries β‰ˆ 500KB-1MB.

Q: Can I use it for production? A: Yes! v2 is production-ready with reliability features.

See UPGRADE_GUIDE.md for more details.


Troubleshooting

Common Issues

File lock timeout

# Check for other running instances
ps aux | grep shared_memory_mcp

# Increase timeout in code if needed

JSON parse error

# Restore from backup
cp ~/.shared_memory_mcp/backups/memory_backup_*.json \
   ~/.shared_memory_mcp/memory.json

Check system health

health = await health_check({})
print(health.message)  # "All systems operational"

Logs

# View logs
tail -f ~/.shared_memory_mcp/mcp_memory.log

# Check for errors
grep ERROR ~/.shared_memory_mcp/mcp_memory.log

Contributing

Contributions welcome! Please:

  1. Fork the repository
  2. Create a feature branch
  3. Add tests for new features
  4. Ensure all tests pass
  5. Submit a pull request

Code Style

  • Use type hints
  • Follow existing patterns
  • Add docstrings
  • Run pre-commit hooks

License

MIT License - See LICENSE file for details


Changelog

v2.0.0 (2025-10-30)

  • βœ… Added concurrency safety (file locking)
  • βœ… Added structured logging
  • βœ… Added 6 new MCP tools
  • βœ… Enhanced data model (tags, priority, metadata)
  • βœ… Added automatic backups and recovery
  • βœ… Added comprehensive test suite (70+ tests)
  • βœ… Added complete documentation
  • βœ… Zero breaking changes

See CHANGELOG_V2.md for detailed history.


Acknowledgments

Built on the Model Context Protocol (MCP) by Anthropic.

Enhanced with production-ready features while maintaining the simplicity and elegance of the original design.


Links


Made with ❀️ for multi-agent collaboration

Version 2.0.0 - Production Ready πŸš€

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages