@cocaxcode/logbook-mcp 0.4.9 → 0.4.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 cocaxcode
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
  <h1 align="center">@cocaxcode/logbook-mcp</h1>
3
3
  <p align="center">
4
4
  <strong>Your developer logbook, always one sentence away.</strong><br/>
5
- Notes &middot; TODOs &middot; Reminders &middot; Code TODOs &middot; Full-text search &middot; Zero config
5
+ Notes &middot; TODOs &middot; Reminders &middot; Code scanning &middot; Full-text search &middot; Zero config
6
6
  </p>
7
7
  </p>
8
8
 
@@ -12,45 +12,80 @@
12
12
  <a href="https://opensource.org/licenses/MIT"><img src="https://img.shields.io/badge/license-MIT-blue.svg?style=flat-square" alt="License" /></a>
13
13
  <img src="https://img.shields.io/badge/node-%3E%3D20-339933?style=flat-square&logo=node.js&logoColor=white" alt="Node" />
14
14
  <img src="https://img.shields.io/badge/tools-9-blueviolet?style=flat-square" alt="9 tools" />
15
- <img src="https://img.shields.io/badge/tests-63-brightgreen?style=flat-square" alt="63 tests" />
16
15
  </p>
17
16
 
18
17
  <p align="center">
19
- <a href="#the-problem">The Problem</a> &middot;
20
- <a href="#installation">Installation</a> &middot;
18
+ <a href="#quick-overview">Overview</a> &middot;
21
19
  <a href="#just-talk-to-it">Usage</a> &middot;
20
+ <a href="#installation">Installation</a> &middot;
22
21
  <a href="#features">Features</a> &middot;
23
- <a href="#reminders">Reminders</a> &middot;
24
22
  <a href="#tool-reference">Tool Reference</a> &middot;
25
23
  <a href="#storage">Storage</a> &middot;
26
- <a href="#contributing">Contributing</a>
24
+ <a href="#architecture">Architecture</a>
27
25
  </p>
28
26
 
29
27
  ---
30
28
 
31
- ## The Problem
29
+ ## Quick Overview
32
30
 
33
- You make decisions every day. Why JWT over sessions? Why Redis over Memcached? Why that specific database schema?
31
+ logbook-mcp is an MCP server that turns your AI assistant into a persistent developer logbook. Capture decisions, track TODOs, set reminders, and search everything without leaving your editor.
34
32
 
35
- **Nobody writes it down.** Three months later, you ask yourself _"why did we do this?"_ and the answer is gone.
33
+ It auto-detects your git project, stores everything in a local SQLite database, and works with any MCP-compatible client: Claude Code, Claude Desktop, Cursor, Windsurf, VS Code, Codex CLI, or Gemini CLI.
36
34
 
37
- Your TODOs live in 5 different places: Jira, sticky notes, code comments, your head, and that Slack message you'll never find again.
35
+ ---
36
+
37
+ ## Just Talk to It
38
38
 
39
- **logbook-mcp** is a developer logbook that lives inside your AI assistant. Notes, TODOs, reminders, and code TODOs — all queryable with natural language, without ever leaving your workflow.
39
+ No commands to memorize. Just say what you need.
40
40
 
41
- ### Why logbook-mcp?
41
+ ### Capture notes
42
+
43
+ ```
44
+ "I decided to use JWT instead of sessions for scalability"
45
+ → Saved as a decision — retrievable months from now
46
+
47
+ "The CI is failing due to a timeout in integration tests"
48
+ → Captured as a blocker — shows up when you review activity
49
+ ```
42
50
 
