mcpField
A
AInotate

AInotate

本地服务
dontpayfull.com媒体与设计86 天前更新

关于 AInotate

AInotate 是面向 AI Agent 的截图标注工具,可从网页、窗口或现有图片中定位界面元素并生成说明图。它通过 MCP、命令行和 Python 使用,并在分享前检查隐私信息。

主要功能

  1. 01网页、窗口和图片截图
  2. 02步骤、箭头、框和标签标注
  3. 03OCR 与界面元素定位
  4. 04自动检测并遮盖敏感信息
  5. 05生成指南、对比图和动画

适用场景

  1. 01标出设置项或按钮的位置
  2. 02制作逐步操作指南
  3. 03为问题报告标注并遮盖隐私
  4. 04制作界面变更前后对比图

MCP 相关

AInotate 提供 MCP 服务,供 MCP 客户端调用截图捕获、定位、标注和检查等能力。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"dontpayfull-ainotate": {
"command": "uvx",
"args": [
"ainotate"
]
}
}
}
启动命令uvx ainotate

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
pypiainotate0.1.9

工具

16

收录的工具列表 · 更新于 1 周前

参数类型必填说明
lookany否
specany是
draftboolean否

详细介绍

AInotate

为 AI Agent 标注截图:Agent 直接展示按钮,而不是描述按钮在哪里。

网站 · 开始使用 · 隐私

测试 PyPI Python 许可证:AGPL-3.0-or-later MCP 服务

浏览器窗口中的 Hacker News 页面,带有 Skitch 风格的箭头:指向 Discussion、Post a link 和带编号的 Sign in 步骤,背景为日落渐变

向 Agent 询问如何在 Hacker News 上发布链接,通常会得到一段说明:顶部的橙色栏、jobs 后面的最后一个链接。使用 AInotate,它会直接发送上面的图片,并说“点击蓝色箭头指向的 submit”。

它可以截取网页、窗口或你已有的截图,找到你指的元素,在最不遮挡内容的位置绘制编号步骤、箭头、方框和标签,将电子邮件地址和令牌涂黑,并在发送前检查结果。它适用于 Claude Code、Cowork、Claude Desktop、Codex、Gemini CLI、Cursor 和任何其他 MCP 客户端,也可以通过命令行或 Python 使用。

我们在 DontPayFull 开发了它,因为自家的 Agent 总是用一段话回答“它在哪里?”。在正确的按钮上标个数字,一张图片就能在一秒内解决问题,无论是在聊天、工单还是指南中。

适用场景

  • “它在哪里?” 设置、菜单、藏在图标后面的按钮。Agent 直接用屏幕作答,并框出控件、标上编号。
  • “一步步教我。” 每个步骤配一张图片,按操作顺序排列;ainotate guide 可将它们制作为 Markdown、HTML 或 PDF 指南。
  • “轮到你了。” 权限开关、2FA 验证码、付款或同意页面:Agent 不会替你点击,而是准确展示要按什么,并说明点击后的效果。
  • 错误报告和工单。 用红色圈出问题,用绿色标出正确内容,并在他人看到之前将电子邮件地址和令牌涂黑。
  • 文档和更新日志。 截图指向文字所述的内容;界面变化时,根据相同规范重新截图;提供变更前后的对比图。

在 Agent 中设置

1. 安装,任选一种方式:

方式命令
Homebrew(macOS)brew install dontpayfull/tap/ainotate
pipx 或 uv(Python 3.10+)pipx install "ainotate[all]" 或 uv tool install "ainotate[all]"
Claude 插件仅需 uv:第 2 步会一并安装 AInotate
Claude Desktop 扩展无需预先安装

然后运行 ainotate doctor 检查计算机,并为缺少的任何内容打印确切的修复方法,其中包括用于下载 Chromium 以捕获网页的命令。之后如需更新:使用 brew upgrade ainotate、pipx upgrade ainotate 或 uv tool upgrade ainotate;插件使用 /plugin marketplace update ainotate;桌面扩展则打开 Releases 中更新版本的 .mcpb。

2. 将它连接到你使用的 Agent:

Agent方法
Claude Code/plugin marketplace add dontpayfull/AInotate,然后运行 /plugin install ainotate@ainotate:一步完成 skill 和 MCP 服务的安装
CoworkCustomize > Plugins > Add marketplace > dontpayfull/AInotate,然后安装 AInotate
Claude Desktop从 Releases 下载 ainotate-<version>.mcpb 并打开:一键安装扩展
Codexcodex plugin marketplace add dontpayfull/AInotate,然后运行 codex plugin add ainotate@ainotate:安装 skill 和 MCP 服务
Gemini CLIgemini extensions install https://github.com/dontpayfull/AInotate:安装 skill 和 MCP 服务
Cursor将 AInotate 添加到 Cursor(需要 uv),并添加下方的 skill
VS Code、Cline 和其他 MCP 客户端命令为 ainotate,参数为 mcp(stdio);也已在 MCP Registry 中列出,名称为 io.github.dontpayfull/ainotate;Agent 可以参考 llms-install.md
{"mcpServers": {"ainotate": {"command": "ainotate", "args": ["mcp"]}}}

