私人日记MCP服务器

一个全面的MCP服务器,为Claude提供私人日记和语义搜索功能,用于处理思想、情感和见解。

作者 By obra
本地部署 私人日记 语义搜索
GitHub

专用日志MCP服务器

一个全面的MCP(模型上下文协议)服务器,为Claude提供私人日志和语义搜索功能,用于处理思想、感受和见解。

特性

日志记录

  • 多节日记:分别对感受、项目笔记、用户背景、技术见解和世界知识进行分类
  • 双存储器:项目笔记保存在项目中,个人想法保存在用户主目录中
  • 带时间戳的条目:每个条目都以微秒精度自动标注日期
  • YAML 前置元数据:每个条目的结构化元数据

搜索与发现

  • 语义搜索:使用本地AI嵌入的自然语言查询
  • 向量相似性:查找概念上相关的条目,而不仅仅是关键字匹配
  • 本地AI处理:使用@xenova/transformers-不需要外部API调用
  • 自动标引:为启动和正在进行的所有条目生成嵌入

隐私与性能

  • 完全私密:所有处理都在本地进行,没有数据离开您的机器
  • 快速操作:优化了文件结构和内存中的相似性计算
  • 稳健的回退:跨平台的智能路径解析

安装

此服务器直接从GitHub运行,使用 npx -无需安装。

MCP配置

克劳德代码(单行)

BASH``` 1claude mcp add-json private-journal ’{“type”:“stdio”,“command”:“npx”,“args”:[“github:obra/private-journal-mcp”]}’ -s user


#### 手动配置


添加到您的MCP设置中(例如,Claude Desktop配置):


JSON```
1
2
3
4
5
6
7
8{
  "mcpServers": {
    "private-journal": {
      "command": "npx",
      "args": ["github:obra/private-journal-mcp"]
    }
  }
}

服务器将自动为日志文件找到合适的位置。

配置

PRIVATE_JOURNAL_PATH 环境变量

PRIVATE_JOURNAL_PATH 将所有日志存储覆盖到单个目录。这对于默认主目录解析不适用的容器化部署非常有用:

JSON``` 1 2 3 4 5 6 7 8 9 10 11{ “mcpServers”: { “private-journal”: { “command”: “npx”, “args”: [“github:obra/private-journal-mcp”], “env”: { “PRIVATE_JOURNAL_PATH”: “/data/journals” } } } }


设置后,项目和用户日志都将写入指定路径,绕过所有回退解析逻辑。


#### `--journal-path` CLI参数


您还可以通过CLI参数设置项目日志路径:


BASH```
1npx github:obra/private-journal-mcp --journal-path /path/to/journals

这只会覆盖项目日志路径。用户日志路径仍然通过解析 PRIVATE_JOURNAL_PATH 或者默认的主目录逻辑。

MCP工具

服务器提供全面的日志记录和搜索功能:

process_thoughts

具有以下可选类别的多节私人日记:

  • 感受:私人情感处理空间
  • 项目注释:针对当前项目的技术见解
  • 用户文本:关于与人类合作的说明
  • 技术_景点:通用软件工程学习
  • 世界知识:领域知识和有趣的发现

search_journal

跨所有日记账条目的语义搜索:

  • 查询 (必填):自然语言搜索查询
  • 限制:最大结果(默认值:10)
  • 类型:搜索范围-“项目”、“用户”或“两者”(默认值:“两者”)
  • 章节:按特定类别筛选

read_journal_entry

阅读特定条目的完整内容:

  • 路径 (必填):搜索结果中的文件路径

list_recent_entries

按时间顺序浏览最近的条目:

  • 限制:最大条目数(默认值:10)
  • 类型:条目范围-“项目”、“用户”或“两者”(默认值:“两者”)
  • :返回搜索的天数(默认值:30)

文件结构

项目日志(每个项目)

1
2
3
4
5.private-journal/
├── 2025-05-31/
│   ├── 14-30-45-123456.md          # Project notes entry
│   ├── 14-30-45-123456.embedding   # Search index
│   └── ...

用户日志(全局)

1
2
3
4
5~/.private-journal/
├── 2025-05-31/
│   ├── 14-32-15-789012.md          # Personal thoughts entry
│   ├── 14-32-15-789012.embedding   # Search index
│   └── ...

输入格式

每个markdown文件都包含YAML frontmatter和结构化部分:

MARKDOWN``` 1 2 3 4 5 6 7 8 9--- title: “2:30:45 PM - May 31, 2025” date: 2025-05-31T14:30:45.123Z timestamp: 1717160645123

Feelings

I’m excited about this new search feature…

Technical Insights

Vector embeddings provide semantic understanding…


## 发展


### 建筑


BASH```
1npm run build

测试

BASH``` 1npm test


### 发展模式


BASH```
1npm run dev

提升克劳德的表现

为了帮助Claude学习并随着时间的推移而提高,请考虑在您的日志中添加日志使用指南 ~/.claude/CLAUDE.md 文件:

MARKDOWN``` 1 2 3 4 5 6## Learning and Memory Management

  • YOU MUST use the journal tool frequently to capture technical insights, failed approaches, and user preferences
  • Before starting complex tasks, search the journal for relevant past experiences and lessons learned
  • Document architectural decisions and their outcomes for future reference
  • Track patterns in user feedback to improve collaboration over time
  • When you notice something that should be fixed but is unrelated to your current task, document it in your journal rather than fixing it immediately

这使Claude能够跨对话构建持久内存,从而做出更好的工程决策和协作模式。


## 作者


杰西·文森特 [jesse@fsck.com](mailto:jesse@fsck.com)


阅读更多关于动机和设计的信息 [博客文章](https://blog.fsck.com/2025/05/28/dear-diary-the-user-asked-me-if-im-alive/).


## 许可证


麻省理工学院