Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

io.github.groupdocs-total/groupdocs-total-mcp

OCI · GHCR.IO/GROUPDOCS-TOTAL/TOTAL-NET-MCP:26.7.3 · SCANNED SEP 20

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

0 this week 46 Trust /100
Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →

Supply Chain Security0
  • Malware scan not yet available for this package.Unverified
  • Known CVEs could not be checked: this artifact ships no SBOM, so there is no dependency list to read. Publishing one would let us assess it.Unverified
  • Install-script risk not yet assessed.Unverified
  • Dependency health could not be checked: this artifact ships no SBOM, so there is no dependency list to read. Publishing one would let us assess it.Unverified
Provenance & Transparency45
  • Source repository is publicly reachable at the declared URL. View diagnostics → Pass
  • Provenance check failed: no build-provenance attestation is published. See how to fix → View diagnostics → Fail
  • Clear OSI-approved license (MIT).Pass
  • Actively maintained (last published 56 days ago).Pass
  • Security-disclosure policy not yet verified: we couldn't inspect the source repository.Unverified
Schema Quality & AI Usability54
  • AI-judged instruction clarity (good).Pass
  • Context-footprint check failed: tool/resource definitions use about 7645 tokens (~201/item across 38 items; 38 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management80
  • Stability observed for 24 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage91
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 74% of tool parameters carry a description.Partial
Tool Safety75
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • 0 of 6 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation; "annotation_remove_annotations" implies "remove" and declares no destructiveHint at all, which the MCP spec reads as destructive by default. See how to fix → Fail
  • An AI judge read all 38 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass

Unverified: 1 category

A category scored 0 because we could not verify it: a data source with nothing on this package, evidence we could not reach, or a check we could not run. We only credit what we can confirm.

Install

How do I install the io.github.groupdocs-total/groupdocs-total-mcp server?

io.github.groupdocs-total/groupdocs-total-mcp runs locally as a container image, launched with docker run --rm -i ghcr.io/groupdocs-total/total-net-mcp:26.7.3. Ready-made configuration for Claude, Cursor, VS Code, Codex and 3 more is on this page, copied from each client's own documentation.

oci · ghcr.io/groupdocs-total/total-net-mcp:26.7.3

# add to Claude Code
claude mcp add groupdocs-total-groupdocs-total-mcp -- docker run --rm -i ghcr.io/groupdocs-total/total-net-mcp:26.7.3
// .cursor/mcp.json
{
  "mcpServers": {
    "groupdocs-total-groupdocs-total-mcp": {
      "command": "docker",
      "args": [
        "run",
        "--rm",
        "-i",
        "ghcr.io/groupdocs-total/total-net-mcp:26.7.3"
      ]
    }
  }
}
// .vscode/mcp.json
{
  "servers": {
    "groupdocs-total-groupdocs-total-mcp": {
      "command": "docker",
      "args": [
        "run",
        "--rm",
        "-i",
        "ghcr.io/groupdocs-total/total-net-mcp:26.7.3"
      ]
    }
  }
}
# add to Codex CLI
codex mcp add groupdocs-total-groupdocs-total-mcp -- docker run --rm -i ghcr.io/groupdocs-total/total-net-mcp:26.7.3
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "groupdocs-total-groupdocs-total-mcp": {
      "type": "local",
      "command": [
        "docker",
        "run",
        "--rm",
        "-i",
        "ghcr.io/groupdocs-total/total-net-mcp:26.7.3"
      ],
      "enabled": true
    }
  }
}
# ~/.hermes/config.yaml
mcp_servers:
  groupdocs-total-groupdocs-total-mcp:
    command: "docker"
    args: ["run", "--rm", "-i", "ghcr.io/groupdocs-total/total-net-mcp:26.7.3"]
// ~/.netclaw/config/netclaw.json
{
  "McpServers": {
    "groupdocs-total-groupdocs-total-mcp": {
      "Transport": "stdio",
      "Command": "docker",
      "Arguments": [
        "run",
        "--rm",
        "-i",
        "ghcr.io/groupdocs-total/total-net-mcp:26.7.3"
      ]
    }
  }
}
// mcp.json
{
  "mcpServers": {
    "groupdocs-total-groupdocs-total-mcp": {
      "command": "docker",
      "args": [
        "run",
        "--rm",
        "-i",
        "ghcr.io/groupdocs-total/total-net-mcp:26.7.3"
      ]
    }
  }
}
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 20 Sept 26 −3
    • Security disclosure: pass → unverified functional
    • Stability: pass → 0.80 functional
  • 19 Sept 26 0
    • Stability: 0.97 → pass security
  • 18 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 93 to 97. That category is still filling its 30-day observation window: 28 days of observed history at the previous scan, 29 at this one. The score rises as the window fills, whether or not the server changes.

  • 16 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 87 to 90. That category is still filling its 30-day observation window: 26 days of observed history at the previous scan, 27 at this one. The score rises as the window fills, whether or not the server changes.

  • 14 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 80 to 83. That category is still filling its 30-day observation window: 24 days of observed history at the previous scan, 25 at this one. The score rises as the window fills, whether or not the server changes.

  • 13 Sept 26 −3
    • Stability: pass → 0.80 functional
  • 12 Sept 26 0
    • Stability: 0.97 → pass security
  • 11 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 93 to 97. That category is still filling its 30-day observation window: 28 days of observed history at the previous scan, 29 at this one. The score rises as the window fills, whether or not the server changes.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 20 Sept 2026 · Analysed oci/ghcr.io/groupdocs-total/total-net-mcp:26.7.3

