GroupDocs.Total for .NET MCP server — single endpoint exposing the combined toolset of all GroupDocs Product - Conversion, Viewer, Markdown, Parser, Comparison, Watermark, Merger, Metadata, Editor, Redaction, Assembly, Search, Signature and Annotation via AI agents.
git clone https://github.com/groupdocs-total/GroupDocs.Total.McpMCP Servers overview
# GroupDocs.Total MCP Server
Unified MCP server that exposes the full [GroupDocs.Total](https://products.groupdocs.com/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.
[](https://github.com/orgs/groupdocs-total/packages/container/package/total-net-mcp)
[-6f42c1)](https://registry.modelcontextprotocol.io/v0/servers?search=io.github.groupdocs-total/groupdocs-total-mcp)
[](https://github.com/groupdocs-total/GroupDocs.Total.Mcp.Tests/actions/workflows/integration.yml)
[](LICENSE)
<!-- TODO(manual): record 30s demo per improvement-plan M1 -->
<!--  -->
## Installation
**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`).
```bash
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.2`). To pin, replace `:latest`
with the version tag - recommended for shared configs and CI.
<!-- install-buttons:start - generated by install/generate-install-links.ps1; do not edit by hand -->
[](https://vscode.dev/redirect/mcp/install?name=groupdocs-total&inputs=%5B%7B%22type%22%3A%22promptString%22%2C%22id%22%3A%22storage_path%22%2C%22description%22%3A%22Base%20folder%20for%20input%20and%20output%20files%22%7D%5D&config=%7B%22command%22%3A%22docker%22%2C%22args%22%3A%5B%22run%22%2C%22--rm%22%2C%22-i%22%2C%22-v%22%2C%22%24%7Binput%3Astorage_path%7D%3A%2Fdata%22%2C%22ghcr.io%2Fgroupdocs-total%2Ftotal-net-mcp%3Alatest%22%5D%7D) [](https://insiders.vscode.dev/redirect/mcp/install?name=groupdocs-total&inputs=%5B%7B%22type%22%3A%22promptString%22%2C%22id%22%3A%22storage_path%22%2C%22description%22%3A%22Base%20folder%20for%20input%20and%20output%20files%22%7D%5D&config=%7B%22command%22%3A%22docker%22%2C%22args%22%3A%5B%22run%22%2C%22--rm%22%2C%22-i%22%2C%22-v%22%2C%22%24%7Binput%3Astorage_path%7D%3A%2Fdata%22%2C%22ghcr.io%2Fgroupdocs-total%2Ftotal-net-mcp%3Alatest%22%5D%7D&quality=insiders) [](https://cursor.com/en/install-mcp?name=groupdocs-total&config=eyJjb21tYW5kIjoiZG9ja2VyIiwiYXJncyI6WyJydW4iLCItLXJtIiwiLWkiLCItdiIsIi9wYXRoL3RvL2RvY3VtZW50czovZGF0YSIsImdoY3IuaW8vZ3JvdXBkb2NzLXRvdGFsL3RvdGFsLW5ldC1tY3A6bGF0ZXN0Il19)
> One-click buttons prompt for your documents folder. Cursor's deeplink installs with a
> placeholder storage path - edit it after install.
<!-- install-buttons:end -->
> **More clients** - ready-made configs for Claude Code, Visual Studio 2022 (`.mcp.json`),
> Cursor, Windsurf, Cline, and JetBrains Rider live in [`install/generated/`](install/generated/).
## Available MCP Tools (38 total)
Tools follow `{Product}{Verb}{Noun}` PascalCase to disambiguate across domains. Cross-product tools stay short.
### Cross-product (2)
| Tool | Description |
|---|---|
| `GetDocumentInfo` | File type, page count, size as JSON for any document (170+ formats via Parser engine) |
| `GetDocumentPageImage` | Render up to 5 pages as inline PNG images (Viewer engine, 170+ formats) |
### Annotation (8)
| Tool | Description |
|---|---|
| `AnnotationAddAnnotation` | Add textfield / area / point / arrow / highlight / underline / strikeout annotation |
| `AnnotationGetAnnotations` | List all annotations as JSON (id, type, message, page, box, user, replies) |
| `AnnotationUpdateAnnotation` | Modify an existing annotation's message and/or bounding box by id |
| `AnnotationRemoveAnnotations` | Remove annotations by id list, or all |
| `AnnotationAddReply` | Add a reply / comment thread to an existing annotation |
| `AnnotationRemoveReplies` | Remove replies by id, by user name, or all |
| `AnnotationImportAnnotations` | Import annotations from XML or another annotated document |
| `AnnotationExportAnnotations` | Extract annotations to XML (re-importable via Import) |
### Signature (7)
| Tool | Description |
|---|---|
| `SignatureSign` | Sign with text / qrcode / barcode / digital certificate signature |
| `SignatureVerify` | Verify signatures, return JSON validity report |
| `SignatureSearchTextSignatures` | Find embedded text signatures with optional substring filter |
| `SignatureSearchBarcodes` | Find barcode signatures with optional decoded-text filter |
| `SignatureSearchQrCodes` | Find QR code signatures with optional decoded-text filter |
| `SignatureSearchDigitalSignatures` | Find digital certificate signatures (signer, issuer, validity) |
| `SignatureSearchImageSignatures` | Find embedded image signatures, return as base64 PNGs |
### Comparison (1) · Conversion (2) · Markdown (2)
| Tool | Description |
|---|---|
| `ComparisonCompare` | Compare two documents, produce annotated diff document |
| `ConversionConvert` | Convert between PDF, Office, image, HTML, and 50+ more formats |
| `ConversionGetSupportedFormats` | List every output format the document can be converted TO |
| `MarkdownConvertToMarkdown` | Convert PDF / Office / EPUB / MOBI to clean Markdown |
| `MarkdownComposeFromMarkdown` | Compose DOCX / PDF / HTML from Markdown source |
### Merger (2) · Metadata (2)
| Tool | Description |
|---|---|
| `MergerMerge` | Combine up to 4 documents into one (PDF / Office / HTML / images) |
| `MergerSplit` | Split a document into separate files by page numbers |
| `MetadataReadMetadata` | Read all metadata properties (author, title, EXIF, XMP, IPTC, custom) as JSON |
| `MetadataRemoveMetadata` | Strip all metadata and save a clean copy |
### Parser (5) · Redaction (4) · Watermark (3)
| Tool | Description |
|---|---|
| `ParserExtractText` | Extract plain text (page-by-page or whole document) |
| `ParserExtractImages` | Extract embedded images and save them to storage |
| `ParserExtractTables` | Extract tables as Markdown or JSON |
| `ParserExtractMetadata` | Extract metadata fields (separate from MetadataReadMetadata; Parser-format-aware) |
| `ParserExtractBarcodes` | Find and decode embedded barcodes in document pages |
| `RedactionRedactText` | Redact text matching a regex with a replacement string |
| `RedactionRedactImageArea` | Black out a rectangular region of a document page |
| `RedactionRedactAnnotations` | Redact or delete annotations matching a regex |
| `RedactionEraseMetadata` | Strip metadata via the Redaction engine (handles formats Metadata can't) |
| `WatermarkAddWatermark` | Add a text watermark with configurable font, rotation, opacity |
| `WatermarkSearchWatermarks` | List existing watermarks (type, text, position, page) as JSON |
| `WatermarkRemoveWatermarks` | Remove 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):
- [Get a free 30-day temporary license](https://purchase.groupdocs.com/temporary-license/)
- [Purchase a license](https://purchase.groupdocs.com/pricing/total/net) | [Product page](https://products.groupdocs.com/total/net/)
## Configuration
| Variable | Description | Default |
|---|---|---|
| `GROUPDOCS_MCP_STORAGE_PATH` | Base folder for input and output files | current directory |
| `GROUPDOCS_MCP_OUTPUT_PATH` | *(Optional)* separate folder for output files | `GROUPDOCS_MCP_STORAGE_PATH` |
| `GROUPDOCS_LICENSE_PATH` | Path to GroupDocs license file | (evaluation mode) |
## Usage with Claude Desktop
```json
{
"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 / GitHubWhat people ask about GroupDocs.Total.Mcp
What is groupdocs-total/GroupDocs.Total.Mcp?
+
groupdocs-total/GroupDocs.Total.Mcp is mcp servers for the Claude AI ecosystem. GroupDocs.Total for .NET MCP server — single endpoint exposing the combined toolset of all GroupDocs Product - Conversion, Viewer, Markdown, Parser, Comparison, Watermark, Merger, Metadata, Editor, Redaction, Assembly, Search, Signature and Annotation via AI agents. It has 0 GitHub stars and was last updated today.
How do I install GroupDocs.Total.Mcp?
+
You can install GroupDocs.Total.Mcp by cloning the repository (https://github.com/groupdocs-total/GroupDocs.Total.Mcp) or following the README instructions on GitHub. ClaudeWave also provides quick install blocks on this page.
Is groupdocs-total/GroupDocs.Total.Mcp safe to use?
+
groupdocs-total/GroupDocs.Total.Mcp has not been audited yet by our security agent. Review the original repository on GitHub before using it in production.
Who maintains groupdocs-total/GroupDocs.Total.Mcp?
+
groupdocs-total/GroupDocs.Total.Mcp is maintained by groupdocs-total. The last recorded GitHub activity is from today, with 0 open issues.
Are there alternatives to GroupDocs.Total.Mcp?
+
Yes. On ClaudeWave you can browse similar mcp servers at /categories/mcp, sorted by popularity or recent activity.
Deploy GroupDocs.Total.Mcp to your cloud
Ship this repo to production in minutes. Each platform spins up its own environment with editable env vars.
Maintain this repo? Add a badge to your README
Drop the badge into your GitHub README to show it's tracked on ClaudeWave. Each badge links back to this page and reflects the live Trust Score.
[](https://claudewave.com/repo/groupdocs-total-groupdocs-total-mcp)<a href="https://claudewave.com/repo/groupdocs-total-groupdocs-total-mcp"><img src="https://claudewave.com/api/badge/groupdocs-total-groupdocs-total-mcp" alt="Featured on ClaudeWave: groupdocs-total/GroupDocs.Total.Mcp" width="320" height="64" /></a>More MCP Servers
Fair-code workflow automation platform with native AI capabilities. Combine visual building with custom code, self-host or cloud, 400+ integrations.
User-friendly AI Interface (Supports Ollama, OpenAI API, ...)
An open-source AI agent that brings the power of Gemini directly into your terminal.
The fastest path to AI-powered full stack observability, even for lean teams.
Real-time global intelligence dashboard. AI-powered news aggregation, geopolitical monitoring, and infrastructure tracking in a unified situational awareness interface
🕷️ An adaptive Web Scraping framework that handles everything from a single request to a full-scale crawl!