43
- | Feature | Benefit |
44
- |---------|---------|
45
- | **Zero context switching** | Don't leave Claude/Cursor to open another app |
46
- | **Zero config** | Auto-detects your project, creates the DB on first use |
47
- | **Zero AI costs** | Returns raw data, your AI client does the formatting |
48
- | **Captures what git doesn't** | Decisions, ideas, blockers, reminders, and context |
49
- | **Code TODOs included** | Scans your source for `TODO/FIXME/HACK/BUG` automatically |
50
- | **Auto-sync code TODOs** | Detects when code TODOs disappear (you fixed them) |
51
- | **Full-text search** | FTS5 powered, finds anything instantly |
52
- | **Recurring reminders** | Daily, weekly, monthly patterns with auto-ack |
53
- | **Multi-project** | One database, all your projects, query per-project or globally |
51
+ ### Track TODOs
52
+
53
+ ```
54
+ "TODO: implement email validation"
55
+ Created with auto-inferred topic
56
+
57
+ "Add these: fix token refresh. update deps. add rate limiting"
58
+ 3 TODOs created at once, each categorized
59
+
60
+ "Mark 5 and 8 as done"
61
+ Both completed
62
+
63
+ "What's pending across all projects?"
64
+ → Global view of everything, including code TODOs
65
+ ```
66
+
67
+ ### Set reminders
68
+
69
+ ```
70
+ "Remind me tomorrow to deploy"
71
+ → One-time reminder
72
+
73
+ "Remind me every Tuesday to review PRs"
74
+ → Recurring weekly — auto-acknowledged after each session
75
+
76
+ "Remind me on weekdays to check the CI"
77
+ → Monday to Friday
78
+ ```
79
+
80
+ ### Search anything
81
+
82
+ ```
83
+ "Why did we choose JWT?"
84
+ → Finds the decision note, even months later
85
+
86
+ "Search everything about auth"
87
+ → FTS5 search across all notes and TODOs
88
+ ```
54
89
 
55
90
  ---
56
91
 
@@ -85,9 +120,10 @@ Add to your `claude_desktop_config.json`:
85
120
  - **Linux**: `~/.config/Claude/claude_desktop_config.json`
86
121
  </details>
87
122
 
88
- ### Cursor
123
+ <details>
124
+ <summary>Cursor, Windsurf, VS Code, Codex CLI, Gemini CLI</summary>
89
125
 
90
- Add to `.cursor/mcp.json` in your project:
126
+ **Cursor** — add to `.cursor/mcp.json`:
91
127
 
92
128
  ```json
93
129
  {
@@ -100,9 +136,7 @@ Add to `.cursor/mcp.json` in your project:
100
136
  }
101
137
  ```
102
138
 
103
- ### Windsurf
104
-
105
- Add to `.windsurf/mcp.json`:
139
+ **Windsurf** — add to `.windsurf/mcp.json`:
106
140
 
107
141
  ```json
108
142
  {
@@ -115,9 +149,7 @@ Add to `.windsurf/mcp.json`:
115
149
  }
116
150
  ```
117
151
 
118
- ### VS Code
119
-
120
- Add to `.vscode/mcp.json`:
152
+ **VS Code** — add to `.vscode/mcp.json`:
121
153
 
122
154
  ```json
123
155
  {
@@ -130,15 +162,13 @@ Add to `.vscode/mcp.json`:
130
162
  }
131
163
  ```
132
164
 
133
- ### Codex CLI
165
+ **Codex CLI**:
134
166
 
135
167
  ```bash
136
168
  codex mcp add logbook-mcp -- npx @cocaxcode/logbook-mcp@latest --mcp
137
169
  ```
138
170
 
139
- ### Gemini CLI
140
-
141
- Add to `.gemini/settings.json`:
171
+ **Gemini CLI** — add to `.gemini/settings.json`:
142
172
 
143
173
  ```json
144
174
  {
@@ -151,125 +181,66 @@ Add to `.gemini/settings.json`:
151
181
  }
152
182
  ```
153
183
 
