关于 groupdocs-annotation-mcp
groupdocs-annotation-mcp 将 GroupDocs.Annotation 的文档批注能力提供为 MCP 工具,适用于需要通过 AI Agent 审阅和处理文档批注的团队。它支持批注及回复的管理、导入导出,并可生成页面预览。
主要功能
- 01添加多种类型的文档批注
- 02列出、修改和删除批注
- 03管理批注回复与评论
- 04导入和导出 XML 批注
- 05读取文档信息并生成页面预览
适用场景
- 01在合同中标记条款并添加审核意见
- 02按作者查看设计文档批注
- 03为现有批注添加回复
- 04在文档间迁移批注并预览页面
MCP 相关
通过 MCP 向客户端提供 GroupDocs.Annotation 工具,包括批注操作、文档信息查询和页面预览。支持 stdio 方式接入 MCP 客户端。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
GroupDocs.Annotation MCP 服务
将 GroupDocs.Annotation 封装为可供 Claude、Cursor、GitHub Copilot 和其他 MCP Agent 调用的工具的 MCP 服务。
安装
一键安装会预填所有受支持的设置:安装后请编辑占位文档文件夹(输出默认使用同一文件夹);GROUPDOCS_LICENSE_PATH 为空时将以评估模式运行——将其指向许可证即可解除限制。
更多客户端——Claude Code、Codex CLI、Visual Studio 2022、Cursor、Windsurf、Cline 和 JetBrains Rider 的现成配置位于
install/generated/。
需要 .NET 10 SDK。
使用 dnx 直接运行(推荐——无需安装):
dnx GroupDocs.Annotation.Mcp --yes
每次调用都会拉取最新的稳定版本。若要固定到特定版本(共享配置和 CI 推荐),请追加 @<version>:
dnx [email protected] --yes
或安装为全局 dotnet 工具:
dotnet tool install -g GroupDocs.Annotation.Mcp
groupdocs-annotation-mcp
或通过 Docker 运行:
docker run --rm -i \
-v $(pwd)/documents:/data \
ghcr.io/groupdocs-annotation/annotation-net-mcp:latest
原生环境前置条件
底层 GroupDocs 引擎使用
System.Drawing(GDI+)将带批注的页面和预览栅格化。在 Linux 或 macOS 上原生运行服务(通过 dnx 或
全局 dotnet 工具)时,请先安装原生 libgdiplus
库和字体包:
| 平台 | 设置 |
|---|---|
| Windows | 无需操作 — GDI+ 已内置于操作系统。 |
| Linux | sudo apt-get install -y libgdiplus libfontconfig1 ttf-mscorefonts-installer |
| macOS | brew install mono-libgdiplus |
| Docker | 无需操作 — 镜像已包含 libgdiplus、libfontconfig1 和 ttf-mscorefonts-installer。 |
在 Linux/macOS 上跳过此步骤会导致工具响应中出现 DllNotFoundException: libgdiplus。
在 Linux/macOS 上,最简单的零配置选项是
Docker 镜像。
可用的 MCP 工具
| 工具 | 描述 |
|---|---|
AddAnnotation | 添加文本字段 / 区域 / 点 / 箭头 / 高亮 / 下划线 / 删除线批注;将带批注的文件保存为 <name>_annotated.<ext> |
GetAnnotations | 以 JSON 格式列出文档中的所有批注(id、类型、消息、页面、框、用户、回复) |
UpdateAnnotation | 按 id 修改现有批注的消息和/或边界框 |
RemoveAnnotations | 按 id 列表移除批注;若未指定,则移除所有批注 |
AddReply | 为现有批注添加回复 / 评论线程 |
RemoveReplies | 按回复 id 列表、用户名或全部移除回复 |
ImportAnnotations | 将 XML 文件或其他带批注的文档中的批注导入目标文件 |
ExportAnnotations | 从文档中提取批注并保存为 XML(可通过 ImportAnnotations 重新导入) |
GetDocumentInfo | 以 JSON 格式返回文件类型、页数、大小和各页尺寸(不作修改) |
GeneratePagesPreview | 将最多 5 页文档渲染为内嵌 PNG 图片,以便 AI 客户端直接显示 |
示例提示词
- “为 contract.pdf 添加批注 — 在第 2 页的赔偿条款周围添加高亮,并添加一支评论为 ‘Needs legal review’ 的箭头”
- “列出 design-review.docx 中的所有批注,并按作者分组”
- “在 spec.pdf 的批注 7 下,以用户 ‘alice’ 的身份回复 ‘Implemented in PR #42’”
- “将 old.pdf 中的批注导出为 XML,然后重新导入 new.pdf”
- “预览 report.pdf 的第 1 页和第 5 页,并显示已合并批注的效果”
许可
MCP 服务本身采用 MIT 许可;底层 GroupDocs.Annotation 引擎用于生产环境时需要许可证。没有许可证时,服务会在评估模式下运行:
- 带批注的输出可能带有评估水印。
- 单个服务进程最多可打开 15 个文档;超出后,后续调用会失败并提示评估版上限错误,直到服务重启。
有两种方式为服务授权。
许可证文件 — 将 GROUPDOCS_LICENSE_PATH 指向 GroupDocs.Total.lic。可离线使用。
计量(按使用付费) — 同时设置 GROUPDOCS_METERED_PUBLIC_KEY 和
GROUPDOCS_METERED_PRIVATE_KEY。您只需为实际处理的内容付费,这很适合 AI
Agent,因为它们的使用量会突增,且难以提前预测。如果同时配置了计量密钥对和许可证文件,计量模式优先,许可证文件将被忽略。
**计量模式需要出站网络连接。**使用情况会报告给 GroupDocs 服务器,因此 隔离网络或受防火墙限制的部署必须允许此类出站流量 — 否则请改用许可证文件。
随时调用 get_license_status 工具,查看当前启用的模式;在计量模式下,还可查看已消耗的用量和剩余额度。
避免私钥出现在配置中
计量私钥属于机密。MCP 客户端配置是磁盘上的普通文件,而按惯例,项目级 .mcp.json 会提交到版本库,因此请优先按以下顺序处理:
- 在操作系统环境中设置变量,并完全不将其写入配置。 stdio MCP 服务会继承客户端的环境,因此这种方式适用于所有客户端。
在 macOS 上请注意,从 Finder 启动的应用不会继承 shell 导出的变量——请使用
launchctl setenv,或从终端启动客户端。 - 间接引用这些变量(如果客户端支持;Claude Code 会展开
${VAR}; VS Code 使用${env:VAR}和${input:...})。 - 在用户级配置中写入字面值(例如
~/.claude.json),对于单个开发者来说可以接受。 - 绝不要在项目级
.mcp.json中提交字面密钥。
对于 Docker,请转发这些值,而不要将它们写入任何文件:
docker run --rm -i \
-e GROUPDOCS_METERED_PUBLIC_KEY -e GROUPDOCS_METERED_PRIVATE_KEY \
-v /path/to/documents:/data \
ghcr.io/groupdocs-annotation/annotation-net-mcp:latest
如需通过许可证文件解除限制:
配置
| 变量 | 说明 | 默认值 |
|---|---|---|
GROUPDOCS_MCP_STORAGE_PATH | 输入和输出文件的基础文件夹 | 当前目录 |
GROUPDOCS_MCP_OUTPUT_PATH | (可选) 单独的输出文件文件夹 | GROUPDOCS_MCP_STORAGE_PATH |
GROUPDOCS_LICENSE_PATH | GroupDocs 许可证文件的路径 | (评估模式) |
GROUPDOCS_METERED_PUBLIC_KEY | 计量公钥。还需要私钥;其优先级高于许可证文件 | (未设置) |
GROUPDOCS_METERED_PRIVATE_KEY | 计量私钥。机密——请参阅许可 | (未设置) |
在 Claude Desktop 中使用
{
"mcpServers": {
"groupdocs-annotation": {
"type": "stdio",
"command": "dnx",
"args": ["GroupDocs.Annotation.Mcp", "--yes"],
"env": {
"GROUPDOCS_MCP_STORAGE_PATH": "/path/to/documents"
}
}
}
}
如需固定到特定版本,请在
args中将"GroupDocs.Annotation.Mcp"替换为"[email protected]"。建议在共享配置或已提交的配置中固定版本,以避免意外升级。
在 VS Code / GitHub Copilot 中使用
NuGet.org 会在包页面上生成可直接使用的 mcp.json 片段。
将其直接复制到 .vscode/mcp.json 中。
或者,也可以手动添加到 .vscode/mcp.json:
{
"inputs": [
{
"type": "promptString",
"id": "storage_path",
"description": "Base folder for input and output files.",
"password": false
}
],
"servers": {
"groupdocs-annotation": {
"type": "stdio",
"command": "dnx",
"args": ["GroupDocs.Annotation.Mcp", "--yes"],
"env": {
"GROUPDOCS_MCP_STORAGE_PATH": "${input:storage_path}"
}
}
}
}
固定版本的规则与上文相同——将
"GroupDocs.Annotation.Mcp"替换为"[email protected]",即可锁定到特定版本。
使用 Docker Compose
cd docker
docker compose up
编辑 docker/docker-compose.yml,将卷指向本地文档文件夹。
许可证
MIT — 请参阅 LICENSE
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。