io.github.madezmedia/acmi-mcp
Persistent agent memory via ACMI — Profile/Signals/Timeline. 16 tools on Upstash Redis.
Open source Repository Open in the app JSON README (API)
About
Persistent agent memory via ACMI — Profile/Signals/Timeline. 16 tools on Upstash Redis.
Details
- Kind
- MCP servers
- Topic
- AI, RAG & memory
- Publisher
- madezmedia
- Origin
- official
- Category
- ferramentas
- Transport
- http
- Version
- 1.4.0
- Stars
- 3
- Last push
- 2026-09-04T15:33:23Z
- Repository state
- ativo
- Language
- JavaScript
- License
- MIT
- Added
- 2026-08-29 04:00:27
- Updated
- 2026-08-29 04:00:27
- Origin id
io.github.madezmedia/acmi-mcp
README
<p align="center">
<img src="./assets/banner.svg" alt="ACMI v1.5 banner" width="960">
</p>
# ACMI - Agentic Context Memory Interface
[](https://www.npmjs.com/package/@madezmedia/acmi)
[](./SPEC.md)
[](./mcp/README.md)
[](./LICENSE)
[](https://nodejs.org)
[](./tests)
> The coordination backbone for AI agent fleets. Three Redis keys - Profile, Signals, Timeline.
ACMI is the open protocol for persistent agent context. Version `v1.5` formalizes **Fleet Comms Protocol**: atomic pre/post events, wake-directives, handoff-ack chains, and correlation-aware timelines that make multi-agent work auditable instead of anecdotal.
Every entity stores exactly three things an LLM needs to make decisions:
```text
Profile -> who (identity, preferences, stable facts)
Signals -> now (current state, blockers, next action)
Timeline -> then (append-only event log from every source)
```
The shape is intentionally small:
- **Profile**: stable identity and configuration.
- **Signals**: mutable state and synthesized working memory.
- **Timeline**: immutable history, ordered by time.
This repo ships the public ACMI package, the MCP server subpackage, and the docs that keep the fleet aligned:
- `@madezmedia/acmi` - the TypeScript SDK, CLI, and conformance suite.
- `mcp/` - `@madezmedia/acmi-mcp`, the MCP server for hosts that need direct ACMI access.
- `SPEC.md` - canonical protocol spec.
- `CHANGELOG.md` - release history, including the `v1.5.0` fleet-comms update.
- `docs/` - operator guide, cheatsheet, and protocol notes.
## What v1.5 adds
The `v1.5.0` release aligns the fleet around a shared event language:
- atomic commit pre/post events
- roundtable coordination and wake-directives
- `source`, `kind`, `correlationId`, `summary` event envelope discipline
- signal freshness checks before action
- `agent:<id>` source naming across the fleet
## Install
```bash
npm install @madezmedia/acmi
```
## Quick start
```ts
import { createAcmi } from "@madezmedia/acmi";
import { InMemoryAdapter } from "@madezmedia/acmi/adapters/in-memory";
const acmi = createAcmi(new InMemoryAdapter());
await acmi.profile.set("user:mikey", {
name: "Michael Shaw",
role: "operator",
location: "Charlotte, NC, USA",
});
await acmi.signals.set("user:mikey", "current_focus", "ACMI v1.5 fleet sync");
await acmi.timeline.append("user:mikey", {
ts: Date.now(),
source: "user:mikey",
kind: "coord-note",
correlationId: "acmiReadmeRefresh-0001",
summary: "[coord-note @fleet] README aligned to v1.5 and local assets.",
});
```
## Production adapters
```ts
import { createAcmi } from "@madezmedia/acmi";
import { UpstashAdapter } from "@madezmedia/acmi/adapters/upstash";
const acmi = createAcmi(
new UpstashAdapter({
url: process.env.UPSTASH_REDIS_REST_URL!,
token: process.env.UPSTASH_REDIS_REST_TOKEN!,
})
);
```
| Adapter | Use case | Edge-compatible |
|---|---|---|
| `@madezmedia/acmi/adapters/in-memory` | tests, examples, local dev | n/a |
| `@madezmedia/acmi/adapters/upstash` | Vercel, Workers, edge runtimes | yes |
| `@madezmedia/acmi/adapters/redis` | self-hosted Redis / Node | no |
## Fleet protocol
ACMI v1.5 uses a shared event format so every significant action can be traced:
```json
{
"ts": 1780000000000,
"source": "agent:codex",
"kind": "handoff-ack",
"correlationId": "codexGrantDraft-1780000000000",
"summary": "[handoff-ack @ops-center] Draft ready for review."
}
```
Rules that matter in practice:
- use `[kind-tag @recipient]` in summaries
- keep `source` prefixed with `agent:`, `user:`, or `system:`
- link follow-up events with `parentCorrelationId`
- keep the timeline append-only
- verify signals before acting when the workflow depends on current state
## Related surfaces
- [ACMI Product / live demo](https://v3-ten-beta.vercel.app/acmi/)
- [ACMI Operator Surface](https://swarm.madezmedia.com)
- [ACMI MCP server README](./mcp/README.md)
- [Operator Guide](./docs/OPERATOR-GUIDE.md)
- [ACMI Cheatsheet](./docs/ACMI-CHEATSHEET.md)
- [Changelog](./CHANGELOG.md)
## The fleet
ACMI is used across the Mad EZ Media fleet as the common context layer for:
- `ops-center` - orchestration and routing
- `bentley` - comms and governance
- `codex` - coding and implementation support
- `hermes` - deep scans and guardian checks
- `android-worker` - mobile bridge and notifications
## License
[MIT](./LICENSE) - Copyright Michael Shaw / Mad EZ Media