154
- ---
155
-
156
- ## Just Talk to It
157
-
158
- No commands to memorize. Just tell your AI what you need:
159
-
160
- ### Notes — capture what matters
161
-
162
- | You say | What happens |
163
- |---------|-------------|
164
- | *"I decided to use JWT instead of sessions for scalability"* | Saved as **decision** — retrievable months from now |
165
- | *"Note: Redis doesn't support nested JSON queries natively"* | Saved as a note for future reference |
166
- | *"The CI is failing due to a timeout in integration tests"* | Captured as **blocker** — shows up in standups |
167
- | *"We could add WebSocket support for real-time updates"* | Saved as **idea** — won't get lost in Slack |
168
-
169
- ### TODOs — your checklist, always at hand
170
-
171
- | You say | What happens |
172
- |---------|-------------|
173
- | *"TODO: implement email validation"* | Created with topic **feature** (AI infers it) |
174
- | *"Add these: fix token refresh. update deps. add rate limiting"* | **3 TODOs** created at once, each categorized |
175
- | *"Mark 5 and 8 as done"* | Both marked as completed |
176
- | *"What's pending?"* | All TODOs grouped by topic, including code TODOs |
177
- | *"What's pending across all projects?"* | Global view of everything |
178
-
179
- ### Reminders — never forget
180
-
181
- | You say | What happens |
182
- |---------|-------------|
183
- | *"Remind me tomorrow to deploy"* | One-time reminder for tomorrow |
184
- | *"Remind me every Tuesday to review PRs"* | Recurring weekly reminder |
185
- | *"Remind me the 1st of each month to renew certificates"* | Monthly recurring reminder |
186
- | *"Remind me on weekdays to check the CI"* | Monday to Friday reminder |
187
-
188
- ### Search — find anything, instantly
189
-
190
- | You say | What happens |
191
- |---------|-------------|
192
- | *"What did I do yesterday?"* | Notes + completed TODOs from yesterday |
193
- | *"Search everything about auth"* | FTS5 search across all notes and TODOs |
194
- | *"Show me all decisions this month"* | Filtered by topic **decision** and date range |
195
- | *"Why did we choose JWT?"* | Finds the decision note, even months later |
184
+ </details>
196
185
 
197
186
  ---
198
187
 
199
188
  ## Features
200
189
 
201
- ### Smart project detection
202
-
203
- logbook-mcp auto-detects which git project you're in. No setup, no config files:
204
-
205
- ```
206
- You're in ~/projects/my-api/
207
- → "What's pending?" shows only my-api TODOs
208
-
209
- You're in ~/projects/my-frontend/
210
- → Same question shows only my-frontend TODOs
211
-
212
- You ask "all projects"
213
- → Global view across everything
214
- ```
215
-
216
190
  ### 7 built-in topics
217
191
 
218
- Every note, TODO, and reminder is categorized. The AI infers the topic automatically, or you can specify it:
192
+ Every note, TODO, and reminder is categorized automatically by your AI, or you can specify a topic explicitly.
219
193
 
220
- | Topic | Purpose | Auto-mapped from commits | AI infers from |
221
- |-------|---------|:------------------------:|----------------|
222
- | **feature** | New functionality | `feat:` | "implement", "add", "create" |
223
- | **fix** | Bug fixes | `fix:` | "fix", "bug", "broken" |
224
- | **chore** | Maintenance, CI/CD, refactoring | `refactor:` `docs:` `ci:` `build:` `test:` | "update", "clean", "refactor" |
225
- | **idea** | Future proposals | — | "maybe", "could", "explore" |
226
- | **decision** | Architecture choices | — | "decided", "chose", "going with" |
227
- | **blocker** | Things blocking progress | — | "blocked", "can't", "waiting" |
228
- | **reminder** | Time-based reminders | — | Auto-assigned when `remind_at` is set |
194
+ | Topic | Purpose | Mapped from conventional commits |
195
+ |-------|---------|:--------------------------------:|
196
+ | **feature** | New functionality | `feat:` |
197
+ | **fix** | Bug fixes | `fix:` |
198
+ | **chore** | Maintenance, CI/CD, refactoring | `refactor:` `docs:` `ci:` `build:` `test:` |
199
+ | **idea** | Future proposals | — |
200
+ | **decision** | Architecture choices | — |
201
+ | **blocker** | Things blocking progress | — |
202
+ | **reminder** | Time-based reminders | — |
229
203
 
