Persistent memory for AI coding agents. Local-first SQLite + vector search. 17 MCP tools.
io.github.sgx-labs/same MCP Server
The io.github.sgx-labs/same Model Context Protocol (MCP) server provides persistent memory for AI coding agents. It uses a local-first setup with SQLite and vector search to support context surfacing for model inputs. The server exposes 17 MCP tools and is associated with topics including llm-memory, rag, and semantic-search.
๐ ๏ธ Key Features
Persistent memory for AI coding agents
Local-first SQLite storage
Vector search for retrieval
Context surfacing for coding workflows
17 MCP tools
๐ Use Cases
Retrieval-augmented generation (RAG) using stored context
Semantic search over locally indexed data
Agent memory persistence across coding sessions
Integrations with AI coding tools (e.g., Claude Code, Cursor, Windsurf)
โก Developer Benefits
Works with Model Context Protocol (MCP)
Uses SQLite plus vector search (sqlite-vec)
Supports llm-memory and ai-memory workflows
Enables semantic-search and context-surfacing patterns
โ ๏ธ Limitations
Local-first design implies stored context is tied to the local SQLite setup
Your AI forgets everything between sessions. SAME fixes that.
SAME gives every AI coding tool persistent memory. Claude Code, Cursor, Windsurf, Codex CLI, Gemini CLI โ one memory layer that works everywhere. It indexes your markdown notes, surfaces relevant context automatically, and records decisions and handoffs so your AI picks up where it left off.
One binary. Fully local. No cloud. No telemetry. Mac, Linux, Windows, Raspberry Pi.
Install
bash
# macOS / Linux
curl -fsSL https://statelessagent.com/install.sh | bash
# Windows (PowerShell)
irm https://statelessagent.com/install.ps1 | iex
Or via npm (all platforms): npm install -g @sgx-labs/same
Installed via npm? Update with npx same@latest or npm update -g @sgx-labs/same.
See It Work
bash
same demo
code
Indexing 5 sample notes...
Searching: "authentication decision"
1. decisions/auth-strategy.md (score: 0.94)
"We chose JWT with refresh tokens for..."
2. notes/api-security.md (score: 0.87)
"Auth middleware validates tokens at..."
Asking: "what did we decide about authentication?"
Based on your notes, you decided to use JWT with refresh
tokens (decisions/auth-strategy.md). The API middleware
validates tokens at the gateway level (notes/api-security.md).
No accounts. No API keys. Everything runs locally.
Quickstart
bash
# 1. Point SAME at your projectcd ~/my-project && same init
# 2. Test search
same search "authentication decision"# 3. Done. Your AI now has memory.# Start Claude Code, Cursor, or any MCP client.
same init sets up hooks and MCP tools automatically. Your AI gets relevant context on every session start.
Key Features
Your AI remembers everything -- Decisions, handoffs, and context survive across sessions. Close your terminal, switch projects, come back tomorrow. Nothing gets lost.
Memory integrity -- Tracks provenance (where notes came from), detects when source files change, and flags stale knowledge. Stale notes rank lower in search automatically. same health shows trust state across your vault.
Dual-layer memory -- Extracts atomic facts from your notes via LLM. Facts are independently searchable and boost source notes in search results. The right answer surfaces even when the fact is buried in an unrelated conversation.
Streamable HTTP transport -- same web --mcp enables an HTTP MCP endpoint with Bearer token auth. Connect from Open WebUI, LobeChat, or any HTTP MCP client โ no stdio required.
Works with your tools -- 19 MCP tools for Claude Code, Cursor, Windsurf, or any MCP client. Search, save decisions, create handoffs without leaving your editor.
Safe for teams -- Multiple AI agents on the same codebase won't step on each other. File claims, push protection, and attribution built in.
Instant expertise -- 17 pre-built knowledge vaults with 870+ curated notes. One command to install. Your AI gets domain knowledge in seconds.
Connected knowledge -- See how decisions, files, and notes relate to each other. Ask "what depends on this?" and get real answers. Powered by SQLite.
Security & Teams
SAME includes built-in PII scanning and push protection:
PII scanning -- Pre-commit hooks detect emails, API keys, secrets, and personal data before they reach git. Configurable blocklists with false-positive review workflow.
Push protection -- Multi-agent file claims prevent AI agents from overwriting each other's work. Advisory locks with attribution.
Audit logging -- Every guard scan, every allow decision, every override is logged.
Privacy tiers -- _PRIVATE/ is never indexed. research/ is indexed but never committed. Your notes, your rules.
bash
same guard settings set push-protect on # enable push protection
same guard scan # run PII scan manually
How It Works
code
Your Notes (.md) --> Embeddings --> SQLite --> Your AI Tool
(local or (search (Claude Code,
cloud) + rank) Cursor, etc.)
Your markdown notes get embedded and stored in SQLite. When your AI starts a session, SAME surfaces relevant context via hooks or MCP. Decisions get extracted. Handoffs get generated. The next session picks up where the last one stopped.
No Ollama? No problem. SAME runs with zero external dependencies using keyword search (SQLite FTS5). Add Ollama later for semantic search -- same reindex upgrades instantly.
Why SAME
Without SAME
With SAME
Re-explain everything each session
AI picks up where you left off
"Didn't we decide to use JWT?"
Decision surfaces automatically
"Is this note still accurate?"
Trust state flags stale knowledge
Close terminal = context lost
Handoff recovers the session
Copy-paste notes into chat
same ask with source citations
Context compacted mid-task
Pinned notes survive compaction
The Numbers
Metric
Value
Recall@5
100% keyword, 84% semantic on internal eval (68 cases). Held-out: 90% Recall@5 on 30 blind cases (see eval/METHODOLOGY.md)
MRR
0.65 keyword, 0.62 semantic
Prompt overhead
<200ms
Binary size
~14MB
Setup time
Under 2 minutes
Add to Your AI Tool
Claude Code (recommended)
bash
same init # installs 6 hooks + MCP automatically
Cursor / Windsurf / Any MCP Client
Add to your MCP config (.mcp.json, Cursor settings, etc.):
19 MCP tools available instantly. Works without Ollama (keyword fallback).
Switch between Claude Code and Cursor without losing context. Your memory travels with you.
Tool Compatibility
Claude Code gets full automatic handoffs via hooks. Cursor, Windsurf, Codex CLI, Gemini CLI get full MCP tool access (search, save, decisions, graph) but handoffs need to be triggered manually. We're working on automatic handoff support for more editors.
MCP Server
Tool
What it does
search_notes
Semantic search across your knowledge base
search_notes_filtered
Search with domain/tag/agent filters
search_across_vaults
Federated search across multiple vaults
get_note
Read full note content by path
find_similar_notes
Discover related notes
get_session_context
Pinned notes + latest handoff + git state
recent_activity
Recently modified notes
save_note
Create or update a note
save_decision
Log a structured project decision
create_handoff
Write a session handoff
reindex
Re-scan and re-index the vault
index_stats
Index health and statistics
mem_consolidate
Consolidate related notes via LLM
mem_brief
Generate orientation briefing
mem_health
Vault health with trust analysis
mem_forget
Suppress a note from search results
mem_restore
Undo mem_forget (unsuppress a note)
mem_list_suppressed
List suppressed notes
save_kaizen
Log improvement items with provenance
SeedVaults
Pre-built knowledge vaults. One command to install.
bash
same seed list # browse available seeds
same seed install claude-code-power-user # install one