
Security News
GitHub Actions Adds cache-mode to Limit Cache Poisoning Risk
GitHub Actions now supports cache-mode, a least-privilege control on the Actions cache aimed at the cache poisoning technique behind recent compromises.
memory-mcp-lite
Advanced tools
A lightweight, structured, token-efficient local-first MCP memory server (Drizzle + libSQL)
A local-first, token-efficient MCP memory server for AI coding clients (Windsurf, Cursor, Claude Desktop, and any MCP-compatible client).
A lightweight, structured memory layer that persists across AI coding sessions. It complements your AI client's built-in context by storing durable, structured knowledge.
What it stores:
What it does NOT do:
Retrieval policy (summary-first)
│
▼
Stage 1: global / project / task summaries // compact, always cheap
│
▼ (only if summaries insufficient)
Stage 2: FTS5 light search → compact candidates
│
▼ (only for top 1-3 results)
Stage 3: full memory detail
Memory is organized in a tree:
global
└── project
├── [project_summary]
└── task
├── [task_summary]
└── atomic // decision | fact | gotcha | command | link | convention
Optional graph-lite edges connect nodes across the tree: related_to, depends_on, affects, caused_by, supersedes, references.
Stack:
@libsql/client)@modelcontextprotocol/sdk)Add to your MCP client config and the package will be fetched automatically via npx.
Windsurf (~/.codeium/windsurf/mcp_config.json):
{
"mcpServers": {
"memory-mcp-lite": {
"command": "npx",
"args": ["memory-mcp-lite"]
}
}
}
Claude Desktop (~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"memory-mcp-lite": {
"command": "npx",
"args": ["memory-mcp-lite"]
}
}
}
npm install
npm run build # outputs to dist/index.js (schema is auto-created on first run)
Custom DB path - set MEMORY_DB_PATH (preferred) or DATABASE_URL:
MEMORY_DB_PATH="/path/to/custom.db" npm run dev
# or point at a remote libSQL / Turso database:
MEMORY_DB_PATH="libsql://your-db.turso.io" MEMORY_DB_AUTH_TOKEN="..." npm run dev
After building, point your MCP client at the compiled output:
Windsurf (~/.codeium/windsurf/mcp_config.json):
{
"mcpServers": {
"memory-mcp-lite": {
"command": "node",
"args": ["/absolute/path/to/memory-mcp/dist/index.js"]
}
}
}
Claude Desktop (~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"memory-mcp-lite": {
"command": "node",
"args": ["/absolute/path/to/memory-mcp/dist/index.js"]
}
}
}
For development without a build step, use tsx:
{
"mcpServers": {
"memory-mcp-lite": {
"command": "npx",
"args": ["tsx", "/absolute/path/to/memory-mcp/apps/server/src/index.ts"]
}
}
}
| Tool | When to use |
|---|---|
get_global_summary | Recurring preferences, coding style, cross-project conventions |
get_project_summary | Project architecture, key decisions, long-term context |
get_task_summary | Resume previous work, recall progress or next steps |
search_memory_light | When summaries aren't enough - returns compact candidates only |
get_memory_detail | Load full detail for a specific memory (follow-up to search) |
remember_decision | Store architecture choices, trade-offs, rejected alternatives |
remember_fact | Store commands, env facts, gotchas, links, conventions |
upsert_project_summary | Update after major architectural changes or new conventions |
upsert_task_summary | Update after progress, blockers, or plan changes |
Retrieval discipline enforced by server instructions:
Projects are identified by (in priority order):
This makes memory portable even when clients provide inconsistent paths.
npm run typecheck # TypeScript check
npm run lint # oxlint
npm run build # bundle with esbuild
npm run dev # start dev server with tsx watch
npm run db:studio # open Drizzle Studio to browse data
npm run db:generate # generate migration SQL from schema changes
DB location: ~/.memory-mcp/memory.db (default). Override with MEMORY_DB_PATH, MEMORY_DATA_DIR, or DATABASE_URL.
Schema: apps/server/src/db/schema.ts (Drizzle). The schema is re-asserted on every startup via ensureSchema() in apps/server/src/db/migrate.ts, which also creates the FTS5 virtual table and triggers.
Remote libSQL / Turso: set MEMORY_DB_PATH to a libsql://… URL and MEMORY_DB_AUTH_TOKEN to the token.
| Tool | Use when |
|---|---|
get_global_summary | recurring preferences, cross-project conventions |
get_project_summary | architecture, key decisions, long-term context |
get_task_summary | resuming work |
search_memory_light | summaries aren't enough — compact candidates only |
get_memory_detail | full detail for a specific result (follow-up to search) |
remember_decision | architecture choices, trade-offs, rejected alternatives |
remember_fact | commands, env facts, gotchas, links, conventions |
upsert_project_summary | after major arch changes or new conventions |
upsert_task_summary | after progress, blockers, or plan changes |
FAQs
A lightweight, structured, token-efficient local-first MCP memory server (Drizzle + libSQL)
The npm package memory-mcp-lite receives a total of 11 weekly downloads. As such, memory-mcp-lite popularity was classified as not popular.
We found that memory-mcp-lite demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.

Security News
GitHub Actions now supports cache-mode, a least-privilege control on the Actions cache aimed at the cache poisoning technique behind recent compromises.

Company News
Allow myself to introduce... myself.

Research
/Security News
A Twitch browser extension on Chrome and Firefox forwards users’ live OAuth session tokens through proxies controlled by a Russian bot service.