230
- Topics are auto-created when the AI uses one that doesn't exist. You can also create custom topics:
204
+ Custom topics can be created at any time just say *"create a topic called security"*.
231
205
 
232
- ```
233
- "Create a topic called 'security'"
234
- → Done. Now you can tag notes and TODOs with 'security'.
235
- ```
206
+ ### Code TODO scanning
236
207
 
237
- ### TODOs as checklist
208
+ Your `TODO`, `FIXME`, `HACK`, and `BUG` comments are detected via `git grep` and shown alongside manual TODOs:
238
209
 
239
- Manual TODOs with priority levels:
210
+ ```
211
+ feature (2)
212
+ [ ] #12 [manual] Implement email validation
213
+ [code] TODO: add OAuth support — src/auth/service.ts:45
240
214
 
215
+ fix (3)
216
+ [ ] #8 [manual] Token doesn't refresh
217
+ [code] FIXME: handle null case — src/users/controller.ts:78
218
+ [code] BUG: race condition — src/chat/gateway.ts:112
241
219
  ```
242
- 📋 feature (3)
243
- ☐ #12 Implement email validation
244
- ☐ #15 [HIGH] Dynamic permissions endpoint
245
- ☑ #9 Google OAuth login (completed Mar 17)
246
220
 
247
- 📋 fix (1)
248
- ☐ #8 [URGENT] Token doesn't refresh
221
+ When a code TODO disappears from source (because you fixed it), logbook detects it automatically and marks it as resolved.
249
222
 
250
- 📋 blocker (1)
251
- ☐ #20 Resolve CI timeout
252
- ```
223
+ ### Reminders
253
224
 
254
- ### Code TODOs live from your source
225
+ Both one-time and recurring patterns are supported:
255
226
 
256
- Your `TODO`, `FIXME`, `HACK`, and `BUG` comments appear alongside manual TODOs:
227
+ | Pattern | Example | Schedule |
228
+ |---------|---------|----------|
229
+ | One-time | `remind_at: "2026-03-25"` | March 25 only |
230
+ | `daily` | Every day | Every day |
231
+ | `weekdays` | Monday to Friday | Mon–Fri |
232
+ | `weekly:2` | Every Tuesday | Specific day of week |
233
+ | `weekly:1,3` | Monday and Wednesday | Multiple days |
234
+ | `monthly:1` | 1st of each month | Specific day of month |
235
+ | `monthly:1,15` | 1st and 15th | Multiple days |
257
236
 
258
- ```
259
- 📋 feature (2)
260
- ☐ #12 [manual] Implement email validation
261
- 📄 [code] TODO: add OAuth support — src/auth/service.ts:45
237
+ Recurring reminders auto-acknowledge after being shown once per day. One-time reminders that were missed show as overdue.
262
238
 
263
- 📋 fix (3)
264
- ☐ #8 [manual] Token doesn't refresh
265
- 📄 [code] FIXME: handle null case — src/users/controller.ts:78
266
- 📄 [code] BUG: race condition — src/chat/gateway.ts:112
239
+ > **Tip:** logbook-mcp exposes an MCP Resource (`logbook://reminders`) that clients can load on session start. In Claude Code and Claude Desktop, reminders appear automatically without asking. In other clients, just say *"any reminders?"*.
267
240
 
268
- 📋 chore (1)
269
- 📄 [code] HACK: proxy workaround — src/middleware/cors.ts:23
270
- ```
241
+ ### Full-text search (FTS5)
271
242
 
272
- **Auto-sync:** When you fix a code TODO and it disappears from the source, logbook detects it and marks it as resolved. No action needed it happens automatically when you list your TODOs.
243
+ Search across all notes and TODOs instantly, powered by SQLite FTS5. Filter by topic, type, project, or search globally across all projects.
273
244
 
274
245
  ### Batch operations
275
246
 
@@ -279,179 +250,9 @@ Your `TODO`, `FIXME`, `HACK`, and `BUG` comments appear alongside manual TODOs:
279
250
  "Delete TODOs 3 and 7" → 2 TODOs removed
280
251
  ```
