返回市场
第一天-MCP服务器

第一天-MCP服务器

作者:bloom2 星标更新:2025-10-17

项目介绍

Day One MCP 服务器

一个提供通过标准输入输出(stdio)通信接口访问 Day One 日记的 Model Context Protocol (MCP) 服务器。

这是什么?

Day One MCP 服务器是作为 Day One Mac 应用的一部分提供的,并实现了 Model Context Protocol,以将 Day One 日记操作暴露为 AI 助手可以调用的工具。

此仓库提供:

  • 📦 包含 .mcpb 文件包,便于在 MCP 客户端中安装
  • 📖 设置和使用文档

功能:

  • 📝 程序化日记条目创建和更新
  • 🔍 跨日记条目的全文搜索
  • 🏷️ 标签和元数据管理
  • 📅 基于日期的条目检索和过滤

技术概述

MCP 服务器作为一个本地基于 stdio 的进程运行,通过 JSON-RPC 2.0 进行通信:

  • 传输方式:stdio(标准输入输出)
  • 数据访问:直接读写 Day One 的 Core Data 存储
  • 安全性:日记级别的访问控制,可选配置

隐私说明:MCP 服务器完全在您的本地机器上运行。然而,MCP 客户端会将检索到的日记内容发送给各自的 LLM 提供商进行处理。

需求

  • 仅限 macOS - 当前 Day One MCP 服务器仅适用于 Day One for Mac
  • Day One Mac 应用 - 可从 Mac App Store 获取
  • Day One CLI - MCP 服务器功能所需

安装

第一步:安装 Day One for Mac

从 Mac App Store 下载并安装 Day One:

Day One on Mac App Store

第二步:安装 Day One CLI

MCP 服务器需要 Day One CLI。通过运行以下命令进行安装:

sudo bash /Applications/Day\ One.app/Contents/Resources/install_cli.sh

这将把 dayone 命令安装到 /usr/local/bin/dayone

验证安装:

/usr/local/bin/dayone --version

第三步:配置 MCP 客户端

Day One MCP 服务器通过 dayone mcp 命令启动,该命令启动一个基于 stdio 的 MCP 服务器进程。

对于 Claude Desktop

下载并安装预构建的 .mcpb 文件包:

  1. Releases 下载最新的 .mcpb 文件
  2. 打开 Claude Desktop → 设置 → 扩展
  3. .mcpb 文件拖放到安装位置

对于 Claude Code CLI

claude mcp add --scope user --transport stdio dayone-cli /usr/local/bin/dayone mcp

对于 Cursor

添加到 ~/.cursor/mcp.json

{
  "mcpServers": {
    "dayone-cli": {
      "command": "/usr/local/bin/dayone",
      "args": ["mcp"],
      "transport": "stdio"
    }
  }
}

其他 MCP 客户端的手动配置

大多数 MCP 客户端接受基于 stdio 的服务器配置。配置如下:

  • 命令/usr/local/bin/dayone
  • 参数["mcp"]
  • 传输方式stdio

服务器通过 stdin/stdout 使用 JSON-RPC 2.0 进行通信。请参阅您的 MCP 客户端文档以获取具体配置信息。

第四步:配置日记访问权限

为了安全性和隐私,您必须明确授予 MCP 访问日记的权限:

  1. 在您的 Mac 上打开 Day One
  2. 转到偏好设置 → 实验室
  3. 启用“Mac CLI MCP 服务器”
  4. 点击“MCP 访问控制”
  5. 开启您希望使 AI 助手可见的日记

重要:只有启用的日记才会对 AI 助手可见。您完全掌控访问权限。

MCP 工具

服务器通过 tools/listtools/call 方法暴露以下 MCP 工具:

list_journals

返回所有具有 MCP 访问权限的日记。

示例:

"显示我所有的日记"

create_entry

创建一个新的日记条目,包含 Markdown 内容和可选的元数据。

参数:

  • text(必需) - 条目内容,Markdown 格式
  • journal_idjournal_name(可选) - 目标日记
  • date(可选) - ISO8601 时间戳(例如,2025-08-20T15:30:00Z
  • tags(可选) - 逗号分隔的标签列表
  • attachments(可选) - 逗号分隔的文件路径
  • starredall_day(可选) - 布尔标志

示例:

"创建一条关于今天会议的日记条目,带有 '工作' 和 '会议' 标签"

get_entries

通过全文搜索、日期筛选或日记约束检索条目。

参数:

  • query(可选) - 全文搜索查询(触发搜索索引)
  • journal_idsjournal_names(可选) - 按日记筛选
  • start_dateend_date(可选) - 日期范围,YYYY-MM-DD 格式
  • on_this_day(可选) - MM-DD 格式用于周年纪念查询
  • limit(可选) - 最大结果数(默认:10,最大:50)
  • offset(可选) - 分页偏移量(忽略搜索查询)

示例:

"查找去年夏天关于度假的条目"
"今年这一天我写了什么?"
"显示我的旅行日记中的最近条目"

update_entry

更新现有条目的内容或元数据。

参数:

  • entry_id(必需) - 条目 UUID
  • journal_id(可选) - 用于消除歧义的日记同步 ID
  • text(可选) - 新的 Markdown 内容
  • tags(可选) - 逗号分隔的标签(替换现有标签)
  • attachments(可选) - 添加的文件路径
  • starredall_day(可选) - 布尔标志

示例:

"在我的最后一条条目中添加 '重要' 标签"

安全模型

密码锁定保护

当 Day One 的密码锁定功能启用时,MCP 服务器拒绝启动,并在 stderr 返回错误。这防止了在 Mac 解锁但 Day One 需要身份验证的情况下未经授权的访问。

日记级别访问控制

访问控制在日记级别通过 Day One 的偏好设置实现。服务器仅暴露 isMcpAccessAllowed 标志设置为 true 的日记。所有操作在执行前都会验证日记访问权限。

仅本地执行

MCP 服务器进程在本地运行,没有网络 I/O。所有数据访问都是直接针对 Day One 的 Core Data SQLite 存储进行的。然而,请注意,MCP 客户端通常会将检索到的内容发送给远程 LLM API。

支持

对于问题或疑问:


© 2025 Automattic, Inc. Day One 是 Automattic, Inc. 的注册商标。