LocalKeep MCP server
Provides a local, chronological memory layer that allows AI clients to query and recall user-curated, dated memory banks via MCP.
Also known as zuneracodes/localkeep
- Stars
- 1
- Tools
- —
- Downloads, 30 days
- 267
- Latest version
- 0.1.3
- Last commit
- Aug 13, 2026
- License
- MIT
What is LocalKeep MCP?
LocalKeep provides a local, chronological memory layer that allows AI clients to query and recall user-curated, dated memory banks via MCP.
Summary generated from the project's README
About LocalKeep MCP server
Managing a chronological personal history for AI assistants is what LocalKeep enables by providing a local memory layer. Instead of relying on cloud-based summaries that can be inaccurate or uneditable, users curate their own dated memory banks on their own machines. This tool is designed for researchers, diarists, and anyone who needs an AI to recall exact dates and specific events without the risk of hallucinations or generic summaries.
Users interact with their data through a local Hub UI that features a retro aesthetic for managing entries. The system operates as a local database, typically stored in a file like localkeep.db, and connects to Claude Desktop via a native Model Context Protocol connector. While the storage and management remain entirely on your hardware, the specific text fragments retrieved during a query are sent to Anthropic to provide context for the conversation. Setup involves installing the package via pip or uv and configuring the claude_desktop_config.json file to point to the localkeep-mcp command.
What you can do with it
- 1Retrieving specific historical factsAsk an AI to find a specific event or decision you logged months ago using your exact words.
- 2Maintaining temporal reasoningProvide the AI with a rigid timeline to ensure it understands the relationship between different past events.
- 3Controlling personal data privacyKeep your foundational context database stored locally on your own machine rather than in a cloud service.
Written from the project's README. Every use case is checked against a quote from it.
How to install LocalKeep MCP
Formats verified 10 Nov 2026Install LocalKeep MCP in Claude Code
$ claude mcp add localkeep -- uvx localkeepInstall LocalKeep MCP in Cursor
~/.cursor/mcp.json
{
"mcpServers": {
"localkeep": {
"command": "uvx",
"args": [
"localkeep"
]
}
}
}Install LocalKeep MCP in VS Code
.vscode/mcp.json
{
"servers": {
"localkeep": {
"type": "stdio",
"command": "uvx",
"args": [
"localkeep"
]
}
}
}Install LocalKeep MCP in Claude Desktop
claude_desktop_config.json
{
"mcpServers": {
"localkeep": {
"command": "uvx",
"args": [
"localkeep"
]
}
}
}Install LocalKeep MCP in Codex
~/.codex/config.toml
[mcp_servers.localkeep] command = "uvx" args = ["localkeep"]
Install LocalKeep MCP in Gemini CLI
~/.gemini/settings.json
{
"mcpServers": {
"localkeep": {
"command": "uvx",
"args": [
"localkeep"
]
}
}
}Configuration
LOCALKEEP_DATA_DIROptional directory for the SQLite DB (default: ~/.localkeep)
LOCALKEEP_DB_PATHOptional full path to localkeep.db
LOCALKEEP_HUB_RELOAD
| Name | Description | |
|---|---|---|
| LOCALKEEP_DATA_DIR | Optional directory for the SQLite DB (default: ~/.localkeep) | |
| LOCALKEEP_DB_PATH | Optional full path to localkeep.db | |
| LOCALKEEP_HUB_RELOAD | — |
README
View on GitHubLocalKeep
LocalKeep is for anyone who wants a chronological memory layer for chatbots where they directly control what the model remembers about them. Instead of forcing you to rely on a black-box cloud memory that the model invents around you that you can't even edit, LocalKeep lets you curate titled, dated, editable memory banks directly on your own machine where you write the entries and manage them locally via a localhost Hub UI. When a conversation requires your prior context, Claude queries your local data through a secure, native Model Context Protocol (MCP) connector.
Why use LocalKeep
AI Chat apps are great at sounding like they remember you, but struggle at recalling the exact thing you care about — what happened, on which date, about whom? Consumer memory features tend to lack the capacity for true temporal reasoning, flattening your history into a soft, generic vibe summary instead of understanding that Event A triggered Event B three months ago, causing its reasoning to fail when you need something specific: a life event, a research arc, a decision you logged months ago. Worse yet, consumer AI memory is a black box: you don't get to decide what the model chooses to remember about you, how it interprets your life, or when it invents context around you.
LocalKeep fixes both structural flaws at once by replacing fragile, model-invented timelines with a rigid, chronological source of your truth, all while giving you absolute editorial control. You decide exactly what the AI is allowed to know about you. You write the entries, you anchor the dates, and you keep them local on your own machine. Claude simply acts as the lookup engine via MCP when a conversation requires your prior context. LocalKeep bridges the gap between structured personal logging and intelligent AI retrieval, ensuring your context is curated by you—not hallucinated by an LLM.
Who it’s for
- Anyone frustrated that chat memory can’t reliably fetch dated facts or understand timelines
- People who already maintain meticulous personal diaries, work logs, or research archives. Instead of settling for a generic chat-app paraphrase, you get to inject your exact words and historical data into the prompt as an unyielding source of truth.
- Users who trust Claude for its reasoning capability, but demand that their foundational context database remains stored locally under their own roof. (Note: Querying memories via MCP still sends the retrieved text fragments to Anthropic during the session).
What it is (and isn’t)
- Is: A lightweight customizable local Hub UI to manage your dated memory banks, paired with an MCP server that Claude Desktop can call.
- Isn’t: A standalone chat application, a cloud-hosted memory API, or a background utility that silently scrapes your personal conversations.
The Aesthetic Philosophy
The Hub UI intentionally adopts a retro, Windows 95/MS Paint-inspired homage with customizable features to ensure LocalKeep feels like a deeply personal tool rather than an impersonal, rigid dashboard. By putting adjustable interface elements right at your fingertips, the UI signals that you are entering an intimate, offline workshop for your mind—a space you can shape and reconfigure to feel entirely like your own.
Install
pip install localkeep
# or: uv tool install localkeep
Then:
localkeep-hub # http://127.0.0.1:8000
In Claude Desktop, register the MCP server (claude_desktop_config.json):
{
"mcpServers": {
"localkeep": {
"command": "localkeep-mcp",
"args": []
}
}
}
If the GUI can’t find localkeep-mcp on your PATH, use the absolute path from which localkeep-mcp (the Hub’s Connect panel copies this for you).
Memories default to ~/.localkeep/localkeep.db when installed via pip. Override with LOCALKEEP_DATA_DIR or LOCALKEEP_DB_PATH.
Auto-use LocalKeep (important)
Claude will not reliably call MCP tools unless you also set Personal preferences:
- Claude Desktop → Settings → Profile → Personal preferences
- Paste the LocalKeep instructions (Hub → Connect → Copy instructions, or see
src/localkeep/assets/claude-personal-preferences.txt) - Quit Claude completely and reopen
- When LocalKeep asks to run a tool, click Always approve
Develop from source
git clone https://github.com/zuneracodes/localkeep
cd localkeep
uv sync --group dev
uv run localkeep-hub # http://127.0.0.1:8000
# optional live reload:
LOCALKEEP_HUB_RELOAD=1 uv run localkeep-hub
From a source checkout, the DB lives in data/localkeep.db (gitignored).
Tests
These smoke-check the Hub, retrieval, and MCP tools so a fresh install still stores and recalls dated memories the way a real user would.
uv sync --group dev
uv run pytest
Tests start from an empty DB and create memories through Hub form POSTs (same path as a new user).
Privacy
Storage is local. Banks and memories live in your chosen DB path (~/.localkeep/ for pip installs, or data/localkeep.db in a checkout). There is no LocalKeep cloud and nothing is auto-scraped from chat. Theme colors stay in browser localStorage. Refreshing the Hub page or restarting localkeep-hub does not delete your banks — only removing the database file does.
Recall goes through Claude. The Hub and database stay on your machine, but when Claude calls a LocalKeep MCP tool, the matching memories are returned into that chat and Anthropic processes them like any other tool result. LocalKeep isn’t shipping your whole DB upstream — only what that lookup returns for the question at hand.
Contributing
Bug reports and pull requests are welcome via GitHub Issues. Please run uv run pytest before opening a PR.
License
MIT — see LICENSE.
LocalKeep MCP questions
How do I add LocalKeep MCP to Claude Code?
Run claude mcp add localkeep -- uvx localkeep in your terminal. Add --scope user to make it available in every project.
How do I add LocalKeep MCP to Cursor?
Open ~/.cursor/mcp.json and add the server under mcpServers, using the Cursor config shown in the install section above.
Does LocalKeep send my entire database to Anthropic?
No, only the specific text fragments retrieved during a tool lookup are sent to the model during a session.
How do I make Claude use LocalKeep reliably?
You must paste specific instructions into Claude Desktop's Personal preferences and restart the application.