281
252
 
282
- ### Full-text search (FTS5)
283
-
284
- Instant search across all notes and TODOs, powered by SQLite FTS5:
285
-
286
- ```
287
- "Search auth"
288
- → Finds notes about JWT decisions, TODOs about auth endpoints,
289
- and anything mentioning "auth" — across all projects if you want
290
- ```
291
-
292
- ---
293
-
294
- ## Reminders
295
-
296
- logbook-mcp supports both one-time and recurring reminders.
297
-
298
- ### One-time reminders
299
-
300
- ```
301
- "Remind me tomorrow to deploy to production"
302
- → remind_at: "2026-03-20", topic: "reminder"
303
-
304
- "Remind me on March 25 to review the quarterly report"
305
- → remind_at: "2026-03-25", topic: "reminder"
306
- ```
307
-
308
- ### Recurring reminders
309
-
310
- | You say | Pattern | When it fires |
311
- |---------|---------|---------------|
312
- | *"Remind me every day to check CI"* | `daily` | Every day |
313
- | *"Remind me on weekdays to do standup"* | `weekdays` | Monday to Friday |
314
- | *"Remind me every Tuesday to review PRs"* | `weekly:2` | Every Tuesday |
315
- | *"Remind me Mondays and Wednesdays to sync"* | `weekly:1,3` | Mon + Wed |
316
- | *"Remind me the 1st of each month to renew certs"* | `monthly:1` | 1st of month |
317
- | *"Remind me the 1st and 15th to check billing"* | `monthly:1,15` | 1st + 15th |
318
-
319
- ### How reminders behave
320
-
321
- ```
322
- Tuesday 9:00 — you open Claude
323
- ⏰ Reminder: review PRs (weekly, every Tuesday)
324
- → Shows once, auto-acknowledged for today
325
-
326
- Tuesday 14:00 — you open Claude again
327
- → Nothing. Already shown today.
328
-
329
- Wednesday — you open Claude
330
- → Nothing. Not a Tuesday.
331
-
332
- Next Tuesday — you open Claude
333
- → ⏰ Reminder: review PRs (shows again)
334
- ```
335
-
336
- **To stop a recurring reminder permanently:** delete it with `logbook_todo_rm`.
337
-
338
- ### Overdue reminders
339
-
340
- One-time reminders that weren't completed show as overdue:
341
-
342
- ```
343
- ⏰ Reminders for today (Mar 19)
344
- my-api: deploy to production
345
-
346
- ⚠️ Overdue
347
- my-frontend: fix dark mode (was due Mar 17 — 2 days late)
348
- ```
349
-
350
- ### MCP Resource: automatic reminder delivery
351
-
352
- logbook-mcp exposes a **Resource** (`logbook://reminders`) that MCP clients can load automatically when starting a session. This means your AI tells you about pending reminders **without you asking**.
353
-
354
- #### Resource compatibility
355
-
356
- | Client | Resources support | Reminders behavior |
357
- |--------|:-----------------:|-------------------|
358
- | **Claude Code** | ✅ Yes | Reminders shown automatically on session start |
359
- | **Claude Desktop** | ✅ Yes | Reminders shown automatically on session start |
360
- | **Cursor** | ❌ No | Ask *"any reminders?"* — works via `logbook_todo_list` |
361
- | **Windsurf** | ❌ No | Ask *"any reminders?"* — works via `logbook_todo_list` |
362
- | **VS Code + Copilot** | ⚠️ Partial | Depends on MCP extension used |
363
- | **Codex CLI** | ❌ No | Ask *"any reminders?"* — works via `logbook_todo_list` |
364
- | **Gemini CLI** | ❌ No | Ask *"any reminders?"* — works via `logbook_todo_list` |
365
-
366
- > **Important:** Even without Resource support, reminders always work. You just need to ask for them instead of getting them automatically. All 9 tools work identically across all MCP clients.
367
-
368
- ---
369
-
370
- ## A Day With logbook-mcp
371
-
372
- Here's what a typical day looks like:
373
-
374
- ### Morning — start your day
375
-
376
- ```
377
- You: "What did I do yesterday?"
378
-
379
- Claude: Yesterday on my-api:
380
- 📝 [decision] Chose sliding window for rate limiting over fixed window
381
- ☑ #8 Fixed token refresh bug
382
- ☑ #12 Implemented email validation
383
- 📄 [resolved] FIXME in src/users/controller.ts (handle null case)
384
-
385
- You: "What's pending?"
386
-
387
- Claude: my-api — 4 pending:
388
- 📋 feature
389
- ☐ #15 [HIGH] Dynamic permissions endpoint
390
- 📄 TODO: add OAuth — src/auth/service.ts:45
391
- 📋 chore
392
- ☐ #21 Update dependencies
393
- 📋 reminder
394
- ⏰ #25 Review PRs (recurring: every Tuesday)
395
- ```
396
-
397
- ### Working — capture as you go
398
-
399
- ```
400
- You: "I decided to use Redis for session cache because
401
- Memcached doesn't support key expiration callbacks"
402
-
403
- Claude: ✅ Note saved [decision] in my-api
404
-
405
- You: "TODO: add rate limit headers to API responses.
406
- TODO: document the new permissions endpoint.
407
- TODO: fix CORS for mobile app"
408
-
409
- Claude: ✅ 3 TODOs created:
410
- ☐ #26 [feature] Add rate limit headers
411
- ☐ #27 [chore] Document permissions endpoint
412
- ☐ #28 [fix] Fix CORS for mobile app
413
-
414
- You: "Remind me Friday to deploy the permissions update"
415
-
416
- Claude: ✅ Reminder set for 2026-03-21 [reminder]
417
- ```
418
-
419
- ### End of day — wrap up
420
-
421
- ```
422
- You: "Mark 15, 26, and 28 as done"
423
-
424
- Claude: ✅ 3 TODOs completed
425
-
426
- You: "What did I do today?"
427
-
428
- Claude: Today on my-api:
429
- 📝 [decision] Redis for session cache (expiration callbacks)
430
- ☑ #15 Dynamic permissions endpoint
431
- ☑ #26 Rate limit headers
432
- ☑ #28 CORS fix for mobile
433
- 📄 [resolved] HACK in src/middleware/cors.ts (removed workaround)
434
- ```
435
-
436
- ### Weekly review — see the big picture
437
-
438
- ```
439
- You: "Summary of this week across all projects"
440
-
441
- Claude:
442
- my-api: 3 notes, 8 TODOs completed, 4 pending
443
- my-frontend: 1 note, 3 TODOs completed, 2 pending
444
- my-docs: 0 notes, 1 TODO completed, 0 pending
445
-
446
- You: "Search everything about auth across all projects"
253
+ ### Smart project detection
447
254
 
448
- Claude: 12 results:
449
- [note] my-api — Decided JWT over sessions (Mar 12)
450
- [note] my-api — Redis for session cache (Mar 19)
451
- [todo] my-api — ☐ Add OAuth support
452
- [todo] my-frontend — ☑ Auth redirect fix (completed Mar 15)
453
- ...
454
- ```
255
+ logbook-mcp auto-detects which git project you're in via `git rev-parse`. No config needed — it scopes queries to the current project by default, with a `global` option to see everything.
455
256
 
