MARM-Systems is a complete protocol and platform—combining an advanced memory backend, modular semantic search, and agent-to-agent coordination with a scientifically structured, community-vetted methodology for reasoning, session recall, and collaborative AI workflows. More then just a set of tools, it's a complete AI memory ecosystem
Project description
Contributions are welcome! Check out our open issues to get started. Join the conversation on MARM Discord.
Table of Contents
- Why MARM MCP
- Quick Start
- Connect Your Client Fast
- Complete MCP Tool Suite
- MARM Dashboard
- Why MARM Holds Up
- Contributing
- Project Documentation
Why MARM MCP: The Problem & Solution
Your AI forgets everything. MARM MCP doesn't.
MARM MCP is a local memory infrastructure layer for AI agents. It gives Claude, Codex, Gemini, Qwen, IDE agents, and other MCP clients one persistent place to store decisions, retrieve context, reuse notebooks, and keep long-running work from drifting.
The point is not "more tools." MARM exposes 9 focused MCP tools and moves the heavy work behind the server: session routing, protocol delivery, hybrid recall, serialized writes, rate-limit presets, write-time consolidation, and agent-assisted compaction.
What MARM Is Now
| Layer | What it does | Why it matters |
|---|---|---|
| Memory model | Sessions, structured logs, notebooks, summaries, and semantic memories | Keeps project history searchable instead of trapped in one chat |
| Scale layer | SQLite WAL mode, connection pooling, serialized write queue, and HTTP rate-limit presets | Lets one server support solo use, multi-agent work, and swarm-style bursts |
| Intelligence layer | Hybrid semantic + FTS recall, auto-classification, write-time consolidation, and compaction candidates | Keeps recall useful as memory grows instead of letting duplicates pile up |
| Deployment layer | Pip, Docker, STDIO, HTTP, --swarm, --swarm-max, and --trusted |
Lets you run private local memory or shared multi-agent memory with the same MCP surface |
MARM Demo
https://github.com/user-attachments/assets/663014e7-6813-4efc-be3c-1044b92ff496
MARM gives AI agents persistent local memory, shared context, write-queue safety, swarm presets, and hybrid recall so commands, config keys, and project meaning all stay reachable.
Start Now (pip)
Install once:
pip install marm-mcp-server
| If you are... | Start the server | Connect your MCP client |
|---|---|---|
| Solo developer / researcher | python -m marm_mcp_server |
"agent" mcp add --transport http marm-memory http://localhost:8001/mcp |
| Private local STDIO user | marm-mcp-stdio |
"agent" mcp add --transport stdio marm-memory-stdio marm-mcp-stdio |
| Multiple agents sharing memory | python -m marm_mcp_server --swarm |
"agent" mcp add --transport http marm-memory http://localhost:8001/mcp |
| Private high-throughput swarm | python -m marm_mcp_server --swarm-max |
"agent" mcp add --transport http marm-memory http://localhost:8001/mcp |
| Trusted private lab/server | python -m marm_mcp_server --trusted |
"agent" mcp add --transport http marm-memory http://localhost:8001/mcp |
What Users Are Saying
“MARM successfully handles our industrial automation workflows in production. We've validated session management, persistent logging, and smart recall across container restarts in our Windows 11 + Docker environment. The system reliably tracks complex technical decisions and maintains data integrity through deployment cycles.”
@Ophy21, GitHub user (Industrial Automation Engineer)
“MARM proved exceptionally valuable for DevOps and complex Docker projects. It maintained 100% memory accuracy, preserved context on 46 services and network configurations, and enabled standards-compliant Python/Terraform work. Semantic search and automated session logs made solving async and infrastructure issues far easier. Value Rating: 9.5/10 - indispensable for enterprise-grade memory, technical standards, and long-session code management.” @joe_nyc, Discord user (DevOps/Infrastructure Engineer)
🚀 Quick Start for MCP (HTTP & STDIO)
Use this quick rule of thumb to choose your setup
- Local HTTP/STDIO = fastest single-machine setup.
- Docker HTTP = shared/always-on server (key required).
- Docker STDIO = private containerized local use (no HTTP key).
Swarm / multi-agent note: The write queue is enabled by default to serialize memory writes through one worker. For shared HTTP deployments, use --swarm (200 RPM) or --swarm-max (600 RPM) when starting the server. --trusted disables rate limiting entirely for private deployments. STDIO is still best for private single-agent/local use. Run one MARM HTTP process per SQLite database; uvicorn --workers N / multi-process workers are not supported yet because queue, scheduler, and protocol coordination are process-local.
Local pip HTTP (zero config)
"agent" refers to claude, gemini, grok, qwen, or any MCP client. Codex uses --url instead of --transport to add MCP tools.
pip install marm-mcp-server
# most agents use this --transport command
"agent" mcp add --transport http marm-memory http://localhost:8001/mcp
codex mcp add marm-memory --url http://localhost:8001/mcp
# xAI / Grok Remote MCP. Use a hosted HTTPS MARM endpoint, not localhost.
python -m marm_mcp_server
Local pip STDIO
pip install marm-mcp-server
# most agents use this --transport command
"agent" mcp add --transport stdio marm-memory-stdio marm-mcp-stdio
codex mcp add marm-memory-stdio -- marm-mcp-stdio
# xAI / Grok Remote MCP. Use a hosted HTTPS MARM endpoint, not localhost.
python -m marm_mcp_server.server_stdio
Docker HTTP (key required)
Docker HTTP requires an API key because it exposes MARM as a network server; STDIO stays local to the client process and does not need one.
# Step 1: generate key (do not add < > around the key)
docker run --rm lyellr88/marm-mcp-server:latest --generate-key
# Step 2: run server
docker pull lyellr88/marm-mcp-server:latest
docker run -d --name marm-mcp-server \
-p 127.0.0.1:8001:8001 \
-e SERVER_HOST=0.0.0.0 \
-e MARM_API_KEY=your-generated-key \
-v ~/.marm:/home/marm/.marm \
lyellr88/marm-mcp-server:latest
# Step 3: connect client
"agent" mcp add --transport http marm-memory http://localhost:8001/mcp --header "Authorization: Bearer your-generated-key"
codex mcp add marm-memory --url http://localhost:8001/mcp --bearer-token-env-var MARM_API_KEY
Docker HTTP swarm mode
# --swarm: write queue on, 200 RPM — recommended for multi-agent shared servers
docker run -d --name marm-mcp-server \
-p 127.0.0.1:8001:8001 \
-e SERVER_HOST=0.0.0.0 \
-e MARM_API_KEY=your-generated-key \
-v ~/.marm:/home/marm/.marm \
lyellr88/marm-mcp-server:latest --swarm
Docker STDIO (no HTTP key)
docker run --rm -i \
-v ~/.marm:/home/marm/.marm \
--entrypoint python \
lyellr88/marm-mcp-server:latest \
-m marm_mcp_server.server_stdio
Most useful support info:
- Docker HTTP requires a key; Docker STDIO does not.
- If you get
401, verify key match and client restart after env var changes. - For full key setup, rotation, and troubleshooting: INSTALL-DOCKER.md
Connect Your Client Fast
Claude Code remains the recommended first setup path, but MARM also works with other MCP clients and IDE agents.
CLI clients - Claude Code · Codex · Gemini CLI · Qwen CLI · Linux variants · Docker/key
IDE agents - VS Code / Copilot Agent · Cursor · Docker/key IDE setup
Remote/API platforms - xAI / Grok Remote MCP · Platform integration
MARM Dashboard
A local web UI for browsing and managing your MARM memory — separate from the MCP server, reads and writes the same ~/.marm/marm_memory.db.
| What it gives you | How it works |
|---|---|
| Browse/search/edit all memories | Direct SQLite — no MCP required |
| Manage sessions and protocol logs | Runs on port :8002 alongside MCP on :8001 |
| Notebook CRUD with inline editor | Same auth model (MARM_API_KEY) as the MCP server |
| Delete-all with count confirmation | Docker image included; WAL mode handles concurrent access |
# Quick start (pip)
cd marm-dashboard
pip install -e .
python -m marm_dashboard --open
# Docker (same key and volume as MCP)
docker build -t marm-dashboard:local ./marm-dashboard
docker run --rm -p 127.0.0.1:8002:8002 \
-e MARM_API_KEY=your-key \
-v ~/.marm:/home/marm/.marm \
marm-dashboard:local
See marm-dashboard/README.md for the full guide.
Complete MCP Tool Suite (9 Tools)
💡 Pro Tip: You don't need to manually call these tools! Just tell your AI agent what you want in natural language:
- "Claude, log this session as 'Project Alpha' and add this conversation as 'database design discussion'"
- "Remember this code snippet in your notebook for later"
- "Search for what we discussed about authentication yesterday"
The AI agent will automatically use the appropriate tools. Manual tool access is available for power users who want direct control.
Architecture note: MARM groups related operations behind a single dispatching tooling to keep MCP discovery lean without hiding behavior. Domain-specific tools such as marm_notebook(action=...), marm_delete(type=...), and marm_compaction(action=...) group closely related operations behind explicit parameters, while recall, logging, and summaries stay separate so agents still choose the right capability clearly. This design keeps the MCP schema compact while preserving full functionality.
| Category | Tool | Description |
|---|---|---|
| Memory Intelligence | marm_smart_recall |
AI-powered hybrid recall across all memories. Combines semantic embeddings with FTS keyword/BM25 matching, applies a conservative recency bias when scores are close, supports global search with search_all=True, and can return summary/context/full memory depth with detail=1/2/3 |
marm_context_log |
Intelligent auto-classifying memory storage using vector embeddings | |
| Logging System | marm_log_session |
Create or switch to named session container |
marm_log_entry |
Add structured log entry with auto-date formatting | |
marm_log_show |
Display all entries and sessions (filterable) | |
marm_delete |
Delete a log session, log entry, or notebook entry (type="log"|"notebook") |
|
| Reasoning & Workflow | marm_summary |
Generate context-aware summaries with intelligent truncation for LLM conversations |
| Notebook Management | marm_notebook |
Unified notebook tool: add, use, show, status, or clear entries with action="add"|"use"|"show"|"status"|"clear" |
| Memory Maintenance | marm_compaction |
Unified compaction workflow with action="status"|"candidates"|"review"|"stage"|"apply"|"discard" for agent-assisted memory cleanup |
Internal automation: lifecycle initialization, documentation refresh, current date context, serialized write queue handling, and system checks are handled by the server instead of exposed as AI-facing tools. Optional compaction can detect duplicate memory clusters and nudge the connected agent to summarize them through marm_compaction. For server status, use the dashboard health panel or curl http://localhost:8001/health.
Why MARM Holds Up
MARM keeps the AI-facing surface small while the server handles the infrastructure work:
- Write stability: SQLite WAL mode, connection pooling, and a serialized write queue are enabled for normal use.
- Swarm control: HTTP presets tune shared access: default
80 RPM,--swarm200 RPM,--swarm-max600 RPM, and--trusteddisables rate limiting for private deployments. - Cleaner recall: hybrid semantic + FTS recall, conservative temporal weighting, write-time consolidation, and optional compaction reduce duplicate/noisy memories over time.
- Lower token burn:
marm_smart_recallcan return summary, context, or full-memory depth so agents do not pull full bodies unless they need them. - Safe defaults: local pip binds to
127.0.0.1; Docker HTTP requiresMARM_API_KEY; STDIO stays private and keyless.
For deeper architecture, configuration, and workflow guidance, use MCP-HANDBOOK.md and FAQ.md.
Contributing
MARM is open to useful contributions: bug reports, install feedback, documentation fixes, client connection notes, performance testing, and focused pull requests.
Good places to help:
- Test MARM with more MCP clients and IDE agents
- Improve install docs and platform-specific setup notes
- Report bugs with clear reproduction steps
- Suggest practical memory workflows and tool improvements
- Submit small, focused pull requests
See CONTRIBUTING.md for the full contribution guide.
Join the MARM Community
Help build the future of AI memory - no coding required!
Connect: MARM Discord | GitHub Discussions
Easy Ways to Get Involved
- Try the MCP server and share your experience
- Star the repo if MARM solves a problem for you
- Share on social - help others discover memory-enhanced AI
- Open issues with bugs, feature requests, or use cases
- Join discussions about AI reliability and memory
⭐ Star the Project
If MARM helps with your AI memory needs, please star the repository to support development!
License & Usage Notice
This project is licensed under the MIT License. Forks and derivative works are permitted. However, use of the MARM name and version numbering is reserved for releases from the official MARM repository. Derivatives should clearly indicate they are unofficial or experimental.
Project Documentation
Usage Guides
- MCP-HANDBOOK.md - Complete MCP server usage guide with commands, workflows, and examples
- PROTOCOL.md - MCP operating protocol
- FAQ.md - Answers to common questions about using MARM
MCP Server Installation
- INSTALL-DOCKER.md - Docker deployment (recommended)
- INSTALL-WINDOWS.md - Windows installation guide
- INSTALL-LINUX.md - Linux installation guide
- INSTALL-PLATFORMS.md - Platform installation guide
Project Information
- README.md - This file - ecosystem overview and MCP server guide
- CONTRIBUTING.md - How to contribute to MARM
- CHANGELOG.md - Version history and updates
- ACKNOWLEDGMENTS.md - Contributors and acknowledgments
- ROADMAP.md - Planned features and development roadmap
- LICENSE - MIT license terms
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file marm_mcp_server-2.12.1.tar.gz.
File metadata
- Download URL: marm_mcp_server-2.12.1.tar.gz
- Upload date:
- Size: 115.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
01e783267f2dbebcb7797bffd41a9b1fda40d52fb5b56fac148f8183a8b1337d
|
|
| MD5 |
29d42ee89c5f3652bbdadb9dc081916a
|
|
| BLAKE2b-256 |
3470a4ba5cb19ae3e603a6de1743233d9bc88d4e90bda49bbc05cc219ef6ecc0
|
Provenance
The following attestation bundles were made for marm_mcp_server-2.12.1.tar.gz:
Publisher:
publish-mcp.yml on Lyellr88/MARM-Systems
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
marm_mcp_server-2.12.1.tar.gz -
Subject digest:
01e783267f2dbebcb7797bffd41a9b1fda40d52fb5b56fac148f8183a8b1337d - Sigstore transparency entry: 1753788986
- Sigstore integration time:
-
Permalink:
Lyellr88/MARM-Systems@c934b97cdeb6ba10562bb5cfdcaa35505fc75fb2 -
Branch / Tag:
refs/tags/v2.12.1 - Owner: https://github.com/Lyellr88
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-mcp.yml@c934b97cdeb6ba10562bb5cfdcaa35505fc75fb2 -
Trigger Event:
push
-
Statement type:
File details
Details for the file marm_mcp_server-2.12.1-py3-none-any.whl.
File metadata
- Download URL: marm_mcp_server-2.12.1-py3-none-any.whl
- Upload date:
- Size: 78.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
34893425da9b912545a161ff360c080b85ffde82b1405650c0693bbc48446b96
|
|
| MD5 |
b4a29b2143781a459b066adceb890bf3
|
|
| BLAKE2b-256 |
89f39f4a32be73b62559a11028bfcfe19960bc979feea780c85365bd2f2e4aee
|
Provenance
The following attestation bundles were made for marm_mcp_server-2.12.1-py3-none-any.whl:
Publisher:
publish-mcp.yml on Lyellr88/MARM-Systems
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
marm_mcp_server-2.12.1-py3-none-any.whl -
Subject digest:
34893425da9b912545a161ff360c080b85ffde82b1405650c0693bbc48446b96 - Sigstore transparency entry: 1753789033
- Sigstore integration time:
-
Permalink:
Lyellr88/MARM-Systems@c934b97cdeb6ba10562bb5cfdcaa35505fc75fb2 -
Branch / Tag:
refs/tags/v2.12.1 - Owner: https://github.com/Lyellr88
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-mcp.yml@c934b97cdeb6ba10562bb5cfdcaa35505fc75fb2 -
Trigger Event:
push
-
Statement type: