Project context management for AI-assisted development - Persistent knowledge graphs and intelligent context recall across fragmented AI threads
Project description
Memory Journal MCP Server
Last Updated December 8, 2025 - v2.2.0
Project context management for AI-assisted development - Bridge the gap between fragmented AI threads with persistent knowledge graphs and intelligent context recall
๐ฏ Solve the AI Context Problem: When working with AI across multiple threads and sessions, context is lost. Memory Journal maintains a persistent, searchable record of your project work, decisions, and progress - making every AI conversation informed by your complete project history.
GitHub โข Wiki โข Changelog โข Release Article
๐ Quick Deploy:
- PyPI Package -
pip install memory-journal-mcp - Docker Hub - Alpine-based (225MB) with full semantic search
- MCP Registry -
๐ฏ Why Memory Journal?
The Fragmented AI Context Problem
When managing large projects with AI assistance, you face a critical challenge:
- Thread Amnesia - Each new AI conversation starts from zero, unaware of previous work
- Lost Context - Decisions, implementations, and learnings scattered across disconnected threads
- Repeated Work - AI suggests solutions you've already tried or abandoned
- Context Overload - Manually copying project history into every new conversation is tedious and incomplete
The Solution: Persistent Project Memory
Memory Journal acts as your project's long-term memory, bridging the gap between fragmented AI threads:
For Developers:
- ๐ Automatic Context Capture - Git commits, branches, GitHub issues, PRs, and project state captured with every entry
- ๐ Knowledge Graph - Link related work (specs โ implementations โ tests โ PRs) to build a connected history
- ๐ Intelligent Search - Find past decisions, solutions, and context across your entire project timeline
- ๐ Project Analytics - Track progress from issues through PRs, generate reports for standups/retrospectives/code reviews
For Project Managers:
- ๐ฅ Team Context Continuity - Maintain shared project memory across team members and time
- ๐ Progress Tracking - Monitor milestones, velocity, and cross-project insights from issues to PRs
- ๐ฏ Status Reporting - Generate comprehensive project summaries with PR metrics and timelines
- ๐ GitHub Integration - Connect entries with Projects, Issues, and Pull Requests for unified tracking
For AI-Assisted Work:
- ๐ก AI can query your complete project history in any conversation
- ๐ง Semantic search finds conceptually related work, even without exact keywords
- ๐ Context bundles provide AI with comprehensive project state instantly
- ๐ Relationship visualization shows how different pieces of work connect
Real-World Example
Without Memory Journal:
Thread 1: "Help me design the authentication system"
Thread 2 (next day): "How should I implement user sessions?"
AI: *suggests approach you already decided against*
Thread 3 (next week): "What was our decision about JWT tokens?"
AI: *no memory of previous threads*
With Memory Journal:
Thread 1: Work captured โ "Decided on JWT with refresh tokens"
Thread 2: AI queries history โ "I see you decided on JWT. Let's implement refresh token rotation..."
Thread 3: AI finds related entries โ "Based on your design from Oct 15, here's the implementation..."
โจ What's New in v2.2.0 (December 8, 2025)
๐๏ธ Tool Filtering for Token Efficiency
- Reduce token usage by up to 69% - Disable unused tools to save context window space
- 7 tool groups -
core,search,analytics,relationships,export,admin,test - Flexible syntax -
-groupto disable,-toolfor specific tools,+toolto re-enable - MCP client compatibility - Stay under tool limits (e.g., Windsurf's 100-tool limit)
- Zero breaking changes - All 16 tools enabled by default
๐จ Dark Mode Improvements
- Actions Visual Graph - Improved color scheme for dark mode readability
- Better contrast - Medium-saturated fills with dark text and defined borders
๐ Token Savings by Configuration
| Configuration | Tools | Token Reduction |
|---|---|---|
Production (-test) |
14 | ~12% |
Read-only (-admin) |
14 | ~15% |
Lightweight (-search,-analytics,-relationships,-export,-admin,-test) |
5 | ~69% |
Complete tool filtering guide โ
โจ What's New in v2.1.0 (November 26, 2025)
๐ Complete GitHub Actions Integration
- GitHub Actions Resources - 5 new MCP resources for CI/CD visibility
- Actions Visual Graph -
memory://graph/actions- CI/CD narrative with Mermaid diagrams - Failure Digest Prompt -
actions-failure-digest- Comprehensive failure analysis with root cause identification - Workflow Run Linking - Link journal entries to specific workflow runs
๐ GitHub Issues & Pull Requests Integration
- GitHub Issues - Auto-fetch, link entries, detect from branch names
- GitHub Pull Requests - Auto-detect current PR, track lifecycle, link entries
- 3 PR Workflow Prompts -
pr-summary,code-review-prep,pr-retrospective - 3 New Resources - Issue/PR entries, PR timelines
โ True Pyright Strict Type Compliance
- 700+ type issues fixed - Complete strict mode compliance
- All exclusions removed - Zero compromises on type safety
- Better IDE support - Enhanced autocomplete and error detection
Current Capabilities
- 16 MCP tools - Complete development workflow
- 14 workflow prompts - Standups, retrospectives, PR workflows, CI/CD failure analysis
- 13 MCP resources - Recent entries, graphs, project/issue/PR timelines, GitHub Actions
- GitHub Integration - Projects, Issues, Pull Requests, Actions with auto-linking
- Smart caching - 80%+ API reduction (15min issues, 5min PRs/workflows, 1hr projects)
- Knowledge graphs - 5 relationship types, Mermaid visualization
- 10x faster startup - Lazy ML loading (14s โ 2-3s)
๐ฏ Workflow Prompts (14 Total)
find-related- Discover connected entries via semantic similarityprepare-standup- Daily standup summariesprepare-retro- Sprint retrospectivesweekly-digest- Day-by-day weekly summariesanalyze-period- Deep period analysis with insightsgoal-tracker- Milestone and achievement trackingget-context-bundle- Project context with Git/GitHubget-recent-entries- Formatted recent entriesproject-status-summary- GitHub Project status reportsproject-milestone-tracker- Milestone progress trackingpr-summary- Pull request journal activity summarycode-review-prep- Comprehensive PR review preparationpr-retrospective- Completed PR analysis with learningsactions-failure-digest- NEW CI/CD failure analysis with root cause identification
๐ก Resources (13 Total)
MCP Server Identifier: user-memory-journal-mcp (when using recommended config name; Cursor prefixes your config key with user-)
memory://recent- 10 most recent entriesmemory://significant- Significant milestones and breakthroughsmemory://graph/recent- Live Mermaid diagram of recent relationshipsmemory://team/recent- Recent team-shared entriesmemory://projects/{number}/timeline- Project activity timelinememory://issues/{issue_number}/entries- All entries linked to a specific issuememory://prs/{pr_number}/entries- All entries linked to a specific pull requestmemory://prs/{pr_number}/timeline- Combined PR + journal timeline
GitHub Actions Resources:
memory://graph/actions- CI/CD narrative graph: commits โ runs โ failures โ entries โ fixes โ deploymentsmemory://actions/recent- Recent workflow runs with CI status (supports?branch=X&workflow=Y&commit=SHA&pr=N&limit=10)memory://actions/workflows/{name}/timeline- Workflow-specific timeline blending runs, journals, PRsmemory://actions/branches/{branch}/timeline- Branch CI timeline with PR lifecyclememory://actions/commits/{sha}/timeline- Commit-specific CI timeline
๐๏ธ Database Improvements
- Automatic schema migrations (seamless v1.0 โ v1.1 upgrades)
- Soft delete support with
deleted_atcolumn - New
relationshipstable with cascading deletes - Enhanced indexes for optimal query performance
๐ Quick Start
Option 1: PyPI (Fastest - 30 seconds)
Step 1: Install the package
pip install memory-journal-mcp
Step 2: Add to ~/.cursor/mcp.json
{
"mcpServers": {
"memory-journal-mcp": {
"command": "memory-journal-mcp"
}
}
}
Step 3: Restart Cursor
Restart Cursor or your MCP client, then start journaling!
Option 2: Docker (Full Features - 2 minutes)
Step 1: Pull the Docker image
docker pull writenotenow/memory-journal-mcp:latest
Step 2: Create data directory
mkdir data
Step 3: Add to ~/.cursor/mcp.json
{
"mcpServers": {
"memory-journal-mcp": {
"command": "docker",
"args": [
"run", "--rm", "-i",
"-v", "./data:/app/data",
"writenotenow/memory-journal-mcp:latest",
"python", "src/server.py"
]
}
}
}
Step 4: Restart Cursor
Restart Cursor or your MCP client, then start journaling!
โก Install to Cursor IDE
One-Click Installation
Click the button below to install directly into Cursor:
Or copy this deep link:
cursor://anysphere.cursor-deeplink/mcp/install?name=Memory%20Journal%20MCP&config=eyJtZW1vcnktam91cm5hbCI6eyJhcmdzIjpbInJ1biIsIi0tcm0iLCItaSIsIi12IiwiLi9kYXRhOi9hcHAvZGF0YSIsIndyaXRlbm90ZW5vdy9tZW1vcnktam91cm5hbC1tY3A6bGF0ZXN0IiwicHl0aG9uIiwic3JjL3NlcnZlci5weSJdLCJjb21tYW5kIjoiZG9ja2VyIn19
Prerequisites
- โ Docker installed and running
- โ ~500MB disk space for data directory
Configuration
After installation, Cursor will use this Docker-based configuration. If you prefer manual setup, add this to your ~/.cursor/mcp.json:
{
"memory-journal": {
"command": "docker",
"args": [
"run", "--rm", "-i",
"-v", "./data:/app/data",
"writenotenow/memory-journal-mcp:latest",
"python", "src/server.py"
]
}
}
๐ See Full Installation Guide โ
๐ Core Capabilities
๐ ๏ธ 16 MCP Tools
Entry CRUD โข Triple search (FTS5/semantic/date) โข Knowledge graphs โข Analytics โข Export
Complete tools reference โ
๐ฏ 14 Workflow Prompts
Standups โข Retrospectives โข Weekly digests โข PR workflows โข Goal tracking
Complete prompts guide โ
๐ Git & GitHub Auto-Context
Every entry captures: repo, branch, commit, issues, PRs, projects (user & org)
Integration details โ
๐ง Configuration
Optional GitHub Integration:
export GITHUB_TOKEN="your_token" # For Projects/Issues/PRs
export GITHUB_ORG_TOKEN="your_org_token" # Optional: org projects
export DEFAULT_ORG="your-org-name" # Optional: default org
Scopes: repo, project, read:org (org only) โข Fallback: Uses gh CLI if tokens not set
Full configuration guide โ
๐๏ธ Tool Filtering (Optional)
Control which tools are exposed to your MCP client using the MEMORY_JOURNAL_MCP_TOOL_FILTER environment variable:
export MEMORY_JOURNAL_MCP_TOOL_FILTER="-analytics,-test"
Filter Syntax:
-group- Disable all tools in a group (e.g.,-analytics)-tool- Disable a specific tool (e.g.,-delete_entry)+tool- Re-enable after group disable (e.g.,-admin,+update_entry)
Available Groups:
core(5 tools) - Essential CRUD operationssearch(2 tools) - Advanced search capabilitiesanalytics(2 tools) - Statistics and insightsrelationships(2 tools) - Link and visualize entriesexport(1 tool) - Export functionalityadmin(2 tools) - Update and delete operationstest(2 tools) - Testing and minimal entry creation
Common Configurations:
# Lightweight (core only, ~5 tools)
MEMORY_JOURNAL_MCP_TOOL_FILTER="-search,-analytics,-relationships,-export,-admin,-test"
# Read-only mode (disable modifications)
MEMORY_JOURNAL_MCP_TOOL_FILTER="-admin"
# Production use (disable test tools)
MEMORY_JOURNAL_MCP_TOOL_FILTER="-test"
MCP Config Example:
{
"mcpServers": {
"memory-journal-mcp": {
"command": "memory-journal-mcp",
"env": {
"MEMORY_JOURNAL_MCP_TOOL_FILTER": "-test,-admin",
"GITHUB_TOKEN": "your_token"
}
}
}
}
Useful for MCP clients with tool limits (e.g., Windsurf's 100-tool limit).
Complete tool filtering guide โ
๐ Usage Examples
Create an Entry with GitHub Projects
// Create an entry linked to a GitHub Project
create_entry({
content: "Completed Phase 1 of GitHub Projects integration - all core features implemented!",
entry_type: "technical_achievement",
tags: ["github-projects", "integration", "milestone"],
project_number: 1, // Links to GitHub Project #1
significance_type: "technical_breakthrough"
})
// Context automatically includes GitHub Projects info
// Search entries by project
search_entries({
project_number: 1,
limit: 10
})
// Filter by project and date range
search_by_date_range({
start_date: "2025-10-01",
end_date: "2025-10-31",
project_number: 1
})
Create an Entry with Relationships
// Create a technical achievement
create_entry({
content: "Implemented lazy loading for ML dependencies - 10x faster startup!",
entry_type: "technical_achievement",
tags: ["performance", "optimization", "ml"],
significance_type: "technical_breakthrough"
})
// Returns: Entry #55
// Link related work
link_entries({
from_entry_id: 56, // Testing entry
to_entry_id: 55, // Implementation
relationship_type: "implements"
})
// Visualize the connections
visualize_relationships({
entry_id: 55,
depth: 2
})
Search and Analyze
// Full-text search with highlighting
search_entries({ query: "performance optimization", limit: 5 })
// Semantic search for concepts
semantic_search({ query: "startup time improvements", limit: 3 })
// Date range with tags
search_by_date_range({
start_date: "2025-10-01",
end_date: "2025-10-31",
tags: ["performance"]
})
// Get analytics
get_statistics({ group_by: "week" })
Generate Visual Maps
// Visualize entry relationships
visualize_relationships({
entry_id: 55, // Root entry
depth: 2 // 2 hops out
})
// Filter by tags
visualize_relationships({
tags: ["visualization", "relationships"],
limit: 20
})
// Listing resources - IMPORTANT: Call with NO parameters first
list_mcp_resources() // โ
Returns actual server identifier (e.g., user-memory-journal-mcp)
// Then fetch using exact identifier from list output
fetch_mcp_resource({
server: "user-memory-journal-mcp", // Use exact name from list_mcp_resources()
uri: "memory://graph/recent"
})
// Available resource URIs:
memory://graph/recent // Most recent 20 entries with relationships
memory://team/recent // Recent team-shared entries (v2.0.0)
Note: Always call list_mcp_resources() without parameters first. MCP clients like Cursor may prefix your config name (e.g., memory-journal-mcp becomes user-memory-journal-mcp).
Using Workflow Prompts
Ask Cursor's AI naturally:
"Show me my recent journal entries"
"Prepare my standup for today"
"Generate a weekly digest"
"Find entries related to refactoring"
See all 14 prompts โ | Complete examples โ
๐๏ธ Architecture
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ MCP Server Layer (Async/Await) โ
โ โโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโ โ
โ โ Entry Creation โ โ Triple Search โ โ Relationshipโ โ
โ โ with Context โ โ FTS5/Date/ML โ โ Mapping โ โ
โ โโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ Thread Pool Execution Layer โ
โ โโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโ โ
โ โ Git Operations โ โ Database Ops โ โ Lazy ML โ โ
โ โ (2s timeout) โ โ Single Conn โ โ Loading โ โ
โ โโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ SQLite Database with FTS5 + Relationships โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ โ entries + tags + relationships + embeddings + FTS โโ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
๐ง Technical Highlights
Performance & Security
- Python 3.14 - Latest Python with free-threaded support (PEP 779), deferred annotations (PEP 649), and performance optimizations
- 10x faster startup - Lazy loading of ML dependencies (2-3s vs 14s)
- Thread-safe operations - Zero race conditions in tag creation
- WAL mode - Better concurrency and crash recovery
- Database lock prevention - Single-connection transactions
- Aggressive timeouts - Git operations fail-fast (2s per command)
- Input validation - Length limits, parameterized queries, SQL injection prevention
Semantic Search (Optional)
- Model:
all-MiniLM-L6-v2(384-dimensional embeddings) - Storage: FAISS index for fast similarity search
- Graceful degradation: Works perfectly without ML dependencies
Data & Privacy
- Local-first: Single SQLite file, you own your data
- Portable: Move your
.dbfile anywhere - Secure: No external API calls, non-root Docker containers
๐ Documentation & Resources
- GitHub Wiki - Complete documentation
- Practical Examples Gists - 7 curated use cases
- Docker Hub - Container images
- PyPI Package - Python distribution
- Issues - Bug reports & feature requests
๐ License
MIT License - See LICENSE file for details.
๐ค Contributing
Built by developers, for developers. PRs welcome! See CONTRIBUTING.md for guidelines.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file memory_journal_mcp-2.2.0.tar.gz.
File metadata
- Download URL: memory_journal_mcp-2.2.0.tar.gz
- Upload date:
- Size: 138.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a9e826719fe01de4c6f734c9cc819b2ec5d2f1e05066f3008fd3454bc4cfe879
|
|
| MD5 |
5b6373974baf8a1f98de8cf06d034857
|
|
| BLAKE2b-256 |
b0997d9e796a57689e3362a0820430169cad598b584e7e2b5cea3917d67f3488
|
File details
Details for the file memory_journal_mcp-2.2.0-py3-none-any.whl.
File metadata
- Download URL: memory_journal_mcp-2.2.0-py3-none-any.whl
- Upload date:
- Size: 117.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d4ff8a728ac789b6e8f6baa4cfc261ff0a6ebc7920bad3c61e842c375271208a
|
|
| MD5 |
61f3b7a27d690604874a1c2ad33d278a
|
|
| BLAKE2b-256 |
de491931b0923bd03362cdb021e5f39e89dcd8cd1b43ace28312035ac8e201eb
|