Provenance No attestation

The registry publishes no build provenance for this version, so there is nothing to verify.

Result No attestation
Ecosystem oci
Reason No attestation published

Background: How many MCP packages publish verified provenance →

MCP tools · 38 exposed · ~7,645 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
annotation_add_annotation ~285

[GroupDocs.Annotation] Adds an annotation to a document and saves the annotated file as '<name>_annotated.<ext>'. Supported types: textfield, area, point, arrow, highlight, underline, strikeout. Supports PDF, DOCX, XLSX, PPTX, and 50+ more document and image formats. Call this tool whenever the user asks to annotate, comment, highlight, underline, strikeout, or mark up a document. Do NOT pre-check whether files exist — pass the filename the user provided directly. The tool resolves files from storage and returns an error with available files if a name is not found. Returns a saved-path message ('Added <type> annotation to <file> on page <n>') with the download URL or storage path. On failure, the response text starts with 'Annotation failed for' followed by the underlying exception type, message, and inner-exception chain.

NameTypeReqDescription
fileobjectyes
pageintegerPage number (1-based)
passwordstring|nullPassword for protected documents
textstringyesAnnotation text or comment
typestringyesAnnotation type: textfield, area, point, arrow, highlight, underline, strikeout
xintegerX position (document coordinates)
yintegerY position (document coordinates)

No output schema declared.

No examples provided.

annotation_add_reply ~218

[GroupDocs.Annotation] Adds a reply to an existing annotation and saves the result back to storage. Supports PDF, DOCX, XLSX, PPTX, and 50+ more document and image formats. Call get_annotations first to retrieve the target annotation 'id'. Call this tool whenever the user asks to reply to an annotation, add a comment thread, or respond to a review note. Do NOT pre-check whether files exist — pass the filename the user provided directly. Returns a saved-path message ('Added reply to annotation <id> in <file>'). On failure, the response text starts with 'Reply add failed for' followed by the underlying exception type, message, and inner-exception chain.

NameTypeReqDescription
annotationIdintegeryesAnnotation ID to reply to (from get_annotations)
commentstringyesReply comment text
fileobjectyes
passwordstring|nullPassword for protected documents
userNamestringName of the user posting the reply. Defaults to 'mcp-user'.

No output schema declared.

No examples provided.

annotation_export_annotations ~166

[GroupDocs.Annotation] Extracts annotations from a document and saves them as an XML file (suitable for re-import via import_annotations). Supports PDF, DOCX, XLSX, PPTX, and 50+ more document and image formats. Call this tool whenever the user asks to export, extract, serialize, or save annotations to XML. Do NOT pre-check whether files exist — pass the filename the user provided directly. Returns a saved-path message ('Exported N annotation(s) from <file> to <name>.annotations.xml'). On failure, the response text starts with 'Annotation export failed for' followed by the underlying exception type, message, and inner-exception chain.

NameTypeReqDescription
fileobjectyes
passwordstring|nullPassword for protected documents

No output schema declared.

No examples provided.

annotation_get_annotations ~188

[GroupDocs.Annotation] Lists all annotations in a document as JSON. Supports PDF, DOCX, XLSX, PPTX, and 50+ more document and image formats. Each entry includes 'id' (use this with remove_annotations / update_annotation / add_reply), 'type', 'message', 'page' (1-based), bounding box, user, and replies. Call this tool first whenever the user asks to list, show, inspect, or review annotations or comments. Do NOT pre-check whether files exist — pass the filename the user provided directly. Returns a JSON object with `found` (count) and `annotations` (array). On failure, the response text starts with 'Annotation lookup failed for' followed by the underlying exception type, message, and inner-exception chain.

NameTypeReqDescription
fileobjectyes
passwordstring|nullPassword for protected documents

No output schema declared.

No examples provided.

annotation_import_annotations ~219

