Memory MCP Server
Uses Pydantic for configuration and configuration, enabling configuration and configuration via environment variables and environment variables. This allows for customizable configuration of the persistent memory, tasks, and Kanban board management.
Provides a container-ready containerized MCP server with OpenShift and Podman manifests, enabling AI agents to manage persistent memory, tasks, and Kanban boards with cloud-native deployment and deployment.
Stores memories in a local SQLite database with automatic creation and configuration, providing persistent memory functionality for AI agents across persistent memory, tasks, and Kanban board management.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Memory MCP ServerSearch my memories for the meeting notes from Monday"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Memory MCP Server
A Model Context Protocol (MCP) server that gives AI agents persistent memory. Memories are stored in a local SQLite database (auto-created, zero-config) and exposed through forty tools following a tools-first architecture. Built on the template-mcp-server production scaffold (FastMCP + FastAPI, structured logging, containers, OpenShift manifests, CI).
Features
40 MCP tools across four domains: memory, tasks, time (reminders/alerts), dashboard
Seven memory tools: store, get, search, list, update, delete, projects
Seven todo tools: create/search/list/get/update/complete/delete with priority and due dates
Eight kanban tools: boards with configurable columns; card add/move/update/delete
Seven tracker tools: status trackers whose entries roll up into progress metrics
SQLite persistence via aiosqlite — single file, tuned WAL baseline, auto-created
Full-text keyword search — whole-word, porter-stemmed matching over an FTS5 index, ranked by relevance (best match first)
Tags & metadata on memories and todos
FastMCP + FastAPI with multiple transports (HTTP, SSE, streamable-HTTP)
Pydantic configuration via environment variables
Structured JSON logging with structlog
OAuth integration (disabled by default; see
docs/authentication.md)Container-ready (Red Hat UBI base image) and OpenShift manifests included
Search & storage behavior
Search (memory_search, todo_search) matches whole-word tokens over a
porter-stemmed full-text index: partial words never match (querying check
will not match checklist), punctuation and operators are treated literally,
and results are ranked by bm25 relevance — strongest match first, newest first
on ties. Note that unicode61 tokenization treats a whole CJK sentence as a
single token, so whole-word matching assumes space-delimited scripts.
Databases run in WAL mode with synchronous=NORMAL: recently committed
transactions can be lost on an OS crash or power failure (an accepted tradeoff
for notes/tasks — not suitable as a system of record). Steady-state WAL size
is bounded by wal_autocheckpoint (~1000 pages ≈ 4 MiB);
journal_size_limit (8 MiB) only lets SQLite truncate the WAL file back once
checkpoints free it. Maintenance (PRAGMA optimize + a
wal_checkpoint(TRUNCATE) pass) runs inline in the reminder poll loop every
tenth tick and may briefly delay a tick; it is bounded by the per-hook
timeout and the database busy timeout.
Quick Start
git clone https://github.com/redhat-data-and-ai/memory-mcp-server
cd memory-mcp-server
make install # creates venv, installs deps + pre-commit hooks
make local # starts server on localhost:5001Verify in another terminal:
curl http://localhost:5001/healthManual setup (without Make):
# Create venv and install
uv venv && source .venv/bin/activate
uv pip install -e ".[dev]"
pre-commit install
# Configure and run
cp .env.example .env
memory-mcp-server
# Verify
curl http://localhost:5001/healthTools
Memory
Tool | Purpose |
| Persist a new memory; returns its id |
| Fetch one memory by id |
| Whole-word keyword search over content, ranked by relevance |
| Browse memories newest-first |
| Partially update a memory |
| Remove a memory by id |
Todos
Tool | Purpose |
| Add a structured task |
| Whole-word keyword search over title/description, ranked by relevance |
| Browse todos with filters |
| Manage individual todos |
Kanban
Tool | Purpose |
| New board; defaults to backlog/todo/in_progress/done |
| Enumerate or tear down boards |
| Full board state grouped by column |
| Place and reorder work |
| Edit or remove cards |
Reminders & Alerts
Tool | Purpose |
| Schedule a future alert (none/hourly/daily/weekly repeats) |
| Inspect or edit a schedule |
| Soonest-due first |
| Manage schedules |
| Review and clear fired alerts |
A background scheduler converts due reminders into alerts server-side;
query them at session start with alert_list(acknowledged=false).
Dashboard
Tool | Purpose |
| Cross-domain counts, unacked alerts, and what's due next |
Trackers
Tool | Purpose |
| Manage trackers |
| Track items (not_started/in_progress/blocked/done) |
| Progress: total/done/percent plus per-status counts |
All tools return {status: "success" | "error", ...} dictionaries and never
raise across the tool boundary.
Configuration
Variable | Default | Description |
|
| SQLite database file (auto-created, parent dirs included) |
|
| Background scheduler interval for firing due reminders |
|
| Server bind address |
|
| Server port (1024-65535) |
|
| Transport protocol ( |
|
| SSL key/certificate for HTTPS |
|
| OAuth authentication (see |
|
| Logging level |
* ENABLE_AUTH defaults to False in .env.example. Always copy .env.example to .env to start with auth disabled.
Connecting an MCP Client
Point your MCP client at the server endpoint:
{
"mcpServers": {
"memory": {
"url": "http://localhost:5001/mcp"
}
}
}See examples/fastmcp_client.py for a working client that stores and searches memories.
Development
make lint # ruff + mypy
make test # pytest with coverage
make pre-commit # run all pre-commit hooksDocumentation
Guide | Description |
System diagrams, code structure, key components | |
Setup, running locally, testing, code quality | |
Podman, OpenShift, container configuration | |
OAuth setup, auth modes, troubleshooting |
License
Apache 2.0 — derived from redhat-data-and-ai/template-mcp-server.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Persistent memory for AI agents. Search, store, and recall across sessions.
Persistent memory and knowledge management for AI agents with semantic search and 50+ tools.
Universal memory for AI agents and tools. Save, organize and search context anywhere.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/bsahane/memory-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server