@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 +21 -0
- package/README.md +122 -335
- package/dist/{cli-LHRPHO2C.js → cli-YOUH5FEY.js} +1 -1
- package/dist/index.js +2 -2
- package/dist/{server-SU6V6LNU.js → server-YMKNQLDZ.js} +1 -1
- package/package.json +1 -1
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 · TODOs · Reminders · Code
|
|
5
|
+
Notes · TODOs · Reminders · Code scanning · Full-text search · 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="#
|
|
20
|
-
<a href="#installation">Installation</a> ·
|
|
18
|
+
<a href="#quick-overview">Overview</a> ·
|
|
21
19
|
<a href="#just-talk-to-it">Usage</a> ·
|
|
20
|
+
<a href="#installation">Installation</a> ·
|
|
22
21
|
<a href="#features">Features</a> ·
|
|
23
|
-
<a href="#reminders">Reminders</a> ·
|
|
24
22
|
<a href="#tool-reference">Tool Reference</a> ·
|
|
25
23
|
<a href="#storage">Storage</a> ·
|
|
26
|
-
<a href="#
|
|
24
|
+
<a href="#architecture">Architecture</a>
|
|
27
25
|
</p>
|
|
28
26
|
|
|
29
27
|
---
|
|
30
28
|
|
|
31
|
-
##
|
|
29
|
+
## Quick Overview
|
|
32
30
|
|
|
33
|
-
|
|
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
|
-
|
|
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
|
-
|
|
35
|
+
---
|
|
36
|
+
|
|
37
|
+
## Just Talk to It
|
|
38
38
|
|
|
39
|
-
|
|
39
|
+
No commands to memorize. Just say what you need.
|
|
40
40
|
|
|
41
|
-
###
|
|
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
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
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
|
-
|
|
123
|
+
<details>
|
|
124
|
+
<summary>Cursor, Windsurf, VS Code, Codex CLI, Gemini CLI</summary>
|
|
89
125
|
|
|
90
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
192
|
+
Every note, TODO, and reminder is categorized automatically by your AI, or you can specify a topic explicitly.
|
|
219
193
|
|
|
220
|
-
| Topic | Purpose |
|
|
221
|
-
|
|
222
|
-
| **feature** | New functionality | `feat:` |
|
|
223
|
-
| **fix** | Bug fixes | `fix:` |
|
|
224
|
-
| **chore** | Maintenance, CI/CD, refactoring | `refactor:` `docs:` `ci:` `build:` `test:` |
|
|
225
|
-
| **idea** | Future proposals | — |
|
|
226
|
-
| **decision** | Architecture choices | — |
|
|
227
|
-
| **blocker** | Things blocking progress | — |
|
|
228
|
-
| **reminder** | Time-based reminders | — |
|
|
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
|
-
|
|
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
|
-
|
|
208
|
+
Your `TODO`, `FIXME`, `HACK`, and `BUG` comments are detected via `git grep` and shown alongside manual TODOs:
|
|
238
209
|
|
|
239
|
-
|
|
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
|
-
|
|
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
|
-
|
|
251
|
-
☐ #20 Resolve CI timeout
|
|
252
|
-
```
|
|
223
|
+
### Reminders
|
|
253
224
|
|
|
254
|
-
|
|
225
|
+
Both one-time and recurring patterns are supported:
|
|
255
226
|
|
|
256
|
-
|
|
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
|
-
|
|
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
|
-
|
|
269
|
-
📄 [code] HACK: proxy workaround — src/middleware/cors.ts:23
|
|
270
|
-
```
|
|
241
|
+
### Full-text search (FTS5)
|
|
271
242
|
|
|
272
|
-
|
|
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
|
-
###
|
|
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
|
-
|
|
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
|
-
|
|
|
268
|
+
| | | **9 tools + 1 resource** |
|
|
468
269
|
|
|
469
270
|
<details>
|
|
470
|
-
<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><
|
|
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><
|
|
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><
|
|
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><
|
|
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><
|
|
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><
|
|
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><
|
|
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><
|
|
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
|
|
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
|
|
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 · MCP SDK
|
|
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 · MCP SDK · better-sqlite3 · Zod · tsup
|
|
627
416
|
|
|
628
417
|
---
|
|
629
418
|
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
MIT © [cocaxcode](https://github.com/cocaxcode)
|
|
419
|
+
[MIT](./LICENSE) · Built by [cocaxcode](https://github.com/cocaxcode)
|
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-
|
|
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-
|
|
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.
|
|
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.
|
|
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": {
|