Skip to content

revisium/mcp-memory

Repository files navigation

@revisium/mcp-memory

Quality Gate Status Coverage GitHub License GitHub Release

Status: In Development

MCP server that gives any AI coding assistant persistent, structured memory backed by Revisium — with versioning, branching, rollback, and a visual Admin UI for review.

Works with Claude Code, Cursor, Windsurf, Copilot, Cline, and any MCP-compatible client.

Features

  • Structured memory — store facts, episodes, and config as typed rows in tables
  • Version control — commit, rollback, and view history of memory changes
  • Branching — create branches for A/B testing agent configurations
  • Human review — inspect and approve memory changes via Revisium Admin UI
  • Search — filter and query memory entries by field values or row IDs
  • Multi-project — organize memory into separate projects with templates
  • Zero-config — auto-creates project and tables on first use

Quick Start

1. Start Revisium

npx @revisium/standalone --port 9222

2. Configure your IDE

Claude Code (~/.claude/settings.json):

{
  "mcpServers": {
    "memory": {
      "command": "npx",
      "args": ["@revisium/mcp-memory"],
      "env": {
        "REVISIUM_URL": "http://localhost:9222"
      }
    }
  }
}

Cursor (.cursor/mcp.json):

{
  "mcpServers": {
    "memory": {
      "command": "npx",
      "args": ["@revisium/mcp-memory"],
      "env": {
        "REVISIUM_URL": "http://localhost:9222"
      }
    }
  }
}

Windsurf (.windsurf/mcp.json):

{
  "mcpServers": {
    "memory": {
      "command": "npx",
      "args": ["@revisium/mcp-memory"],
      "env": {
        "REVISIUM_URL": "http://localhost:9222"
      }
    }
  }
}

3. Use it

The agent now has 17 memory tools available. On first memory_store call, a project with facts, episodes, and config tables is created automatically.

Tools

Level 1 — Core (zero-config)

Tool Description
memory_store Store a fact/episode/config — creates or updates a row
memory_search Search by table, field value, or row ID keyword
memory_recall Get a specific entry by table and ID
memory_delete Delete a memory entry
memory_config Get/set/list agent configuration entries
memory_commit Commit pending changes (like git commit)
memory_diff Show pending changes (like git diff)
memory_rollback Discard uncommitted changes (like git checkout -- .)
memory_status Show connection, project, branch, and pending changes

Level 2 — Multi-project

Tool Description
memory_projects List all memory projects
memory_create_project Create a project from template
memory_switch_project Switch active project

Level 3 — Branching

Tool Description
memory_branch Create a new branch (like git branch)
memory_switch_branch Switch to a different branch
memory_branches List all branches
memory_history Show revision history (like git log)

memory_store

// Store a fact
await memory_store({
  table: 'facts',
  id: 'user-preference-theme',
  data: { topic: 'preferences', content: 'User prefers dark theme', confidence: 0.95 },
});

// Update an existing fact
await memory_store({
  table: 'facts',
  id: 'user-preference-theme',
  data: { topic: 'preferences', content: 'User switched to light theme', confidence: 0.99 },
});

memory_search

// Search by field value (string contains)
await memory_search({
  table: 'facts',
  field: 'topic',
  value: 'preferences',
  limit: 20,
});

// Search by row ID keyword
await memory_search({ table: 'facts', query: 'theme' });

// Search across all tables
await memory_search({ limit: 50 });

memory_commit

// Commit pending changes
await memory_commit({ message: 'Updated user preferences' });

memory_branch

// Create a branch
await memory_branch({ name: 'experiment-v2' });

// Switch to another branch
await memory_switch_branch({ name: 'experiment-v2' });

// List branches
await memory_branches({});

Templates

Projects are created with a template that defines table schemas:

  • agent-memory (default) — facts, episodes, config tables
  • bookmarksbookmarks table with tags and reading status
  • contactscontacts, interactions tables
  • expensesexpenses, budgets tables
  • job-searchapplications, contacts tables
  • researchfindings, decisions tables
  • taskstasks, notes tables

Environment Variables

Variable Required Default Description
REVISIUM_URL No http://localhost:9222 Revisium server URL
REVISIUM_USERNAME No Username for login
REVISIUM_PASSWORD No Password for login
REVISIUM_TOKEN No JWT token (alternative to credentials)
REVISIUM_PROJECT No memory Default project name
REVISIUM_BRANCH No master Default branch name
REVISIUM_ORG No username Organization ID
REVISIUM_AUTO_COMMIT No false Auto-commit after memory_store and memory_delete

When Revisium standalone runs with --no-auth (default), no credentials are needed.

Programmatic Usage

import { createServer } from '@revisium/mcp-memory';

const { server, session } = createServer({
  url: 'http://localhost:9222',
});

// Connect to any MCP transport
await server.connect(transport);

Development

npm install
npm run tsc          # TypeScript check
npm run lint:ci      # ESLint
npm test             # Unit tests
npm run build        # Build CJS + ESM + .d.ts

Integration tests

npm run test:integration:up    # Start Revisium standalone
npm run test:integration       # Run integration tests
npm run test:integration:down  # Stop Revisium

License

MIT

About

MCP server for AI agent memory — versioning, branching, rollback, Admin UI review

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors