关于 Kato
Kato for Claude Code 让在客户文件夹中工作的 Agent 查询按客户归档的通话记录、笔记和承诺,无需粘贴内容。它需要单独安装 Kato 应用,并通过文件夹绑定限制 MCP 返回的客户信息。
主要功能
- 01无需粘贴即可查询客户通话记录
- 02访问文字稿、笔记和承诺
- 03在会话开始时显示客户更新
- 04将文件夹绑定到单个或所有客户
- 05默认对 Agent 回复进行脱敏
适用场景
- 01核实客户说过或承诺过的内容
- 02在客户文件夹中查看通话详情
- 03在会话开始时查看客户更新
- 04将 MCP 回复限制为绑定客户的信息
MCP 相关
插件会启动本地 stdio MCP 服务来读取 Kato brain。文件夹绑定限制服务返回的客户内容;插件本身不会建立网络连接。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
Claude Code 的 Kato
Kato 是 Agent 的眼睛和耳朵。它在你的 Mac 上运行,监听你与客户的通话,并按客户整理记录。这个插件可让在客户文件夹中工作的 Agent 无需粘贴内容,就能询问说过什么、展示过什么、承诺过什么。Agent 报告已完成的事项会显示为“称已完成,尚未验证”。
你需要 Kato 应用
此仓库仅包含插件。**Kato 应用不开源,需单独购买:**每月 29 美元,有 7 天试用期,且需预先提供银行卡信息,可在 installkato.com 获取。它可在搭载 Apple Silicon、运行 macOS 14 或更高版本的 Mac 上运行(通话双方均需运行 macOS 14.4 或更高版本)。没有该应用,插件除了告知你这一点外不会做任何事。
安装前,请先了解应用的功能。只要会议应用或浏览器位于前台且正在使用麦克风,它就会在任何通话(客户通话或个人通话)开始时自动启动。通话间隙,它会读取你当前窗口中的文本。音频保留在你的 Mac 上;转录文本和窗口文本会发送到托管的云端大脑,并记录在你 Mac 上的台账中。详情请参阅其隐私页面。
此插件运行并发送的内容
bin/kato-mcp.sh会在启动时所在的文件夹中(在 Claude 桌面应用中,即你选择的客户文件夹)通过标准输入输出启动~/.local/bin/kato mcp ~/kato这个本地服务。如果缺少该文件,它会打印 Kato 的获取方式并停止;在 Claude 桌面应用中,每次工具调用都会改为返回该链接,尚未选择文件夹或文件夹已不存在时也一样。hooks/session-start.sh会在会话开始时运行同一个本地工具,并打印与当前文件夹所绑定客户有关的最新动态,最多 5 行;如果未安装 Kato,则打印一行提示。skills/whats-new会告知 Agent 何时进行询问。
此插件不会建立网络连接,也没有密钥。
安装
- 从上方链接安装应用并开始试用。
- 从 Kato 的右键菜单安装命令行工具。
- 在你的 shell 中:
claude plugin marketplace add manduks/kato-mcp
claude plugin install kato@kato
之后运行 /reload-plugins 或开始新会话。服务会读取 ~/kato 中的大脑。在其他位置,请改用 kato connect <brain>,它也会在 Cursor、Codex 和 OpenCode 中注册 Kato。请选择一种方式:两种方式都使用时,Claude Code 中会显示两份工具。
Claude 桌面应用
Claude 桌面应用不会在文件夹中启动 Kato,因此你需要选择一个文件夹。从最新版本下载 kato-mcp.mcpb,打开并按下 Install;Claude 就会启用 Kato。然后打开 Settings > Extensions > Kato,并选择 Client folder。在此之前,每个 Kato 工具都会提示你完成这一步。请先绑定该文件夹(见下一节):未绑定任何客户的文件夹会被所有工具拒绝。之后,Claude 应用中的 Kato 只会回答该文件夹对应客户的问题;如果你使用 --all 进行绑定,则会回答所有客户的问题。Claude 应用中的每段对话都使用这一个文件夹。
将文件夹绑定到客户端
Agent 的文件夹未绑定前,什么也看不到;只有在向客户端发起调用(Kato 会在调用结束时询问客户端)或设置应用时为其命名后,Kato 中才会有这个客户端。因此,新安装在你首次调用前不会返回任何内容。之后:
kato spaces ~/kato
kato bind ~/kato <client> <dir>
绑定到某个客户端的文件夹,在 kato 服务的每个工具中(转录、笔记、承诺、搜索、简报,不只是 whats_new)都只能看到该客户端:请求其他客户端会被拒绝,且不返回任何内容。未绑定到任何客户端的文件夹会收到每个工具的拒绝响应(不会指明客户端),钩子也不会输出任何内容。对于你自己的操作员工作区,如果希望 Agent 能看到所有客户端:
kato bind ~/kato --all <dir>
这只能手动设置;Kato 不会自行得知或猜测。kato bind ~/kato --unbind <dir> 会移除这两种绑定。
如果一个文件夹包含两个或更多个 git 仓库(且自身没有 .git),则会被拒绝,因为绑定它会将客户端提供给其中的每个仓库;拒绝信息会列出找到的仓库。只包含一个仓库的文件夹可以绑定,kato bind 会指出该项目,使其进入可见范围。如果 Kato 后来发现该项目属于另一个客户端(即你曾在该客户端下使用过的文件夹),那么在你手动绑定前,该项目的文件夹不会对应任何客户端。除非已找到两个仓库,否则 Kato 无法完整读取的文件夹(权限问题)也会被拒绝。隐藏文件夹(.founder、.claude)和依赖项文件夹(node_modules、vendor、third_party、Carthage、Pods)不计入。如果只有一个项目,在其中运行 git init 后即可绑定。如果其中的每个仓库都属于该客户端,仍可强制绑定:
kato bind ~/kato <client> <dir> --wide-ok
--wide-ok 会与绑定一同记录,且仅豁免这条规则:你的主目录、/、/tmp 以及主目录下的非 git 文件夹仍会被拒绝。Kato 只会在绑定时检查文件夹包含的内容,因此之后克隆到已绑定文件夹中的仓库不会改变该文件夹对应的客户端。(Kato 自行发现的条目,会在会话首次于其中启动时进行检查。)--unbind 会使文件夹不再对应任何客户端——即使它位于另一个客户端的已绑定文件夹中,或本身是 --all 文件夹也一样——并会说明该文件夹之后对应什么(以及外层文件夹会再次对应哪些其他文件夹)。如果已绑定文件夹的路径现在经过符号链接,或者 Kato 无法读取 agent/work-roots.json 中的绑定,那么在你重新绑定前,该文件夹不会对应任何客户端。
Codex
Skills 使用共用的 skills/<name>/SKILL.md 布局。OpenAI 将 .claude-plugin/marketplace.json 文档化为兼容旧版的 marketplace 位置,但没有说明会读取 Claude 的 plugin.json,因此在 Codex 中请使用 kato connect(它会在 ~/.codex/config.toml 中注册 [mcp_servers.kato])。Codex 插件不支持用于目录提交的钩子。
隐私
插件及其服务在你的 Mac 上运行,不会建立网络连接。正如上文所述,应用本身会将转录和窗口文本发送到托管的 brain。默认情况下,发给 Agent 的回答会进行脱敏处理([REDACTED:...])。
密封客户端在所有工具中都只返回路由信息(时间、对象),绝不返回内容。通过 kato MCP 服务,绑定到一个客户端的文件夹绝不会收到其他客户端的内容。
简单来说:这道隔离墙仅约束那些只能通过 MCP 访问 Kato 的 Agent。能够运行 shell 命令的 Agent 可以运行 kato transcript,或直接读取 brain 的文件(~/kato);文件夹绑定无法阻止这一点。CLI 保留了 --space,因为终端是你自己的进程。
钩子只会输出它能解析的摘要(来自 kato new --digest 的一行 JSON);不认识 new 的旧版 kato 不会输出任何内容。它只有在摘要写入后,且钩子仍有时间输出摘要时(5 秒中的 3.5 秒内),才会将文件夹的位置推进;因此,启动较慢时,下次会话会再次显示新内容,而不会将其跳过。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。