Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 11 additions & 3 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,21 @@
## Version 2 - MARM Protocol to Universal MCP Server Evolution

<details>
<summary><strong>Unreleased: Product CLI Module Split (v2.29.1)</strong></summary>
<summary><strong>July 26th, 2026: One-Command Skill Install, fast-start-http Guided Setup, and CLI/Console Module Splits (v2.30.0)</strong></summary>

### `marm-memory init`

- Added `marm-memory init`, a standalone command that installs the MARM skill into agent skill folders with no server, database, or network access required. By default it scans the current project for supported agents (Claude, Codex, Gemini, Qwen, Kiro) and installs to each one found, overwriting any existing copy so re-running refreshes the skill after an upgrade. If no agent directory is present, it falls back to creating a `.agents/skills/marm-init/` folder in the project.
- Per-agent global flags (`--g-claude`, `--g-codex`, `--g-gemini`, `--g-qwen`, `--g-kiro`) install into the matching home-folder directory instead. Global and project are separate modes; a run does one or the other, never both.
- The skill is now bundled inside the package (`marm_mcp_server/resources/skills/marm-init/`) and read at install time, so installs work offline and always match the running version. A test asserts the bundled copy stays byte-identical to the source skill.

### marm-init Skill Refresh

- The guided setup skill now leads with `marm-memory fast-start-http` as the one-shot local path (starts the HTTP server, launches Console, and opens the browser with loopback-only auth), and uses the managed `marm-memory docker run` / `docker stdio-command` commands for the Docker paths in place of raw `docker run` blocks. The seven-step guided flow and the rule that key values never enter the setup conversation are preserved.

### Internal

- Split `cli.py`'s remaining output-formatting and argparse-construction concerns into `services/cli_output.py` and `services/cli_parser.py`, continuing the v2.28.0 CLI service-module split. No behavior change; `_dispatch_product`, `main`, and runtime-preset application stay in `cli.py` as the orchestration owner. `cli.py` drops from 786 to 509 lines.
<summary><strong>Unreleased: Concept Store Module Split (v2.29.1)</strong></summary>

- Split MARM Console's `concept_store.py` graph-atlas and single-entity-neighborhood queries into their own modules: `console/concept_graph_overview.py` (`graph_overview`, the full-vs-sampled visual atlas with its degree-ranked BFS tree-sampling) and `console/concept_neighborhood.py` (`neighborhood`, the bounded single-entity BFS traversal). No behavior change; shared low-level helpers (`_connect`, `_schema_status`, `_entity`) and the smaller query functions (`summary`, `search`, `get_entity`, `build_runs`, `get_build_run`, `duplicates`) stay in `concept_store.py`. `concept_store.py` drops from 676 to 334 lines.

</details>
Expand Down
4 changes: 3 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
width="900"
height="250">
</picture>
<h1 align="center">MARM: Local-First Persistent Multi-Agent Memory Layer for MCP Clients v2.29.0</h1>
<h1 align="center">MARM: Local-First Persistent Multi-Agent Memory Layer for MCP Clients v2.30.0</h1>

