mcpField
L
LogBook MCP

LogBook MCP

本地服务
github.com/cocaxcode开发工具125 周前更新

关于 LogBook MCP

LogBook MCP 是为开发者设计的持久化工作日志 MCP 服务,可记录笔记、TODO 和提醒,并扫描代码注释中的 TODO。当前版本支持 Obsidian 存储,提供全文搜索和批量操作。

主要功能

  1. 01记录笔记与管理 TODO
  2. 02创建一次性和重复提醒
  3. 03扫描代码中的 TODO 注释
  4. 04全文搜索与批量操作
  5. 05按 Git 项目自动划分记录

适用场景

  1. 01记录项目决策与进度阻碍
  2. 02按项目整理并跟踪 TODO
  3. 03定期提醒自己检查任务
  4. 04搜索过往笔记和待办事项

MCP 相关

作为 MCP 服务,它向兼容客户端提供日志、待办、提醒、搜索和项目记录管理工具,并暴露提醒资源。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"cocaxcode-logbook": {
"command": "npx",
"args": [
"-y",
"@cocaxcode/logbook-mcp"
]
}
}
}
启动命令npx -y @cocaxcode/logbook-mcp

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npm@cocaxcode/logbook-mcp0.8.11

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

@cocaxcode/logbook-mcp

你的开发者日志簿,随时只需一句话。
笔记 · TODO · 提醒 · 代码扫描 · 全文搜索 · 原生 CLI · 仅支持 Obsidian

npm 版本 npm 下载量 许可证 Node 5 个工具 + 5 个已弃用工具

⚠️ v2.0 重大变更: 已移除 SQLite。v2 仅支持 Obsidian 后端。~/.logbook/logbook.db(v1)中的数据不会自动迁移,仍会原样保留在磁盘上。如果需要访问这些数据,请继续使用 @cocaxcode/[email protected]。工具数量从 10 个减少到 5 个(另有兼容垫片标记为已弃用)。详情请参阅 CHANGELOG.md。

概览 · 用法 · 安装 · 功能 · 工具参考 · 存储 · 架构


快速概览

logbook-mcp 是一个 MCP 服务,可将你的 AI 助手变成持久化的开发者日志簿。记录决策、跟踪 TODO、设置提醒、扫描代码中的 TODO,并通过全文搜索查找所有内容,无需离开编辑器。

它会自动检测你的 git 项目,在本地存储所有内容,并兼容任何支持 MCP 的客户端:Claude Code、Claude Desktop、Cursor、Windsurf、VS Code、Codex CLI 或 Gemini CLI。所有数据都留在你的设备上——不会同步、不会跟踪,也不会离开你的磁盘。 笔记会自动按项目归类,但你也可以随时跨所有项目进行全局搜索。

