格兰诺拉当地档案馆

非官方项目。与格兰诺拉无关联、无格兰诺拉背书或无格兰诺拉维护。
此项目适用于macOS安装,其中Granola桌面应用程序已经将本地缓存数据写入磁盘。
本地MCP服务器和SQLite支持的索引,用于与Granola聊天,生成了本地机器上已经存在的笔记、摘要和成绩单。
它的作用
- 将本地格兰诺拉麦片内容暴露给Codex、Cursor和其他MCP客户端,以便您可以询问有关会议和文件夹的问题。
- 从磁盘上已有的Granola缓存中读取本地笔记、摘要、成绩单、文件夹和文件夹附件。
- 在SQLite FTS5中为笔记和成绩单文本建立索引,以实现快速本地搜索。
- 通过针对日期范围和文件夹范围查询进行优化的MCP工具返回固定片段和会议元数据。
- 拍摄以下内容的压缩快照
~/Library/Application Support/Granola/cache-v4.json只有当它改变的时候。 - 存储当前Sidecar以及会议、记录和文件夹的版本历史记录。
- 为仍然没有本地记录的会议生成每日水合队列。
- 保留已存档的会议,即使它们后来从Granola的实时缓存中消失。
布局
大多数运行时状态存储在 archive/:
snapshots/:原始文件的gzip快照cache-v4.jsoncold-backups/:Granola应用程序支持目录的每周tarball,不包括临时缓存current/:当前用于会议、成绩单和文件夹的Sidecarhistory/:这些侧车的早期版本reports/:每日对账报告state/:SQLite索引、清单和水合物队列
设置
清理克隆引导程序:
python3 -m venv .venv
.venv/bin/python -m pip install --upgrade pip setuptools
.venv/bin/python -m pip install -e . --no-build-isolation下面的包装脚本假设 .venv/ 存在:
zsh ./ops/run-archive.sh stats运行第一个完整的本地同步:
zsh ./ops/run-archive.sh sync --mode daily廉价的小时支票:
zsh ./ops/run-archive.sh sync --mode hourly查看当前的成绩单水合队列:
zsh ./ops/run-archive.sh hydrate-queue主要用例:
zsh ./ops/run-mcp.sh手动转录水合作用
Granola似乎会根据需要获取一些旧的成绩单,然后将其保存回 cache-v4.json.
推荐流量:
- 跑
hydrate-queue选择5到10个会议。 - 在格兰诺拉开始每次会议,并展开会议记录。
- 等待几秒钟,让音符完成保湿。
- 跑
sync --mode hourly. - 新的成绩单将被自动检测并存档。
如果Granola在UI中显示文字记录,但从未将其持久化 cache-v4.json,手动导入复制的成绩单:
pbpaste | zsh ./ops/run-archive.sh import-transcript --meeting "Weekly Sync" --created-at 2025-10-08您还可以从文件中读取:
zsh ./ops/run-archive.sh import-transcript --meeting-id meeting-123 --file /tmp/transcript.txt手动成绩单导入存储在 archive/manual/transcripts/ 并在未来的同步中重新应用,因此稍后的缓存更新不会删除它们。
MCP使用
启动本地MCP服务器:
zsh ./ops/run-mcp.sh可用工具:
search_meetingslist_meetingsget_meetingget_meeting_transcriptlist_foldersget_foldersearch_foldersearch_evidencesearch_unlistedget_folder_attachmentsstats
接地答案的推荐用法:
list_meetings用于严格的文件夹/日期范围search_evidence在宣布决定、人员或下一步行动之前,获取确切的片段get_meeting或get_meeting_transcript只有当需要更深入的背景时
从概念上讲,归档层的存在是为了使MCP随着时间的推移变得可靠。面向主要用户的界面是MCP服务器,而不是备份作业本身。
客户端设置
光标
{
"mcpServers": {
"granola-local": {
"command": "/bin/zsh",
"args": ["/path/to/granola-local-archive/ops/run-mcp.sh"]
}
}
}Cursor还支持安装深度链接。由于此MCP服务器从您的本地签出运行,因此公共README无法为每台机器提供具有正确绝对路径的通用一键按钮。
从克隆生成本地Cursor安装链接:
.venv/bin/python ./ops/generate-cursor-install-link.py直接在macOS上打开:
open "$(.venv/bin/python ./ops/generate-cursor-install-link.py --raw)"助手还可以打印Markdown Add to Cursor 如果您想在自己的文档中重用它,请单击按钮:
.venv/bin/python ./ops/generate-cursor-install-link.py --markdown法典
配置指向同一启动器的stdio MCP服务器:
/bin/zsh /path/to/granola-local-archive/ops/run-mcp.sh克劳德代码
claude mcp add-json granola-local \
'{"type":"stdio","command":"/bin/zsh","args":["/path/to/granola-local-archive/ops/run-mcp.sh"]}' \
--scope user克劳德桌面版
将服务器添加到您的Claude Desktop MCP配置中:
{
"mcpServers": {
"granola-local": {
"command": "/bin/zsh",
"args": ["/path/to/granola-local-archive/ops/run-mcp.sh"],
"env": {}
}
}
}OpenCode
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"granola-local": {
"type": "local",
"enabled": true,
"command": ["/bin/zsh", "/path/to/granola-local-archive/ops/run-mcp.sh"]
}
}
}ChatGPT
ChatGPT自定义连接器目前通过Streamable HTTP或SSE面向远程MCP服务器,而不是本地stdio进程。此项目需要一个小型HTTP适配器才能直接连接到ChatGPT。
其他MCP客户端
未经测试的stdio客户端,如Windsurf或VS Code/GitHub Copilot,应使用与上述相同的命令和args模式。
GitHub代理
此存储库附带了自定义GitHub Copilot代理配置文件,位于 .github/agents/:
security-review:检查隐私、文件访问、子流程、MCP暴露和CI/CD供应链风险mcp-review:检查MCP协议行为、接地质量和工具合同可靠性release-readiness:检查存储库是否已准备好公开发布
从存储库中使用它们 Agents GitHub上的标签,或任何支持存储库自定义代理的GitHub Copilot界面。首先选择存储库和分支,然后选择代理并为其分配一个重点任务,例如:
Review this PR for security issues.Review the MCP server for protocol or grounding problems.Check whether this branch is ready for a public release.
启动模板
模板位于 ops/launchd/ 并在安装过程中在本地呈现:
- 每3600秒进行一次小时同步
- 当地时间07:30进行每日对账
使用 ./ops/manage-launchd.sh 要安装或删除它们,请执行以下操作:
zsh ./ops/manage-launchd.sh install
zsh ./ops/manage-launchd.sh status
zsh ./ops/manage-launchd.sh run-now daily
zsh ./ops/manage-launchd.sh uninstallclear-logs 截断归档调度程序日志,而不涉及快照或报告。
共享回购卫生
- 运行时数据
archive/是当地州,不是项目来源。 - macOS安装状态
~/Library/LaunchAgents是当地州,不是项目来源。 - 该项目从以下位置读取可选的水合优先级文件夹
GRANOLA_PRIORITY_FOLDERS例如:
export GRANOLA_PRIORITY_FOLDERS="Folder A,Folder B"- 发布前,运行:
zsh ./ops/check-public-hygiene.sh