# pmll-memory-mcp

An MCP server that gives coding agents a durable context store and keeps repeated work out of the loop through Q-promise.

- MCP server · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed, Gemini CLI · ★ 15
- Author: drQedwards
- License: MIT · policy=link-only · description only; the file stays with the author
- Source: https://github.com/drQedwards/PPM
- Updated: 2026-10-24
- HTML: https://affpapa.org/en/nevibecode/mcp/pmll-memory-mcp

## What it does

The server exposes long-lived key-content storage for an agent session. Two layers sit inside: PMLL owns state and answers lookups either by exact key or by meaning, while the Q-promise library tracks deferred promises and their continuations. A resolved promise can be written back into the same store, so the fetch, compute, save sequence survives across steps.

Semantic lookup comes from cosine similarity over stored embeddings of dimension 32. `peek` handles the exact-match case. That matters when an agent picks a task back up after a break or needs to avoid redoing a step it already finished.

You do not have to touch the C layer. The package runs through `npx`, so Node is required on the machine. Promise draining is single-threaded: continuations fire only inside `qpromise_drain()` on the calling thread, which means callers serialize access themselves.

## Requirements
- Needs: Node.js (commands run via npx)

## Install

### Claude Code (native platform)

**Platform CLI**
```bash
claude mcp add pmll-memory-mcp -- npx -y pmll-memory-mcp
```

### Codex

**Platform CLI**
```bash
codex mcp add pmll-memory-mcp -- npx -y pmll-memory-mcp
```

### Cursor

**Config file**
File `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "pmll-memory-mcp": {
            "command": "npx",
            "args": [
                "-y",
                "pmll-memory-mcp"
            ]
        }
    }
}
```

### GitHub Copilot

**Config file**
File `.vscode/mcp.json`:
```json
{
    "servers": {
        "pmll-memory-mcp": {
            "type": "stdio",
            "command": "npx",
            "args": [
                "-y",
                "pmll-memory-mcp"
            ]
        }
    }
}
```

### Gemini CLI

**Platform CLI**
```bash
gemini mcp add pmll-memory-mcp npx -y pmll-memory-mcp
```

## When to use it
- carry a task's context across agent sessions
- locate a memory entry by meaning instead of an exact key
- skip work that a previous run already completed
- tie a deferred result back to its memory key
- write updated state into the store after a promise resolves

## Example prompts
- Store the current refactor plan under the key `task-42`
- Look through memory for anything tied to the schema migration
- Resolve the pending promise and commit the outcome to the store

## Similar
- [REA](https://affpapa.org/en/nevibecode/mcp/rea.md) — MCP server · ★ 386989
- [GitHub](https://affpapa.org/en/nevibecode/mcp/github.md) — MCP server · ★ 33918
- [Netdata](https://affpapa.org/en/nevibecode/mcp/netdata.md) — MCP server · ★ 81115
- [browser-use](https://affpapa.org/en/nevibecode/mcp/browser-use.md) — MCP server · ★ 119160
- [Codebase Memory](https://affpapa.org/en/nevibecode/mcp/codebase-memory.md) — MCP server · ★ 47392
- [mcp-server](https://affpapa.org/en/nevibecode/mcp/mcp-server.md) — MCP server · ★ 43872

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
