Skip to main content
Glama

ContextKeep Banner

ContextKeep 🧠

Infinite Long-Term Memory for AI Agents

Version: 1.2 Status: Stable Platform: Linux | Windows | macOS License: MIT Python 3.10+ MCP Compliant Donate with PayPal

ContextKeep is a powerful, standalone memory server that gives your AI agents (Claude, Cursor, Gemini, OpenCode, and more) a persistent, searchable brain. Stop repeating yourself β€” let your AI remember everything, permanently.

Features β€’ What's New in V1.2 β€’ Installation β€’ MCP Tools β€’ Web Dashboard β€’ Configuration


🌟 Features

  • ♾️ Infinite Context: Store unlimited project details, preferences, decisions, and snippets β€” no expiry, no size cap.

  • πŸ’° Save Money & Tokens: Pull only the memories that matter, slashing context window usage and API costs.

  • πŸ”Œ Universal Compatibility: Works with any MCP-compliant client via Stdio (local) or SSE (remote/homelab).

  • 🧭 Memory Index Protocol: A reliable two-step retrieval system β€” list_all_memories() β†’ retrieve_memory() β€” so agents always find the right key, every time.

  • πŸ–₯️ Modern Web Dashboard: Manage your memories visually with Grid, List, and Calendar views in a sleek dark interface.

  • πŸ”’ Privacy First: 100% local storage. Your data never touches an external server.

  • πŸ”Ž Smart Search: Keyword and semantic search across all memory content.

  • 🐧 Linux Service: Runs silently in the background as a systemd service.


ContextKeep Showcase


πŸ†• What's New in V1.2

🧭 list_all_memories() β€” The Memory Index Tool

The headline feature of V1.2. Agents can now call list_all_memories() to receive a complete directory of every stored memory β€” key, title, tags, and last-updated timestamp β€” in a single call. This eliminates unreliable fuzzy key guessing and makes memory retrieval 100% deterministic.

πŸ“š Memory Directory β€” 140 total memories: ================================================== πŸ”‘ Key: GJ_Personal_Setup_Master Title: Personal System Specifications (Master Record) Tags: setup, specs, desktop, homelab Updated: 2026-02-19T12:37 πŸ”‘ Key: GeekJ_Video_Shield_vs_Streamer_2026 Title: GeekJ Video: Shield TV Pro vs Google TV Streamer 4K Tags: GeekJ, YouTube, video, streaming Updated: 2026-02-10T22:06 ...

The recommended retrieval protocol for agents:

Step 1: Call list_all_memories() β†’ scan the directory for the exact key. Step 2: Call retrieve_memory(exact_key) β†’ fetch the full content.

Only use search_memories() for content-based searches, not key lookup.


🎨 Obsidian Lab UI Redesign

