Mcp Semantic Memory — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Mcp Semantic Memory (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Persistent memory with semantic search for Claude and MCP-compatible clients
Give your AI assistant persistent memory that survives between conversations. Save context once, retrieve it intelligently forever.
Problem: Claude forgets everything between conversations. You constantly re-explain your context, projects, preferences, and tech stack.
Solution: This MCP server gives Claude persistent memory with intelligent semantic search. Save information once, and Claude retrieves it automatically when relevant.
// Save once
save_memory("project-info", "Working on an e-commerce site with Next.js and Stripe")
// Days later, in a new conversation
User: "How do I add payments to my project?"
Claude: *searches memory* "Since you're using Stripe in your e-commerce project..."# Clone the repository
git clone https://github.com/GFYURI/mcp-semantic-memory.git
cd mcp-semantic-memory
# Install dependencies (pnpm recommended)
pnpm install
# or: npm installAdd to your MCP client config (e.g., Claude Desktop):
Windows: %APPDATA%\Claude\claude_desktop_config.json macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"semantic-memory": {
"command": "node",
"args": ["/absolute/path/to/mcp-semantic-memory/index.js"]
}
}
}Example (Windows):
{
"mcpServers": {
"semantic-memory": {
"command": "node",
"args": ["C:\\Users\\YourName\\mcp-semantic-memory\\index.js"]
}
}
}#### save_memory(id, text, metadata?) Save a memory with semantic embedding.
save_memory({
id: "my-cat",
text: "My cat's name is Mia, she's orange and very playful",
metadata: { category: "personal", type: "pet" }
})#### search_memory(query, n_results?, threshold?) Search memories by semantic similarity.
search_memory({
query: "what's my pet's name?",
n_results: 5, // optional, default: 5
threshold: 0.3 // optional, default: 0.3 (0-1 scale)
})#### get_memory(id) Retrieve a specific memory by ID.
#### delete_memory(id) Delete a memory permanently.
#### list_all_memories() List all stored memories (ordered by last update).
#### get_user_bio() Get the user's complete biographical profile.
#### set_user_bio(data) Create or update user biography. All fields are optional.
set_user_bio({
nombre: "Angel",
ocupacion: "Student",
ubicacion: "Santiago, Chile",
tecnologias: ["Python", "JavaScript", "Node.js"],
herramientas: ["VS Code", "Docker", "pnpm"],
idiomas: ["Spanish", "English"],
timezone: "America/Santiago",
mascotas: ["Mia (cat)"]
})#### update_user_bio(field, value) Update a single field in the biography.
update_user_bio({
field: "tecnologias",
value: ["Python", "JavaScript", "TypeScript"]
})Traditional keyword search:
Query: "what's my pet's name?"
Memory: "My cat Mia is orange"
Result: ❌ No matches (different words)Semantic search:
Query: "what's my pet's name?"
Memory: "My cat Mia is orange"
Result: ✅ 78% similarity (understands meaning)-- Memories table
CREATE TABLE memories (
id TEXT PRIMARY KEY,
text TEXT NOT NULL,
embedding TEXT NOT NULL, -- JSON array of 384 floats
metadata TEXT, -- JSON object
created_at TEXT NOT NULL,
updated_at TEXT NOT NULL
);
-- User biography table
CREATE TABLE user_bio (
id INTEGER PRIMARY KEY CHECK (id = 1),
nombre TEXT,
ocupacion TEXT,
ubicacion TEXT,
tecnologias TEXT, -- JSON array
herramientas TEXT, -- JSON array
idiomas TEXT, -- JSON array
timezone TEXT,
mascotas TEXT, -- JSON array
created_at TEXT NOT NULL,
updated_at TEXT NOT NULL
);| Feature | This MCP | @modelcontextprotocol/server-memory |
|---|---|---|
| Semantic Search | ✅ | ❌ |
| User Biography | ✅ | ❌ |
| Storage | SQLite | In-memory |
| Persistence | ✅ Disk | ❌ RAM only |
| Scalability | 1000s of memories | Limited |
| Search Speed | Fast (indexed) | N/A |
# Install dependencies
pnpm install
# Run locally
node index.js
# Test with MCP inspector
npx @modelcontextprotocol/inspector node index.jsThe embedding model is being downloaded (~25MB). Subsequent runs are instant.
sharp installation fails on Windowspnpm rebuild sharp
# or
pnpm install --forceClose other connections to memory.db or restart your MCP client.
Check that the absolute path in your MCP config is correct.
Contributions are welcome! Feel free to:
MIT License - feel free to use this in your own projects!
If you find this useful, consider giving it a star! It helps others discover the project.
Made with ❤️ for the MCP community
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.