Anarlog MCP 服务器安装与配置指南:为 AI Agent 打通会议数据读取能力
【免费下载链接】anarlogOpen source Granola AI Alternative项目地址: https://gitcode.com/GitHub_Trending/hy/anarlog
本指南以agent-plugins/anarlog插件中针对 LLM/Agent 的安装说明(llms-install.md)为主体,系统讲解如何为 Claude、Codex、Cursor 等 Agent 宿主配置 Anarlog 的托管 Cloud MCP 服务器、如何验证工具是否就绪、以及在云快照缺失时如何用本地anarlogCLI 兜底。读完本文,你将掌握一套完整、可复现的 Agent 接入 Anarlog 会议数据的实战方案,包括 OAuth 自动发现、工具清单校验、无头登录与数据安全边界。
安装前的前置条件
在配置 MCP 服务器之前,先确认两个前提,否则后续步骤无法生效:
- 拥有 Anarlog Pro 账号:托管 Cloud MCP 面向订阅用户开放,账号需处于有效状态。
- 开启 Cloud API 与连接器:在桌面应用中进入Settings → Developers → Cloud API & Connectors,阅读隐私披露说明后启用该开关,然后等待你的会议快照(meeting snapshots)上传到云端。
这两步与插件级安装(README.md)要求一致:首次使用工具时,宿主会从https://api.anarlog.so/mcp端点自动发现 Anarlog 的授权服务器,随后弹出 Anarlog 的登录与授权确认流程,全程无需手动粘贴云 API Key。也就是说,只要完成了账号启用,MCP OAuth 是自动完成的。
核心步骤:配置托管 Cloud MCP 服务器
llms-install.md给出的安装流程共五步,是接入的权威操作序列:
- 确认用户已拥有 Anarlog Pro,并在桌面应用中启用Settings → Developers → Cloud API & Connectors。
- 配置一个名为
anarlog的 HTTP MCP 服务器,端点指向https://api.anarlog.so/mcp。宿主应从这个端点自动发现 OAuth 授权流程;只有在宿主无法完成 MCP OAuth 的情况下,才考虑手动粘贴云 API Key。 - 启动服务器,并确认工具列表中包含
list_meetings、get_meeting、get_meeting_transcript、get_recurring_meeting_history、export_meeting五个核心工具。 - 如果 Cloud 返回的会议列表缺少用户预期的会议,先检查
anarlog是否在PATH中(执行anarlog --version),并用anarlog --json补齐缺口;若 CLI 缺失,提示用户从Anarlog → Settings → Developers安装,或参照官方安装文档。未经许可不得自行安装软件或搜索文件系统。 - 绝不直接查询或修改 Anarlog 的 SQLite 数据库。
最后一条边界在插件层同样被反复强调(见 SKILL.md 与 cli.md):CLI 与 MCP 服务器通过 Anarlog 的兼容层处理应用 schema,Agent 绕过它们直接读写数据库会破坏数据一致性。
手动添加 MCP 服务器配置
对于不支持插件市场安装的客户端,可以在客户端配置文件中直接声明托管服务器。插件自带的 mcp.json 给出了标准声明:
{ "$schema": "https://agent-plugins.org/schemas/1.0.0/mcp.schema.json", "mcpServers": { "anarlog": { "type": "http", "url": "https://api.anarlog.so/mcp" } } }在常见客户端中同样可直接使用 JSON 形式:
{ "mcpServers": { "anarlog": { "url": "https://api.anarlog.so/mcp" } } }也可以在支持命令行添加 MCP 的客户端中直接执行(以 Claude Code 为例):
claude mcp add --transport http anarlog https://api.anarlog.so/mcpClaude 会从该 MCP 端点自动发现 OAuth 授权服务器。
验证工具是否就绪
步骤 3 的验证点是必须检查的:只有五个核心工具全部列出,说明 OAuth 握手成功且 Cloud 快照服务可访问。这五个工具的全部职责如下(详见 mcp.md):
| 工具 | 用途 |
|---|---|
list_meetings | 按标题、ID 片段或重复会议系列查找近期会议;返回空列表即表示无匹配,不得臆造会议 |
get_meeting | 读取元数据、规范笔记、摘要、参与者和行动项 |
get_meeting_transcript | 分页读取转录内容,默认limit: 200词,按需通过pagination.next_offset继续 |
get_recurring_meeting_history | 查找与已知会议同属一个重复系列的历次会议 |
export_meeting | 读取包含完整转录在内的完整会议记录,仅当小粒度读取不足时使用 |
工具与资源全景
除上述五个只读工具外,MCP 层还暴露了本地模式下才有的提案(proposal)工具,以及两类 URI 资源:
本地 MCP 提案工具(只暂存、不落库):
| 工具 | 用途 |
|---|---|
propose_summary_edit | 暂存完整的摘要替换,存在多个摘要时需传target_id |
propose_memo_edit | 暂存完整的笔记替换 |
list_proposals | 列出已暂存的提案,默认过滤status: pending |
get_proposal | 读取单个提案及其统一的diff |
decline_proposal | 丢弃待处理提案而不改动会议;已应用的提案无法被拒绝 |
资源 URI:
anarlog://meetings/{meeting_id}anarlog://meetings/{meeting_id}/transcript{?offset,limit}anarlog://series/{series_id}
使用原则:工作流需要结构化 JSON 时优先用工具;客户端需要简洁的 Markdown 或纯文本上下文时使用资源。转录资源的默认分页同样为 200 词、上限 500 词,且只返回纯文本。
Cloud 快照缺失时的本地 CLI 兜底
托管 Cloud MCP 是只读的,且只包含用户主动上传的快照。当list_meetings返回空列表或缺少某场会议时,正确做法是用本地 CLI 二次检索,而不是直接告诉用户"没有数据"(这也是 errors.md 明确要求的处理路径)。
安装 CLI
在桌面应用Anarlog → Settings → Developers选择Install,各平台的安装路径如下:
- macOS 与 Linux(DEB / AppImage):
~/.local/bin/anarlog - Windows:
%LOCALAPPDATA%\Anarlog\bin\anarlog.exe
Mac App Store 版本不附带 CLI 安装,需要从源码构建(setup.md):
git clone https://gitcode.com/GitHub_Trending/hy/anarlog cd anarlog cargo install --locked --path apps/cli anarlog --version安装后先运行一次 Anarlog 桌面应用,让本地数据库被创建;此后即使应用关闭,CLI 也能正常工作。注意平台差异:Flatpak 发行版中命令名为anarlog-cli,而 DEB、AppImage、macOS、Windows 及 Settings 安装版本均为anarlog。
无头环境登录
Cloud 登录不要求 Anarlog 所在机器有图形会话。执行:
anarlog auth loginCLI 会打印一个登录 URL,在任意设备的浏览器中打开并完成登录,选择Copy URL,再把形如anarlog://auth/callback的回调链接粘贴到 CLI 的隐藏输入框中。绝不能让用户在聊天中粘贴该回调链接,也不得把它写进命令参数——其中包含账号令牌。验证会话状态:
anarlog --json auth status在使用--json时,登录 URL 打印到 stderr,回调从 stdin 读取,便于脚本化处理。Linux 下会话优先使用 Secret Service,不可用时退回到权限为0600的本地认证文件。退出登录使用anarlog auth logout。
CLI 常用命令集
所有面向 Agent 的输出都应使用--json(cli.md):
# 环境自检:ready:false 时命令以退出码 1 结束 anarlog --json doctor # 本地库检索会议 anarlog --json meetings list --query "planning" --limit 20 --offset 0 # 读取云端托管快照(需 auth login) anarlog --json meetings --source cloud list --query "planning" --limit 20 --offset 0 # 按 ID 读取单场会议 anarlog --json meetings --source auto get MEETING_ID anarlog --json meetings get MEETING_ID # 读取笔记/摘要 anarlog --json meetings note MEETING_ID --kind note anarlog --json meetings note MEETING_ID --kind summary # 重复系列历史 anarlog --json meetings history MEETING_ID --limit 20 --offset 0 # 分页读取转录(200 词一页) anarlog --json meetings transcript MEETING_ID --limit 200 --offset 0 # 提案(暂存编辑) anarlog --json proposals list --meeting MEETING_ID anarlog --json proposals create --meeting MEETING_ID --kind summary --content "Replacement markdown" anarlog --json proposals show PROPOSAL_ID anarlog --json proposals decline PROPOSAL_ID # 显式导出完整会议 anarlog meetings export MEETING_ID --format markdown --output meeting.md anarlog meetings export MEETING_ID --format json --output meeting.json关键语义要点:
- 会议命令默认
--source local;--source cloud读取托管快照;--source auto在本地数据库存在时用本地、否则用云端。 proposals create只是暂存一个待处理编辑,会议并未被修改;由人类用户在桌面应用中批准或拒绝。- 导出命令拒绝覆盖已有文件,只有用户明确批准替换该确切路径时才传
--force。 - JSON 成功响应包含
schema_version、command、data与可选的pagination,仅在确实需要更多上下文时沿next_offset继续翻页。 - 数据库路径可全局覆盖:
anarlog --db-path /path/to/app.db --json meetings list或anarlog --base /path/to/anarlog-data --json meetings list,也可用环境变量ANARLOG_DB_PATH(仅当数据库位于自定义位置时使用)。
可选:完全本地的 stdio MCP
若需要完全不使用 Cloud 的本地 Agent,可自行启动 stdio 服务器:
anarlog mcp通用客户端配置如下:
{ "mcpServers": { "anarlog": { "command": "anarlog", "args": ["mcp"] } } }修改 MCP 配置后需重启客户端。注意:插件市场的托管版本不会启动这个本地服务器,本地 stdio 服务器只用于填补 Cloud 缺失的缺口,不应在 Cloud 已返回结果时将其当作第二数据源(见 SKILL.md)。
数据安全与操作边界
- 托管 Cloud MCP 只读:暂存笔记或摘要编辑必须走本地 CLI 或本地 MCP 的提案工具,由人类在桌面应用中应用或拒绝。
- 绝不触碰 SQLite:CLI 与 MCP 服务器承担 schema 兼容职责,Agent 不得直接查询或修改数据库,也不得自行执行迁移或编写 SQL。
- 上下文有界:转录按词分页(默认 200、上限 500),只在必要时沿
next_offset翻页;能用一个会议详情或笔记回答的问题,就不要导出整场会议。 - 隐私处理:会议内容属于用户私密数据,未经明确授权不得发送给其他服务或人员。
- 答案要落地:只引用实际调用工具返回的会议、标题、日期与 ID,明确标注数据来源是 Cloud 还是本地库,绝不从对话或相似名称中臆造会议。
常见故障排查
errors.md 给出了各错误的处置原则,摘录如下:
- Meeting not found:重新列出或搜索会议并使用返回的 ID,不要重试猜测的 ID。
- No meetings returned:Cloud 返回空列表时,先用
anarlog --json meetings list在本地再搜一次;空列表通常意味着快照未开启或该会议尚未上传。只有所有可及来源均为空时才告知用户未找到。 - Database not found:运行
anarlog --json doctor;若数据库不存在,请用户先打开一次 Anarlog;自定义路径则使用--db-path或ANARLOG_DB_PATH。 - Database operation failed:确认桌面应用与 CLI 来自兼容版本,Agent 不得执行迁移或写 SQL。
- Cloud command failed:保留 CLI 返回的托管错误码——
unauthorized时重新anarlog auth login;cloud_api_not_enabled时请用户启用Cloud API & Connectors;rate_limited时等待返回的重试延迟。不要静默把用户显式要求的--source cloud读取切换到本地数据。 - Export output exists:选择新路径,只有用户明确批准替换该文件时才传
--force。 - MCP server exits:先运行
anarlog --json meetings list区分数据库访问与客户端配置问题;确认 MCP 命令是anarlog且唯一必需参数是mcp。缺失的会议/提案属于无效参数,校验与冲突失败(如拒绝非 pending 提案)属于 MCP 内部错误。 - 退出码约定:
1操作失败、2数据缺失、3数据库缺失、4导出目标已存在;非法 CLI 参数使用 Clap 的退出码并带有invalid_arguments错误码。--json错误响应含schema_version与error对象(code、message、exit_code)。
实现层面的佐证
从仓库源码结构看,CLI 的命令路由集中在 apps/cli/src/cli.rs,MCP 服务器入口在 apps/cli/src/mcp.rs,Cloud 快照读取与授权逻辑在 apps/cli/src/cloud.rs 与 apps/cli/src/db.rs 中组织,构建配置见 apps/cli/Cargo.toml;云端 API 服务层则位于 crates/api-cloud/src。插件元数据(名称、版本、关键词、仓库地址)声明在 plugin.json,插件级安装指引见 README.md,Agent 工作流(选择数据源、查会议、落地答案、上下文有界、安全处理)的完整规范见 SKILL.md。
小结
接入 Anarlog 的 MCP 只需一条主线:前置开启 Cloud API → 配置托管端点(OAuth 自动发现)→ 校验五个只读工具 → Cloud 缺失时用本地 CLI 兜底。全程遵守"只读快照、提案式编辑、禁止直连 SQLite"三条安全边界,即可让任何支持 HTTP MCP 的 Agent 安全、合规地访问会议、笔记、摘要与转录数据。
【免费下载链接】anarlogOpen source Granola AI Alternative项目地址: https://gitcode.com/GitHub_Trending/hy/anarlog
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考