[GroupDocs.Annotation] Imports annotations from another source (an XML annotations file or an annotated document) and saves the merged document back to storage. Supports PDF, DOCX, XLSX, PPTX, and 50+ more document and image formats for the target. Source must be either an XML file produced by export_annotations, or another annotated document of the same engine format. Call this tool whenever the user asks to import, merge, or apply annotations from one document to another. Do NOT pre-check whether files exist — pass the filenames the user provided directly. Returns a saved-path message ('Imported annotations from <source> into <file>'). On failure, the response text starts with 'Annotation import failed for' followed by the underlying exception type, message, and inner-exception chain.

NameTypeReqDescription
fileobjectyes
passwordstring|nullPassword for protected target documents
sourceobjectyesSource file containing annotations to import — an XML file (.xml) or an annotated document (.pdf, .docx, etc.).

No output schema declared.

No examples provided.

annotation_remove_annotations ~204

[GroupDocs.Annotation] Removes annotations from a document by ID and saves the result back to storage. Supports PDF, DOCX, XLSX, PPTX, and 50+ more document and image formats. Call get_annotations first to retrieve annotation IDs, then pass them here. Omit 'ids' to remove every annotation in the document. Call this tool whenever the user asks to delete, remove, or clear annotations. Do NOT pre-check whether files exist — pass the filename the user provided directly. Returns a saved-path message ('Removed N annotation(s) from <file>'). On failure, the response text starts with 'Annotation removal failed for' followed by the underlying exception type, message, and inner-exception chain.

NameTypeReqDescription
fileobjectyes
idsstring|nullComma-separated annotation IDs to remove, e.g. '1,3,5'. Omit to remove all.
passwordstring|nullPassword for protected documents

No output schema declared.

No examples provided.

annotation_remove_replies ~254

[GroupDocs.Annotation] Removes replies from annotations and saves the result back to storage. Supports PDF, DOCX, XLSX, PPTX, and 50+ more document and image formats. Filter mode: pass 'replyIds' (comma-separated) to remove by reply ID, OR pass 'userName' to remove all replies from one user. Pass neither to remove ALL replies in the document. Call this tool whenever the user asks to delete a reply, remove a comment thread, or clear replies from one author. Do NOT pre-check whether files exist — pass the filename the user provided directly. Returns a saved-path message ('Removed N reply / replies from <file>'). On failure, the response text starts with 'Reply removal failed for' followed by the underlying exception type, message, and inner-exception chain.

NameTypeReqDescription
fileobjectyes
passwordstring|nullPassword for protected documents
replyIdsstring|nullComma-separated reply IDs to remove, e.g. '12,34'. Omit to fall back to userName / remove-all.
userNamestring|nullRemove all replies authored by this user name. Mutually exclusive with replyIds.

No output schema declared.

No examples provided.

annotation_update_annotation ~287

[GroupDocs.Annotation] Updates an existing annotation's message and/or bounding box, then saves the result back to storage. Supports PDF, DOCX, XLSX, PPTX, and 50+ more document and image formats. Call get_annotations first to retrieve the annotation 'id' and current values. Pass any subset of message/x/y/width/height — omitted parameters keep their current value. Call this tool whenever the user asks to edit, modify, move, or resize an existing annotation. Do NOT pre-check whether files exist — pass the filename the user provided directly. Returns a saved-path message ('Updated annotation <id> in <file>'). On failure, the response text starts with 'Annotation update failed for' followed by the underlying exception type, message, and inner-exception chain.

NameTypeReqDescription
fileobjectyes
heightinteger|nullNew height. Omit to keep current.
idintegeryesAnnotation ID to update (from get_annotations)
messagestring|nullNew message/comment text. Omit to keep current.
passwordstring|nullPassword for protected documents
widthinteger|nullNew width. Omit to keep current.
xinteger|nullNew X position. Omit to keep current.
yinteger|nullNew Y position. Omit to keep current.

No output schema declared.

No examples provided.

comparison_compare ~193

[GroupDocs.Comparison] Compares two documents and highlights the differences between them. Call this tool immediately whenever the user asks to compare, diff, or check differences between two files. Do NOT pre-check whether files exist — just pass the filenames the user provided. The tool resolves files from storage and returns an error with available files if a name is not found. Returns a change count summary and saves the marked-up result document to storage.

NameTypeReqDescription
sourceFileobjectyesSource (original) document — provide the filename as given by the user, e.g. 'source.pdf'
sourcePasswordstring|nullPassword for source document, if password-protected
targetFileobjectyesTarget (modified) document to compare against — provide the filename as given by the user, e.g. 'target.pdf'
targetPasswordstring|nullPassword for target document, if password-protected

No output schema declared.

No examples provided.

conversion_convert ~165

[GroupDocs.Conversion] Converts a document to a different format and saves the result to storage. Supports PDF, DOCX, XLSX, PPTX, HTML, PNG, JPG, and 50+ more formats. Call this tool immediately whenever the user asks to convert, change format, export, or save as a different file type. Do NOT pre-check whether files exist — just pass the filenames the user provided. The tool resolves files from storage and returns an error with available files if a name is not found.

