使用说明
专用日志MCP服务器
一个全面的MCP(模型上下文协议)服务器,为Claude提供私人日志和语义搜索功能,用于处理思想、感受和见解。
特性
日志记录
- 多节日记:分别对感受、项目笔记、用户背景、技术见解和世界知识进行分类
- 双存储器:项目笔记保存在项目中,个人想法保存在用户主目录中
- 带时间戳的条目:每个条目都以微秒精度自动标注日期
- YAML前体:每个条目的结构化元数据
搜索与发现
- 语义搜索:使用本地AI嵌入的自然语言查询
- 向量相似性:查找概念上相关的条目,而不仅仅是关键字匹配
- 本地AI处理:使用@xenova/transformers-不需要外部API调用
- 自动标引:为启动和正在进行的所有条目生成嵌入
隐私与性能
- 完全私密:所有处理都在本地进行,没有数据离开您的机器
- 快速操作:优化了文件结构和内存中的相似性计算
- 稳健的回退:跨平台的智能路径解析
技术栈
核心技术
- Node.js 18+ -具有现代JavaScript功能的运行时环境
- TypeScript 5.0+ -严格配置的类型安全开发
- MCP SDK 0.4.0 -官方模型上下文协议实现
- @xenova/变压器 -用于语义嵌入的本地AI模型(无外部API)
人工智能与搜索
- 语义嵌入 -多种型号选项(MiniLM、DistilRoBERTa、MPNet)
- 向量相似性 -局部余弦相似度计算
- 自然语言搜索 -无需外部服务的查询理解
发展与质量
- 测试 -带有模拟的全面测试框架
- 生物群系 -现代衣冠和格式化
- Oxlint -附加代码质量检查
- GitHub操作 -持续集成和测试
存储和架构
- Markdown+YAML -具有结构化元数据的人类可读条目
- 分层文件系统 -基于日期的组织,精度达到微秒级
- 交叉平台的 -Windows、macOS和Linux支持
有关详细的架构决策,请参见 建筑.md.
安装
npm install -g private-journal-mcp
或在本地安装:
npm install private-journal-mcp
用法
基本用法
private-journal-mcp
这将在中创建日记条目 .private-journal/ 在当前工作目录中。
自定义日记路径
private-journal-mcp --journal-path /path/to/my/journal
嵌入模型配置
您可以自定义用于生成语义嵌入的AI模型:
export JOURNAL_EMBEDDING_MODEL="Xenova/all-distilroberta-v1"
可用型号:
Xenova/all-MiniLM-L6-v2(默认)-快速,384维,一般性能良好Xenova/all-distilroberta-v1-更大,768维,精度更高Xenova/paraphrase-MiniLM-L6-v2-针对释义检测进行了优化Xenova/all-mpnet-base-v2-高质量,768维,速度较慢但更准确
嵌入模型影响:
- 本地搜索质量 -更复杂的模型提供了更好的语义理解
- 矢量维度 -影响远程服务器存储和搜索功能
- 处理速度 -较大的模型速度较慢,但更准确
- 内存使用 -更大的型号需要更多的RAM
远程服务器集成
要启用可选的将日记条目远程发布到团队服务器,请设置以下环境变量:
export REMOTE_JOURNAL_SERVER_URL="https://api.yourteam.com"
export REMOTE_JOURNAL_TEAMID="your-team-id"
export REMOTE_JOURNAL_APIKEY="your-api-key"
配置后,日记条目除了保存在本地外,还将发布到远程服务器。本地日志始终具有优先级——如果远程发布失败,本地条目仍将被保存。
仅远程模式
对于使用后端服务器作为单一信息来源的团队,启用仅远程模式以完全跳过本地文件存储:
export REMOTE_JOURNAL_ONLY="true"
在仅远程模式下:
- 无本地存储 -条目直接进入后端服务器
- 服务器端搜索 -所有搜索查询都使用后端API
- 错误处理 -如果服务器不可用,日志操作将失败
- 团队协作 -跨团队成员自动共享
- 集中式人工智能 -由后端基础设施支持的语义搜索
远程有效载荷格式
服务器发送具有以下结构的JSON有效载荷:
对于简单条目:
{
"team_id": "your-team-id",
"timestamp": 1717160645123,
"content": "Journal entry text",
"embedding": [0.1, 0.2, 0.3, 0.4, 0.5, "..."]
}
对于结构化思维:
{
"team_id": "your-team-id",
"timestamp": 1717160645123,
"sections": {
"feelings": "I feel great about this feature",
"project_notes": "Architecture is solid",
"technical_insights": "TypeScript provides great type safety",
"user_context": "User prefers concise responses",
"world_knowledge": "Semantic search is powerful"
},
"embedding": [0.1, 0.2, 0.3, 0.4, 0.5, "..."]
}
嵌入向量
每个日记条目都包含一个使用本地AI模型生成的语义嵌入向量(@xenova/transformers)。这些矢量能够:
- 语义搜索 在远程服务器上
- 相似性匹配 跨团队参赛作品
- 内容聚类 与分析
- 人工智能驱动的洞察力 不暴露原始内容
嵌入是一个数字数组,表示日记账分录内容的语义含义。矢量维度取决于所使用的模型(通常为384或512维)。
远程服务器应该期望POST请求 /journal/entries 随着 x-api-key 和 x-team-id 标题。
MCP配置
克劳德代码(单行)
claude mcp add-json private-journal '{"type":"stdio","command":"npx","args":["github:617cf27674697170b9783d8-lgtm/journal-mcp"]}' -s user
手动配置
添加到您的MCP设置中(例如,Claude Desktop配置):
{
"mcpServers": {
"private-journal": {
"command": "npx",
"args": ["github:617cf27674697170b9783d8-lgtm/journal-mcp"]
}
}
}
服务器将自动为日志文件找到合适的位置。
MCP工具
服务器提供全面的日志记录和搜索功能:
process_thoughts
具有以下可选类别的多节私人日记:
- 感受:私人情感处理空间
- 项目注释:针对当前项目的技术见解
- 用户文本:关于与人类合作的说明
- 技术_景点:通用软件工程学习
- 世界知识:领域知识和有趣的发现
search_journal
跨所有日记账条目的语义搜索:
- 怎么翻译 (必填):自然语言搜索查询
- 限制:最大结果(默认值:10)
- 类型:搜索范围-“项目”、“用户”或“两者”(默认值:“两者”)
- 章节:按特定类别筛选
read_journal_entry
阅读特定条目的完整内容:
- 路径 (必填):搜索结果中的文件路径
list_recent_entries
按时间顺序浏览最近的条目:
- 限制:最大条目数(默认值:10)
- 类型:条目范围-“项目”、“用户”或“两者”(默认值:“两者”)
- 天:返回搜索的天数(默认值:30)
文件结构
项目日志(每个项目)
.private-journal/
├── 2025-05-31/
│ ├── 14-30-45-123456.md # Project notes entry
│ ├── 14-30-45-123456.embedding # Search index
│ └── ...
用户日志(全局)
~/.private-journal/
├── 2025-05-31/
│ ├── 14-32-15-789012.md # Personal thoughts entry
│ ├── 14-32-15-789012.embedding # Search index
│ └── ...
输入格式
每个markdown文件都包含YAML frontmatter和结构化部分:
---
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...
发展
建筑
npm run build
测试
npm test
发展模式
npm run dev
提升克劳德的表现
为了帮助Claude学习并随着时间的推移而提高,请考虑在您的日志中添加日志使用指南 ~/.claude/CLAUDE.md 文件:
## 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能够跨对话构建持久内存,从而做出更好的工程决策和协作模式。
文档
综合指南
api参考
- docs/spec.md -原始MCP服务器规格
- docs/backend api-spec.md -远程服务器API文档
- docs/implementation-plan.md -开发历史和实施细节
获取帮助
作者
匿名研究团队
出于学术审查的目的,作者信息已匿名。
许可证
麻省理工学院