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.
- 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
npx @revisium/standalone --port 9222Claude 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"
}
}
}
}The agent now has 17 memory tools available. On first memory_store call, a project with facts, episodes, and config tables is created automatically.
| 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 |
| Tool | Description |
|---|---|
memory_projects |
List all memory projects |
memory_create_project |
Create a project from template |
memory_switch_project |
Switch active project |
| 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) |
// 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 },
});// 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 });// Commit pending changes
await memory_commit({ message: 'Updated user preferences' });// 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({});Projects are created with a template that defines table schemas:
- agent-memory (default) —
facts,episodes,configtables - bookmarks —
bookmarkstable with tags and reading status - contacts —
contacts,interactionstables - expenses —
expenses,budgetstables - job-search —
applications,contactstables - research —
findings,decisionstables - tasks —
tasks,notestables
| 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.
import { createServer } from '@revisium/mcp-memory';
const { server, session } = createServer({
url: 'http://localhost:9222',
});
// Connect to any MCP transport
await server.connect(transport);npm install
npm run tsc # TypeScript check
npm run lint:ci # ESLint
npm test # Unit tests
npm run build # Build CJS + ESM + .d.tsnpm run test:integration:up # Start Revisium standalone
npm run test:integration # Run integration tests
npm run test:integration:down # Stop RevisiumMIT