456
257
  ---
457
258
 
@@ -464,10 +265,10 @@ Claude: 12 results:
464
265
  | **TODOs** | `logbook_todo_add` `logbook_todo_list` `logbook_todo_done` `logbook_todo_edit` `logbook_todo_rm` | 5 |
465
266
  | **Config** | `logbook_topics` | 1 |
466
267
  | **Resource** | `logbook://reminders` | — |
467
- | **Total** | | **9 tools + 1 resource** |
268
+ | | | **9 tools + 1 resource** |
468
269
 
469
270
  <details>
470
- <summary><strong>logbook_log</strong> — Activity for a period</summary>
271
+ <summary><code>logbook_log</code> — Activity for a period</summary>
471
272
 
472
273
  Shows notes, completed TODOs, and resolved code TODOs for a time range.
473
274
 
@@ -482,7 +283,7 @@ Shows notes, completed TODOs, and resolved code TODOs for a time range.
482
283
  </details>
483
284
 
484
285
  <details>
485
- <summary><strong>logbook_note</strong> — Add a note</summary>
286
+ <summary><code>logbook_note</code> — Add a note</summary>
486
287
 
487
288
  | Param | Type | Required | Description |
488
289
  |-------|------|----------|-------------|
@@ -491,7 +292,7 @@ Shows notes, completed TODOs, and resolved code TODOs for a time range.
491
292
  </details>
