项目简介
Notelog 是一个命令行工具,用于快速记录个人想法、待办事项、见解等。它将笔记存储在本地目录的 Markdown 文件中,按年和月组织。此外,Notelog 集成了一个 Model Context Protocol (MCP) 服务器,使得支持该协议的 AI 助手可以直接与 Notelog 交互,实现通过自然语言创建和管理笔记。
主要功能点
- 快速添加笔记: 支持从命令行参数、标准输入或指定文件创建笔记。
- Markdown 格式存储: 笔记以 Markdown 文件格式存储,方便后续编辑和查阅。
- 日期和目录管理: 自动按年份和月份组织笔记文件。
- 标签支持: 支持为笔记添加标签,便于分类和检索。
- AI 助手集成 (通过 MCP): 作为 MCP 服务器,Notelog 提供了一个工具(目前是 'add_note'),允许兼容的 AI 客户端调用来自动化笔记创建过程。
- YAML Frontmatter: 使用 YAML Frontmatter 存储笔记的元数据,如创建时间和标签。
安装步骤
Notelog 使用 Rust 编写,需要安装 Rust 编程环境。
- 克隆仓库:
git clone https://github.com/DataWraith/notelog.git cd notelog - 安装:
使用 Cargo 构建并安装到您的系统路径:
请确保您的 Cargo bin 目录已添加到系统的 PATH 环境变量中。cargo install --path .
服务器配置 (供 MCP 客户端使用)
Notelog 的 MCP 服务器功能通过运行特定的命令启动。为了让 MCP 客户端(如某些 AI 助手或应用)能够连接并使用 Notelog 的功能,您需要在客户端配置中指定启动 Notelog MCP 服务器的命令。
典型的 MCP 客户端配置需要以下信息:
- 服务器名称 (Server Name): 您为 Notelog MCP 服务器指定的名称,例如 'notelog'。
- 命令 (command): 启动 Notelog 可执行文件的路径,通常安装后是 'notelog'。
- 参数 (args): 启动 MCP 服务器模式所需的命令行参数。至少需要指定 'mcp' 子命令,并且通常需要指定您的笔记存储目录。
根据 Notelog 的设计,一个常见的 MCP 客户端配置参数如下:
- 'command': 'notelog'
- 'args':
- 'mcp': 启动 MCP 服务器模式的子命令。
- '-d': 指定笔记存储目录的选项。
- '/path/to/your/NoteLog/directory': 您的笔记实际存储目录路径。请将此替换为您系统中实际的笔记目录路径。
例如,一个 MCP 客户端的 JSON 配置片段可能类似于这样(请注意,这是客户端配置的示例,您不需要在 Notelog 本身运行这些 JSON):
{ "mcpServers": { "notelog": { "command": "notelog", "args": [ "mcp", "-d", "/home/username/NoteLog" // 替换为您的实际目录 ] } } }
MCP 客户端将使用 'command' 和 'args' 中指定的信息来启动 Notelog 进程,并通过标准输入/输出与其进行 MCP JSON-RPC 通信。
基本使用方法 (CLI)
在使用 Notelog 之前,请先创建您想要存储笔记的目录(默认是 '~/NoteLog'),并确保 Notelog 对该目录有写入权限。
- 创建一个笔记目录:
mkdir ~/NoteLog - 通过命令行添加笔记:
notelog add "这是一条新的笔记" # 或指定标题 notelog add --title "会议记录" "讨论了项目进展。" # 添加笔记并包含标签 (标签以 + 开头) notelog add "新想法关于人工智能" +ai +idea - 从文件添加笔记:
notelog add --title "文件笔记" --file /path/to/your/note.md - 从标准输入添加笔记:
echo "这是通过管道输入的笔记内容。" | notelog add - 打开编辑器添加笔记:
直接运行 'notelog' 会打开您配置的默认编辑器(如 nano, vim 等)让您撰写笔记。您可以编辑包含 Frontmatter 模板的内容。
在编辑器中保存并关闭文件后,笔记将被保存。notelog
有关更详细的用法和选项,请参考 Notelog 的帮助信息(运行 'notelog --help')。
信息
分类
生产力应用