Skip to main content

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 November 26, 2025 - Production/Stable v2.1.0

GitHub Docker Pulls License: MIT Version Status MCP Registry PyPI Security CodeQL Type Safety

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.

๐Ÿš€ Quick Deploy:

๐Ÿ“š Full Documentation: GitHub Wiki

๐Ÿ“ฐ Read the v2.0.0 Release Article - Learn about knowledge graphs, performance optimizations, and relationship mapping


๐ŸŽฏ 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.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)

Complete CHANGELOG โ†’ | Architecture Details โ†’


๐ŸŽฏ Workflow Prompts (14 Total)

  • find-related - Discover connected entries via semantic similarity
  • prepare-standup - Daily standup summaries
  • prepare-retro - Sprint retrospectives
  • weekly-digest - Day-by-day weekly summaries
  • analyze-period - Deep period analysis with insights
  • goal-tracker - Milestone and achievement tracking
  • get-context-bundle - Project context with Git/GitHub
  • get-recent-entries - Formatted recent entries
  • project-status-summary - GitHub Project status reports
  • project-milestone-tracker - Milestone progress tracking
  • pr-summary - Pull request journal activity summary
  • code-review-prep - Comprehensive PR review preparation
  • pr-retrospective - Completed PR analysis with learnings
  • actions-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 entries
  • memory://significant - Significant milestones and breakthroughs
  • memory://graph/recent - Live Mermaid diagram of recent relationships
  • memory://team/recent - Recent team-shared entries
  • memory://projects/{number}/timeline - Project activity timeline
  • memory://issues/{issue_number}/entries - All entries linked to a specific issue
  • memory://prs/{pr_number}/entries - All entries linked to a specific pull request
  • memory://prs/{pr_number}/timeline - Combined PR + journal timeline

GitHub Actions Resources:

  • memory://graph/actions - CI/CD narrative graph: commits โ†’ runs โ†’ failures โ†’ entries โ†’ fixes โ†’ deployments
  • memory://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, PRs
  • memory://actions/branches/{branch}/timeline - Branch CI timeline with PR lifecycle
  • memory://actions/commits/{sha}/timeline - Commit-specific CI timeline

๐Ÿ—„๏ธ Database Improvements

  • Automatic schema migrations (seamless v1.0 โ†’ v1.1 upgrades)
  • Soft delete support with deleted_at column
  • New relationships table 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:

Install to 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 โ†’


๐Ÿ“– 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 .db file anywhere
  • Secure: No external API calls, non-root Docker containers

๐Ÿ“š Documentation & Resources


๐Ÿ“„ License

MIT License - See LICENSE file for details.

๐Ÿค Contributing

Built by developers, for developers. PRs welcome! See CONTRIBUTING.md for guidelines.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

memory_journal_mcp-2.1.0.tar.gz (136.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

memory_journal_mcp-2.1.0-py3-none-any.whl (114.1 kB view details)

Uploaded Python 3

File details

Details for the file memory_journal_mcp-2.1.0.tar.gz.

File metadata

  • Download URL: memory_journal_mcp-2.1.0.tar.gz
  • Upload date:
  • Size: 136.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.12

File hashes

Hashes for memory_journal_mcp-2.1.0.tar.gz
Algorithm Hash digest
SHA256 3214b5209e378ea53e37046cff3e9fe5f86c59fbc30abcefe4730de8ad8d187d
MD5 4c69df5f67fc7c3b58b2542def37ae01
BLAKE2b-256 f9e8b58ec5077afb641d8c3b132c8c6ce56ffd167f7991e789aff1864c5c5518

See more details on using hashes here.

File details

Details for the file memory_journal_mcp-2.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for memory_journal_mcp-2.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 66db581edec25e619eba542ac55a2ff26e7c6080c5368d637eb91b9cbb2a51a9
MD5 9623743b1c80827a7665dc392b873570
BLAKE2b-256 1eae9ad19dfd053d3226807df5523d18c2c227150515ab121eae349ce2649b7f

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page