[![License](https://img.shields.io/badge/license-Apache--2.0-blue)](https://github.com/Lyellr88/marm-memory/blob/MARM-main/LICENSE)
[![Python](https://img.shields.io/badge/python-3.10%2B-blue)](https://www.python.org/)
Expand Down Expand Up @@ -128,6 +128,8 @@ marm-memory console # start or reuse the bundled local Console
```bash
marm-memory http # run HTTP in the foreground
marm-memory stdio # run the strict local MCP STDIO transport
marm-memory init # install the MARM skill into detected agents (project scan)
marm-memory init --g-claude # install the skill into the home-folder claude directory
marm-memory doctor # diagnose the local install
marm-memory key init # create or reuse ~/.marm/.env without displaying the key
marm-memory key path # print the managed key-file path
Expand Down
2 changes: 1 addition & 1 deletion docs/INSTALL-DOCKER.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

## Universal Memory Intelligence Platform for AI Agents

**MARM v2.29.0** - Memory Accurate Response Mode
**MARM v2.30.0** - Memory Accurate Response Mode
*Docker deployment guide for Windows, Mac, and Linux*

---
Expand Down
4 changes: 2 additions & 2 deletions docs/INSTALL-LINUX.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

## Universal Memory Intelligence Platform for AI Agents

**MARM v2.29.0** - Memory Accurate Response Mode
**MARM v2.30.0** - Memory Accurate Response Mode
*Complete Linux installation guide*

---
Expand Down Expand Up @@ -320,7 +320,7 @@ curl -s http://localhost:8001/health
{
"status": "healthy",
"service": "MARM MCP Server",
"version": "2.29.0",
"version": "2.30.0",
"timestamp": "2026-01-01T00:00:00+00:00",
"database": "connected",
"semantic_search": "available"
Expand Down
2 changes: 1 addition & 1 deletion docs/INSTALL-PLATFORMS.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# MARM v2.29.0 MCP Server - Platform Integration Guide
# MARM v2.30.0 MCP Server - Platform Integration Guide

## Table of Contents

Expand Down
4 changes: 2 additions & 2 deletions docs/INSTALL-WINDOWS.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

## Universal Memory Intelligence Platform for AI Agents

**MARM v2.29.0** - Memory Accurate Response Mode
**MARM v2.30.0** - Memory Accurate Response Mode
*Complete Windows installation guide*

---
Expand Down Expand Up @@ -294,7 +294,7 @@ Invoke-WebRequest -Uri http://localhost:8001/health
{
"status": "healthy",
"service": "MARM MCP Server",
"version": "2.29.0",
"version": "2.30.0",
"timestamp": "2026-01-01T00:00:00+00:00",
"database": "connected",
"semantic_search": "available"
Expand Down
2 changes: 1 addition & 1 deletion docs/TECHNICAL-OVERVIEW.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# MARM Technical Overview

> Current implementation: MARM MCP Server v2.29.0
> Current implementation: MARM MCP Server v2.30.0

This document explains what MARM is, why it is built this way, and how information moves through the system from an agent writing something to that information being recalled later. It is intended as a technical product overview, not a source-code reference.

Expand Down
2 changes: 1 addition & 1 deletion marm-mcp-server/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@ HEALTHCHECK --interval=30s --timeout=10s --start-period=5s --retries=3 \

LABEL org.opencontainers.image.title="MARM Universal MCP Server"
LABEL org.opencontainers.image.description="Production-ready Universal MCP Server with advanced AI memory capabilities, semantic search, and professional-grade architecture"
LABEL org.opencontainers.image.version="2.29.0"
LABEL org.opencontainers.image.version="2.30.0"
LABEL org.opencontainers.image.authors="Ryan Lyell - marm-memory"
LABEL org.opencontainers.image.url="https://marmsystems.com"
LABEL org.opencontainers.image.source="https://github.com/Lyellr88/marm-memory"
Expand Down
2 changes: 1 addition & 1 deletion marm-mcp-server/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ mcp-name: io.github.Lyellr88/marm-mcp-server
width="900"
height="250">
</picture>
<h1 align="center">MARM: Local-First Persistent Multi-Agent Memory Layer for MCP Clients v2.29.0</h1>
<h1 align="center">MARM: Local-First Persistent Multi-Agent Memory Layer for MCP Clients v2.30.0</h1>

[![License](https://img.shields.io/badge/license-Apache--2.0-blue)](https://github.com/Lyellr88/marm-memory/blob/MARM-main/LICENSE)
[![Python](https://img.shields.io/badge/python-3.10%2B-blue)](https://www.python.org/)
Expand Down
4 changes: 2 additions & 2 deletions marm-mcp-server/docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ services:
dockerfile: Dockerfile
# :latest is the all-in-one MCP image (memory + graph, one port).
# Pin :memory-only instead if you need the pre-unification image shape.
image: lyellr88/marm-mcp-server:latest
image: lyellr88/marm-mcp-server:2.30.0
container_name: marm-mcp-server
restart: unless-stopped

Expand All @@ -18,7 +18,7 @@ services:
environment:
- SERVER_HOST=0.0.0.0
- SERVER_PORT=8001
- SERVER_VERSION=2.29.0
- SERVER_VERSION=2.30.0

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🎯 Functional Correctness | 🟠 Major | ⚡ Quick win

Pin the image and reported version to the same release.

image: lyellr88/marm-mcp-server:latest can run newer code while SERVER_VERSION=2.30.0 makes health and metadata report 2.30.0. Pin the image to :2.30.0 or derive both values from one immutable release source.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@marm-mcp-server/docker-compose.yml` at line 21, Update the docker-compose
service’s image reference and SERVER_VERSION configuration so they use the same
immutable 2.30.0 release, replacing the latest image tag while preserving the
reported version value.


- ENVIRONMENT=production
- LOG_LEVEL=INFO
Expand Down
2 changes: 1 addition & 1 deletion marm-mcp-server/marm-docs/README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# MARM: Local-First Persistent Multi-Agent Memory Layer for MCP Clients v2.29.0</h1>
# MARM: Local-First Persistent Multi-Agent Memory Layer for MCP Clients v2.30.0</h1>

## Important Messages

Expand Down
4 changes: 2 additions & 2 deletions marm-mcp-server/marm_mcp_server/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,10 @@
- Production-grade performance

Author: Ryan Lyell - marm-memory
Version: 2.29.0
Version: 2.30.0
"""

__version__ = "2.29.0"
__version__ = "2.30.0"
__author__ = "Ryan Lyell"
__email__ = "lyell@marmsystems.com"

Expand Down
10 changes: 10 additions & 0 deletions marm-mcp-server/marm_mcp_server/cli.py
Original file line number Diff line number Diff line change
Expand Up @@ -251,6 +251,13 @@ def _uninstall(args: argparse.Namespace) -> int:
return uninstall(args)


def _init_skill(args: argparse.Namespace) -> int:
"""Delegate skill installation to its focused service."""
from .services.skill_install import install_skill

return install_skill(args)


def _dispatch_product(args: argparse.Namespace) -> int:
from .core import runtime_manager
from .services.runtime_status import (
Expand Down Expand Up @@ -382,6 +389,8 @@ def _dispatch_product(args: argparse.Namespace) -> int:
return _upgrade(args)
if args.command == "uninstall":
return _uninstall(args)
if args.command == "init":
return _init_skill(args)
if args.command == "version":
print(SERVER_VERSION)
return 0
Expand Down Expand Up @@ -470,6 +479,7 @@ def main() -> None:
"upgrade",
"update",
"uninstall",
"init",
"version",
}
)
Expand Down
2 changes: 1 addition & 1 deletion marm-mcp-server/marm_mcp_server/config/settings.py
Original file line number Diff line number Diff line change
Expand Up @@ -122,7 +122,7 @@ def get_analytics_db_path():
f"WARNING: SERVER_PORT={_raw_port} out of [1, 65535], clamped to {SERVER_PORT}",
file=sys.stderr,
)
SERVER_VERSION = "2.29.0"
SERVER_VERSION = "2.30.0"

GRAPH_ENABLED = os.environ.get("GRAPH_ENABLED", "true").lower() != "false"

Expand Down
Loading
Loading