AInotate 在你自己的计算机上运行:Cowork 通过 Claude 桌面应用连接它,因此任务使用期间请保持应用打开。插件通过 uvx 运行 AInotate,并固定到对应版本,因此需要安装 uv。

skill 会教 Agent 何时以及如何添加标注:选择来源、找到准确位置、添加标注、读取图像进行验证并交付。插件会一并提供它;不使用插件时,它会随软件包一同提供:

ainotate install-skill             # Claude Code and Codex (~/.claude/skills, ~/.agents/skills)
ainotate install-skill --zip ~/Desktop   # a ZIP for Claude Desktop, Cowork, claude.ai:
                                         # Customize > Skills > Upload a skill
npx skills add dontpayfull/AInotate      # any agent the skills CLI knows (Cursor, Windsurf, ...)

所有操作系统的配置路径、权限和工具列表: skills/ainotate/references/mcp.md。

3. 提出请求。“告诉我在哪里可以将 Wikipedia 切换为深色模式。”Agent 会捕获页面、添加标注、检查并发送图像。借助 skill,只要答案取决于屏幕上某项内容的位置,它也会自动执行这些操作,例如“如何操作”类问题、视觉问题,以及修改前后的对比。

示例画廊

下面的每张图片都是通过一次 shoot 调用在公开网站上制作的: 打开页面,查找元素,放置标签,绘制并加框。规格见 docs/images/specs。

DontPayFull 首页:第 1 步标注在商店搜索框上,第 2 步标注在 Join now 上,蓝色箭头指向 Saving tipsGitHub 上的 Playwright 仓库:Code 按钮用绿色框出并标注 Clone it,箭头指向 Star 按钮,About 文本高亮
编号步骤标注在 DontPayFull 繁忙的页眉上,该网站提供 20,000 多家商店的优惠券GitHub 上的方框、箭头和高亮
维基百科文章的外观面板中有三个编号步骤,页面框在蓝色渐变背景的浏览器窗口中一份错误报告:一个表格用绿色框出并标注为已排序,另一个用红色框出并标注为未排序,所有电子邮件地址均已自动涂黑
带浏览器边框和渐变外框的分步指南错误报告,隐私扫描会自动遮盖电子邮件地址
圆形放大镜放大了一个小编辑链接,旁边是 Alt Shift E 键帽前后对比图:一个复选框和一个 Remove 按钮,然后显示消息 It's gone
用于小型控件和快捷键的放大镜和键帽两张截图组成的前后对比图

同样的两个箭头分别以四种箭头样式绘制:skitch、curved、straight 和 line

四种箭头样式:skitch(默认:路径清晰时使用直线,路径较长且倾斜时轻微弯曲,绕开文字时使用曲线)、curved、straight、line

手机尺寸视口中的维基百科,菜单和搜索按钮带有编号
手机预设:移动视口、触控和用户代理

标签不会遮挡内容

左侧:固定放置在每个链接下方的标签遮住了第一条标题。右侧:AInotate 将相同的标签放在空白处,并用箭头指向链接

标签固定放在目标旁边时,通常会遮住读者需要查看的文字。AInotate 会自行放置每个标签:

  • 它会先映射页面内容(文字、图标、线条、图片),并为每个标签尝试数百个位置。目标附近的空白处优先;只有当画面中没有空位时,才会将标签放在文字上方。
  • 箭头也会计算代价:长箭头,或穿过文字、其他标签或标记的箭头,会优先让位给更短、更清晰的箭头。当直线路径穿过文字时,箭头会绕开文字弯曲。
  • 所有标签会一并规划,因此第一个标签不会占用后续标签唯一合适的位置。
  • 步骤徽标会放在方框遮挡内容最少的角上。

图片绝不会为了腾出空间而放大。如果标签仍不得不遮挡内容,AInotate 会在警告中说明;label_at 则可将标签固定在你指定的位置。

从命令行使用

将以下内容保存为 hn.json:

{"url": "https://news.ycombinator.com",
 "frame": {"chrome": "browser"},
 "marks": [
  {"type": "step", "n": 1, "target": {"text": "new", "exact": true},
   "label": "Newest"},
  {"type": "step", "n": 2, "target": {"text": "login"},
   "label": "Sign in"}]}
ainotate shoot hn.json --draft    # temp file; drop --draft to save

输出路径会打印到 stdout。除非配置了其他文件夹,否则图片会保存到 ~/Pictures/AInotate。ainotate --help 会列出所有命令(capture、annotate、locate by OCR、grid、zoom、window capture with UI element targets、elements、guide、compare、animate、copy、 install-skill);完整规范见 skills/ainotate/references/spec.md。退出代码:0 成功, 1 无法保存,2 规范无效,3 无法绘制,4 捕获失败或缺少可选依赖,5 文本目标不明确,6 未找到目标。

