🚀 Memory Journal MCP Server
AI支援開発におけるプロジェクトコンテキスト管理 - 断片的なAIスレッド間のギャップを永続的な知識グラフとインテリジェントなコンテキストリコールで埋める
Last Updated December 28, 2025 - v3.0.0

🎯 AIコンテキスト問題の解決: 複数のスレッドやセッションでAIを使用する際、コンテキストが失われる問題があります。Memory Journalは、プロジェクトの作業、決定、進捗を永続的かつ検索可能な記録として保持し、すべてのAI会話に完全なプロジェクト履歴を反映させます。
GitHub • Wiki • Changelog • Release Article
🚀 クイックデプロイ:
✨ v3.0.0 (2025年12月28日)の新機能
🚀 TypeScriptによる完全な書き換え
Memory Journal v3.0はTypeScriptで完全に書き換えられ、以下の機能を提供します。
- Pure JS Stack - ネイティブコンパイルが不要 (
sql.js + vectra + @xenova/transformers)
- クロスプラットフォーム互換性 - バイナリ依存関係なしでWindows、macOS、Linuxで動作
- 厳格な型安全性 - TypeScriptエラーがゼロで、100%厳格モードに準拠
- 高速起動 - 遅延MLロードによる即時起動
- MCP 2025-11-25準拠 - 動作アノテーションを含む完全な仕様準拠
🗄️ 新機能: バックアップと復元ツール
ジャーナルデータを失うことはもうありません。
| ツール |
説明 |
backup_journal |
タイムスタンプ付きのデータベースバックアップを作成 |
list_backups |
利用可能なすべてのバックアップファイルをリスト表示 |
restore_backup |
任意のバックアップから復元 (復元前に自動バックアップを作成) |
backup_journal({ name: "before_migration" })
list_backups()
restore_backup({ filename: "before_migration.db", confirm: true })
📊 新機能: サーバーヘルスリソース
memory://health を通じて包括的なサーバー診断情報を取得できます。
{
"database": {
"path": "~/.memory-journal/memory_journal.db",
"sizeBytes": 524288,
"entryCount": 150,
"deletedEntryCount": 5,
"relationshipCount": 42,
"tagCount": 28
},
"backups": {
"directory": "~/.memory-journal/backups",
"count": 3,
"lastBackup": { "filename": "...", "createdAt": "...", "sizeBytes": 524288 }
},
"vectorIndex": {
"available": true,
"indexedEntries": 150,
"modelName": "all-MiniLM-L6-v2"
},
"toolFilter": {
"active": false,
"enabledCount": 27,
"totalCount": 27
},
"timestamp": "2025-12-28T05:47:00Z"
}
📈 現在の機能
- 27のMCPツール - 完全な開発ワークフロー + バックアップ/復元
- 14のワークフロープロンプト - スタンドアップ、レトロスペクティブ、PRワークフロー、CI/CD失敗分析
- 14のMCPリソース - 新しい
memory://health診断情報を含む
- GitHub統合 - プロジェクト、イシュー、プルリクエスト、アクションの自動リンク
- 8つのツールグループ -
core, search, analytics, relationships, export, admin, github, backup
- 知識グラフ - 5種類の関係タイプ、Mermaidビジュアライゼーション
- 意味検索 -
@xenova/transformersによるAIベースの概念検索
🎯 なぜMemory Journalなのか?
断片的なAIコンテキスト問題
AIを利用して大規模なプロジェクトを管理する際、次のような重大な課題に直面します。
- スレッドの健忘症 - 新しいAI会話は常にゼロから始まり、以前の作業を認識していません。
- コンテキストの喪失 - 決定、実装、学習内容が断片的なスレッドに散らばっています。
- 重複作業 - AIがすでに試したり放棄したりした解決策を提案することがあります。
- コンテキストの過負荷 - 新しい会話ごとに手動でプロジェクト履歴をコピーする必要があります。
解決策: 永続的なプロジェクトメモリ
Memory Journalは、プロジェクトの長期記憶として機能し、断片的なAIスレッド間のギャップを埋めます。
開発者向け:
- 📝 自動コンテキストキャプチャ - すべてのエントリでGitコミット、ブランチ、GitHubイシュー、PR、プロジェクト状態がキャプチャされます。
- 🔗 知識グラフ - 関連する作業 (仕様 → 実装 → テスト → PR) をリンクして、関連付けられた履歴を構築します。
- 🔍 インテリジェント検索 - プロジェクトの全タイムラインを通じて過去の決定、解決策、コンテキストを見つけます。
- 📊 プロジェクト分析 - イシューからPRまでの進捗を追跡し、スタンドアップ/レトロスペクティブ用のレポートを生成します。
AI支援作業向け:
- 💡 AIは任意の会話で完全なプロジェクト履歴を照会できます。
- 🧠 意味検索は正確なキーワードがなくても概念的に関連する作業を見つけます。
- 📖 コンテキストバンドルはAIに即座に包括的なプロジェクト状態を提供します。
- 🔗 関係ビジュアライゼーションは異なる作業の関連性を示します。
🚀 クイックスタート
オプション1: npm (推奨)
ステップ1: パッケージをインストールする
npm install -g memory-journal-mcp
ステップ2: ~/.cursor/mcp.jsonに追加する
{
"mcpServers": {
"memory-journal-mcp": {
"command": "memory-journal-mcp"
}
}
}
ステップ3: Cursorを再起動する
CursorまたはMCPクライアントを再起動して、ジャーナルを開始します。
オプション2: npx (インストール不要)
{
"mcpServers": {
"memory-journal-mcp": {
"command": "npx",
"args": ["-y", "memory-journal-mcp"]
}
}
}
オプション3: ソースからインストール
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"]
}
}
}
GitHub統合の設定
GitHubツール (get_github_issues, get_github_prs など) は、gitコンテキストからリポジトリを自動検出できます。ただし、MCPクライアントはプロジェクトとは異なるディレクトリからサーバーを実行することがあります。
GitHubの自動検出を有効にするには、GITHUB_REPO_PATHを設定に追加します。
{
"mcpServers": {
"memory-journal-mcp": {
"command": "memory-journal-mcp",
"env": {
"GITHUB_TOKEN": "ghp_your_token_here",
"GITHUB_REPO_PATH": "/path/to/your/git/repo"
}
}
}
}
| 環境変数 |
説明 |
GITHUB_TOKEN |
APIアクセス用のGitHubパーソナルアクセストークン |
GITHUB_REPO_PATH |
オーナー/リポジトリを自動検出するためのgitリポジトリのパス |
GITHUB_REPO_PATHがない場合: GitHubツールを呼び出す際に、明示的にownerとrepoパラメータを指定する必要があります。
Cursorの既知の問題
MCPリソースのリスト表示: エージェントがリソースのリスト表示に問題がある場合、サーバーパラメータを指定せずにlist_mcp_resources()を呼び出すように指示します。server="memory-journal-mcp"を使用すると、何も返されないことがあります (Cursorのバグ)。
📋 主要機能
🛠️ 27のMCPツール (8つのグループ)
| グループ |
ツール数 |
説明 |
core |
6 |
エントリのCRUD、タグ、テスト |
search |
4 |
テキスト検索、日付範囲検索、意味検索、ベクトル統計 |
analytics |
2 |
統計、クロスプロジェクトインサイト |
relationships |
2 |
エントリのリンク、グラフのビジュアライゼーション |
export |
1 |
JSON/Markdownエクスポート |
admin |
4 |
更新、削除、ベクトルインデックスの再構築/追加 |
github |
5 |
イシュー、PR、コンテキスト統合 |
backup |
3 |
新機能 バックアップ、リスト表示、復元 |
完全なツールリファレンス →
🎯 14のワークフロープロンプト
find-related - 意味的な類似性を通じて関連するエントリを発見
prepare-standup - 日次スタンドアップの要約
prepare-retro - スプリントレトロスペクティブ
weekly-digest - 日別の週次要約
analyze-period - 洞察を伴う期間の深層分析
goal-tracker - マイルストーンと達成状況の追跡
get-context-bundle - Git/GitHubを含むプロジェクトコンテキスト
pr-summary - プルリクエストのジャーナル活動の要約
code-review-prep - 包括的なPRレビューの準備
pr-retrospective - 完了したPRの分析と学習内容
actions-failure-digest - CI/CD失敗分析
完全なプロンプトガイド →
📡 14のリソース
memory://recent - 最新の10件のエントリ
memory://significant - 重要なマイルストーンとブレイクスルー
memory://graph/recent - 最新の関係のライブMermaidダイアグラム
memory://team/recent - 最近のチーム共有エントリ
memory://health - 新機能 サーバーのヘルスと診断情報
memory://projects/{number}/timeline - プロジェクトの活動タイムライン
memory://issues/{issue_number}/entries - イシューに関連付けられたエントリ
memory://prs/{pr_number}/entries - プルリクエストに関連付けられたエントリ
memory://prs/{pr_number}/timeline - プルリクエストとジャーナルの統合タイムライン
memory://graph/actions - CI/CDのナラティブグラフ
memory://actions/recent - 最近のワークフロー実行
memory://tags - 使用回数を含むすべてのタグ
memory://statistics - ジャーナルの統計情報
🔧 設定
GitHub統合 (オプション)
export GITHUB_TOKEN="your_token"
export GITHUB_ORG_TOKEN="your_org_token"
export DEFAULT_ORG="your-org-name"
スコープ: repo, project, read:org (組織のみ)
ツールフィルタリング (オプション)
MEMORY_JOURNAL_MCP_TOOL_FILTERを使用して、公開するツールを制御します。
export MEMORY_JOURNAL_MCP_TOOL_FILTER="-analytics,-github"
フィルター構文:
-group - グループ内のすべてのツールを無効にする
-tool - 特定のツールを無効にする
+tool - グループを無効にした後にツールを再有効にする
- メタグループ:
starter, essential, full, readonly
設定例:
{
"mcpServers": {
"memory-journal-mcp": {
"command": "memory-journal-mcp",
"env": {
"MEMORY_JOURNAL_MCP_TOOL_FILTER": "starter",
"GITHUB_TOKEN": "your_token"
}
}
}
}
| 設定 |
フィルター文字列 |
ツール数 |
| Starter |
starter |
~10 |
| Essential |
essential |
~6 |
| Full (デフォルト) |
full |
27 |
| Read-only |
readonly |
~20 |
完全なツールフィルタリングガイド →
💻 使用例
GitHubコンテキスト付きのエントリの作成
create_entry({
content: "Completed Phase 1 of GitHub Projects integration!",
entry_type: "technical_achievement",
tags: ["github-projects", "milestone"],
project_number: 1,
significance_type: "technical_breakthrough"
})
バックアップの作成と管理
backup_journal({ name: "pre_refactor" })
list_backups()
restore_backup({ filename: "pre_refactor.db", confirm: true })
サーバーのヘルスチェック
検索と分析
search_entries({ query: "performance optimization", limit: 5 })
semantic_search({ query: "startup time improvements", limit: 3 })
get_statistics({ group_by: "week" })
ビジュアルマップの生成
visualize_relationships({
entry_id: 55,
depth: 2
})
🏗️ アーキテクチャ
┌─────────────────────────────────────────────────────────────┐
│ MCP Server Layer (TypeScript) │
│ ┌─────────────────┐ ┌─────────────────┐ ┌─────────────┐ │
│ │ Tools (27) │ │ Resources (14) │ │ Prompts (14)│ │
│ │ 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 - ネイティブコンパイルが不要で、どこでも動作
- sql.js - ディスク同期機能を備えたPure JavaScriptのSQLite
- vectra - ネイティブ依存関係のないベクトル類似性検索
- @xenova/transformers - JavaScriptでのML埋め込み
- 遅延ロード - MLモデルは初回使用時にロードされ、起動時にはロードされません。
セキュリティ
- ローカルファースト - すべてのデータがローカルに保存され、外部API呼び出しはオプションのGitHubを除いて行われません。
- 入力検証 - Zodスキーマ、コンテンツサイズ制限、SQLインジェクション防止
- パストラバーサル保護 - バックアップファイル名が検証されます。
- MCP 2025-11-25アノテーション - 動作ヒント (
readOnlyHint, destructiveHint など)
データとプライバシー
- 単一のSQLiteファイル - データはあなたが所有します。
- ポータブル -
.dbファイルをどこにでも移動できます。
- ソフトデリート - エントリを復元できます。
- 復元時の自動バックアップ - データを誤って失うことはありません。
📚 ドキュメントとリソース
📄 ライセンス
MITライセンス - 詳細はLICENSEファイルを参照してください。
🤝 コントリビューション
開発者によって開発者のために作られています。PRを歓迎します!ガイドラインはCONTRIBUTING.mdを参照してください。
v2.xからの移行は? 既存のデータベースは完全に互換性があります。TypeScriptバージョンは同じスキーマとデータ形式を使用しています。