io.github.umitkavala/mindpm
Persistent project memory for LLMs via SQLite. Never re-explain your project again.
Ask AI about io.github.umitkavala/mindpm
Powered by Claude Β· Grounded in docs
I know everything about io.github.umitkavala/mindpm. Ask me about installation, configuration, usage, or troubleshooting.
0/500
Reviews
Documentation
mindpm
Persistent project memory for LLMs. Never re-explain your project again.
mindpm is an MCP (Model Context Protocol) server that gives LLMs a SQLite-backed brain for your projects. It tracks tasks, decisions, architecture notes, and session context β so every new conversation picks up exactly where you left off.
The Problem
Every new LLM chat starts from zero:
- "Let me remind you about my project..."
- "Last time we decided to use Redis for..."
- "Where did we leave off?"
The Solution
mindpm persists your project state in a local SQLite database. The LLM reads and writes to it via MCP tools. No chat history needed. No memory features needed.
You: "What should I work on next?"
LLM: [queries mindpm] "Last session you finished the auth refactor.
You have 3 high-priority tasks: rate limiting, API docs, and
the webhook retry bug. Rate limiting is unblocked β start there."
What It Tracks
- Tasks β status, priority, blockers, sub-tasks
- Decisions β what was decided, why, what alternatives were rejected
- Notes β architecture, bugs, ideas, research
- Context β key-value pairs (tech stack, conventions, config)
- Sessions β what was done, what's next
Kanban Board
mindpm includes a built-in Kanban UI. When the MCP server starts, it serves a web interface at http://localhost:3131.
Every start_session call returns a direct link to your project's board:
Kanban board: http://localhost:3131?project=<project-id>
The port is configurable via the MINDPM_PORT environment variable.
Setup
Install
npm install -g mindpm
Or run from source:
git clone https://github.com/umitkavala/mindpm.git
cd mindpm
npm install
npm run build
Configure your MCP client
All clients use the same JSON format β just different config file locations. They all share the same ~/.mindpm/memory.db, so you can switch tools mid-project without losing context.
Claude Code β ~/.claude/claude_desktop_config.json
{
"mcpServers": {
"mindpm": {
"command": "mindpm",
"env": {
"MINDPM_DB_PATH": "~/.mindpm/memory.db",
"MINDPM_PORT": "3131"
}
}
}
}
Or use the one-liner:
claude mcp add mindpm -e MINDPM_DB_PATH=~/.mindpm/memory.db -- npx -y mindpm
Cursor β .cursor/mcp.json in your project root (or ~/.cursor/mcp.json globally)
{
"mcpServers": {
"mindpm": {
"command": "npx",
"args": ["-y", "mindpm"],
"env": {
"MINDPM_DB_PATH": "~/.mindpm/memory.db"
}
}
}
}
VS Code + Copilot β .vscode/mcp.json in your project root
{
"servers": {
"mindpm": {
"type": "stdio",
"command": "npx",
"args": ["-y", "mindpm"],
"env": {
"MINDPM_DB_PATH": "~/.mindpm/memory.db"
}
}
}
}
Cline β Add via VS Code settings β Cline β MCP Servers, or edit cline_mcp_settings.json:
{
"mcpServers": {
"mindpm": {
"command": "npx",
"args": ["-y", "mindpm"],
"env": {
"MINDPM_DB_PATH": "~/.mindpm/memory.db"
}
}
}
}
Windsurf β Settings β Cascade β MCP, using the same JSON structure as Cline above.
Using mindpm with any LLM
On first run, mindpm writes ~/.mindpm/AGENT.md β a ready-to-paste system prompt that tells your LLM how to use mindpm proactively. Paste its contents into your client's custom instructions or system prompt box.
You can also call the get_agent_instructions tool at any time to retrieve the instructions.
Start Using
That's it. The LLM now has access to mindpm tools. Just start talking about your projects.
MCP Tools
Projects
| Tool | Description |
|---|---|
create_project | Create a new project |
list_projects | List all projects |
get_project_status | Full project overview |
Tasks
| Tool | Description |
|---|---|
create_task | Add a task |
update_task | Update status, priority, etc. |
list_tasks | List with filters |
get_task | Full task detail with sub-tasks and notes |
get_next_tasks | Smart: highest priority, unblocked |
Decisions
| Tool | Description |
|---|---|
log_decision | Record a decision with reasoning |
list_decisions | Browse decision history |
Notes & Context
| Tool | Description |
|---|---|
add_note | Add a note (architecture, bug, idea, etc.) |
search_notes | Full-text search |
set_context | Store key-value context |
get_context | Retrieve context |
Sessions
| Tool | Description |
|---|---|
start_session | Get full project context + last session's next steps |
end_session | Record summary + what to do next time |
Query
| Tool | Description |
|---|---|
query | Read-only SQL against the database |
get_project_summary | Tasks by status, blockers, recent activity |
get_blockers | All blocked tasks with what's blocking them |
search | Full-text search across everything |
How It Works
βββββββββββββββ MCP βββββββββββ SQLite ββββββββββββ
β Claude Code β ββββββββββββΊ β mindpm β ββββββββββββββΊ β memory.dbβ
β / Desktop β tools β server β read/write β β
βββββββββββββββ βββββββββββ ββββββββββββ
- You start a conversation and mention your project
- The LLM calls
start_sessionβ gets full context - During the conversation, it creates tasks, logs decisions, adds notes
- When you're done, it calls
end_sessionβ saves what's next - Next conversation: instant context, zero re-explanation
Storage
Default: ~/.mindpm/memory.db
Override with MINDPM_DB_PATH or PROJECT_MEMORY_DB_PATH environment variable.
Database and tables are created automatically on first run.
Development
npm install
npm run build # Build with tsup
npm run typecheck # Type-check without emitting
npm run dev # Build in watch mode
License
MIT
