Groupdocs Annotation Mcp

io.github.groupdocs-annotation由 GitHub 帳號 groupdocs-annotation 發布v26.9.0更新於 Oct 25, 2026

MCP server for GroupDocs.Annotation — add, list, update, remove document annotations via AI agents.

已驗證STDIO僅桌面效率與工作流檔案與儲存

概覽

AI 產生的概覽

本機 MCP 伺服器,讓 AI 助理透過 GroupDocs.Annotation 在文件中新增、列出、更新、回覆、匯入、匯出與移除註解。

可以做什麼
新增文字、區域、點、箭頭、醒目提示、底線與刪除線註解,並儲存含註解的文件副本。以 JSON 列出註解,並依 id 修改註解訊息或邊界框。依 id 清單移除註解,未指定時全部移除。在既有註解上新增與移除回覆及留言串。從 XML 或其他文件匯入註解,並將註解匯出為 XML。讀取文件資訊,並將最多五頁轉為內嵌 PNG 預覽。
適用情境
適合讓助理審閱合約、規格書或設計文件並加上標註,依作者彙整既有留言,或在檔案之間搬移註解集合,而不必開啟文件編輯器。
執行需求
透過 stdio 在本機執行,可作為 .NET 工具(需要 .NET 10 SDK)以 dnx 或全域 dotnet 工具啟動,也可使用 Docker 映像。在 Linux 與 macOS 上原生執行需先安裝 libgdiplus 與字型。以 GROUPDOCS_MCP_STORAGE_PATH 指定輸入輸出資料夾,可選用 GROUPDOCS_MCP_OUTPUT_PATH。需以 GROUPDOCS_LICENSE_PATH 提供授權檔或設定計量金鑰,才能解除評估限制。
安裝前請注意
沒有授權時以評估模式執行:輸出可能帶浮水印,單一程序最多開啟 15 份文件。計量模式依用量計費並向 GroupDocs 伺服器回報使用資料,需要對外網路連線。GROUPDOCS_METERED_PRIVATE_KEY 是密鑰,請勿寫入會提交的設定檔。工具會寫入註解檔案,並可刪除註解與回覆。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Groupdocs Annotation Mcp,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

GroupDocs.Annotation MCP Server

MCP server that exposes GroupDocs.Annotation as AI-callable tools for Claude, Cursor, GitHub Copilot, and other MCP agents.

[NuGet] [NuGet downloads] [Docker pulls] [MCP Registry] [Integration tests] [License: MIT]

Installation

[Install in VS Code] [Install in VS Code Insiders] [Add to Cursor] [Codex CLI setup] [Windsurf setup]

One-click installs pre-fill every supported setting: edit the placeholder documents folder after install (output defaults to the same folder); an empty GROUPDOCS_LICENSE_PATH runs in evaluation mode - point it at your license to lift limits.

More clients - ready-made configs for Claude Code, Codex CLI, Visual Studio 2022, Cursor, Windsurf, Cline, and JetBrains Rider live in install/generated/.

Requires .NET 10 SDK.

Run directly with dnx (recommended — no install step):

bash
dnx GroupDocs.Annotation.Mcp --yes

Pulls the latest stable release on every invocation. To pin to a specific version (recommended for shared configs and CI), append @<version>:

bash

Or install as a global dotnet tool:

bash
dotnet tool install -g GroupDocs.Annotation.Mcpgroupdocs-annotation-mcp

Or run via Docker:

bash
docker run --rm -i \  -v $(pwd)/documents:/data \  ghcr.io/groupdocs-annotation/annotation-net-mcp:latest

Native prerequisites

The underlying GroupDocs engine rasterises annotated pages and previews via System.Drawing (GDI+). When you run the server natively (via dnx or the global dotnet tool) on Linux or macOS, install the native libgdiplus library and a fonts package first:

PlatformSetup
WindowsNothing — GDI+ is built into the OS.
Linuxsudo apt-get install -y libgdiplus libfontconfig1 ttf-mscorefonts-installer
macOSbrew install mono-libgdiplus
DockerNothing — the image already bundles libgdiplus, libfontconfig1, and ttf-mscorefonts-installer.

Skipping this on Linux/macOS surfaces as DllNotFoundException: libgdiplus in the tool response. The simplest zero-setup option on Linux/macOS is the Docker image.

Available MCP Tools

