tartarus-mcp
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@tartarus-mcpremember that I prefer dark mode"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
tartarus-mcp
Local-first MCP memory server. Persistent, searchable memory for any AI agent.
Built on the Apache-2.0 Asphodel memory core, vendored in this repo. Zero cloud dependencies. SQLite-backed.
Install (build from source)
tartarus-mcp is not published to npm or any other package registry. Build it from this repository, pinned to a reviewed commit:
git clone https://github.com/saluca-labs/tartarus-mcp.git
cd tartarus-mcp
git checkout d21ea0fc72dd4b1b348ce6f4d6f6090e54ffd152
npm ci --ignore-scripts=false
npm run build
node dist/index.js installinstall configures Claude Code, Cursor and Windsurf to run node /absolute/path/to/tartarus-mcp/dist/index.js, so keep the checkout where it is. It also prints the equivalent claude mcp add line for the Claude Code CLI.
--ignore-scripts=false is needed only if your npm config sets ignore-scripts=true: the better-sqlite3 dependency compiles or downloads its native binding in an install script.
Related MCP server: heropen
Manual setup
After building, add this to your MCP settings, using the absolute path of your checkout:
{
"mcpServers": {
"tartarus": {
"command": "node",
"args": ["/absolute/path/to/tartarus-mcp/dist/index.js"]
}
}
}Without a local checkout
npm can fetch and build the pinned commit straight from GitHub. This does not use the npm registry for tartarus-mcp itself; its third-party dependencies still come from npm.
{
"mcpServers": {
"tartarus": {
"command": "npx",
"args": ["-y", "--ignore-scripts=false", "github:saluca-labs/tartarus-mcp#d21ea0fc72dd4b1b348ce6f4d6f6090e54ffd152"]
}
}
}The first start takes about 30 seconds while it builds. Pin a full commit SHA, never a branch.
Tools
Tool | Description |
| Store a memory (topics auto-extracted) |
| Retrieve memories by topic |
| Full-text search across all memories |
| Delete a memory by ID |
| List recent memories |
| Read the agent profile (empty |
| Merge changes into the agent profile |
Agent profile
Memory answers what happened. The profile answers who am I working with, and how do we work - the standing facts an agent would otherwise re-derive every session, or re-ask about.
It starts empty and the agent fills it in over time:
// profile_get on a fresh install
{ "profile": {}, "updated_at": null, "revision": 0 }
// profile_update { "patch": { "user": { "name": "Ada" }, "tone": "terse" } }
{ "profile": { "user": { "name": "Ada" }, "tone": "terse" }, "revision": 1, ... }
// profile_update { "patch": { "user": { "role": "engineer" }, "tone": null } }
{ "profile": { "user": { "name": "Ada", "role": "engineer" } }, "revision": 2, ... }Merge semantics, because this is the part that is easy to get wrong:
objects merge recursively, so setting one field keeps its siblings
nulldeletes a key - the only way to remove onearrays replace wholesale; positional merging of lists is never what a caller means
"replace": trueswaps the whole document, for a deliberate reset
What goes where. Durable facts about the person, the project or the working agreement belong
in the profile. Things that happened belong in memory_remember. The distinction matters
because memories decay and compete for recall, while the profile is one small document meant to
be read in full at the start of a session.
The profile lives in its own table in the same SQLite file, so memory_forget cannot delete part
of an identity by id and decay cannot quietly age out a working agreement.
Config
TARTARUS_DB=/path/to/memory.db # default: ~/.tartarus/memory.dbEnterprise
Hash-chained audit trails, multi-tenant isolation, compliance controls, and team memory at asphodel.ai.
License
Functional Source License 1.1, Apache 2.0 Future License (FSL-1.1-ALv2), see LICENSE. Each version becomes available under the Apache License 2.0 on the second anniversary of its release. Copyright Saluca LLC.
The vendored Asphodel core in src/vendor/asphodel/ (and its tests in tests/vendor/asphodel/) is licensed under the Apache License 2.0, not FSL; see its LICENSE and NOTICE, which record the origin commit.
Versions 0.2.0 and earlier were published to npm with an Apache-2.0 licence field, and those releases remain available under Apache 2.0.
Distribution
npm is no longer a distribution channel. On 2026-09-16 Saluca removed all of its packages from npm, including tartarus-mcp and @saluca/asphodel, which tartarus-mcp used to depend on. That is why the Asphodel core is vendored here, why package.json is "private": true, and why the npm publish workflow was removed. Install from source as described above. Do not install a package named tartarus-mcp from npm: it is not ours.
This server cannot be deployed
Maintenance
Related MCP Connectors
Persistent memory for AI agents across Claude, ChatGPT and any MCP client.
- memnodeOAuthdev.memnode
Persistent, inspectable memory for AI agents with lineage, correction, and a hosted MCP endpoint.
Persistent personal memory for AI assistants — save, search, and recall across every MCP client.
An MCP memory server. One memory your agents share — across models, devices and apps.
Related MCP Servers
- AlicenseAqualityCmaintenanceA local-first MCP server for durable agent memory using SQLite and FTS5, enabling knowledge graph storage, search, and recall for AI agents.201MIT
- AlicenseNot gradedqualityAmaintenanceA local memory server for AI agents that stores and retrieves information via MCP, keeping all data in SQLite on your machine.288 PyPI1Apache 2.0
- AlicenseAqualityBmaintenanceA local MCP memory server for AI agents to manage memory with evidence-backed, versioned mutations, using SQLite with FTS5 for storage and search.6Apache 2.0
- AlicenseNot gradedqualityBmaintenanceLocal-first MCP memory server providing persistent, versioned, queryable memory for AI agents using JSON categories and SQLite FTS5, with optional fleet sync.2Apache 2.0