AgentStack
Browse Sign in
Browse Why AgentStack Sell Docs
Sign in
MCP unreviewed Apache-2.0 Self-run

Ai Memory Mcp

mcp-alphaonedev-ai-memory-mcp · by alphaonedev

Persistent memory for any AI — MCP server, HTTP API, CLI. Works with Claude, ChatGPT, Grok, Gemini, Codex, Cursor, OpenClaw, and any MCP client. 97.8% R@5 on LongMemEval. Pure SQLite FTS5, zero cloud dependencies.

No reviews yet
0 installs
0 views
view→install

Install

$ agentstack add mcp-alphaonedev-ai-memory-mcp

Open-source listing, not yet scanned by AgentStack. Follow the source repository for install instructions.

Security review

⚠ Flagged

1 finding(s); flagged for manual review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures
  • high Pipes remote content directly into a shell (remote code execution).

What it can access

  • Network access Used
  • Filesystem access No
  • Shell / process execution Used
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

View the full security report →

Reliability & compatibility

Not yet reviewed
0 installs to date
no reviews yet
1mo ago

Declared compatibility

Claude CodeClaude DesktopCursorWindsurf

Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.

Preview Execution monitoring

We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.

How agent discovery & health will work →
Are you the author of Ai Memory Mcp? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

ai-memory™ universal AI memory