NameTypeReqDescription
fileobjectyes
formatstringyesTarget format: pdf, docx, xlsx, pptx, html, png, jpg, csv, txt, rtf
passwordstring|nullPassword for protected documents

No output schema declared.

No examples provided.

conversion_get_supported_formats ~166

[GroupDocs.Conversion] Lists every output format the document can be converted TO via ConversionConvert. Returns the source format plus the full list of viable target extensions (pdf, docx, xlsx, pptx, html, jpg, png, …). Use BEFORE ConversionConvert when the user asks 'what can I convert this to?' or to validate a target extension is supported. Do NOT pre-check whether files exist — pass the filename the user provided directly. Returns a JSON object with `source` (extension), `count`, and `targets` (array of supported target extensions). On failure, the response text starts with 'Supported-formats lookup failed for' followed by the underlying exception type, message, and inner-exception chain.

NameTypeReqDescription
fileobjectyes

No output schema declared.

No examples provided.

get_document_info ~197

Returns basic information about ANY document: file type, page count, and size as JSON. Backed by GroupDocs.Parser — supports 170+ formats including PDF, DOCX, XLSX, PPTX, ODT, JPEG, PNG, TIFF, CAD, EPUB, EML, MSG, and more. Use this as the first call when the user asks 'what is this file?' or 'how many pages?' before invoking format-specific tools. Do NOT pre-check whether files exist — pass the filename the user provided directly. Returns a JSON object with `fileName`, `fileType` (extension), `fileTypeName` (human-readable), `pageCount`, `size`. On failure, the response text starts with 'Document-info lookup failed for' followed by the underlying exception type, message, and inner-exception chain.

NameTypeReqDescription
fileobjectyes
passwordstring|nullPassword for protected documents

No output schema declared.

No examples provided.

get_document_page_image ~266

Renders one or more document pages as PNG images and returns them INLINE so AI clients can display them directly. Backed by GroupDocs.Viewer — supports 170+ formats including PDF, DOCX, XLSX, PPTX, ODT, JPEG, PNG, TIFF, CAD, EPUB, and more. Pass 'pages' as a comma-separated list (e.g. '1,3,5') or a range ('1-3'); omit to render only page 1. Use whenever the user asks to preview, show, render, view, or visualise document pages. Maximum 5 pages per call to stay under MCP client message size limits; batch further pages in additional calls. Do NOT pre-check whether files exist — pass the filename the user provided directly. Returns a CallToolResult with one TextContentBlock summary followed by one ImageContentBlock per rendered page. On failure, the response contains a single TextContentBlock starting with 'Preview generation failed for' and IsError=true.

NameTypeReqDescription
fileobjectyes
pagesstring|nullPages to render, e.g. '1,3,5' or '1-3'. Omit for page 1 only.
passwordstring|nullPassword for protected documents

No output schema declared.

No examples provided.

markdown_compose_from_markdown ~193

[GroupDocs.Markdown] Composes a document (DOCX, PDF, HTML, RTF, ODT, etc.) FROM Markdown. Provide the Markdown either as inline text ('markdown' parameter) OR as a file from storage ('sourceFile' parameter — pointing to an existing .md). The target format is inferred from the extension of 'outputFileName'. Call this tool whenever the user asks to export, render, compose, or convert Markdown to a document format like Word, PDF, or HTML.

NameTypeReqDescription
markdownstring|nullInline Markdown text. Leave empty when passing 'sourceFile' instead.
outputFileNamestringyesOutput filename whose extension determines the target format, e.g. 'report.docx', 'readme.pdf', 'notes.html'
sourceFileobject|nullSource Markdown file from storage (used when 'markdown' is not provided)

No output schema declared.

No examples provided.

markdown_convert_to_markdown ~369

[GroupDocs.Markdown] Converts a document to clean, structured Markdown (.md). Supports PDF, DOCX/DOC/RTF/ODT, XLSX/XLS/ODS/CSV/TSV, EPUB, MOBI, TXT, CHM and other formats. By default, images are embedded as base64 data URIs so the output is fully self-contained. Use 'images' to control image handling: 'base64' (default), 'file' (save images alongside the .md and reference by path), or 'skip' (omit images — text-only). Use 'pages' to limit output to specific 1-based pages or worksheets. The generated Markdown is saved to storage AND the content is returned inline. Call this tool immediately whenever the user asks to convert a document to Markdown, export as MD, or extract as Markdown. Do NOT pre-check whether files exist — just pass the filename the user provided. The tool resolves files from storage and returns an error with available files if a name is not found.