492
293
 
493
294
  <details>
494
- <summary><strong>logbook_todo_add</strong> — Create TODOs</summary>
295
+ <summary><code>logbook_todo_add</code> — Create TODOs</summary>
495
296
 
496
297
  | Param | Type | Description |
497
298
  |-------|------|-------------|
@@ -504,7 +305,7 @@ Shows notes, completed TODOs, and resolved code TODOs for a time range.
504
305
  </details>
505
306
 
506
307
  <details>
507
- <summary><strong>logbook_todo_list</strong> — List TODOs</summary>
308
+ <summary><code>logbook_todo_list</code> — List TODOs</summary>
508
309
 
509
310
  | Param | Type | Default | Description |
510
311
  |-------|------|---------|-------------|
@@ -517,7 +318,7 @@ Shows notes, completed TODOs, and resolved code TODOs for a time range.
517
318
  </details>
518
319
 
519
320
  <details>
520
- <summary><strong>logbook_todo_done</strong> — Mark as done/undo</summary>
321
+ <summary><code>logbook_todo_done</code> — Mark as done / undo</summary>
521
322
 
522
323
  | Param | Type | Description |
523
324
  |-------|------|-------------|
@@ -528,7 +329,7 @@ For recurring reminders, "done" means acknowledged for today. It will reappear o
528
329
  </details>
529
330
 
530
331
  <details>
531
- <summary><strong>logbook_todo_edit</strong> — Edit a TODO</summary>
332
+ <summary><code>logbook_todo_edit</code> — Edit a TODO</summary>
532
333
 
533
334
  | Param | Type | Description |
534
335
  |-------|------|-------------|
@@ -539,7 +340,7 @@ For recurring reminders, "done" means acknowledged for today. It will reappear o
539
340
  </details>
540
341
 
541
342
  <details>
542
- <summary><strong>logbook_todo_rm</strong> — Delete TODOs</summary>
343
+ <summary><code>logbook_todo_rm</code> — Delete TODOs</summary>
543
344
 
544
345
  | Param | Type | Description |
545
346
  |-------|------|-------------|
@@ -549,7 +350,7 @@ Use this to stop recurring reminders permanently.
549
350
  </details>
550
351
 
551
352
  <details>
552
- <summary><strong>logbook_search</strong> — Full-text search</summary>
353
+ <summary><code>logbook_search</code> — Full-text search</summary>
553
354
 
554
355
  | Param | Type | Default | Description |
555
356
  |-------|------|---------|-------------|
@@ -561,7 +362,7 @@ Use this to stop recurring reminders permanently.
561
362
  </details>
562
363
 
563
364
  <details>
564
- <summary><strong>logbook_topics</strong> — Manage topics</summary>
365
+ <summary><code>logbook_topics</code> — Manage topics</summary>
565
366
 
566
367
  | Param | Type | Default | Description |
567
368
  |-------|------|---------|-------------|
@@ -574,18 +375,20 @@ Use this to stop recurring reminders permanently.
574
375
 
575
376
  ## Storage
576
377
 
577
- All data lives in a single SQLite database:
378
+ All data lives in a single SQLite database at `~/.logbook/logbook.db`.
578
379
 