Python。 同一工作流也可通过导入使用:

from ainotate.shoot import shoot
res = shoot({"url": "https://en.wikipedia.org/wiki/Screenshot",
             "marks": [{"type": "box",
                        "target": {"text": "View history"},
                        "label": "Past edits"}]}, draft=True)
print(res.paths[0], res.redactions)

功能

  • **标记:**编号 step、box、arrow、click 涟漪、keys (键帽)、magnify(放大镜)、highlight、spotlight、text、纯色 redact,以及装饰性 blur / pixelate。
  • **易读的放置方式:**标签会放在目标附近的空白处,并统一规划;箭头是 Skitch 风格的渐细 形状,带有柔和阴影,并会绕开文字弯曲(参见 不遮挡内容的标签)。 如果标签重叠、箭头交叉、标记超过 6 个或标签超过 4 个词,系统会发出警告。
  • 一次调用完成网页捕获:ainotate shoot 会打开页面(笔记本电脑、宽屏或手机预设),执行操作(点击、填写、等待、滚动),测量每个目标,遮盖敏感信息、添加标注并保存。
  • **支持任意浏览器:**使用自带的 Playwright Chromium、Firefox 或 WebKit,也可通过 CDP 连接到你已在使用并已登录的 Chromium(Chrome、Edge、Brave、Arc、BrowserOS)。预设仅应用于当前标签页,之后会恢复原状。
  • 支持任意图片:locate 通过 OCR 查找文字(Apple Vision、Windows OCR 或 Tesseract);grid 和 zoom 可在完整分辨率下定位图标。内置屏幕、窗口和剪贴板捕获功能。
  • macOS 桌面应用:ainotate window ID --target 通过辅助功能 API 测量按钮、开关和字段,因此标记能精确覆盖控件,包括图标;ainotate elements --app NAME 会列出可找到的元素。
  • **边框:**渐变背景(根据截图自动生成或使用预设)、圆角、阴影、浏览器或窗口边框、社交媒体宽高比。
  • **分享:**Markdown、HTML 和 PDF 格式的指南;前后对比图;APNG 和 GIF 动画;复制到剪贴板。
  • **严格规范:**遇到拼写错误时,运行会停止并列出所有问题,而不是保存错误或未遮盖的图片。退出代码清晰明确。
  • **变音符号:**内置 Inter 字体,因此罗马尼亚语、德语、法语及其他使用拉丁字母的语言标签都能在任何地方正确显示。

隐私

  • 遮盖是不透明的。redact 会绘制不透明色块。AInotate 从不使用模糊来隐藏数据:模糊和像素化都可以还原。blur 和 pixelate 仅用于弱化杂乱内容;对标记为 "sensitive": true 的内容使用这两种效果会被拒绝。
  • 网页截图会自动遮盖。shoot 会扫描实时页面(文本和输入值),查找电子邮件地址、电话号码、银行卡号、IBAN、API 密钥、令牌、JWT、密码和个人数据字段,并将其涂黑。在图片上,传入 --privacy auto 时会对 OCR 结果进行处理。你可以将自己的地址加入允许列表,或添加正则表达式。
  • **尽力而为。**检测可能会遗漏内容:图片或 canvas 中绘制的文字、不常见的格式、拆分在多个元素中的数据,以及来自其他网站的嵌入式框架(会报告但不遮盖)。分享前务必检查图片。该技能要求 Agent 必须完成这项检查。
  • **本地运行。**捕获、OCR 和渲染都在你的机器上运行。除加载你要求捕获的页面外,AInotate 本身不会发出网络请求。

平台支持

macOSWindowsLinux
标注、帧、导出已验证实验性实验性
网页捕获(Playwright、CDP)已验证实验性实验性
屏幕和窗口捕获已验证实验性实验性(X11)
UI 元素(window --target、elements)已验证(辅助功能)尚不支持尚不支持
OCR(locate、文本目标)已验证(Vision)实验性(Windows OCR)实验性(Tesseract)
剪贴板已验证实验性实验性
MCP 服务已验证实验性实验性

实验性表示功能已实现,并通过了使用模拟对象的单元测试,但尚未在真实的 Windows 或 Linux 设备上验证。欢迎提交报告。

许可证

版权所有 © 2026 DontPayFull。 AInotate 是遵循 GNU Affero 通用公共许可证 v3.0 或更高版本的自由软件。如果你将修改后的 AInotate 作为网络服务运行,AGPL 要求你向该服务的用户提供其源代码。

随附和衍生的第三方作品(Inter 字体、源自 Arrowshot 的箭头比例、来自 github/awesome-copilot 的标签放置创意)以及依赖项的许可证,均列于 NOTICE。


由 DontPayFull 团队倾心打造 ❤️
为 20,000 多家商店提供优惠券和折扣码

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。