NameTypeReqDescription
fileobjectyes
flavorstringMarkdown dialect: 'github' (default) or 'commonmark'
frontMatterbooleanInclude YAML front matter (title, author, format, page count) at the top of the output
imagesstringImage handling: 'base64' (default — embed as data URIs, self-contained), 'file' (save images alongside .md), or 'skip' (text-only, no images)
pagesstring|nullComma-separated 1-based page or worksheet numbers to convert, e.g. '1,3,5'. Omit for the whole document.
passwordstring|nullPassword for protected documents

No output schema declared.

No examples provided.

merger_merge ~147

[GroupDocs.Merger] Merges 2–4 documents into a single file and saves the result to storage. Supports PDF, DOCX, XLSX, PPTX and more. Call this tool immediately whenever the user asks to merge, combine, or join documents together. Do NOT pre-check whether files exist — just pass the filenames the user provided. The tool resolves files from storage and returns an error with available files if a name is not found.

NameTypeReqDescription
file1objectyesFirst document
file2objectyesSecond document
file3object|nullThird document (optional)
file4object|nullFourth document (optional)

No output schema declared.

No examples provided.

merger_split ~139

[GroupDocs.Merger] Splits a document into separate files by extracting specific pages, saving each as an individual document to storage. Call this tool immediately whenever the user asks to split, extract pages, or separate a document into parts. Do NOT pre-check whether files exist — just pass the filename the user provided. The tool resolves files from storage and returns an error with available files if a name is not found.

NameTypeReqDescription
fileobjectyes
pagesstringyesPage numbers to extract as separate documents (1-based), e.g. '3,6,8'
passwordstring|nullPassword for protected documents

No output schema declared.

No examples provided.

metadata_read_metadata ~116

[GroupDocs.Metadata] Reads all metadata properties from a document (author, title, creation date, custom properties) and returns them as JSON. Call this tool immediately whenever the user asks to read metadata, show document properties, or get author/title/date info. Do NOT pre-check whether files exist — just pass the filename the user provided. The tool resolves files from storage and returns an error with available files if a name is not found.

NameTypeReqDescription
fileobjectyes
passwordstring|nullPassword for protected documents

No output schema declared.

No examples provided.

metadata_remove_metadata ~105

[GroupDocs.Metadata] Removes all metadata from a document and saves the cleaned file to storage. Call this tool immediately whenever the user asks to remove metadata, strip properties, or clean a document before sharing. Do NOT pre-check whether files exist — just pass the filename the user provided. The tool resolves files from storage and returns an error with available files if a name is not found.

NameTypeReqDescription
fileobjectyes
passwordstring|nullPassword for protected documents

No output schema declared.

No examples provided.

parser_extract_barcodes ~174

[GroupDocs.Parser] Extracts all barcodes and QR codes from a document and returns their decoded values and type names as JSON. Detects Code128, QR Code, PDF417, DataMatrix, EAN-13, EAN-8, UPC, Aztec, and many more symbologies. Call this tool immediately whenever the user asks to read, scan, or extract barcodes or QR codes from a document. Do NOT pre-check whether files exist — just pass the filename the user provided. The tool resolves files from storage and returns an error with available files if a name is not found.

NameTypeReqDescription
fileobjectyes
pageinteger|nullPage number to scan (1-based). Omit for all pages.
passwordstring|nullPassword for protected documents

No output schema declared.

No examples provided.

parser_extract_images ~139

[GroupDocs.Parser] Extracts all images from a document and saves them to storage. Returns a list of saved image file paths or download URLs. Call this tool immediately whenever the user asks to extract images, get images, or save images from a document. Do NOT pre-check whether files exist — just pass the filename the user provided. The tool resolves files from storage and returns an error with available files if a name is not found.

NameTypeReqDescription
fileobjectyes
pageinteger|nullPage number to extract images from (1-based). Omit for all pages.
passwordstring|nullPassword for protected documents

No output schema declared.

No examples provided.

parser_extract_metadata ~114

[GroupDocs.Parser] Extracts metadata from a document file (author, title, creation date, page count, etc.) and returns it as JSON. Call this tool immediately whenever the user asks to extract metadata or get document properties from a file. Do NOT pre-check whether files exist — just pass the filename the user provided. The tool resolves files from storage and returns an error with available files if a name is not found.

NameTypeReqDescription
fileobjectyes
passwordstring|nullPassword for protected documents

No output schema declared.

No examples provided.

parser_extract_tables ~206

[GroupDocs.Parser] Extracts tables from a document and returns them as Markdown (default) or JSON. Markdown tables render instantly in VS Code, GitHub, and AI chat — use this format to visually review table data right in the response. Use format='json' to get a structured array of rows for programmatic processing or further manipulation. Call this tool immediately whenever the user asks to extract, read, or view tables from a document. Do NOT pre-check whether files exist — just pass the filename the user provided. The tool resolves files from storage and returns an error with available files if a name is not found.

