🚀 MCP-DayOne
MCP-DayOne 是一个基于模型上下文协议(MCP)的服务器,可实现 Day One 日记与 Claude Desktop 的集成。通过该服务器,Claude Desktop 能借助模型上下文协议与 Day One 日记进行交互,让用户可以通过自然对话的方式创建日记条目、查看可用日记列表以及获取条目数量等。
🚀 快速开始
本 MCP 服务器设计为零配置安装,你仅需更改一个文件路径!
1. 安装先决条件(一次性设置)
- Day One CLI 安装:
- 从 Mac App Store 或 Day One 官网下载并安装 Day One。
- Day One CLI 会自动包含在应用程序中,无需单独安装!
- 验证其是否正常工作:
dayone2 --version
- Python 和 uv:
curl -LsSf https://astral.sh/uv/install.sh | sh
dayone2 --version
2. 克隆并设置(自动依赖管理)
git clone <repository-url>
cd mcp-dayone
uv sync
3. 验证安装(内置测试)
uv run python test_setup.py
此测试脚本会自动执行以下操作:
- ✅ 验证 Day One CLI 是否可访问
- ✅ 测试数据库连接
- ✅ 验证 MCP 服务器功能
- ✅ 列出可用工具
- 🔧 如果有任何问题需要修复,会提供有用的错误消息
4. 配置 Claude Desktop(仅需更改一个路径!)
将以下内容添加到你的 Claude Desktop 配置文件中:
- 配置文件位置:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
- Windows:
%APPDATA%\Claude\claude_desktop_config.json
- 配置(仅替换路径):
{
"mcpServers": {
"dayone": {
"command": "uv",
"args": [
"--directory",
"/FULL/PATH/TO/mcp-dayone",
"run",
"python",
"-m",
"mcp_dayone.server"
]
}
}
}
⚠️ 重要提示:仅需将 /FULL/PATH/TO/mcp-dayone
替换为你实际的仓库路径。
5. 重启 Claude Desktop
更新配置后,重启 Claude Desktop 以加载 MCP 服务器。
完成上述步骤后,你就可以立即使用自然语言命令,如:
- “Show me my recent journal entries”
- “What were my journal entries on this day?”
- “Create a journal entry about my day”
无需额外的设置、配置文件或环境变量!
✨ 主要特性
✍️ 写入操作(Day One CLI)
- 📝 创建包含丰富内容和元数据的日记条目
- 📎 为条目添加附件(照片、视频、音频、PDF)
- ⭐ 将条目标记为星标/重要
- 📍 为条目添加位置坐标
- 🕐 增强的日期/时间处理,支持时区
📖 读取操作(直接数据库访问)
- 📖 新增:读取包含完整元数据的近期日记条目
- 🔍 新增:按文本内容搜索条目
- 📚 新增:列出实际的日记,并显示条目数量和统计信息
- 📊 新增:从数据库中获取实际的条目数量
- 🏷️ 新增:查看条目标签、日期和元数据
🔧 技术特性
- 完善的错误处理和验证机制
- 直接集成 SQLite 数据库以进行读取操作
- 混合方法:使用 CLI 进行写入,使用数据库进行读取
- 🚀 使用
uv
轻松安装
📦 安装指南
⚡ 快速开始(5 分钟)
本 MCP 服务器专为零配置安装而设计,你只需更改一个文件路径!
1. 安装先决条件(一次性设置)
- Day One CLI 安装:
- 从 Mac App Store 或 Day One 官网下载并安装 Day One。
- Day One CLI 会自动包含在应用程序中,无需单独安装!
- 验证其是否正常工作:
dayone2 --version
- Python 和 uv:
curl -LsSf https://astral.sh/uv/install.sh | sh
dayone2 --version
2. 克隆并设置(自动依赖管理)
git clone <repository-url>
cd mcp-dayone
uv sync
3. 验证安装(内置测试)
uv run python test_setup.py
此测试脚本会自动执行以下操作:
- ✅ 验证 Day One CLI 是否可访问
- ✅ 测试数据库连接
- ✅ 验证 MCP 服务器功能
- ✅ 列出可用工具
- 🔧 如果有任何问题需要修复,会提供有用的错误消息
4. 配置 Claude Desktop(仅需更改一个路径!)
将以下内容添加到你的 Claude Desktop 配置文件中:
- 配置文件位置:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
- Windows:
%APPDATA%\Claude\claude_desktop_config.json
- 配置(仅替换路径):
{
"mcpServers": {
"dayone": {
"command": "uv",
"args": [
"--directory",
"/FULL/PATH/TO/mcp-dayone",
"run",
"python",
"-m",
"mcp_dayone.server"
]
}
}
}
⚠️ 重要提示:仅需将 /FULL/PATH/TO/mcp-dayone
替换为你实际的仓库路径。
5. 重启 Claude Desktop
更新配置后,重启 Claude Desktop 以加载 MCP 服务器。
💻 使用示例
📅 “On This Day” 功能
MCP 服务器在检索历史条目以进行反思和回忆方面表现出色:
- 查询:“Show me all my journal entries for 'on this day,' today: June 14th.”
- 结果:Claude 会自动执行以下操作:
- 使用
get_entries_by_date
工具搜索多年来 6 月 14 日的条目
- 按年份对条目进行分组,并标记 “X 年前”
- 显示带有时间戳和元数据的详细内容预览
- 包含条目标题、照片/附件指示符和完整上下文
示例输出:
📅 On This Day (06-14) - Found 2 entries:
🗓️ 2023 (2 years ago):
• Morning thoughts (8:30 AM) [Personal] - Reflection on summer goals and upcoming
vacation plans. Looking forward to some time off to recharge and spend time with family.
🗓️ 2021 (4 years ago):
• Weekend activities (2:15 PM) [Travel] ⭐ - Great day exploring the local farmers market.
Tried some amazing local honey and picked up fresh ingredients for dinner. This entry
includes photos. #weekend #local #food
No entries found for June 14th in other years (searched back 5 years).
这提供了一种强大的方式来:
- 反思过去同一天的经历
- 跟踪多年来的个人成长
- 重新发现被遗忘的记忆和见解
- 发现生活和思维中的模式
✍️ 创建条目
- “Create a journal entry about my day” - 使用你的内容创建条目
- “Create a starred entry about my vacation with photos from /path/to/photo.jpg” - 创建带有附件和元数据的条目
- “Add a journal entry with location coordinates for my current trip” - 创建带有位置信息的条目
- “Add tags #work #meeting to an entry about the team standup” - 创建带有标签的条目
📖 读取和搜索
- “Show me my recent journal entries” - 显示带有日期、标签和预览的近期条目
- “Search my journal for entries about work” - 查找包含特定文本的条目
- “What were my journal entries on this day?” - 新增:显示往年 “On This Day” 的条目
- “Show me entries from June 14th in past years” - 新增:特定日期的历史条目
- “List my Day One journals with entry counts” - 显示实际的日记和统计信息
- “How many entries do I have?” - 从数据库中获取实际的条目数量
- “Find entries from last week” - 按日期范围搜索
📚 详细文档
可用的 MCP 工具
✍️ 写入工具(基于 CLI)
- create_journal_entry - 创建包含丰富元数据(附件、位置、标签等)的条目
- create_entry_with_attachments - 专门用于添加文件附件(照片、视频、音频、PDF)
- create_location_entry - 专门用于创建带有位置坐标的条目
📖 读取工具(基于数据库)
- read_recent_entries - 新增:读取包含完整元数据的近期日记条目
- 参数:limit (1 - 50),journal(可选过滤器)
- 返回:格式化的条目,包含日期、标签、预览和星标状态
- search_entries - 新增:按文本内容搜索条目
- 参数:search_text,limit (1 - 50),journal(可选过滤器)
- 返回:包含上下文和元数据的匹配条目
- list_journals_from_db - 新增:列出实际的日记,并显示统计信息
- get_entry_count_from_db - 新增:获取实际的条目数量
- 参数:journal(可选过滤器)
- 返回:数据库中的实际条目数量
- get_entries_by_date - 新增:获取往年 “On This Day” 的条目
- 参数:target_date (MM - DD 或 YYYY - MM - DD),years_back (默认 5)
- 返回:多年来同一天的条目,包含完整内容
📋 旧版工具(CLI 限制)
- list_journals - 提供关于 CLI 限制的指导
- get_entry_count - 解释 CLI 计数的限制
🔧 技术细节
开发
uv sync --dev
uv run python -m mcp_dayone.server
uv run pytest
故障排除
Day One CLI 未找到
- 验证 Day One CLI 是否已安装:
dayone2 --version
- 检查
dayone2
是否在你的 PATH 中
- 从以下网址安装 Day One 应用程序和 CLI:https://dayoneapp.com/guides/tips-and-tutorials/command-line-interface-cli
Claude Desktop 连接问题
- 验证
claude_desktop_config.json
中的绝对路径
- 检查 Claude Desktop 日志中是否有 MCP 服务器错误
- 更改配置后重启 Claude Desktop
权限问题
- 确保 Day One CLI 具有访问日记的适当权限
- 如有需要,运行一次 Day One 应用程序以进行初始化
CLI 限制
- Day One CLI 仅支持创建条目(
new
命令)
- CLI 不支持列出日记和统计条目数量
- 使用 Day One 应用程序界面查看日记和条目数量
- 所有条目创建功能(附件、位置等)均可正常使用
📄 许可证
本项目采用 MIT 许可证。