Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Description from the maker (original English)
MCP server for GroupDocs.Total — annotate, sign, convert, watermark, parse, redact documents via AI.
These three are never merged into one score: opinions, measurements and popularity are different things.
We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.
Pick the AI app you use, then copy the settings.
GROUPDOCS_MCP_STORAGE_PATH, GROUPDOCS_MCP_OUTPUT_PATH, GROUPDOCS_LICENSE_PATHYou need
Which app do you use?
Pick your app above. We remember it, so next time the button says “Install in …”.
Open Claude Desktop → Settings → Developer → Edit Config, and paste this into claude_desktop_config.json
{
"mcpServers": {
"groupdocs-total": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"GROUPDOCS_MCP_STORAGE_PATH",
"-e",
"GROUPDOCS_MCP_OUTPUT_PATH",
"-e",
"GROUPDOCS_LICENSE_PATH",
"ghcr.io/groupdocs-total/total-net-mcp:26.7.3"
],
"env": {
"GROUPDOCS_MCP_STORAGE_PATH": "your-value",
"GROUPDOCS_MCP_OUTPUT_PATH": "your-value",
"GROUPDOCS_LICENSE_PATH": "your-value"
}
}
}
}Run this in your terminal
claude mcp add groupdocs-total --env GROUPDOCS_MCP_STORAGE_PATH=your-value --env GROUPDOCS_MCP_OUTPUT_PATH=your-value --env GROUPDOCS_LICENSE_PATH=your-value -- docker run -i --rm -e GROUPDOCS_MCP_STORAGE_PATH -e GROUPDOCS_MCP_OUTPUT_PATH -e GROUPDOCS_LICENSE_PATH ghcr.io/groupdocs-total/total-net-mcp:26.7.3Fill in the empty values before running it.
Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"groupdocs-total": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"GROUPDOCS_MCP_STORAGE_PATH",
"-e",
"GROUPDOCS_MCP_OUTPUT_PATH",
"-e",
"GROUPDOCS_LICENSE_PATH",
"ghcr.io/groupdocs-total/total-net-mcp:26.7.3"
],
"env": {
"GROUPDOCS_MCP_STORAGE_PATH": "your-value",
"GROUPDOCS_MCP_OUTPUT_PATH": "your-value",
"GROUPDOCS_LICENSE_PATH": "your-value"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
Paste into .vscode/mcp.json in your project
{
"servers": {
"groupdocs-total": {
"type": "stdio",
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"GROUPDOCS_MCP_STORAGE_PATH",
"-e",
"GROUPDOCS_MCP_OUTPUT_PATH",
"-e",
"GROUPDOCS_LICENSE_PATH",
"ghcr.io/groupdocs-total/total-net-mcp:26.7.3"
],
"env": {
"GROUPDOCS_MCP_STORAGE_PATH": "your-value",
"GROUPDOCS_MCP_OUTPUT_PATH": "your-value",
"GROUPDOCS_LICENSE_PATH": "your-value"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
This one runs on your computer, and ChatGPT can only connect to servers on the internet. Pick another app.
Your choice stays on this device in a cookie; no account needed.
These settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.
Runs on your computer; the tool list appears in your AI app after you install it.
We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 6, 2026
The registry name was verified with the GitHub account groupdocs-total, which owns the repo
We have not read this repo from GitHub yet
We have not read this repo from GitHub yet
This one runs on your computer; there is no internet endpoint
Runs on your computer and uses local settings instead
Runs on your computer; we can only read tool lists from internet endpoints
Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.
It passed 1 of 1 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.
The registry does not list a required key, though some servers ask you to sign in on first use.
It runs on your computer. Your AI app starts it when needed, and data does not pass through the maker’s servers (unless it calls an online service itself).
The GitHub repo last changed –, and the latest version (26.7.3) reached the registry 3 months ago.
Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. You also need Docker on your computer.
In the same category: Spec Driven Development, Remote Desktop Commander, Recta
Servers in the same category from other makers, sorted by stars.
Reading a card:★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Cheaper cross-chain stablecoin routes for AI agents; 5 % of the verified saving, nothing if none.
Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.
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.
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.9.0). To pin, replace :latest with the version tag - recommended for shared configs and CI.
Tools follow {Product}{Verb}{Noun} PascalCase to disambiguate across domains. Cross-product tools stay short.
| 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) |
| 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) |
| 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 |
| 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 |
| 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 |
| 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 |
The MCP server itself is MIT; the underlying GroupDocs engines require a license for production use. Without one the server runs in evaluation mode:
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):
| 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) |
{
"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
:latestwith the release tag.
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"] } } }
cd docker
docker compose up
Edit docker/docker-compose.yml to point volumes at your local documents folder.
MIT — see LICENSE