NameTypeReqDescription
fileobjectyes
formatstringOutput format: 'markdown' (default — renders in IDE and chat) or 'json' (structured data)
pageinteger|nullPage number to extract tables from (1-based). Omit for all pages.
passwordstring|nullPassword for protected documents

No output schema declared.

No examples provided.

parser_extract_text ~161

[GroupDocs.Parser] Extracts plain text from a document file. Supports PDF, DOCX, XLSX, PPTX, TXT, HTML, CSV, EML, MSG, RTF, ODT, EPUB, and 50+ more formats. Call this tool immediately whenever the user asks to extract text, read text, or get the content of a document. Do NOT pre-check whether files exist — just pass the filename the user provided. The tool resolves files from storage and returns an error with available files if a name is not found.

NameTypeReqDescription
fileobjectyes
pageinteger|nullPage number to extract from (1-based). Omit for all pages.
passwordstring|nullPassword for protected documents

No output schema declared.

No examples provided.

redaction_erase_metadata ~232

[GroupDocs.Redaction] Erases metadata fields from a document (author, title, company, keywords, dates, etc.) and saves the cleaned file to storage. Use to remove personally identifiable or confidential information embedded in document properties before sharing. Call this tool whenever the user asks to erase, strip, clean, or remove metadata from a document. Accepted fields (comma-separated): All, Author, Title, Subject, Category, Keywords, Description, Creator, Producer, CreatedTime, LastPrinted, LastSavedTime, TotalEditingTime, NameOfApplication, Manager, Company, ContentStatus, Version, Revision, HyperlinkBase, ContentType, Template. Default is All. Do NOT pre-check whether files exist — just pass the filename the user provided. The tool resolves files from storage and returns an error with available files if a name is not found.

NameTypeReqDescription
fieldsstringComma-separated metadata fields to erase (default: 'All'). E.g. 'Author,Company,CreatedTime'
fileobjectyes
passwordstring|nullPassword for protected documents

No output schema declared.

No examples provided.

redaction_redact_annotations ~206

[GroupDocs.Redaction] Redacts or deletes annotations (comments, sticky notes, highlights) in a document and saves the result to storage. Can replace matching annotation text with a placeholder, or delete annotations entirely. Call this tool whenever the user asks to redact, remove, hide, or clean up comments or annotations in a document. Do NOT pre-check whether files exist — just pass the filename the user provided. The tool resolves files from storage and returns an error with available files if a name is not found.

NameTypeReqDescription
deleteAllbooleanWhen true, deletes matched annotations entirely instead of replacing their text (default: false)
fileobjectyes
passwordstring|nullPassword for protected documents
patternstring|nullRegex pattern to match annotations. Omit to target all annotations.
replacementstringReplacement text for matched annotation content. Ignored when deleteAll is true (default: '[REDACTED]')

No output schema declared.

No examples provided.

redaction_redact_image_area ~256

[GroupDocs.Redaction] Covers a rectangular area of a document page with a solid-color box, permanently hiding image content (e.g. faces, signatures, stamps). Coordinates are in pixels from the top-left corner of the page. Call this tool whenever the user asks to hide, cover, or black out an image area or region in a document. Do NOT pre-check whether files exist — just pass the filename the user provided. The tool resolves files from storage and returns an error with available files if a name is not found.

NameTypeReqDescription
colorstringFill color for the redaction box — named color (e.g. 'Black', 'Red') or hex (e.g. '#FF0000'). Default: 'Black'
fileobjectyes
heightintegeryesHeight (pixels) of the area to redact
passwordstring|nullPassword for protected documents
widthintegeryesWidth (pixels) of the area to redact
xintegeryesX coordinate (pixels) of the top-left corner of the area to redact
yintegeryesY coordinate (pixels) of the top-left corner of the area to redact

No output schema declared.

No examples provided.

redaction_redact_text ~188

[GroupDocs.Redaction] Redacts text matching a regex pattern from a document and saves the redacted file to storage. Use to permanently hide sensitive data like SSNs, emails, phone numbers, or any custom pattern. Call this tool immediately whenever the user asks to redact, hide, remove, or black out text in a document. Do NOT pre-check whether files exist — just pass the filename the user provided. The tool resolves files from storage and returns an error with available files if a name is not found.

NameTypeReqDescription
fileobjectyes
passwordstring|nullPassword for protected documents
patternstringyesRegex pattern to match text for redaction, e.g. '\d{3}-\d{2}-\d{4}' for SSN
replacementstringReplacement text (default: '[REDACTED]')

No output schema declared.

No examples provided.

signature_search_barcodes ~261