两种存储模式:SQLite(默认,无需配置)或 Obsidian(带 frontmatter 的 Markdown 文件,可在你的 Obsidian 库中使用 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 支持三种存储配置方式,优先级如下:

  1. CLI 参数(优先级最高):--storage obsidian --dir "/path" --workspace "name"
  2. 环境变量:LOGBOOK_STORAGE、LOGBOOK_DIR、LOGBOOK_WORKSPACE
  3. 配置文件:~/.logbook/config.json(首次运行时自动创建)
{
  "storage": "sqlite",
  "dir": null,
  "workspace": null,
  "autoMigrate": true
}
从 SQLite 切换到 Obsidian

只需更改配置并重启。如果 autoMigrate 为 true(默认值),现有的 SQLite 数据会在下次启动时自动迁移到 Obsidian。无需手动操作。

也可以使用 logbook_setup action:status 查看当前状态。


功能

7 个内置主题

AI 会自动为每条笔记、TODO 和提醒分类,你也可以明确指定主题。

主题用途对应的常规提交类型
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 ——记录会作为复选框写入一个汇总的 .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

通过 git grep 检测代码中的 TODO、FIXME、HACK 和 BUG 注释,并与手动添加的 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 会自动检测并将其标记为已解决。

提醒

支持一次性和重复模式:

模式示例计划
一次性remind_at: "2026-03-25"仅限 3 月 25 日
daily每天每天
weekdays周一至周五周一至周五
weekly:2每周二每周的特定一天
weekly:1,3周一和周三每周的多个日期
monthly:1每月 1 日每月的特定一天
monthly:1,15每月 1 日和 15 日每月的多个日期

重复提醒每天显示一次后会自动确认。错过的一次性提醒会显示为逾期。

提示: 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_todoadd list done edit rm完整的 TODO 管理
logbook_entrylist edit delete standup decision debug结构化条目(ADR、调试会话、每日站会)
logbook_querysearch log timeline全文搜索、活动日志、跨项目时间线
logbook_topicslist add管理主题(自定义类型、文件夹、仪表板可见性)
logbook_tags—列出标签及其计数
logbook_reminders—查看待处理提醒
logbook_review—每周/每月回顾及统计数据
logbook_inboxlist process快速笔记收件箱(Obsidian 模式)
logbook_setupinit migrate status管理:初始化 vault、迁移数据、检查状态
10 个工具 + 1 个资源
logbook_note — 添加笔记
参数类型必填说明
contentstring是笔记内容(最多 5000 个字符)
topicstring否主题名称 — AI 会推断主题;如果是新主题,则自动创建
logbook_todo — 完整的 TODO 管理

操作:add — 创建 TODO

参数类型说明
contentstring单条 TODO 内容(最多 2000 个字符)
itemsarray多条 TODO:[{content, topic?, priority?, remind_at?, remind_pattern?}](最多 50 条)
topicstring主题 — 自动推断或自动创建
prioritylow normal high urgent优先级(默认:normal)
remind_atYYYY-MM-DD一次性提醒日期
remind_patternstring重复提醒:daily、weekdays、weekly:N、monthly:N

操作:list — 按主题分组列出 TODO

参数类型默认值说明
statuspending done allpending按状态筛选
topicstring—按主题筛选
prioritylow normal high urgent—按优先级筛选
sourceall manual codeall手动数据库记录或代码注释
scopeproject globalproject当前项目或所有项目

操作:done — 标记为完成/撤销

参数类型说明
idsnumber 或 number[]要标记的 ID
undoboolean如果为 true,则恢复为待处理状态(默认:false)

操作:edit — 编辑 TODO

参数类型说明
idnumber要编辑的 TODO ID
contentstring新内容
topicstring新主题
prioritylow normal high urgent新优先级

操作:rm — 删除 TODO

参数类型说明
idsnumber 或 number[]要永久删除的 ID
logbook_entry — 结构化条目

操作:standup — 每日站会

参数类型必填说明
yesterdaystring是昨天完成的工作
todaystring是今天将要完成的工作
blockersstring否当前阻碍
topicstring否主题

操作:decision — 架构决策记录(ADR)

参数类型必填说明
titlestring是决策标题
contextstring是做出此决策的原因
optionsstring[]是考虑过的选项
decisionstring是最终决策
consequencesstring是决策的后果
topicstring否主题(默认:decision)

操作:debug — 调试会话

| 参数 | 类型 | 必填 | 说明 | |-------|------|----------|-------------| | `title` | string | 是 | Bug/错误标题 | | `error` | string | 是 | 错误描述 | | `cause` | string | 是 | 根本原因 | | `fix` | string | 是 | 已应用的解决方案 | | `file` | string | 否 | 附件路径 | | `topic` | string | 否 | 主题(默认值:fix) |

action: list — 按类型列出条目

参数类型默认值说明
typenote decision debug standup review—条目类型(必填)
scopeproject globalproject当前项目或全部项目
limitnumber20最大结果数

action: edit / action: delete — 按 ID 修改或删除条目

logbook_query — 搜索与活动记录

action: search — 全文搜索

参数类型默认值说明
querystring—搜索文本(必填)
typeall notes todosall搜索范围
topicstring—按主题筛选
scopeproject globalproject项目或全局范围
limitnumber20最大结果数

action: log — 查看某个时间段的活动记录

参数类型默认值说明
periodtoday yesterday week monthtoday快速日期筛选
from / toYYYY-MM-DD—自定义日期范围
typeall notes todosall按类型筛选
scopeproject globalproject当前项目或全部项目

action: timeline — 跨项目时间线

参数类型默认值说明
periodtoday yesterday week monthweek时间范围
workspacestring—按工作区筛选
logbook_setup — 管理工具

action: status — 显示当前配置和迁移状态

action: init — 初始化 Obsidian 仓库(仪表板、模板、收件箱)

参数类型默认值说明
forcebooleanfalse即使文件已存在也重新生成

action: migrate — 手动将 SQLite 数据迁移到 Obsidian(需要 obsidian 模式)


存储

SQLite 模式(默认)

所有数据都存储在 ~/.logbook/logbook.db 这一个 SQLite 数据库中。无需配置。

  • WAL 模式支持并发读取
  • FTS5 虚拟表支持即时全文搜索
  • 触发器自动保持搜索索引同步
  • 代码 TODO 快照——追踪现有的代码 TODO,并检测它们何时消失
Obsidian 模式

直接向 Obsidian 仓库写入带 YAML frontmatter 的 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/

每个文件都带有 YAML frontmatter,Obsidian 插件可以对其进行查询:

---
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


MIT · 由 cocaxcode 构建

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。