The web dashboard has been completely reskinned with a premium dark "Obsidian Lab" aesthetic:

  • Deep navy background with electric cyan (#00e5ff) accents

  • JetBrains Mono for memory keys β€” instantly distinguishable at a glance

  • Violet tag chips on Grid cards

  • Live memory count badge in the top-right header

πŸ“… Enhanced Calendar View

  • Full month navigation β€” scroll forward and backward through your memory timeline

  • Cleaned-up layout β€” the "Recent Memories" sidebar has been removed for a focused, distraction-free calendar experience

πŸƒ Richer Grid Cards

Grid view cards now show:

  • Tag chips β€” all tags displayed as coloured pills directly on the card

  • Character count badge β€” instant size indicator per memory (e.g. 2.1k chars)


πŸš€ Installation

Prerequisites

  • Python 3.10 or higher

  • Git (optional)

Quick Start

  1. Clone the repository:

    git clone https://github.com/mordang7/ContextKeep.git cd ContextKeep
  2. Run the Installer:

    • Linux/macOS:

      python3 install.py
    • Windows:

      python install.py
  3. Follow the Wizard: The installer creates a virtual environment, installs dependencies, and generates a ready-to-use mcp_config.json.


πŸ› οΈ MCP Tools

ContextKeep exposes 5 MCP tools to any connected agent:

Tool

Signature

Purpose

list_all_memories

(no args)

[USE FIRST] Returns a full directory of all memory keys, titles, tags, and timestamps

retrieve_memory

(key: str)

Fetch the full content of a specific memory by exact key

store_memory

(key: str, content: str, tags: str)

Create or update a memory

search_memories

(query: str)

Content-based keyword/semantic search across all memories

list_recent_memories

(no args)

Return the 10 most recently updated memories

Add this to your GEMINI.md, AGENTS.md, or CLAUDE.md:

## Memory Index Protocol (MANDATORY) 1. FIRST β€” call `list_all_memories()` to get the complete key directory 2. THEN β€” call `retrieve_memory(exact_key)` using the exact key from step 1 Only use `search_memories()` for content-based searches, NOT for key lookup.

πŸ”Œ Configuration

Copy the contents of mcp_config.example.json into your AI client's config file and update the paths.

Option 1: Local (Claude Desktop / Gemini CLI / Cursor)

{ "mcpServers": { "context-keep": { "command": "/absolute/path/to/ContextKeep/venv/bin/python", "args": ["/absolute/path/to/ContextKeep/server.py"] } } }

Option 2: Remote via SSH (Homelab / Raspberry Pi)

Run ContextKeep on a home server and access it from any machine on your network:

{ "mcpServers": { "context-keep": { "command": "ssh", "args": [ "-i", "/path/to/private_key", "user@192.168.1.X", "'/path/to/ContextKeep/venv/bin/python'", "'/path/to/ContextKeep/server.py'" ] } } }

Option 3: SSE Mode (HTTP)

Ideal for OpenCode, web apps, or any client that prefers HTTP transport:

{ "mcpServers": { "context-keep": { "transport": "sse", "url": "http://localhost:5100/sse" } } }

🌐 Web Dashboard

ContextKeep ships with a full-featured web UI to manage your memories without touching the CLI.

  • URL: http://localhost:5000

  • Grid View: Memory cards with tag chips, char counts, and inline actions

  • List View: Dense, scannable table with all memories sorted by last updated

  • Calendar View: Browse your memory history by month

  • Search: Real-time filtering across titles, keys, and content

  • Full CRUD: Create, view, edit, and delete memories from the browser

To start manually:

./venv/bin/python webui.py

Run both the MCP server and Web UI as persistent background services:

chmod +x install_services.sh ./install_services.sh

This installs:

Service

Port

Purpose

contextkeep-server

5100

MCP server (SSE transport)

contextkeep-webui

5000

Web dashboard

Manage services:

sudo systemctl status contextkeep-server sudo systemctl restart contextkeep-webui

πŸ“‹ Changelog

V1.2 β€” Obsidian Lab

  • βœ… New list_all_memories() MCP tool β€” complete memory directory in one call

  • βœ… Obsidian Lab UI redesign β€” dark premium aesthetic with cyan/neon accents

  • βœ… Memory count live badge in the header

  • βœ… Calendar month navigation (forward/back)

  • βœ… Grid cards now show tag chips and character count badges

  • βœ… Removed "Recent Memories" sidebar for a cleaner calendar layout

  • βœ… Memory Index Protocol V1.2 β€” standardised two-step agent retrieval pattern

V1.1

  • Web dashboard with Grid, List, and Calendar views

  • SSE transport support alongside Stdio

  • Linux systemd service installer

  • Memory titles and timestamps

V1.0

  • Core MCP server with store_memory, retrieve_memory, search_memories

  • SQLite-backed persistent storage

  • SSH remote transport support


🀝 Contributing

Contributions are welcome. Open a PR, file an issue, or suggest a feature β€” all input is appreciated.

β˜• Support the Project

If ContextKeep saves you time, tokens, or sanity β€” consider buying me a coffee.

Donate with PayPal


-
security - not tested
F
license - not found
-
quality - not tested

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/mordang7/ContextKeep'

If you have feedback or need assistance with the MCP directory API, please join our Discord server