[GroupDocs.Signature] Searches a document for barcode signatures (Code39, Code128, EAN, QR-adjacent 1D barcodes, etc.) and returns each barcode's decoded text value, page, position, and — when returnImage is true — the barcode graphic as a base64-encoded PNG. Supports PDF, DOCX, XLSX, PPTX, and 30+ more document formats. Optionally filters results to barcodes whose text contains a specific string. Do NOT pre-check whether the file exists — pass the filename the user provided directly. Returns a JSON object with `found` (count) and `signatures` (array with `page`, `type`, `text`, position, dimensions, and optional `imageBase64`). On failure, the response text starts with 'Barcode search failed for' followed by the underlying exception type, message, and inner-exception chain.

NameTypeReqDescription
fileobjectyes
passwordstring|nullPassword for protected documents.
returnImagebooleanInclude the barcode graphic as a base64 PNG in the response.
textstring|nullReturn only barcodes whose decoded text contains this string. Omit to return all barcodes.

No output schema declared.

No examples provided.

signature_search_digital_signatures ~182

[GroupDocs.Signature] Searches a document for digital certificate signatures and returns details for each: signer name, issuer, certificate serial number, validity period, sign timestamp, validity status, and any comments or reason attached to the signature. Supports PDF and Office documents (DOCX, XLSX, PPTX). Do NOT pre-check whether the file exists — pass the filename the user provided directly. Returns a JSON object with `found` (count) and `signatures` (array with `signTime`, `isValid`, `comments`, `thumbprint`, and a nested `certificate` object). On failure, the response text starts with 'Digital signature search failed for' followed by the underlying exception type, message, and inner-exception chain.

NameTypeReqDescription
fileobjectyes
passwordstring|nullPassword for protected documents.

No output schema declared.

No examples provided.

signature_search_image_signatures ~182

[GroupDocs.Signature] Searches a document for embedded image signatures (logo, stamp image, picture overlays) and returns each image's page, position, size, and content as a base64-encoded PNG ready for display. Supports PDF, DOCX, XLSX, PPTX, and 30+ more document formats. Do NOT pre-check whether the file exists — pass the filename the user provided directly. Returns a JSON object with `found` (count) and `signatures` (array with `index`, `page`, position, dimensions, `sizeBytes`, and `imageBase64`). On failure, the response text starts with 'Image signature search failed for' followed by the underlying exception type, message, and inner-exception chain.

NameTypeReqDescription
fileobjectyes
passwordstring|nullPassword for protected documents.

No output schema declared.

No examples provided.

signature_search_qr_codes ~244

[GroupDocs.Signature] Searches a document for QR code signatures and returns each QR code's decoded text, page, position, and — when returnImage is true — the QR code graphic as a base64-encoded PNG. Supports PDF, DOCX, XLSX, PPTX, and 30+ more document formats. Optionally filters results to QR codes whose decoded text contains a specific string. Do NOT pre-check whether the file exists — pass the filename the user provided directly. Returns a JSON object with `found` (count) and `signatures` (array with `page`, `type`, `text`, position, dimensions, and optional `imageBase64`). On failure, the response text starts with 'QR code search failed for' followed by the underlying exception type, message, and inner-exception chain.

NameTypeReqDescription
fileobjectyes
passwordstring|nullPassword for protected documents.
returnImagebooleanInclude the QR code graphic as a base64 PNG in the response.
textstring|nullReturn only QR codes whose decoded text contains this string. Omit to return all QR codes.

No output schema declared.

No examples provided.

signature_search_text_signatures ~240

[GroupDocs.Signature] Searches a document for embedded text signatures (stamps, labels, native text annotations) and returns each signature's text content, page, position, and implementation type. Supports PDF, DOCX, XLSX, PPTX, and 30+ more document formats. Optionally filters to signatures whose text contains a specific string. Note: this searches for signature objects — to search for arbitrary text inside document content use a text-extraction tool instead. Do NOT pre-check whether the file exists — pass the filename the user provided directly. Returns a JSON object with `found` (count) and `signatures` (array with `page`, `text`, `implementation`, `left`, `top`, `width`, `height` per signature). On failure, the response text starts with 'Text signature search failed for' followed by the underlying exception type, message, and inner-exception chain.

NameTypeReqDescription
fileobjectyes
passwordstring|nullPassword for protected documents.
textstring|nullReturn only text signatures whose content contains this string. Omit to return all text signatures.

No output schema declared.

No examples provided.

signature_sign ~251

[GroupDocs.Signature] Signs a document with a text, QR code, barcode, or digital certificate signature and saves the signed file to storage. Supports PDF, DOCX, XLSX, PPTX, and 30+ more document formats. Call this tool immediately whenever the user asks to sign a document, add a signature, or apply a digital signature. Do NOT pre-check whether files exist — just pass the filenames the user provided. The tool resolves files from storage and returns an error with available files if a name is not found. Returns a saved-path message ('Signed <file> with <type> signature') and the download URL or storage path. On failure, the response text starts with 'Signing failed for' followed by the underlying exception type, message, and inner-exception chain.

