第一天MCP服务器
macOS上用于Day One日志的只读模型上下文协议(MCP)服务器。直接从Claude Desktop访问和搜索您的Day One条目。
特性
- 统一搜索 -使用灵活的过滤器(文本、标签、星号、媒体、位置、设备、日期)查找条目
- 直接查看照片 -Claude可以通过MCP资源查看和分析您日记中的照片
- 媒体附件 -使用完整元数据访问照片、视频、音频和PDF
- 延迟加载 -高效的性能
include_tags和include_attachments旗帜 - 列出期刊 -查看所有包含统计信息的日记账
- 浏览最近 -只需搜索,无需过滤器
- “在这一天” -使用日期过滤器查看历史条目
先决条件
- macOS 安装了Day One应用程序
- Python 3.11+
- 紫外线 包管理器- 从astral.sh安装
安装
1.安装uv(如果尚未安装)
curl -LsSf https://astral.sh/uv/install.sh | sh2.克隆和设置
git clone
cd dayone-mcp
uv sync3.配置克劳德桌面
添加到您的Claude桌面配置 ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"dayone": {
"command": "uv",
"args": [
"--directory",
"/ABSOLUTE/PATH/TO/dayone-mcp",
"run",
"python",
"-m",
"dayone_mcp.server"
]
}
}
}重要提示: 替换 /ABSOLUTE/PATH/TO/dayone-mcp 使用您的实际安装路径。
4.重新启动克劳德桌面
更新配置后,重新启动Claude Desktop以加载MCP服务器。
用法
配置后,您可以通过自然语言与Day One进行交互:
查询示例
- “显示我最近的日记条目” -浏览最近的(无筛选器)
- “在我的日记中搜索有关假期的条目” -文本搜索
- “查找标记为上个月作品的星级条目” -多过滤器搜索
- “显示我iPhone上的所有照片条目” -媒体+设备过滤器
- “在过去的几年里,我在10月31日写了什么?” -“On This Day”的日期筛选器
- “列出我的第一天日记” -查看所有包含统计数据的日记
可用工具
就 2个简单工具:
1. search_entries
一个强大的工具 用于所有输入操作-搜索、浏览和筛选。
退货 完整输入文本 以及所有元数据。
所有参数都是可选的 -使用none进行浏览,使用过滤器缩小结果范围:
text-在条目内容中搜索的文本tags-标签列表(条目必须具有所有指定的标签)starred-按星号状态筛选(真/假)has_photos-过滤带有照片附件的条目has_videos-过滤带有视频附件的条目has_audio-过滤带有录音的条目has_location-使用位置数据筛选条目creation_device-设备类型(“iPhone”、“MacBook Pro”、“iPad”、“Apple Watch”)date_from-开始日期(YYYY-MM-DD)date_to-结束日期(YYYY-MM-DD)journal-日志名称筛选器limit-结果数(1-50,默认值:20)include_tags-在结果中包含标签数据(默认值:false,仅在性能需要时设置为true)include_attachments-在结果中包含附件/媒体资源(默认值:false,当您想查看照片/视频/音频时设置为true)
所有过滤器都使用AND逻辑 -结果必须符合所有标准。
示例:
Browse recent: search_entries(limit=10)
Text search: search_entries(text="vacation")
Starred + photos: search_entries(starred=true, has_photos=true)
With attachments: search_entries(has_photos=true, include_attachments=true)
With tags: search_entries(text="vacation", include_tags=true)
"On This Day": search_entries(date_from="2020-10-31", date_to="2025-10-31")
Multi-filter: search_entries(tags=["work"], creation_device="iPhone", date_from="2025-01-01", include_tags=true)2. list_journals
列出所有包含统计数据的Day One期刊。
退货:
- 日记帐名称
- 每个日记账的条目计数
- 每个日记账的最后录入日期
数据库位置
服务器自动连接到Day One的数据库:
~/Library/Group Containers/5U8NS4GX82.dayoneapp2/Data/Documents/DayOne.sqlite确保Day One已打开至少一次以创建数据库。
故障排除
找不到数据库
- 确保Day One已安装并至少打开过一次
- 数据库是在您首次启动Day One时创建的
权限问题
- Day One数据库在此服务器上是只读的
- 不执行写入操作
Claude桌面连接问题
- 验证中的绝对路径
claude_desktop_config.json - 检查Claude Desktop日志是否有错误
- 配置更改后重新启动Claude Desktop
发展
# Install dependencies
uv sync
# Run server directly (for testing)
uv run python -m dayone_mcp.server
# Run comprehensive test suite
uv run python tests/test_all.py测试覆盖率
测试套件(tests/test_all.py)验证:
- 数据库连接和初始化
- 基本操作(读取/搜索)
- 从富文本JSON和markdown中提取文本
- 条目格式(预览与全文)
- 高级搜索过滤器(文本、星号、媒体、位置、日期)
- 延迟加载和性能(include_tags、include_attacheds)
- 按UUID获取条目(用于资源检索)
- 附件文件验证
- 显示与资源URI的集成
许可证
麻省理工学院
致谢
与 模型上下文协议 通过Anthropic。