579
380
  ```
580
381
  ~/.logbook/
581
- └── logbook.db # All projects, notes, TODOs, reminders in one file
382
+ └── logbook.db
582
383
  ```
583
384
 
584
385
  - **WAL mode** for concurrent reads
585
386
  - **FTS5** virtual tables for instant full-text search
586
387
  - **Triggers** keep search indexes in sync automatically
587
388
  - **Foreign keys** with `ON DELETE SET NULL` — delete a project, notes remain
588
- - **Code TODO snapshots** — tracks which code TODOs existed, detects when they're resolved
389
+ - **Code TODO snapshots** — tracks which code TODOs existed, detects when they disappear
390
+
391
+ > **Note:** The database is created automatically on first use. No setup required.
589
392
 
590
393
  ---
591
394
 
@@ -609,24 +412,8 @@ src/
609
412
  └── tools/ # 9 MCP tools (one file each)
610
413
  ```
611
414
 
612
- **Stack:** TypeScript &middot; MCP SDK 1.27 &middot; better-sqlite3 &middot; Zod &middot; Vitest &middot; tsup
613
-
614
- ---
615
-
616
- ## Contributing
617
-
618
- ```bash
619
- git clone https://github.com/cocaxcode/logbook-mcp.git
620
- cd logbook-mcp
621
- npm install
622
- npm test # 60 tests
623
- npm run build # Build with tsup
624
- npm run typecheck # TypeScript check
625
- npm run inspector # Test with MCP Inspector
626
- ```
415
+ **Stack:** TypeScript &middot; MCP SDK &middot; better-sqlite3 &middot; Zod &middot; tsup
627
416
 
628
417
  ---
629
418
 
630
- ## License
631
-
632
- MIT &copy; [cocaxcode](https://github.com/cocaxcode)
419
+ [MIT](./LICENSE) &middot; Built by [cocaxcode](https://github.com/cocaxcode)
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
 
3
3
  // src/cli.ts
4
- var VERSION = true ? "0.4.9" : "0.0.0";
4
+ var VERSION = true ? "0.4.11" : "0.0.0";
5
5
  async function runCli(argv) {
6
6
  if (argv.includes("--version") || argv.includes("-v")) {
7
7
  console.log(`logbook-mcp v${VERSION}`);
package/dist/index.js CHANGED
@@ -6,13 +6,13 @@ async function main() {
6
6
  const hasMcpFlag = argv.includes("--mcp");
7
7
  if (hasMcpFlag) {
8
8
  const { StdioServerTransport } = await import("@modelcontextprotocol/sdk/server/stdio.js");
9
- const { createServer } = await import("./server-SU6V6LNU.js");
9
+ const { createServer } = await import("./server-YMKNQLDZ.js");
10
10
  const server = createServer();
11
11
  const transport = new StdioServerTransport();
12
12
  await server.connect(transport);
13
13
  console.error("logbook-mcp server running on stdio");
14
14
  } else {
15
- const { runCli } = await import("./cli-LHRPHO2C.js");
15
+ const { runCli } = await import("./cli-YOUH5FEY.js");
16
16
  await runCli(argv);
17
17
  }
18
18
  }
@@ -1139,7 +1139,7 @@ function registerRemindersResource(server) {
1139
1139
  }
1140
1140
 
1141
1141
  // src/server.ts
1142
- var VERSION = true ? "0.4.9" : "0.0.0";
1142
+ var VERSION = true ? "0.4.11" : "0.0.0";
1143
1143
  function createServer() {
1144
1144
  const server = new McpServer({
1145
1145
  name: "logbook-mcp",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cocaxcode/logbook-mcp",
3
- "version": "0.4.9",
3
+ "version": "0.4.11",
4
4
  "description": "Developer logbook MCP server. Notes, TODOs, reminders, code TODOs with full-text search. Zero config, auto-detects projects, SQLite-powered. Works with Claude, Cursor, Windsurf, Copilot, Gemini, Codex.",
5
5
  "type": "module",
6
6
  "bin": {