NameTypeReqDescription
certificateobject|nullDigital certificate file (for type 'digital')
certificatePasswordstring|nullCertificate password
fileobjectyes
passwordstring|nullPassword for protected documents
textstring|nullSignature text (for text/qrcode/barcode types)
typestringyesSignature type: text, qrcode, barcode, digital

No output schema declared.

No examples provided.

signature_verify ~221

[GroupDocs.Signature] Verifies signatures in a document and returns the result (valid/invalid, counts) as JSON. Supports text, QR code, barcode, and digital signatures. Supports PDF, DOCX, XLSX, PPTX, and 30+ more document formats. Call this tool immediately whenever the user asks to verify a signature, check if a document is signed, or validate a signature. Do NOT pre-check whether files exist — just pass the filename the user provided. The tool resolves files from storage and returns an error with available files if a name is not found. Returns a JSON object with `isValid`, `succeeded` (count), and `failed` (count) fields. On failure, the response text starts with 'Verification failed for' followed by the underlying exception type, message, and inner-exception chain.

NameTypeReqDescription
fileobjectyes
passwordstring|nullPassword for protected documents
typestringSignature type to verify: text, qrcode, barcode, digital, all

No output schema declared.

No examples provided.

watermark_add_watermark ~157

[GroupDocs.Watermark] Adds a text watermark to a document and saves the watermarked file to storage. Call this tool immediately whenever the user asks to add a watermark, stamp text onto a document, or mark a document as draft/confidential. Do NOT pre-check whether files exist — just pass the filename the user provided. The tool resolves files from storage and returns an error with available files if a name is not found.

NameTypeReqDescription
fileobjectyes
fontSizeintegerFont size (default 36)
passwordstring|nullPassword for protected documents
rotationintegerRotation angle in degrees (default -45)
textstringyesWatermark text to add

No output schema declared.

No examples provided.

watermark_remove_watermarks ~232

[GroupDocs.Watermark] Removes watermarks from a document and saves the cleaned file to storage as '<name>_unwatermarked.<ext>'. Supports PDF, DOCX, XLSX, PPTX, and 50+ more document and image formats. Filter mode: pass 'text' to remove only watermarks whose text contains this string; omit to remove ALL watermarks found by Search(). Call this tool whenever the user asks to remove a watermark, strip watermarks, clean / unstamp a document, or remove a specific tagged watermark. Do NOT pre-check whether files exist — pass the filename the user provided directly. Returns a saved-path message ('Removed N watermark(s) from <file>'). On failure, the response text starts with 'Watermark removal failed for' followed by the underlying exception type, message, and inner-exception chain.

NameTypeReqDescription
fileobjectyes
passwordstring|nullPassword for protected documents
textstring|nullRemove only watermarks whose text contains this string (case-insensitive). Omit to remove every watermark in the document.

No output schema declared.

No examples provided.

watermark_search_watermarks ~122

[GroupDocs.Watermark] Searches for watermarks in a document and returns their details (type, text, position, size) as JSON. Call this tool immediately whenever the user asks to search for watermarks, find watermarks, or check if a document has watermarks. Do NOT pre-check whether files exist — just pass the filename the user provided. The tool resolves files from storage and returns an error with available files if a name is not found.

NameTypeReqDescription
fileobjectyes
passwordstring|nullPassword for protected documents

No output schema declared.

No examples provided.

Common questions

What is the io.github.groupdocs-total/groupdocs-total-mcp server?

io.github.groupdocs-total/groupdocs-total-mcp is listed in the public MCP registry as io.github.groupdocs-total/groupdocs-total-mcp. MCP server for GroupDocs.Total, annotate, sign, convert, watermark, parse, redact documents via AI. This page covers its container image (ghcr.io/groupdocs-total/total-net-mcp:26.7.3).

Is the io.github.groupdocs-total/groupdocs-total-mcp server safe to use?

io.github.groupdocs-total/groupdocs-total-mcp scores 46 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the io.github.groupdocs-total/groupdocs-total-mcp server expose?

io.github.groupdocs-total/groupdocs-total-mcp exposes 38 tools: signature_search_image_signatures, signature_search_digital_signatures, annotation_remove_annotations, metadata_read_metadata, annotation_update_annotation, and 33 more. Their descriptions and schemas cost roughly 7,645 tokens of context every time the server is loaded.

Is the io.github.groupdocs-total/groupdocs-total-mcp server still maintained?

io.github.groupdocs-total/groupdocs-total-mcp is still listed as active in the MCP registry. We last reached this channel on 20 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

What licence is the io.github.groupdocs-total/groupdocs-total-mcp server under?

io.github.groupdocs-total/groupdocs-total-mcp declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.