cpretzinger/memory-forge
If you are the rightful owner of memory-forge and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
Memory Forge is a comprehensive infrastructure solution designed to provide AI assistants with persistent memory and context awareness, utilizing the Model Context Protocol (MCP) server.
๐ง Memory Forge - Universal AI Context & Memory System
A production-ready MCP (Model Context Protocol) server for persistent AI memory across Claude, ChatGPT, and any LLM.
๐ฏ What is Memory Forge?
Memory Forge is a complete infrastructure solution that gives AI assistants persistent memory and context awareness. It includes:
- MCP Server: TypeScript-based context server following the Model Context Protocol
- Multi-Storage: PostgreSQL for persistence + Redis for speed + Qdrant for vector search
- Auto-Save: Automatic conversation backup every 30 seconds
- Multi-User: Support for unlimited users with isolated contexts
- Deploy Anywhere: Local Docker, Railway, Vercel, or Smithery
๐ Quick Start (Under 5 Minutes!)
Option 1: One-Command Setup (Recommended)
curl -sSL https://raw.githubusercontent.com/cpretzinger/memory-forge/main/scripts/setup.sh | bash
Option 2: Manual Setup
git clone https://github.com/cpretzinger/memory-forge.git
cd memory-forge
npm install
npm run setup
๐ฆ What's Included
memory-forge/
โโโ src/ # TypeScript source code
โ โโโ server.ts # Main MCP server
โ โโโ handlers/ # Request handlers
โ โโโ storage/ # Storage adapters
โ โโโ types/ # TypeScript definitions
โโโ docs/ # Documentation
โ โโโ SERVICES.md # Service architecture
โ โโโ DOCKER.md # Docker setup guide
โ โโโ RAILWAY.md # Railway deployment
โ โโโ SMITHERY.md # Smithery deployment
โโโ scripts/ # Setup & deployment scripts
โ โโโ setup.sh # Universal setup script
โ โโโ deploy.ts # Deployment helper
โ โโโ test.ts # System test script
โโโ config/ # Configuration files
โ โโโ docker-compose.yml
โ โโโ railway.toml
โ โโโ smithery.yml
โโโ examples/ # Example implementations
โโโ .env.example # Environment template
โโโ claude-config.json
๐ ๏ธ Installation
Prerequisites
- Node.js 20+
- Docker (for local deployment)
- 2GB RAM minimum
- 10GB disk space
Step-by-Step Setup
- Clone and Install
git clone https://github.com/cpretzinger/memory-forge.git
cd memory-forge
npm install
- Configure Environment
cp examples/.env.example .env
# Edit .env with your settings (see Configuration section)
- Run Setup Script
npm run setup
# This will:
# - Check prerequisites
# - Generate secure passwords
# - Set up databases
# - Configure services
# - Start everything
- Test Installation
npm test
# Should show all services as โ
Running
โ๏ธ Configuration
Environment Variables
Create a .env
file from the example:
# Project Configuration
PROJECT_NAME=my-ai-assistant
NODE_ENV=production
# Database Credentials (generated by setup script)
POSTGRES_PASSWORD=<auto-generated>
REDIS_PASSWORD=<auto-generated>
QDRANT_API_KEY=<auto-generated>
# MCP Configuration
MCP_AUTH_TOKEN=<auto-generated>
MCP_PORT=3005
# API Keys (optional - add your own)
OPENAI_API_KEY=sk-...
ANTHROPIC_API_KEY=sk-ant-...
# Service URLs (for production)
DATABASE_URL=postgresql://user:pass@host:5432/dbname
REDIS_URL=redis://:password@host:6379
QDRANT_URL=http://host:6333
Claude Code Configuration
Add to your Claude desktop config (~/.config/claude/claude_desktop_config.json
):
{
"mcpServers": {
"memory-forge": {
"command": "node",
"args": ["/path/to/memory-forge/dist/bridge.js"],
"env": {
"MCP_SERVER_URL": "http://localhost:3005/mcp",
"MCP_AUTH_TOKEN": "your-token-here",
"AUTO_SAVE": "true"
}
}
}
}
๐ข Deployment Options
Local Docker (Development)
npm run docker:up
# Access at http://localhost:3005
Railway (Production)
npm run deploy:railway
# Follow prompts to configure
Smithery (Managed MCP)
npm run deploy:smithery
# Or use Smithery CLI:
smithery publish cpretzinger/memory-forge
Vercel (Serverless)
npm run deploy:vercel
# Configure environment variables in Vercel dashboard
๐ Using with Smithery
Installing from Smithery Registry
- Find the server:
smithery search memory-forge
- Install directly into Claude:
smithery install cpretzinger/memory-forge
- Or add to your config manually:
{
"mcpServers": {
"memory-forge": {
"command": "npx",
"args": ["-y", "@smithery/memory-forge"],
"env": {
"API_KEY": "your-api-key"
}
}
}
}
Publishing Your Own Fork
- Create Smithery account:
smithery auth
- Configure smithery.yml:
name: memory-forge
version: 1.0.0
description: Universal AI memory system
author: yourname
runtime: typescript
- Publish:
smithery publish
๐ Architecture
Services Overview
Service | Purpose | Port | Technology |
---|---|---|---|
MCP Server | Context API | 3005 | TypeScript/Express |
PostgreSQL | Persistent storage | 5432 | PostgreSQL 16 |
Redis | Cache & sessions | 6379 | Redis 7 |
Qdrant | Vector search | 6333 | Qdrant |
n8n | Automation | 5678 | n8n (optional) |
Data Flow
graph LR
A[Claude/LLM] -->|MCP Protocol| B[MCP Server]
B --> C[Redis Cache]
B --> D[PostgreSQL]
B --> E[Qdrant Vectors]
C -->|Fast Read| B
D -->|Persistent| B
E -->|Semantic Search| B
๐ง API Reference
Available Tools
store_context
Store conversation context with auto-save
{
sessionId?: string, // Optional, auto-generated if not provided
userId?: string, // Optional user identifier
context: object, // Required context data
metadata?: object // Optional metadata
}
retrieve_context
Retrieve conversation context
{
sessionId?: string, // Optional, gets latest if not provided
userId?: string // Optional user filter
}
search_context
Search through all contexts
{
query: string, // Required search query
limit?: number, // Optional result limit (default: 10)
semantic?: boolean // Use vector search (default: false)
}
list_sessions
List all available sessions
{
userId?: string, // Optional user filter
limit?: number // Optional limit (default: 10)
}
๐งช Testing
Run All Tests
npm test
Test Specific Service
npm run test:mcp # Test MCP server
npm run test:storage # Test storage layer
npm run test:e2e # End-to-end tests
Manual Testing
# Test MCP endpoint
curl -X POST http://localhost:3005/mcp \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"tools/list","id":1}'
๐ Security
Default Security Features
- Auto-generated secure passwords (32+ characters)
- Bearer token authentication on all endpoints
- Isolated user contexts
- Encrypted storage for sensitive data
- No passwords in logs or error messages
Production Hardening
- Use environment-specific
.env
files - Enable HTTPS/TLS in production
- Set up firewall rules
- Use secrets management (AWS Secrets Manager, etc.)
- Enable audit logging
๐ Monitoring
Health Checks
# Check all services
npm run health
# Individual checks
curl http://localhost:3005/health
Metrics
- Request latency
- Storage usage
- Active sessions
- Cache hit rate
๐ค Contributing
We welcome contributions! Please see for guidelines.
Development Setup
# Install dev dependencies
npm install --save-dev
# Run in development mode
npm run dev
# Run with hot reload
npm run dev:watch
๐ License
MIT License - see file
๐ Support
Common Issues
Q: Services won't start?
# Reset everything
npm run reset
npm run setup
Q: Can't connect to MCP server?
# Check if running
npm run health
# Check logs
docker logs memory-forge-mcp
Q: How to upgrade?
git pull
npm install
npm run migrate
Get Help
- ๐ง Email: support@memory-forge.ai
- ๐ฌ Discord: Join our server
- ๐ Issues: GitHub Issues
๐ Roadmap
- OpenAI function calling support
- LangChain integration
- Web UI dashboard
- Backup/restore tools
- Multi-region support
- GraphQL API
Built with โค๏ธ by the Memory Forge team