Persistent Kb Mcp — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Persistent Kb Mcp (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.
A Model Context Protocol (MCP) server that gives any MCP-capable AI agent a persistent, searchable knowledge base stored locally in a single SQLite file. Survives session restarts, context compaction, and machine reboots.
Exposes 5 MCP tools for interacting with a local SQLite knowledge base:
| Tool | Purpose |
|---|---|
kb_add | Save a fact, lesson, decision, or reference (with title, kind, tags) |
kb_search | Full-text search via SQLite FTS5 |
kb_show | Fetch a single entry's full content + metadata |
kb_list | Browse entries, filter by kind / tag / date |
kb_tag | Add or remove tags on an existing entry |
Storage default: ~/.persistent-kb/kb.sqlite (override via KB_DB).
AI coding agents lose everything between sessions. This server lets your agent save and recall facts across sessions — without sending data to a cloud service.
Requires Python 3.10+.
pip install canola-persistent-kb-mcpOr from source:
pip install git+https://github.com/0x67108864/persistent-kb-mcp.gitAdd to your ~/.claude/mcp.json (or the project-local equivalent):
{
"mcpServers": {
"persistent-kb": {
"command": "persistent-kb-mcp"
}
}
}Restart Claude Code and the 5 kb_* tools become available.
Each runtime has its own way of registering MCP servers; the command is always persistent-kb-mcp. Refer to your runtime's MCP configuration documentation.
Once configured, try these in your agent:
"Remember that Stripe's standard payout schedule in Japan is 7 days,
domestic card fee is 3.6% + ¥40."
→ agent calls kb_add(title=..., kind="reference", tags="stripe,japan", content=...)
(later, in a new session)
"What did we learn about Stripe payouts in Japan?"
→ agent calls kb_search(query="stripe payout japan")
→ retrieves the saved reference and uses it| Env var | Default | Purpose |
|---|---|---|
KB_DB | ~/.persistent-kb/kb.sqlite | DB file location |
| Concern | This server | Cloud memory |
|---|---|---|
| Network required | ❌ | ✅ |
| API key required | ❌ | ✅ |
| Data leaves your machine | ❌ | ✅ |
| Vendor lock-in | None (SQLite) | Service-specific |
| Cost | Free | Per-token / per-call |
Use this when local-first matters. Use cloud memory when you actually want cross-device sync.
git clone https://github.com/0x67108864/persistent-kb-mcp.git
cd persistent-kb-mcp
python -m venv .venv && source .venv/bin/activate
pip install -e .
python -m persistent_kb_mcp # runs the server on stdioThe SQLite schema is created automatically on first use. It defines:
entries — primary table (id, title, kind, content, timestamps, optional superseded_by)tags — many-to-many between entries and tag stringsentries_fts — FTS5 virtual table for keyword searchrelations — typed links between entriesSee src/persistent_kb_mcp/db.py for the DDL.
canola_oil/skills/persistent-kb — instruction-based, drop-in folder for agentskills.io runtimesMIT — see LICENSE.
canola_oil — https://0x67108864.github.io/
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.