专用日志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/).
## 许可证
麻省理工学院