Agent memory that needs no API key, no LLM, and no embedding provider. One command on Bun and it is serving MCP over stdio against a local SQLite store. Drop-in for the MCP reference memory server. Every memory keeps its source, who may read it, and the evidence that contradicts it.
Setup
Choose your client, copy the config, then fill in any required environment variables.
claude mcp add titen-memory --env TITEN_API_KEY='<TITEN_API_KEY>' -- npx -y titen-memory~/.codex/config.toml
[mcp_servers.titen-memory]
command = "npx"
args = ["-y", "titen-memory"]
env = { TITEN_API_KEY = "<TITEN_API_KEY>" }
# codex mcp add titen-memory --env TITEN_API_KEY='<TITEN_API_KEY>' -- npx -y titen-memory~/.cursor/mcp.json
{
"mcpServers": {
"titen-memory": {
"command": "npx",
"args": [
"-y",
"titen-memory"
],
"env": {
"TITEN_API_KEY": "<TITEN_API_KEY>"
}
}
}
}.vscode/mcp.json
{
"servers": {
"titen-memory": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"titen-memory"
],
"env": {
"TITEN_API_KEY": "<TITEN_API_KEY>"
}
}
}
}~/.gemini/settings.json
{
"mcpServers": {
"titen-memory": {
"command": "npx",
"args": [
"-y",
"titen-memory"
],
"env": {
"TITEN_API_KEY": "<TITEN_API_KEY>"
}
}
}
}claude_desktop_config.json
{
"mcpServers": {
"titen-memory": {
"command": "npx",
"args": [
"-y",
"titen-memory"
],
"env": {
"TITEN_API_KEY": "<TITEN_API_KEY>"
}
}
}
}.trae/mcp.json
{
"mcpServers": {
"titen-memory": {
"command": "npx",
"args": [
"-y",
"titen-memory"
],
"env": {
"TITEN_API_KEY": "<TITEN_API_KEY>"
}
}
}
}Environment variables
TITEN_API_KEY
Replace the placeholders with your own credentials and keep them out of version control.