memory-forge
by cpretzinger
README.md
# ๐ง Memory Forge - Universal AI Context & Memory System
[](https://smithery.ai/server/@cpretzinger/ai-assistant-simple)
[](https://opensource.org/licenses/MIT)
> 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)
```bash
curl -sSL https://raw.githubusercontent.com/cpretzinger/memory-forge/main/scripts/setup.sh | bash
```
### Option 2: Manual Setup
```bash
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
1. **Clone and Install**
```bash
git clone https://github.com/cpretzinger/memory-forge.git
cd memory-forge
npm install
```
2. **Configure Environment**
```bash
cp examples/.env.example .env
# Edit .env with your settings (see Configuration section)
```
3. **Run Setup Script**
```bash
npm run setup
# This will:
# - Check prerequisites
# - Generate secure passwords
# - Set up databases
# - Configure services
# - Start everything
```
4. **Test Installation**
```bash
npm test
# Should show all services as โ
Running
```
## โ๏ธ Configuration
### Environment Variables
Create a `.env` file from the example:
```env
# 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`):
```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)
```bash
npm run docker:up
# Access at http://localhost:3005
```
### Railway (Production)
```bash
npm run deploy:railway
# Follow prompts to configure
```
### Smithery (Managed MCP)
```bash
npm run deploy:smithery
# Or use Smithery CLI:
smithery publish cpretzinger/memory-forge
```
### Vercel (Serverless)
```bash
npm run deploy:vercel
# Configure environment variables in Vercel dashboard
```
## ๐ Using with Smithery
### Installing from Smithery Registry
1. **Find the server**:
```bash
smithery search memory-forge
```
2. **Install directly into Claude**:
```bash
smithery install cpretzinger/memory-forge
```
3. **Or add to your config manually**:
```json
{
"mcpServers": {
"memory-forge": {
"command": "npx",
"args": ["-y", "@smithery/memory-forge"],
"env": {
"API_KEY": "your-api-key"
}
}
}
}
```
### Publishing Your Own Fork
1. **Create Smithery account**:
```bash
smithery auth
```
2. **Configure smithery.yml**:
```yaml
name: memory-forge
version: 1.0.0
description: Universal AI memory system
author: yourname
runtime: typescript
```
3. **Publish**:
```bash
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
```mermaid
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
```typescript
{
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
```typescript
{
sessionId?: string, // Optional, gets latest if not provided
userId?: string // Optional user filter
}
```
#### `search_context`
Search through all contexts
```typescript
{
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
```typescript
{
userId?: string, // Optional user filter
limit?: number // Optional limit (default: 10)
}
```
## ๐งช Testing
### Run All Tests
```bash
npm test
```
### Test Specific Service
```bash
npm run test:mcp # Test MCP server
npm run test:storage # Test storage layer
npm run test:e2e # End-to-end tests
```
### Manual Testing
```bash
# 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
1. Use environment-specific `.env` files
2. Enable HTTPS/TLS in production
3. Set up firewall rules
4. Use secrets management (AWS Secrets Manager, etc.)
5. Enable audit logging
## ๐ Monitoring
### Health Checks
```bash
# 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 [CONTRIBUTING.md](docs/CONTRIBUTING.md) for guidelines.
### Development Setup
```bash
# 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 [LICENSE](LICENSE) file
## ๐ Support
### Common Issues
**Q: Services won't start?**
```bash
# Reset everything
npm run reset
npm run setup
```
**Q: Can't connect to MCP server?**
```bash
# Check if running
npm run health
# Check logs
docker logs memory-forge-mcp
```
**Q: How to upgrade?**
```bash
git pull
npm install
npm run migrate
```
### Get Help
- ๐ง Email: support@memory-forge.ai
- ๐ฌ Discord: [Join our server](https://discord.gg/memory-forge)
- ๐ Issues: [GitHub Issues](https://github.com/yourusername/memory-forge/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 teamThis server cannot be deployed
Maintenance
ActivityInactive
ResponsivenessNo issues