内容
# Day One MCP 服务器
提供对您的 [Day One](https://dayoneapp.com) 日志条目的读写访问。
## 功能特点
- **读取条目** 从您的 Day One 数据库(只读访问)
- **创建条目** 通过 Day One CLI(保留同步完整性)
- **全文搜索** 使用 FTS5 - 相关性排名、短语匹配、布尔运算符和邻近搜索
## 设置
### 前置条件
- Day One 应用程序已安装并运行至少一次(创建数据库)
- Day One CLI 可用(`dayone` 命令)
### 配置 Claude Desktop
将以下内容添加到您的 Claude Desktop 配置文件(`~/Library/Application Support/Claude/claude_desktop_config.json` 在 macOS 上):
```json
{
"mcpServers": {
"dayone": {
"command": "uvx",
"args": ["--from", "git+https://github.com/olivernormand/dayone-mcp", "dayone-mcp"]
}
}
}
```
## 可用工具
### 读取
| 工具 | 描述 |
|------|-------------|
| `read_recent_entries` | 获取最近的日志条目,可选 `full_text` 参数 |
| `search_entries` | 基本的字符串搜索,跨越所有条目 |
| `list_journals` | 列出所有日志及其条目数量 |
| `get_entry_count` | 获取总条目数量(可选按日志) |
| `get_entries_on_this_day` | "在这一天" - 来自过去几年的此日期的条目 |
### 写入
| 工具 | 描述 |
|------|-------------|
| `create_entry` | 创建新的条目,可选标签、位置、附件等 |
### 全文搜索(FTS)
这些工具使用单独的 FTS5 索引进行快速的相关性排序搜索。这是与其他 Day One MCP 实现的关键区别。
| 工具 | 描述 |
|------|-------------|
| `fts_search` | 全文搜索,相关性排序 |
| `fts_sync` | 同步/重建搜索索引 |
| `fts_stats` | 获取索引统计信息 |
#### FTS 查询语法
```
startup ideas # 包含两个单词的条目
"morning run" # 精确短语匹配
build* # 前缀匹配(build, building, builder)
startup NOT fintech # 布尔 NOT
startup OR ideas # 布尔 OR
NEAR(morning run, 5) # 单词之间相隔 5 个令牌内
```
#### FTS 过滤器
- `journal` - 按日志名称过滤
- `starred_only` - 仅限星标条目
- `year` - 按年份过滤
- `date_from` / `date_to` - 日期范围(YYYY-MM-DD)
- `full_text` - 返回完整的条目文本而不是摘要
#### FTS 同步
搜索索引在服务器启动时自动同步。如有需要,可手动重建:
```
fts_sync(full_rebuild=True)
```
## 架构
- **读取**:直接 SQLite 数据库访问(只读模式)
- **写入**:通过 Day One CLI(保留同步完整性)
- **FTS 索引**:单独的 SQLite 数据库,位于 `~/.dayone-mcp/fts_index.sqlite`
Day One 数据库从未被修改。所有写入操作都通过官方 CLI 进行。
## 本地开发
```bash
# 克隆并安装
git clone https://github.com/olivernormand/dayone-mcp
cd dayone-mcp
uv sync
# 运行服务器
uv run dayone-mcp
```
## 许可证
MIT