LogBook MCP について
LogBook MCPは、ノート、TODO、リマインダーを記録する開発者向けのログブック型MCPサーバーです。現行版はObsidianへの保存に対応し、コード内TODOの検出や全文検索、一括操作も行えます。
主な機能
- 01ノートの記録とTODO管理
- 02単発・定期リマインダーの作成
- 03コード内TODOコメントの検出
- 04全文検索と一括操作
- 05Gitプロジェクトごとの記録管理
活用シーン
- 01プロジェクトの決定事項や障害を記録
- 02プロジェクト別にTODOを整理・追跡
- 03タスク確認の定期リマインダーを設定
- 04過去のノートやTODOを検索
MCP 対応
MCPサーバーとして、ログ、TODO、リマインダー、検索、プロジェクト記録の管理ツールと、リマインダーリソースを互換クライアントに提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
@cocaxcode/logbook-mcp
開発者のログブックを、いつでも一文で。
メモ · TODO · リマインダー · コードスキャン · 全文検索 · ネイティブ CLI · Obsidian 専用
⚠️ v2.0 の破壊的変更: SQLite を削除しました。v2 は Obsidian バックエンドのみをサポートします。
~/.logbook/logbook.db(v1)のデータは自動的には移行されず、ディスク上にそのまま残ります。データへのアクセスが必要な場合は、@cocaxcode/[email protected]を引き続きご利用ください。ツールは 10 個から 5 個に減りました(非推奨のシム付き)。詳細は CHANGELOG.md をご覧ください。
概要 · 使い方 · インストール · 機能 · ツールリファレンス · ストレージ · アーキテクチャ
概要
logbook-mcp は、AI アシスタントを永続的な開発者向けログブックに変える MCP サーバーです。意思決定を記録し、TODO を追跡し、リマインダーを設定し、コード内の TODO をスキャンして、エディターを離れることなく全文検索ですべてを検索できます。
git プロジェクトを自動検出し、すべてをローカルに保存します。また、Claude Code、Claude Desktop、Cursor、Windsurf、VS Code、Codex CLI、Gemini CLI など、あらゆる MCP 対応クライアントで動作します。すべてのデータはお使いのマシンに保存されます。同期も追跡もされず、ディスクの外に持ち出されることもありません。 メモはプロジェクトごとに自動的に分類されますが、いつでもすべてのプロジェクトを対象に横断検索できます。
ストレージモードは 2 種類です。SQLite(デフォルト、設定不要)または Obsidian(frontmatter 付きの Markdown ファイル。Obsidian の Vault で Graph View、Dataview、Tasks、Calendar とともに表示できます)。SQLite から Obsidian に切り替えると、起動時にデータが自動移行されます。
話しかけるだけ
覚える必要のあるコマンドはありません。必要なことを伝えるだけです。
メモを記録する
"I decided to use JWT instead of sessions for scalability"
→ Saved as a decision — retrievable months from now
"The CI is failing due to a timeout in integration tests"
→ Captured as a blocker — shows up when you review activity
TODO を追跡する
"TODO: implement email validation"
→ Created with auto-inferred topic
"Add these: fix token refresh. update deps. add rate limiting"
→ 3 TODOs created at once, each categorized
"Mark 5 and 8 as done"
→ Both completed
"What's pending across all projects?"
→ Global view of everything, including code TODOs
リマインダーを設定する
"Remind me tomorrow to deploy"
→ One-time reminder
"Remind me every Tuesday to review PRs"
→ Recurring weekly — auto-acknowledged after each session
"Remind me on weekdays to check the CI"
→ Monday to Friday
何でも検索する
"Why did we choose JWT?"
→ Finds the decision note, even months later
"Search everything about auth"
→ FTS5 search across all notes and TODOs
インストール
Claude Code(推奨)
claude mcp add --scope user logbook -- npx -y @cocaxcode/logbook-mcp@latest --mcp
Obsidian モードを使用する場合:
claude mcp add --scope user logbook -- npx -y @cocaxcode/logbook-mcp@latest --mcp --storage obsidian --dir "/path/to/vault/logbook"
Claude Desktop
claude_desktop_config.json に追加します。
{
"mcpServers": {
"logbook-mcp": {
"command": "npx",
"args": ["-y", "@cocaxcode/logbook-mcp@latest", "--mcp"]
}
}
}
Obsidian モードを使用する場合:
{
"mcpServers": {
"logbook-mcp": {
"command": "npx",
"args": [
"-y", "@cocaxcode/logbook-mcp@latest", "--mcp",
"--storage", "obsidian",
"--dir", "/path/to/vault/logbook"
]
}
}
}
設定ファイルの場所
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json - Linux:
~/.config/Claude/claude_desktop_config.json
Cursor、Windsurf、VS Code、Codex CLI、Gemini CLI
Cursor — .cursor/mcp.json に追加します。
{
"mcpServers": {
"logbook-mcp": {
"command": "npx",
"args": ["-y", "@cocaxcode/logbook-mcp@latest", "--mcp"]
}
}
}
Windsurf — .windsurf/mcp.json に追加します。
{
"mcpServers": {
"logbook-mcp": {
"command": "npx",
"args": ["-y", "@cocaxcode/logbook-mcp@latest", "--mcp"]
}
}
}
VS Code — .vscode/mcp.json に追加します。
{
"servers": {
"logbook-mcp": {
"command": "npx",
"args": ["-y", "@cocaxcode/logbook-mcp@latest", "--mcp"]
}
}
}
Codex CLI:
codex mcp add logbook-mcp -- npx -y @cocaxcode/logbook-mcp@latest --mcp
Gemini CLI — .gemini/settings.json に追加します。
{
"mcpServers": {
"logbook-mcp": {
"command": "npx",
"args": ["-y", "@cocaxcode/logbook-mcp@latest", "--mcp"]
}
}
}
設定
logbook-mcp では、ストレージを次の優先順位で設定する 3 つの方法があります。
- CLI 引数(最優先):
--storage obsidian --dir "/path" --workspace "name" - 環境変数:
LOGBOOK_STORAGE、LOGBOOK_DIR、LOGBOOK_WORKSPACE - 設定ファイル:
~/.logbook/config.json(初回実行時に自動作成)
{
"storage": "sqlite",
"dir": null,
"workspace": null,
"autoMigrate": true
}
SQLite から Obsidian への切り替え
設定を変更して再起動するだけです。autoMigrate が true(デフォルト)の場合、既存の SQLite データは次回の起動時に自動的に Obsidian へ移行されます。手動での作業は必要ありません。
logbook_setup action:status で現在のステータスを確認することもできます。
機能
7 つの組み込みトピック
すべてのノート、TODO、リマインダーは AI によって自動的に分類されます。または、トピックを明示的に指定することもできます。
| トピック | 用途 | Conventional Commits からのマッピング |
|---|---|---|
| feature | 新機能 | feat: |
| fix | バグ修正 | fix: |
| chore | メンテナンス、CI/CD、リファクタリング | refactor: docs: ci: build: test: |
| idea | 今後の提案 | — |
| decision | アーキテクチャの選択 | — |
| blocker | 進行を妨げているもの | — |
| reminder | 時間ベースのリマインダー | — |
カスタムトピックはいつでも作成できます。「security という名前のトピックを作成して」と伝えるだけです。
タイプ、フォルダー、ダッシュボードを設定できるカスタムトピック
トピックでは、独自の動作(kind)、Obsidian フォルダー、プロジェクトダッシュボード(index.md)に表示するかどうかを定義できます。
- kind:
note(デフォルト)— 各エントリーは個別の.mdファイルです - kind:
todo— エントリーは 1 つの.mdファイルにまとめられたチェックボックスです - show_in_index:
true(デフォルト)—index.mdに Dataview セクションとクイックリンクを追加します - show_in_index:
false— トピックは存在しますが、ダッシュボードには表示されません
"Create a topic called incident with its own folder"
→ logbook_topics action:add name:"incident" kind:"note" folder:"incidents"
→ Entries saved to: project/incidents/2026-03-24-server-down.md
→ Dashboard updated with Incidents section
"Create a topic called sprint-task as todo type"
→ logbook_topics action:add name:"sprint-task" kind:"todo" folder:"sprint"
→ Entries saved to: project/sprint.md (as checkboxes)
"Create a private topic not shown in the dashboard"
→ logbook_topics action:add name:"internal" kind:"note" folder:"internal" show_in_index:false
→ Entries saved to: project/internal/ (not visible in index.md)
folder を指定しない場合、エントリーはデフォルトの notes/ または todos/ ディレクトリに保存されます。show_in_index: true と folder を設定したトピックを作成すると、ダッシュボード(index.md)が自動的に再生成されます。
コード内 TODO のスキャン
コード内の TODO、FIXME、HACK、BUG コメントは git grep で検出され、手動で登録した TODO とともに表示されます。
feature (2)
[ ] #12 [manual] Implement email validation
[code] TODO: add OAuth support — src/auth/service.ts:45
fix (3)
[ ] #8 [manual] Token doesn't refresh
[code] FIXME: handle null case — src/users/controller.ts:78
[code] BUG: race condition — src/chat/gateway.ts:112
コード内の TODO がソースからなくなると(修正された場合など)、logbook が自動的に検出して解決済みとしてマークします。
リマインダー
1 回限りのパターンと繰り返しのパターンの両方に対応しています。
| パターン | 例 | スケジュール |
|---|---|---|
| 1 回限り | remind_at: "2026-03-25" | 3 月 25 日のみ |
daily | 毎日 | 毎日 |
weekdays | 月曜日から金曜日 | 月〜金 |
weekly:2 | 毎週火曜日 | 曜日を指定 |
weekly:1,3 | 月曜日と水曜日 | 複数の曜日 |
monthly:1 | 毎月 1 日 | 日付を指定 |
monthly:1,15 | 1 日と 15 日 | 複数の日付 |
繰り返しのリマインダーは、1 日に 1 回表示されると自動的に確認済みになります。見逃した 1 回限りのリマインダーは、期限超過として表示されます。
ヒント: logbook-mcp は MCP リソース(
logbook://reminders)を公開しており、クライアントはセッション開始時に読み込むことができます。Claude Code と Claude Desktop では、リマインダーが確認を求めなくても自動的に表示されます。その他のクライアントでは、「リマインダーはある?」と伝えるだけです。
全文検索(FTS5)
SQLite FTS5 を利用して、すべてのノートと TODO をすばやく検索できます。トピック、タイプ、プロジェクトで絞り込むことも、すべてのプロジェクトを対象にグローバル検索することもできます。
バッチ操作
"Add: validate email. fix token. update deps" → 3 TODOs created
"Mark 5, 8, and 12 as done" → 3 TODOs completed
"Delete TODOs 3 and 7" → 2 TODOs removed
スマートなプロジェクト検出
logbook-mcp は git rev-parse を使用して、現在いる git プロジェクトを自動検出します。設定は不要です。デフォルトでは現在のプロジェクトにクエリを絞り込みますが、global オプションですべてを確認できます。
ツールリファレンス
| ツール | アクション | 説明 |
|---|---|---|
logbook_note | — | トピックを指定してメモを追加 |
logbook_todo | add list done edit rm | TODO の包括的な管理 |
logbook_entry | list edit delete standup decision debug | 構造化されたエントリー(ADR、デバッグセッション、スタンドアップ) |
logbook_query | search log timeline | 全文検索、アクティビティログ、プロジェクト横断タイムライン |
logbook_topics | list add | トピックの管理(カスタム種別、フォルダー、ダッシュボードでの表示設定) |
logbook_tags | — | タグと件数の一覧表示 |
logbook_reminders | — | 未対応のリマインダーを表示 |
logbook_review | — | 統計情報付きの週次/月次レビュー |
logbook_inbox | list process | クイックメモの受信トレイ(Obsidian モード) |
logbook_setup | init migrate status | 管理:Vault の初期化、データの移行、ステータスの確認 |
| 10 個のツール + 1 個のリソース |
logbook_note — メモを追加
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
content | string | はい | メモの内容(最大 5000 文字) |
topic | string | いいえ | トピック名 — AI が推測します。新しい場合は自動作成されます |
logbook_todo — TODO の包括的な管理
action: add — TODO を作成
| パラメーター | 型 | 説明 |
|---|---|---|
content | string | 単一の TODO の内容(最大 2000 文字) |
items | array | 複数の TODO:[{content, topic?, priority?, remind_at?, remind_pattern?}](最大 50 件) |
topic | string | トピック — 自動推測または自動作成 |
priority | low normal high urgent | 優先度(デフォルト:normal) |
remind_at | YYYY-MM-DD | 1 回限りのリマインダー日付 |
remind_pattern | string | 繰り返し:daily、weekdays、weekly:N、monthly:N |
action: list — トピックごとにグループ化した TODO の一覧表示
| パラメーター | 型 | デフォルト | 説明 |
|---|---|---|---|
status | pending done all | pending | ステータスで絞り込み |
topic | string | — | トピックで絞り込み |
priority | low normal high urgent | — | 優先度で絞り込み |
source | all manual code | all | 手動の DB またはコードコメント |
scope | project global | project | 現在のプロジェクトまたはすべてのプロジェクト |
action: done — 完了としてマーク/元に戻す
| パラメーター | 型 | 説明 |
|---|---|---|
ids | number or number[] | マークする ID |
undo | boolean | true の場合、未完了に戻します(デフォルト:false) |
action: edit — TODO を編集
| パラメーター | 型 | 説明 |
|---|---|---|
id | number | 編集する TODO の ID |
content | string | 新しい内容 |
topic | string | 新しいトピック |
priority | low normal high urgent | 新しい優先度 |
action: rm — TODO を削除
| パラメーター | 型 | 説明 |
|---|---|---|
ids | number or number[] | 完全に削除する ID |
logbook_entry — 構造化されたエントリー
action: standup — デイリースタンドアップ
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
yesterday | string | はい | 昨日行ったこと |
today | string | はい | 今日行うこと |
blockers | string | いいえ | 現在の阻害要因 |
topic | string | いいえ | トピック |
action: decision — アーキテクチャ決定記録(ADR)
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
title | string | はい | 決定のタイトル |
context | string | はい | この決定が必要な理由 |
options | string[] | はい | 検討した選択肢 |
decision | string | はい | 採用した決定 |
consequences | string | はい | 決定による影響 |
topic | string | いいえ | トピック(デフォルト:decision) |
action: debug — デバッグセッション
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
title | string | はい | バグ/エラーのタイトル |
error | string | はい | エラーの説明 |
cause | string | はい | 根本原因 |
fix | string | はい | 適用した解決策 |
file | string | いいえ | 添付ファイルのパス |
topic | string | いいえ | トピック(デフォルト:fix) |
action: list — 種類別にエントリーを一覧表示
| パラメーター | 型 | デフォルト | 説明 |
|---|---|---|---|
type | note decision debug standup review | — | エントリーの種類(必須) |
scope | project global | project | 現在のプロジェクトまたはすべて |
limit | number | 20 | 最大結果数 |
action: edit / action: delete — ID を指定してエントリーを変更または削除
logbook_query — 検索とアクティビティ
action: search — 全文検索
| パラメーター | 型 | デフォルト | 説明 |
|---|---|---|---|
query | string | — | 検索テキスト(必須) |
type | all notes todos | all | 検索範囲 |
topic | string | — | トピックで絞り込み |
scope | project global | project | プロジェクトまたはグローバル |
limit | number | 20 | 最大結果数 |
action: log — 指定期間のアクティビティ
| パラメーター | 型 | デフォルト | 説明 |
|---|---|---|---|
period | today yesterday week month | today | 日付のクイックフィルター |
from / to | YYYY-MM-DD | — | カスタム日付範囲 |
type | all notes todos | all | 種類で絞り込み |
scope | project global | project | 現在のプロジェクトまたはすべて |
action: timeline — プロジェクト横断のタイムライン
| パラメーター | 型 | デフォルト | 説明 |
|---|---|---|---|
period | today yesterday week month | week | 期間 |
workspace | string | — | ワークスペースで絞り込み |
logbook_setup — 管理ツール
action: status — 現在の設定と移行状態を表示
action: init — Obsidian の保管庫を初期化(ダッシュボード、テンプレート、受信トレイ)
| パラメーター | 型 | デフォルト | 説明 |
|---|---|---|---|
force | boolean | false | ファイルがすでに存在する場合でも再生成 |
action: migrate — SQLite のデータを Obsidian に手動で移行(obsidian モードが必要)
ストレージ
SQLite モード(デフォルト)
すべてのデータは ~/.logbook/logbook.db にある単一の SQLite データベースに保存されます。設定は不要です。
- WAL モードで同時読み取りに対応
- FTS5 仮想テーブルによる高速な全文検索
- トリガーにより検索インデックスを自動的に同期
- コード TODO スナップショット — 存在していたコード内の TODO を追跡し、なくなったことを検出
Obsidian モード
Obsidian の保管庫に YAML フロントマター付きの Markdown ファイルを直接書き込みます。
CLI 引数(推奨)、設定ファイル、または環境変数で設定します。
# CLI args (most reliable, especially on Windows)
claude mcp add logbook -- npx -y @cocaxcode/logbook-mcp@latest --mcp --storage obsidian --dir "/path/to/vault/logbook"
// Config file: ~/.logbook/config.json
{
"storage": "obsidian",
"dir": "/path/to/vault/logbook",
"autoMigrate": true
}
ファイルはワークスペース、プロジェクト、種類ごとに整理されます。
vault/logbook/
├── cocaxcode/
│ ├── cocaxcode-api/
│ │ ├── notes/ ← logbook_note
│ │ ├── todos/ ← logbook_todo
│ │ ├── decisions/ ← logbook_entry action:decision
│ │ ├── debug/ ← logbook_entry action:debug
│ │ ├── standups/ ← logbook_entry action:standup
│ │ └── attachments/ ← copied files
│ └── cocaxcode-web/
├── optimus/
│ └── optimus-hub/
各ファイルには、Obsidian プラグインからクエリ可能な YAML フロントマターが含まれます。
---
type: todo
date: 2026-03-21
project: cocaxcode-api
workspace: cocaxcode
status: pending
priority: high
due: 2026-03-25
tags: [auth, urgent]
---
- [ ] Fix JWT refresh token
おすすめの Obsidian プラグイン: Dataview(SQL のようなクエリ)、Calendar(日付表示)、Tasks(チェックボックス管理)、Graph View(組み込み機能。[[wikilinks]] によるつながりを表示)。
自動移行: SQLite から Obsidian に切り替えると、起動時に既存のデータが自動的に移行されます(autoMigrate: true の場合)。logbook_setup action:migrate を手動で実行することもできます。
ヒント: Self-hosted LiveSync と VPS 上の CouchDB を組み合わせると、PC、Android、iOS 間で保管庫を無料で同期できます。
アーキテクチャ
src/
├── index.ts # Entry: --mcp → server, else CLI
├── server.ts # createServer() — 10 tools + 1 resource
├── config.ts # Config resolution (args > env > file > defaults)
├── auto-migrate.ts # Auto SQLite → Obsidian migration on startup
├── cli.ts # CLI (help, version)
├── types.ts # Shared interfaces
├── storage/
│ ├── types.ts # StorageBackend interface
│ ├── index.ts # getStorage() factory (uses resolveConfig)
│ ├── sqlite/ # SQLite backend (wraps db/)
│ └── obsidian/ # Obsidian backend (markdown + frontmatter)
├── db/ # SQLite internals
├── git/ # Git repo detection + code TODO scanning
├── resources/ # MCP Resource: logbook://reminders
└── tools/ # 10 MCP tools (one file each)
スタック: TypeScript · MCP SDK · better-sqlite3 · Zod · tsup
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。