MemoryLoom is an MCP-compatible memory server for editors, IDEs, and AI clients. It provides persistent memory with a clean tool interface, metadata-aware retrieval, and pluggable storage backends.
MemoryLoom supports two connection modes:
- stdio MCP (Local only) - Traditional MCP over stdin/stdout for local development
- HTTP MCP (Local or Remote) - MCP over HTTP for remote deployments
π HTTP MCP Connection Guide - Connect to remote MemoryLoom instances
π‘ Recommendation:
- Local development: Use stdio MCP with
node server.js - Remote/Team use: Deploy to Railway, Fly.io, Heroku, or Render and use HTTP MCP
- Full MCP support: Avoid serverless platforms (Vercel, Netlify) - they don't support persistent connections
π Deployment Guides:
- No Credit Card Deploy Guide - Railway & Fly.io
- Complete Deployment Guide - All platforms
π Complete Documentation Index - Navigate all documentation
- HTTP MCP Connection Guide - Connect to remote MemoryLoom instances (Heroku, Railway, etc.)
- Editor Setup Guide - Step-by-step configuration for Claude Desktop, Cursor, VS Code, Windsurf, and Zed
- Deployment Guide - Deploy to 10+ platforms with one-click or manual setup
- No Credit Card Deploy - Deploy to Railway or Fly.io without credit card
- Quick Reference Card - Printable cheat sheet with config locations, commands, and troubleshooting
- Troubleshooting Guide - Comprehensive solutions for common issues across all editors
- Migration Guide - Migrate from other memory servers, switch storage modes, team setup
- API Documentation (MemoryLoom_Documentation.txt) - Complete API reference, tool schemas, and usage examples
- Quick Start - Get running in 2 minutes
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β MCP-Compatible Editors β
β Claude Desktop β Cursor β VS Code β Windsurf β Zed β
ββββββββββββββββββββββββββ¬βββββββββββββββββββββββββββββββββββββ
β MCP Protocol (stdio)
βΌ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β MemoryLoom Server β
β ββββββββββββββββ ββββββββββββββββ ββββββββββββββββ β
β β Tool Handler β β Search Engineβ β Auth & Rate β β
β β (10 tools) β β (Hybrid) β β Limiting β β
β ββββββββββββββββ ββββββββββββββββ ββββββββββββββββ β
ββββββββββββββββββββββββββ¬βββββββββββββββββββββββββββββββββββββ
β
βΌ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Storage Layer (Pluggable) β
β ββββββββββββββββββββββββ ββββββββββββββββββββββββ β
β β JSON Store β β Postgres Store β β
β β β’ File-backed β β β’ Database-backed β β
β β β’ Atomic writes β β β’ Transactional β β
β β β’ Rolling backups β β β’ Scalable β β
β ββββββββββββββββββββββββ ββββββββββββββββββββββββ β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
- MCP server over stdio in
server.js - Memory lifecycle tools:
add_memorysearch_memoriesget_memorieslist_memoriesupdate_memorydelete_memorymemory_statsserver_statusupsert_memoryconsolidate_memories
- Hybrid ranking with token overlap + embedding similarity + metadata weighting
- Rich memory metadata for filtering and governance
MemoryLoom uses a toy-grade character n-gram hashing implementation for embedding similarity, not a production-grade vector embedding model like OpenAI embeddings or sentence-transformers. This is a lightweight, dependency-free approach suitable for:
- Small to medium memory sets (< 10,000 memories)
- Simple semantic matching based on character patterns
- Zero external dependencies and API keys
- Fast local computation
Limitations:
- Not a true semantic embedding (no word context understanding)
- Performance degrades with larger memory sets
- May not capture complex semantic relationships
- Character-based matching can miss synonyms or related concepts
For production use with large memory sets or advanced semantic understanding, consider integrating a proper vector embedding service (e.g., OpenAI embeddings, sentence-transformers) and a vector database.
- Pluggable storage:
jsonmode (local file-backed)postgresmode (database-backed)
- Runtime configuration via environment variables
- Optional API-key protection for MCP tool calls
- Optional health/readiness HTTP endpoints for deployment platforms
- Optional hosted web UI on
/(modern animated responsive landing page) - Atomic writes and optional rolling backups in JSON mode
- Docker + Compose deployment support
- End-to-end verification script
npm install
npm run setup
npm run verify
npm startMemoryLoom works with all major MCP-compatible editors and AI clients.
stdio MCP (Local) - For local development:
{
"mcpServers": {
"memoryloom": {
"command": "node",
"args": ["/absolute/path/to/memoryloom/server.js"]
}
}
}HTTP MCP (Remote) - For hosted instances:
{
"mcpServers": {
"memoryloom": {
"url": "https://your-app.herokuapp.com/mcp",
"headers": {
"Authorization": "Bearer your-api-key"
}
}
}
}- Claude Desktop - Anthropic's native app
- Cursor IDE - AI-first code editor
- VS Code + GitHub Copilot - Microsoft's editor with Copilot
- Windsurf IDE - Codeium's Cascade AI editor
- Zed Editor - High-performance collaborative editor
π Complete Editor Setup Guide β
Environment variables:
MEMORYLOOM_STORAGE_MODE:jsonorpostgresMEMORYLOOM_DATA_DIR: base directory for local storageMEMORYLOOM_DATA_FILE: exact JSON file path (JSON mode)MEMORYLOOM_LOG_LEVEL:debug,info,warn,errorMEMORYLOOM_BACKUP_ON_WRITE:trueorfalseMEMORYLOOM_BACKUP_RETENTION: number of backup snapshots retainedMEMORYLOOM_POSTGRES_URL: Postgres connection string forpostgresmodeMEMORYLOOM_API_KEY: optional API key required for all tool callsMEMORYLOOM_HEALTH_PORT: optional HTTP port exposing/healthand/readyMEMORYLOOM_MAX_TOOL_CALLS_PER_MINUTE: optional global per-minute tool call limit (0disables)MEMORYLOOM_WEB_UI: set tofalseto disable hosted web UI routes
Reference defaults:
.env.example
export MEMORYLOOM_STORAGE_MODE=json
npm startexport MEMORYLOOM_STORAGE_MODE=postgres
export MEMORYLOOM_POSTGRES_URL=postgres://postgres:postgres@localhost:5432/memoryloom
npm startOn startup in Postgres mode, MemoryLoom auto-creates the memoryloom_memories table if it does not exist.
export MEMORYLOOM_HEALTH_PORT=8080
npm startEndpoints:
GET /healthGET /readyGET /(web UI, whenMEMORYLOOM_WEB_UIis notfalse)
{
"api_key": "your-api-key-if-enabled",
"content": "User prefers concise technical responses with examples.",
"importance": 0.95,
"metadata": {
"user": "u-1042",
"project": "memoryloom",
"memory_type": "preference",
"tags": ["style", "format"],
"confidence": 0.99
}
}{
"api_key": "your-api-key-if-enabled",
"query": "response style preference",
"filters": {
"user": "u-1042",
"project": "memoryloom",
"memory_type": "preference"
},
"limit": 5
}{
"api_key": "your-api-key-if-enabled",
"id": "memory-id",
"content": "Updated memory content",
"metadata": {
"tags": ["updated"],
"confidence": 0.98
}
}{
"api_key": "your-api-key-if-enabled",
"id": "memory-id",
"hard_delete": false
}{
"api_key": "your-api-key-if-enabled"
}{
"api_key": "your-api-key-if-enabled"
}{
"api_key": "your-api-key-if-enabled",
"content": "The latest user preference statement",
"metadata": {
"user": "u-1042",
"project": "memoryloom",
"memory_type": "preference",
"tags": ["style"]
}
}{
"api_key": "your-api-key-if-enabled",
"minimum_count": 3,
"archive_originals": true,
"filters": {
"project": "memoryloom",
"memory_type": "note"
}
}Dockerfile- Docker container configurationdocker-compose.yml- Docker Compose for local developmentapp.json- Heroku app manifestrender.yaml- Render blueprintrailway.json- Railway configurationfly.toml- Fly.io app configuration.do/app.yaml- DigitalOcean App Platform configurationProcfile- Process file for Heroku/similar platforms
cloudbuild.yaml- Google Cloud Build & Cloud Runazure-pipelines.yml- Azure Container Apps deployment
vercel.json- Vercel configurationnetlify.toml- Netlify configurationnetlify/functions/api.js- Netlify Functions wrapper
Recommended: Use container platforms (Heroku, Render, Railway, Fly.io, Koyeb, DigitalOcean) for full MCP stdio support.
Run:
npm run verifyThis validates MCP initialization, tool discovery, add/search/update/list/get flows, archive + hard delete behavior, metadata/timestamp behavior, embeddings, and status/stats responses.
New to MemoryLoom? Follow this checklist:
-
Install MemoryLoom
git clone https://github.com/bunnysayzz/memoryloom.git cd memoryloom npm install npm run setup -
Choose your editor - See Editor Comparison
-
Configure your editor - Follow the guide for your editor:
-
Verify installation
npm run verify
-
Test in your editor
- Ask your AI: "Store a memory that I prefer dark mode"
- Ask your AI: "What preferences have I stored?"
-
Bookmark the Quick Reference for easy access
-
Optional: Set up backups
{ "env": { "MEMORYLOOM_BACKUP_ON_WRITE": "true", "MEMORYLOOM_BACKUP_RETENTION": "10" } }
You: Remember that I prefer TypeScript over JavaScript for new projects
AI: [Uses add_memory tool]
β Stored: "User prefers TypeScript over JavaScript for new projects"
You: What are my programming language preferences?
AI: [Uses search_memories tool]
Based on your memories, you prefer:
- TypeScript over JavaScript for new projects
- Python for data analysis
- Go for backend services
You: For the "acme-app" project, remember we're using PostgreSQL and Redis
AI: [Uses add_memory with project metadata]
β Stored with project: acme-app
You: What tech stack are we using for acme-app?
AI: [Uses search_memories with project filter]
For acme-app, you're using:
- Database: PostgreSQL
- Cache: Redis
- Framework: Next.js
Contributions are welcome! Please feel free to submit a Pull Request.
MIT License - see LICENSE file for details.
- GitHub: github.com/bunnysayzz/memoryloom
- Issues: Report a bug or request a feature
- MCP Protocol: Model Context Protocol Specification
Built with β€οΈ for the MCP community