Last Updated February 27, 2026
π― AI Context + Project Intelligence: Bridge disconnected AI sessions with persistent project memory, while integrating your complete GitHub workflow β Issues, PRs, Actions, Kanban boards, Milestones, Repository Insights, and Knowledge Graphs β into every conversation.
GitHub β’ Wiki β’ Changelog β’ Release Article
π Quick Deploy:
- npm Package -
npm install -g memory-journal-mcp - Docker Hub - Alpine-based with full semantic search
- π§ Dynamic Context Management - AI agents automatically query your project history and create entries at the right moments
- π Auto-capture Git/GitHub context (commits, branches, issues, milestones, PRs, projects)
- π Build knowledge graphs linking specs β implementations β tests β PRs
- π Triple search (full-text, semantic, date range)
- π Generate reports (standups, retrospectives, PR summaries, status)
- π Track repository insights β stars, forks, clones, views, top referrers, and popular paths (14-day rolling)
- ποΈ Backup & restore your journal data with one command
flowchart TB
subgraph Session["π€ AI Session Start"]
Briefing["π Read Briefing<br/>(memory://briefing)"]
end
subgraph Core["π Journal Operations"]
Create["Create Entry"]
Retrieve["Retrieve & Search"]
Link["Link Entries"]
end
subgraph Search["π Triple Search"]
FTS["Full-Text (FTS5)"]
Semantic["Semantic (Vector)"]
DateRange["Date Range"]
end
subgraph GitHub["π GitHub Integration"]
Issues["Issues & Milestones"]
PRs["Pull Requests"]
Actions["GitHub Actions"]
Kanban["Kanban Boards"]
end
subgraph Outputs["π Outputs"]
Reports["Standups & Retrospectives"]
Graphs["Knowledge Graphs"]
Timeline["Project Timelines"]
end
Session --> Core
Core --> Search
Core <--> GitHub
Search --> Outputs
GitHub --> Outputs
- 39 MCP tools - Complete development workflow + backup/restore + Kanban + Milestones + Insights + issue management
- 15 workflow prompts - Standups, retrospectives, PR workflows, CI/CD failure analysis, session acknowledgment
- 21 MCP resources - 14 static + 7 template (require parameters)
- GitHub Integration - Projects, Issues, Pull Requests, Actions, Kanban boards, Milestones
- 8 tool groups -
core,search,analytics,relationships,export,admin,github,backup - Knowledge graphs - 8 relationship types, Mermaid visualization
- Semantic search - AI-powered conceptual search via
@xenova/transformers
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
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
For AI-Assisted Work:
- π§ Dynamic Context Management - Built-in guidance teaches AI agents when to query your project history and when to create entries
- π‘ 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
Step 1: Install the package
npm install -g memory-journal-mcpStep 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!
{
"mcpServers": {
"memory-journal-mcp": {
"command": "npx",
"args": ["-y", "memory-journal-mcp"]
}
}
}git clone https://github.com/neverinfamous/memory-journal-mcp.git
cd memory-journal-mcp
npm install
npm run build{
"mcpServers": {
"memory-journal-mcp": {
"command": "node",
"args": ["dist/cli.js", "--default-project", "1"]
}
}
}For remote access or web-based clients, run the server in HTTP mode:
memory-journal-mcp --transport http --port 3000To bind to all interfaces (required for containers):
memory-journal-mcp --transport http --port 3000 --server-host 0.0.0.0Endpoints:
POST /mcpβ JSON-RPC requests (initialize, tools/call, etc.)GET /mcpβ SSE stream for server-to-client notificationsDELETE /mcpβ Session termination
Session Management: The server uses stateful sessions by default. Include the mcp-session-id header (returned from initialization) in subsequent requests.
Example with curl:
# Initialize session
curl -X POST http://localhost:3000/mcp \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-03-26","capabilities":{},"clientInfo":{"name":"test","version":"1.0"}}}'
# Returns mcp-session-id header
# List tools (with session)
curl -X POST http://localhost:3000/mcp \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-H "mcp-session-id: YOUR_SESSION_ID" \
-d '{"jsonrpc":"2.0","id":2,"method":"tools/list","params":{}}'For serverless deployments (Lambda, Workers, Vercel), use stateless mode:
memory-journal-mcp --transport http --port 3000 --stateless| Mode | Progress Notifications | SSE Streaming | Serverless |
|---|---|---|---|
| Stateful (default) | β Yes | β Yes | |
Stateless (--stateless) |
β No | β No | β Native |
The GitHub tools (get_github_issues, get_github_prs, etc.) can auto-detect the repository from your git context. However, MCP clients may run the server from a different directory than your project.
To enable GitHub auto-detection, add GITHUB_REPO_PATH to your config:
{
"mcpServers": {
"memory-journal-mcp": {
"command": "memory-journal-mcp",
"env": {
"GITHUB_TOKEN": "ghp_your_token_here",
"GITHUB_REPO_PATH": "/path/to/your/git/repo"
}
}
}
}| Environment Variable | Description |
|---|---|
GITHUB_TOKEN |
GitHub personal access token for API access |
GITHUB_REPO_PATH |
Path to the git repository for auto-detecting owner/repo |
DEFAULT_PROJECT_NUMBER |
Default GitHub Project number for auto-assignment when creating issues |
AUTO_REBUILD_INDEX |
Set to true to rebuild vector index on server startup |
MCP_HOST |
Server bind host (0.0.0.0 for containers, default: localhost) |
Without GITHUB_REPO_PATH: You'll need to explicitly provide owner and repo parameters when calling GitHub tools.
When GitHub tools cannot auto-detect repository information:
- With
GITHUB_REPO_PATHset: Tools auto-detectownerandrepofrom git remote URL - Without
GITHUB_REPO_PATH: Tools return structured response withrequiresUserInput: trueand instructions to provideownerandrepoparameters - With explicit parameters: Always preferred - specify
ownerandrepodirectly in tool calls
Example response when auto-detection fails:
{
"error": "Could not auto-detect repository",
"requiresUserInput": true,
"instruction": "Please provide owner and repo parameters"
}Cursor IDE:
- Listing MCP Resources: If the agent has trouble listing resources, instruct it to call
ListMcpResources()without specifying a server parameter, or withserver: "user-memory-journal-mcp"(Cursor prefixes server names withuser-).
Google AntiGravity IDE:
-
AntiGravity Users: Server instructions are automatically sent to MCP clients during initialization. However, AntiGravity does not currently support MCP server instructions. For optimal usage in AntiGravity, manually provide the contents of
src/constants/ServerInstructions.tsto the agent in your prompt or user rules. -
Session start: Add to your user rules: "At session start, read
memory://briefingfrom memory-journal-mcp." -
Full guidance: If behaviors missing, read
memory://instructionsfor complete Dynamic Context Management patterns. -
Prompts not available: AntiGravity does not currently support MCP prompts. The 15 workflow prompts are not accessible.
| Group | Tools | Description |
|---|---|---|
core |
6 | Entry CRUD, tags, test |
search |
4 | Text search, date range, semantic, vector stats |
analytics |
2 | Statistics, cross-project insights |
relationships |
2 | Link entries, visualize graphs |
export |
1 | JSON/Markdown export |
admin |
5 | Update, delete, rebuild/add to vector index, merge tags |
github |
15 | Issues, PRs, context, Kanban, Milestones, Insights, issue lifecycle |
backup |
4 | Backup, list, restore, cleanup |
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/GitHub/Kanbanget-recent-entries- Formatted recent entriesproject-status-summary- GitHub Project status reportspr-summary- Pull request journal activity summarycode-review-prep- Comprehensive PR review preparationpr-retrospective- Completed PR analysis with learningsactions-failure-digest- CI/CD failure analysisproject-milestone-tracker- Milestone progress trackingconfirm-briefing- Acknowledge session context to user
Static Resources (appear in resource lists):
memory://briefing- Session initialization: compact context for AI agents (~300 tokens)memory://instructions- Behavioral guidance: complete server instructions for AI agentsmemory://recent- 10 most recent entriesmemory://significant- Significant milestones and breakthroughsmemory://graph/recent- Live Mermaid diagram of recent relationshipsmemory://team/recent- Recent team-shared entriesmemory://health- Server health & diagnosticsmemory://graph/actions- CI/CD narrative graphmemory://actions/recent- Recent workflow runsmemory://tags- All tags with usage countsmemory://statistics- Journal statisticsmemory://github/status- GitHub repository status overviewmemory://github/insights- Repository stars, forks, and 14-day traffic summarymemory://github/milestones- Open milestones with completion percentages
Template Resources (require parameters, fetch directly by URI):
memory://projects/{number}/timeline- Project activity timelinememory://issues/{issue_number}/entries- Entries linked to issuememory://prs/{pr_number}/entries- Entries linked to PRmemory://prs/{pr_number}/timeline- Combined PR + journal timelinememory://kanban/{project_number}- GitHub Project Kanban boardmemory://kanban/{project_number}/diagram- Kanban Mermaid visualizationmemory://milestones/{number}- Milestone detail with completion progress
export GITHUB_TOKEN="your_token" # For Projects/Issues/PRsScopes: repo, project, read:org (org-level project discovery only)
Memory Journal provides a hybrid approach to GitHub management:
| Capability Source | Purpose |
|---|---|
| MCP Server | Specialized features: Kanban visualization, Milestones, journal linking, project timelines |
| Agent (gh CLI) | Full GitHub mutations: create/close issues, create/merge PRs, manage releases |
MCP Server Tools (Read + Kanban + Milestones + Issue Lifecycle):
get_github_issues/get_github_issue- Query issuesget_github_prs/get_github_pr- Query pull requestsget_github_context- Full repository contextget_kanban_board/move_kanban_item- Kanban managementget_github_milestones/get_github_milestone- Milestone tracking with completion %create_github_milestone/update_github_milestone/delete_github_milestone- Milestone CRUDget_repo_insights- Repository traffic & analytics (stars, clones, views, referrers, popular paths)create_github_issue_with_entry/close_github_issue_with_entry- Issue lifecycle with journal linking
Agent Operations (via gh CLI):
# Issues
gh issue create --title "Bug fix" --body "Description"
gh issue close 42
# Pull Requests
gh pr create --fill
gh pr merge 123
# Projects
gh project item-add 5 --owner neverinfamous --url "issue-url"
# Releases
gh release create v1.0.0 --generate-notesWhy this design? The MCP server focuses on value-added features that integrate journal entries with GitHub (Kanban views, timeline resources, context linking). Standard GitHub operations are already excellently handled by
ghCLI, which agents can invoke directly.
Complete GitHub integration guide β
Control which tools are exposed using MEMORY_JOURNAL_MCP_TOOL_FILTER:
export MEMORY_JOURNAL_MCP_TOOL_FILTER="-analytics,-github"Filter Syntax:
-group- Disable all tools in a group-tool- Disable a specific tool+tool- Re-enable after group disable- Meta-groups:
starter,essential,full,readonly
Example Configurations:
{
"mcpServers": {
"memory-journal-mcp": {
"command": "memory-journal-mcp",
"env": {
"MEMORY_JOURNAL_MCP_TOOL_FILTER": "starter",
"GITHUB_TOKEN": "your_token"
}
}
}
}| Configuration | Filter String | Tools |
|---|---|---|
| Starter | starter |
~10 |
| Essential | essential |
~6 |
| Full (default) | full |
39 |
| Read-only | readonly |
~15 |
Complete tool filtering guide β
flowchart TB
AI["π€ AI Agent<br/>(Cursor, Windsurf, Claude)"]
subgraph MCP["Memory Journal MCP Server"]
Tools["π οΈ 39 Tools"]
Resources["π‘ 21 Resources"]
Prompts["π¬ 15 Prompts"]
end
subgraph Storage["Persistence Layer"]
SQLite[("πΎ SQLite<br/>Entries, Tags, Relationships")]
Vector[("π Vector Index<br/>Semantic Embeddings")]
Backups["π¦ Backups"]
end
subgraph External["External Integrations"]
GitHub["π GitHub API<br/>Issues, PRs, Actions"]
Kanban["π Projects v2<br/>Kanban Boards"]
end
AI <-->|"MCP Protocol"| MCP
Tools --> Storage
Tools --> External
Resources --> Storage
Resources --> External
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β MCP Server Layer (TypeScript) β
β βββββββββββββββββββ βββββββββββββββββββ βββββββββββββββ β
β β Tools (39) β β Resources (21) β β Prompts (15)β β
β β with Annotationsβ β with Annotationsβ β β β
β βββββββββββββββββββ βββββββββββββββββββ βββββββββββββββ β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β Pure JS Stack (No Native Dependencies) β
β βββββββββββββββββββ βββββββββββββββββββ βββββββββββββββ β
β β sql.js β β vectra β β transformersβ β
β β (SQLite) β β (Vector Index) β β (Embeddings)β β
β βββββββββββββββββββ βββββββββββββββββββ βββββββββββββββ β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β SQLite Database with Hybrid Search β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β entries + tags + relationships + embeddings + backups ββ
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
- TypeScript + Pure JS Stack - No native compilation, works everywhere
- sql.js - SQLite in pure JavaScript with disk sync
- vectra - Vector similarity search without native dependencies
- @xenova/transformers - ML embeddings in JavaScript
- Lazy loading - ML models load on first use, not startup
Memory Journal is designed for extremely low overhead during AI task execution. We include a vitest bench suite to maintain these baseline guarantees:
- Database Reads: Operations execute in fractions of a millisecond.
calculateImportanceis ~55x faster than retrieving 50 recent entries. - Vector Search Engine: Semantic searches via
vectraperform significantly faster than parallel entry indexing (>190x faster locally). - Core MCP Routines: Complex operations exhibit negligible latency when executed through standard MCP tools. Calling tools natively adds ~1.4x overhead compared to direct function execution.
To run the benchmarking suite locally:
npm run bench- Local-first - All data stored locally, no external API calls (except optional GitHub)
- Input validation - Zod schemas, content size limits, SQL injection prevention
- Path traversal protection - Backup filenames validated
- MCP 2025-11-25 annotations - Behavioral hints (
readOnlyHint,destructiveHint, etc.) - HTTP transport hardening - Configurable CORS, 1MB body limit, security headers, 30-min session timeout
- Token scrubbing - GitHub tokens and credentials automatically redacted from error logs
- Single SQLite file - You own your data
- Portable - Move your
.dbfile anywhere - Soft delete - Entries can be recovered
- Auto-backup on restore - Never lose data accidentally
- GitHub Wiki - Complete documentation
- Docker Hub - Container images
- npm Package - Node.js distribution
- Issues - Bug reports & feature requests
MIT License - See LICENSE file for details.
Built by developers, for developers. PRs welcome! See CONTRIBUTING.md for guidelines.
Migrating from v2.x? Your existing database is fully compatible. The TypeScript version uses the same schema and data format.