[](https://github.com/alphaonedev/ai-memory-mcp/actions/workflows/ci.yml) [](https://github.com/alphaonedev/ai-memory-mcp/actions/workflows/bench.yml) [](https://github.com/alphaonedev/ai-memory-mcp/actions/workflows/session-boot-lifetime.yml) [](https://www.rust-lang.org/) [](LICENSE) [](https://www.sqlite.org/) [](https://alphaonedev.github.io/ai-memory-mcp/evidence.html) [](https://alphaonedev.github.io/ai-memory-test-hub/) [](https://alphaonedev.github.io/ai-memory-discovery-gate/) [](https://github.com/alphaonedev/ai-memory-test-hub/blob/main/campaigns/v0.6.4.md) []() [](https://alphaonedev.github.io/ai-memory-mcp/compliance/nsa-csi-mcp.html) [](https://alphaonedev.github.io/ai-memory-mcp/evidence.html) [](docs/v0.7.0/release-notes.md) [](https://crates.io/crates/ai-memory) [](https://www.npmjs.com/package/@alphaone/ai-memory) [](https://pypi.org/project/ai-memory-mcp/)

ai-memory is a persistent memory system for AI assistants. It works with any AI that supports MCP -- Claude, ChatGPT, Grok, Llama, and more. It stores what your AI learns in a local SQLite database, ranks memories by relevance when recalling, and auto-promotes important knowledge to permanent storage. Install it once, and every AI assistant you use remembers your architecture, your preferences, your corrections -- forever.


Choose your installation path

| You are… | Your deployment is… | Start here | |---|---|---| | A single developer trying ai-memory | One AI client on a laptop | [docs/install-quickstart.md](docs/install-quickstart.md) — 5-min super-simple install + LLM-backend wired in one block | | An engineer / architect | Single-node production, or multiple agents on one node | [docs/INSTALL.md](docs/INSTALL.md) → [docs/production-deployment.md](docs/production-deployment.md) | | An engineer / architect | Multi-server / multi-rack / multi-DC / swarm / hive / federation | [docs/enterprise-deployment.md](docs/enterprise-deployment.md) — 8 topologies, singleton → multi-region | | An engineer / architect | PostgreSQL + Apache AGE storage (multi-writer, 10M+ memories, KG-heavy) | [docs/postgres-age-guide.md](docs/postgres-age-guide.md) — first-class postgres operator guide | | A decision-maker evaluating adoption | — | docs/audience/decision-maker.html |

> Configuring the LLM backend (xAI Grok, OpenAI, Anthropic, Gemini, DeepSeek, Kimi, Qwen, Mistral, Groq, Together, Cerebras, OpenRouter, Fireworks, LMStudio, vLLM, llama.cpp server, or local Ollama)? See [docs/integrations/llm-backends.md](docs/integrations/llm-backends.md) — the MCP env-block recipe is the same regardless of installation path.


v0.8.0 (distributed-coordination) — current release. This is the release where the memory substrate becomes a coordination substrate. It adds the distributed-coordination machinery from #1709: a typed action DAG with a real state machine (memory_action_*), TTL-bounded single-holder leases (memory_lease_*), Ed25519-signed signals (memory_signal_*), Ed25519-attested checkpoints (memory_checkpoint_*), and frozen, replayable routines (memory_routine_*) — so a heterogeneous fleet of agents can take turns, hand off work, and prove who said what without having to trust each other. It layers typed cognition on top (the Goal/Plan/Step memory kinds, a lifecycle_state machine, and the decomposes_into / depends_on / advances link relations), hardens federation secure-by-default (peer enrollment ON by default #1789, per-transition signatures #1718, per-write content attestation #1464, transition-replay nonces #1805, outbound peer-cert pinning #1678), and ships governance that actually blocks — the Claude Code PreToolUse hook is reworked to a type:command wrapper so a substrate Refuse truly denies the tool (#1811). Surface: schema v70, 100 MCP tools at --profile full (99 callable + the always-on memory_capabilities bootstrap) / 7 at --profile core, 91 HTTP route registrations (77 unique URL paths), 83/85 CLI subcommands, 9 typed MemoryLink relations, a 27-field Memory. Runs on two production backends behind one identical API — embedded SQLite and PostgreSQL + Apache AGE — across desktop, server, and on-device (iOS + Android). Everything is additive over v0.7.0; review the secure-default flips before upgrading. Full release notes: [docs/v0.8.0/release-notes.md](docs/v0.8.0/release-notes.md).

v0.7.0 (attested-cortex) — prior release. Rolled together the cortex-fluent legibility work with the full v0.7 trust + A2A scope from ROADMAP §7.3, plus (per operator directive 2026-05-09) the originally-v0.7.1 postgres+AGE first-class work, plus the post-grand-slam ship-readiness wave (Batman Forms 1-6 + 7th-form Option-B foundation + QW-1/2/3 + reconciliation security sweep). The substrate becomes both more articulate (capabilities v3, named loader tools, compacted schemas, Batman MemoryKind vocabulary, persona/atomisation/multistep-ingest primitives) and cryptographically trustworthy (Ed25519 attestation, sidechain transcripts, programmable 25-event hook pipeline, enforced namespace inheritance, V-4 cross-row signed-events hash chain). v0.7.0 also ships postgres + Apache AGE as a first-class storage backendai-memory serve --store-url postgres://… for live daemon use, schema parity across both backends (at the v0.7.0 release, sqlite + postgres converged on logical schema v57, where CURRENT_SCHEMA_VERSION was 57; the v0.8.0 release substrate has advanced this lockstep to schema 70, with the additive v58–v70 coordination + visibility tables landed on both backends — see CLAUDE.md §Database for the v58–v70 ladder) (canonical anchors: [src/storage/migrations.rs](src/storage/migrations.rs) for sqlite + [src/store/postgres.rs](src/store/postgres.rs) for postgres); on-disk migration files end at migrations/sqlite/0047_v56_list_composite_indexes.sql and the postgres in-process migrate_v57() ladder arm (file-name counters lag the logical schema version because both ladders apply post-v34 deltas via in-process arms — see [docs/MIGRATION_v0.7.md](docs/MIGRATIONv0.7.md) §schema-ladder for the v35-v57 narrative; v48 #933 added the federation-push DLQ table; v49 #1025 added 14 nullable columns to archived_memories so archive → restore is lossless for the full v0.7.0 Memory shape; v50 #1156 extended agent_quotas PRIMARY KEY from (agent_id) to (agent_id, namespace) so per-namespace K8 quota allotments hold even when a single agent operates across many namespaces — pre-v50 rows backfill to the _global sentinel namespace; v51 #1255 (PR #1296) added the federation_nonce_cache table so peer-replay-prevention nonces persist across daemon restarts; v52 #1389 added the transcript_line_dedup table backing RFC-0001 memory_capture_turn L4 + recover_from_transcript L2 idempotency so a SIGKILL between turns never produces a duplicate memory on subsequent rehydration; v53 #1418 scoped the memories_au FTS5 sync trigger to (title, content, tags) only so non-FTS column updates no longer fire a needless sync; v54 #1466 backfilled tier-default expiry onto legacy NULL-expiry mid/short rows to close the TTL-leak immortal-rows class; v55 #1476 made the W=2 federation-catchup query (updated_at > ? ORDER BY updated_at ASC LIMIT) sargable and added the sqlite idx_memories_updated_at index — postgres adds no new index because memories_updated_at_idx DESC already serves the range scan via Index Scan Backward; v56 #1579 added the composite list/archive ordering indexes (idx_memories_list_order, idx_memories_ns_list_order, idx_archived_ns_archived_at) paired with the sargable storage::list rewrite — sqlite-side DDL; the postgres migrate_v56() arm is a version-stamp no-op; v57 #1579 added the postgres stored generated tsv tsvector column + memories_tsv_gin GIN index so the search/recall shapes match AND rank on the precomputed column instead of re-computing the tsvector per matched row — the legacy memories_content_fts expression index is dropped and the sqlite twin is a version-stamp no-op because FTS5 already materialises the indexed text)), the new ai-memory schema-init CLI verb, and 6-factor recall scoring parity. The v0.6.4 default surface grows by two always-on loaders to 7 tools (memory_load_family + memory_smart_load join the original five); the runtime ceiling at --profile full is 74 advertised entries (73 callable memory tools + the always-on memory_capabilities bootstrap; verified against Profile::full().expected_tool_count() — see [src/profile.rs](src/profile.rs)). Everything new is additive and (for the trust + postgres surfaces) opt-in. Upgrading from v0.6.x? Read [docs/MIGRATION_v0.7.md](docs/MIGRATION_v0.7.md) first — most v0.6.4 callers see no behavior change, but pre-v0.6.3.1 v0.6.x users hit the G1 namespace-inheritance fix. Switching to postgres+AGE? See [docs/postgres-age-guide.md](docs/postgres-age-guide.md) and [docs/migration-v0.7.0-postgres.md](docs/migration-v0.7.0-postgres.md). Full release notes: [docs/v0.7.0/release-notes.md](docs/v0.7.0/release-notes.md).

v0.6.4 (quiet-tools) — the MCP server ships with a 5-tool default surface (memory_store, memory_recall, memory_list, memory_get, memory_search) plus the always-on memory_capabilities bootstrap. The other 38 tools remain reachable via --profile graph|admin|power|full or runtime expansion through memory_capabilities --include-schema family=. Eager-loading harnesses (Claude Desktop / Codex CLI / Grok CLI / Gemini CLI) drop ~4,700 input tokens of tool schemas per request — a 76.4% reduction measured against cl100k_base BPE. To preserve v0.6.3 behavior 1:1, run ai-memory mcp --profile full. See docs/MIGRATION_v0.6.4.md.

What's new in v0.8

v0.8.0 (distributed-coordination) turns the memory substrate into a coordination substrate for multi-agent (NHI) fleets. The headline is the distributed-coordination machinery (#1709); everything ships on both the sqlite and postgres+AGE SAL adapters and stays default-equivalent for v0.7.x callers. Full tool reference: [docs/coordination.md](docs/coordination.md); full notes: [docs/v0.8.0/release-notes.md](docs/v0.8.0/release-notes.md).

Distributed coordination substrate (Pillar-1, #1709)

  • Actions — the dependency DAG (schema v59). Typed action nodes with a state machine (pending → claimed → in_progress → done/failed/abandoned), typed DAG edges (requires / unlocks / blocks / gated_by / sibling), and frontier/next surfaces that pull the next runnable node. 8 MCP tools (memory_action_create / _get / _transition / _list / _add_edge / _edges / _frontier / _next).
  • Leases — single-holder, TTL-bounded claims (schema v59). Heartbeat-renewed compare-and-swap claim (PRIMARY KEY on action_id = one holder at a time) plus an hourly lease-sweeper. 4 MCP tools (memory_lease_acquire / _renew / _release / _get).
  • Signals — typed, Ed25519-signed inter-agent messages (schema v60). Each carries a signature + sender signer_pubkey and threads via correlation_id / in_reply_to. 5 MCP tools (memory_signal_send / _read / _inbox / _thread / _ack).
  • Checkpoints — attested conditional gates (schema v61). A gate that blocks until a condition resolves; resolution is self-signed in place (Ed25519) for separation-of-duties, and verify re-checks the signature. 4 MCP tools (memory_checkpoint_create / _resolve / _query / _verify).
  • Routines — parameterised, frozen, replayable plans (schema v62). Authored as a draft, then frozen (immutable, Ed25519 freeze-attestation); run materialises a concrete set of actions + edges from a {{param}} template into a routine_runs record. 5 MCP tools (memory_routine_create / _freeze / _run / _status / _list).
  • Every coordination state-mutation appends a tamper-evident coordination. row to the signed_events V-4 hash chain (#1722); the two authority-granting writes are mirrored onto the HTTP daemon (POST /api/v1/actions/{id}/transition, POST /api/v1/signals) with local CAS + W-of-N federation fan-out (#1718).

Typed cognition (Pillar-2)

The memory_kind vocabulary extends with goal / plan / step; the closed memory_links.relation taxonomy extends 6 → 9 relations (decomposes_into / depends_on / advances, schema v63); and a first-class memories.lifecycle_state column (schema v64) makes Goal/Plan/Step a real state machine (open → active → blocked/done/abandoned), enforced across the MCP / HTTP / SAL surfaces with an illegal edge mapping to HTTP 409 CONFLICT. The Memory struct grows to 27 fields. No new MCP tool — the v64 work adds only permissive optional request fields.

Federation hardened, secure by default

Peer enrollment ON by default (#1789), per-transition signatures on authority-granting writes (#1718), per-write content attestation for relayed memories (#1464), transition-replay nonces (#1805), and outbound peer-cert fingerprint pinning (#1678). Heterogeneous fleets that don't have to trust each other — review the secure-default flips in [docs/v0.8.0/release-notes.md](docs/v0.8.0/release-notes.md) §"Federation hardening" before upgrading.

Governance that actually blocks (#1811)

The Claude Code PreToolUse governance hook is reworked to a type:command wrapper (ai-memory governance check-action --from-pretool-stdin) so a substrate Refuse emits permissionDecision:"deny" and truly BLOCKS the tool — the prior type:mcp_tool form structurally could not enforce. Plus mandatory-hook-presence enforcement (#1734) and a new escalate governance verdict (§22 PE-5) for human-in-the-loop.

Pillar-4 operational controls

HTTP admission control (#1733 — opt-in concurrency cap that sheds excess with a typed 503), deferred Apache-AGE graph projection ([#1735](https://gith

Source & license

This open-source MCP server is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet, be the first.

Versions

  • v0.1.0 Imported from the upstream source.