Odel
GroupDocs.Total.Mcp

GroupDocs.Total.Mcp

Local
@groupdocs-totalC#MITUpdated 1mo ago

MCP server for GroupDocs.Total — annotate, sign, convert, watermark, parse, redact documents via AI.

GroupDocs.Total MCP Server

Unified MCP server that exposes the full GroupDocs.Total document-processing toolset — annotation, comparison, conversion, markdown, merging, metadata, parsing, redaction, signing, watermarking, plus cross-product document inspection and page preview — as AI-callable tools for Claude, Cursor, GitHub Copilot, and other MCP agents. Designed to be used standalone — attaching the individual product MCPs (GroupDocs.Annotation.Mcp, GroupDocs.Signature.Mcp, …) alongside is unnecessary and would duplicate tools.

GHCR 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 host path in the volume mount after install; an empty GROUPDOCS_LICENSE_PATH runs in evaluation mode.

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

This product ships via Docker (GHCR) only. GroupDocs.Total bundles every engine (including Parser's embedded ONNX models), so the packed tool far exceeds NuGet.org's 250 MB limit - so dnx and dotnet tool install are not available for it. When upstream ships a slimmer engine that packs under the limit, the standard NuGet flow returns (see the revert notes in .github/workflows/publish_prod.yml).

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

Images are multi-arch (linux/amd64 + linux/arm64), tagged latest plus an immutable version tag per release (e.g. :26.7.3). To pin, replace :latest with the version tag - recommended for shared configs and CI.

Available MCP Tools (38 total)

Tools follow {Product}{Verb}{Noun} PascalCase to disambiguate across domains. Cross-product tools stay short.

Cross-product (2)

ToolDescription
GetDocumentInfoFile type, page count, size as JSON for any document (170+ formats via Parser engine)
GetDocumentPageImageRender up to 5 pages as inline PNG images (Viewer engine, 170+ formats)

Annotation (8)

ToolDescription
AnnotationAddAnnotationAdd textfield / area / point / arrow / highlight / underline / strikeout annotation
AnnotationGetAnnotationsList all annotations as JSON (id, type, message, page, box, user, replies)
AnnotationUpdateAnnotationModify an existing annotation's message and/or bounding box by id
AnnotationRemoveAnnotationsRemove annotations by id list, or all
AnnotationAddReplyAdd a reply / comment thread to an existing annotation
AnnotationRemoveRepliesRemove replies by id, by user name, or all
AnnotationImportAnnotationsImport annotations from XML or another annotated document
AnnotationExportAnnotationsExtract annotations to XML (re-importable via Import)

Signature (7)

ToolDescription
SignatureSignSign with text / qrcode / barcode / digital certificate signature
SignatureVerifyVerify signatures, return JSON validity report
SignatureSearchTextSignaturesFind embedded text signatures with optional substring filter
SignatureSearchBarcodesFind barcode signatures with optional decoded-text filter
SignatureSearchQrCodesFind QR code signatures with optional decoded-text filter
SignatureSearchDigitalSignaturesFind digital certificate signatures (signer, issuer, validity)
SignatureSearchImageSignaturesFind embedded image signatures, return as base64 PNGs

Comparison (1) · Conversion (2) · Markdown (2)

ToolDescription
ComparisonCompareCompare two documents, produce annotated diff document
ConversionConvertConvert between PDF, Office, image, HTML, and 50+ more formats
ConversionGetSupportedFormatsList every output format the document can be converted TO
MarkdownConvertToMarkdownConvert PDF / Office / EPUB / MOBI to clean Markdown
MarkdownComposeFromMarkdownCompose DOCX / PDF / HTML from Markdown source

Merger (2) · Metadata (2)

ToolDescription
MergerMergeCombine up to 4 documents into one (PDF / Office / HTML / images)
MergerSplitSplit a document into separate files by page numbers
MetadataReadMetadataRead all metadata properties (author, title, EXIF, XMP, IPTC, custom) as JSON
MetadataRemoveMetadataStrip all metadata and save a clean copy

Parser (5) · Redaction (4) · Watermark (3)

ToolDescription
ParserExtractTextExtract plain text (page-by-page or whole document)
ParserExtractImagesExtract embedded images and save them to storage
ParserExtractTablesExtract tables as Markdown or JSON
ParserExtractMetadataExtract metadata fields (separate from MetadataReadMetadata; Parser-format-aware)
ParserExtractBarcodesFind and decode embedded barcodes in document pages
RedactionRedactTextRedact text matching a regex with a replacement string
RedactionRedactImageAreaBlack out a rectangular region of a document page
RedactionRedactAnnotationsRedact or delete annotations matching a regex
RedactionEraseMetadataStrip metadata via the Redaction engine (handles formats Metadata can't)
WatermarkAddWatermarkAdd a text watermark with configurable font, rotation, opacity
WatermarkSearchWatermarksList existing watermarks (type, text, position, page) as JSON
WatermarkRemoveWatermarksRemove watermarks by text filter or all

Example prompts

  • "Convert contract.docx to PDF, then sign it with a QR code containing 'Signed by Alice', then watermark every page with 'CONFIDENTIAL'"
  • "Compare old.pdf and new.pdf, list every annotation in the result, and preview page 1"
  • "Extract all tables from report.xlsx as Markdown and redact every email address"
  • "Read the metadata of every PDF in /uploads, then strip it, then preview the cleaned page 1 of each"
  • "Find every barcode in invoice.pdf, then merge invoice.pdf + receipt.pdf into combined.pdf"

Licensing

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

  • Each bundled engine applies its own evaluation limits: output watermarks / evaluation notices, page limits, and per-process document-open caps (1-15 documents depending on the engine).

To lift the limits, mount your GroupDocs.Total.lic into the container and point GROUPDOCS_LICENSE_PATH at it (see the Claude Desktop example above):

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)

Usage with Claude Desktop

{
  "mcpServers": {
    "groupdocs-total": {
      "command": "docker",
      "args": ["run", "--rm", "-i", "-v", "/path/to/documents:/data", "ghcr.io/groupdocs-total/total-net-mcp:latest"]
    }
  }
}

To use a license, add "-v", "/path/to/license-folder:/license", "-e", "GROUPDOCS_LICENSE_PATH=/license/GroupDocs.Total.lic" before the image name. To pin a version, replace :latest with the release tag.

Usage with VS Code / GitHub Copilot

Use the Install in VS Code button above, or add to .vscode/mcp.json (also in install/generated/vscode-mcp.json):

{
  "inputs": [
    {
      "type": "promptString",
      "id": "storage_path",
      "description": "Base folder for input and output files.",
      "password": false
    }
  ],
  "servers": {
    "groupdocs-total": {
      "command": "docker",
      "args": ["run", "--rm", "-i", "-v", "${input:storage_path}:/data", "ghcr.io/groupdocs-total/total-net-mcp:latest"]
    }
  }
}

Usage with Docker Compose

cd docker
docker compose up

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

License

MIT — see LICENSE