ToolDescription
AddAnnotationAdd a textfield / area / point / arrow / highlight / underline / strikeout annotation; saves the annotated file as <name>_annotated.<ext>
GetAnnotationsList all annotations in a document as JSON (id, type, message, page, box, user, replies)
UpdateAnnotationModify an existing annotation's message and/or bounding box by id
RemoveAnnotationsRemove annotations by id list, or all if none specified
AddReplyAdd a reply / comment thread to an existing annotation
RemoveRepliesRemove replies by reply-id list, by user name, or all
ImportAnnotationsImport annotations from an XML file or another annotated document into a target file
ExportAnnotationsExtract annotations from a document and save them as XML (re-importable via ImportAnnotations)
GetDocumentInfoReturn file type, page count, size, and per-page dimensions as JSON (no modification)
GeneratePagesPreviewRender up to 5 document pages as inline PNG images so AI clients display them directly

Example prompts

  • "Annotate contract.pdf — add a highlight on page 2 around the indemnity clause and an arrow with the comment 'Needs legal review'"
  • "List every annotation in design-review.docx and group them by author"
  • "Reply to annotation 7 in spec.pdf with 'Implemented in PR #42' under the user 'alice'"
  • "Export the annotations from old.pdf to XML, then re-import them into new.pdf"
  • "Preview page 1 and page 5 of report.pdf with annotations baked in"

Licensing

The MCP server itself is MIT; the underlying GroupDocs.Annotation engine requires a license for production use. Without one the server runs in evaluation mode:

  • Annotated output may carry evaluation watermarks.
  • A single server process can open at most 15 documents; further calls fail with an evaluation-cap error until the server restarts.

There are two ways to license the server.

License file — point GROUPDOCS_LICENSE_PATH at your GroupDocs.Total.lic. Works offline.

Metered (pay-per-use) — set both GROUPDOCS_METERED_PUBLIC_KEY and GROUPDOCS_METERED_PRIVATE_KEY. You are billed for what you actually process, which suits AI agents well because their usage is bursty and hard to predict up front. If both a metered key pair and a license file are configured, metered wins and the file is ignored.

Metered mode needs outbound connectivity. Usage is reported to GroupDocs servers, so air-gapped or firewalled deployments must allow that egress — or use a license file instead.

Call the get_license_status tool at any time to see which mode is active, and — under metered — the consumed quantity and remaining credit.

Keeping the private key out of your config

The metered private key is a secret. MCP client configs are plain files on disk, and a project-scoped .mcp.json is committed by convention, so prefer, in order:

  1. Set the variables in your OS environment and leave them out of the config entirely. An stdio MCP server inherits its client's environment, so this works in every client. On macOS note that an app launched from Finder does not inherit shell exports — use launchctl setenv, or launch the client from a terminal.
  2. Reference them indirectly if your client supports it (Claude Code expands ${VAR}; VS Code uses ${env:VAR} and ${input:...}).
  3. A literal value in a user-scoped config (for example ~/.claude.json) is acceptable for a single developer.
  4. Never commit a literal key in a project-scoped .mcp.json.

For Docker, forward the values without writing them into any file:

bash
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

To lift the limits with a license file:

Configuration

VariableDescriptionDefault
GROUPDOCS_MCP_STORAGE_PATHBase folder for input and output filescurrent directory
GROUPDOCS_MCP_OUTPUT_PATH(Optional) separate folder for output filesGROUPDOCS_MCP_STORAGE_PATH
GROUPDOCS_LICENSE_PATHPath to GroupDocs license file(evaluation mode)
GROUPDOCS_METERED_PUBLIC_KEYMetered public key. Requires the private key too; takes precedence over the license file(unset)
GROUPDOCS_METERED_PRIVATE_KEYMetered private key. Secret - see Licensing(unset)

Usage with Claude Desktop

json
{  "mcpServers": {    "groupdocs-annotation": {      "type": "stdio",      "command": "dnx",      "args": ["GroupDocs.Annotation.Mcp", "--yes"],      "env": {        "GROUPDOCS_MCP_STORAGE_PATH": "/path/to/documents"      }    }  }}

To pin to a specific version, replace "GroupDocs.Annotation.Mcp" with "[email protected]" in args. Pinning is recommended for shared / committed configs to avoid surprise upgrades.

Usage with VS Code / GitHub Copilot

NuGet.org generates a ready-to-use mcp.json snippet on the package page. Copy it directly into your .vscode/mcp.json.

Alternatively, add manually to .vscode/mcp.json:

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}"      }    }  }}

Same pinning rule as above — swap "GroupDocs.Annotation.Mcp" for "[email protected]" to lock to a specific release.

Usage with Docker Compose

bash
cd dockerdocker compose up

Edit docker/docker-compose.yml to point volumes at your local documents folder.

License

MIT — see LICENSE

來源:README.md,提交 8eaae27

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

1
  1. v26.9.0最新Sep 16, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分