MCP server that exposes GroupDocs.Parser as AI-callable tools for Claude, Cursor, GitHub Copilot, and other MCP agents.
Requires .NET 10 SDK.
Run directly with dnx (recommended — no install step):
dnx GroupDocs.Parser.Mcp --yesPulls the latest stable release on every invocation. To pin to a specific
version (recommended for shared configs and CI), append @<version>:
dnx GroupDocs.Parser.Mcp@26.5.0 --yesOr install as a global dotnet tool:
dotnet tool install -g GroupDocs.Parser.Mcp
groupdocs-parser-mcpOr run via Docker:
docker run --rm -i \
-v $(pwd)/documents:/data \
ghcr.io/groupdocs-parser/parser-net-mcp:latest| Tool | Description |
|---|---|
ExtractText |
Extracts plain text from a document (whole document or a single page). Truncates very large outputs. |
ExtractImages |
Extracts all embedded images and saves them to storage as <basename>_image<N>.<ext> files |
ExtractMetadata |
Extracts metadata (author, title, dates, custom properties, EXIF, XMP, IPTC) and returns it as JSON |
ExtractTables |
Extracts tables from a document as Markdown (default — renders in chat) or structured JSON |
ExtractBarcodes |
Detects all barcodes / QR codes and returns their decoded values, types, and positions as JSON |
GetDocumentInfo |
Returns the file type, page count, and size of a document as JSON (without modifying it) |
All tools support PDF, DOCX, XLSX, PPTX, HTML, EPUB, MSG, EML, JPG, PNG, TIFF, and 50+ more document and image formats.
Copy any of these into Claude Desktop, Cursor, or GitHub Copilot Chat after the server is connected.
- Get a document's structure: "How many pages does invoice.pdf have, and what format is it?"
- Pull a text snippet: "Extract the text from page 2 of contract.docx."
- Mine the metadata: "What's the author and creation date of report.xlsx?"
- Read a structured table: "Pull the line items table out of invoice.pdf as Markdown."
- Scan for barcodes: "Are there any QR codes in shipping-label.png? If so, what do they decode to?"
| 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 (used by ExtractImages) |
GROUPDOCS_MCP_STORAGE_PATH |
GROUPDOCS_LICENSE_PATH |
Path to GroupDocs license file. In evaluation mode, text outputs may include a watermark and other outputs may be size-limited | (evaluation mode) |
{
"mcpServers": {
"groupdocs-parser": {
"type": "stdio",
"command": "dnx",
"args": ["GroupDocs.Parser.Mcp", "--yes"],
"env": {
"GROUPDOCS_MCP_STORAGE_PATH": "/path/to/documents"
}
}
}
}To pin: replace
"GroupDocs.Parser.Mcp"with"GroupDocs.Parser.Mcp@26.5.0"inargs.
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:
{
"inputs": [
{
"type": "promptString",
"id": "storage_path",
"description": "Base folder for input and output files.",
"password": false
}
],
"servers": {
"groupdocs-parser": {
"type": "stdio",
"command": "dnx",
"args": ["GroupDocs.Parser.Mcp", "--yes"],
"env": {
"GROUPDOCS_MCP_STORAGE_PATH": "${input:storage_path}"
}
}
}
}cd docker
docker compose upEdit docker/docker-compose.yml to point volumes at your local documents folder.
Step-by-step deployment guides and a published-package integration test suite live in the companion repo GroupDocs.Parser.Mcp.Tests:
- Install from NuGet
- Run via Docker
- Verify on the MCP registry
- Use with Claude Desktop
- Use with VS Code / GitHub Copilot
- Run the integration tests
MIT — see LICENSE