{
  "markdown": "# GroupDocs.Parser MCP Server\n\nMCP server that exposes [GroupDocs.Parser](https://products.groupdocs.com/parser) as AI-callable tools\nfor Claude, Cursor, GitHub Copilot, and other MCP agents.\n\n[![GHCR](https://img.shields.io/badge/GHCR-parser--net--mcp-2496ED?logo=docker&logoColor=white)](https://github.com/orgs/groupdocs-parser/packages/container/package/parser-net-mcp)\n[![MCP Registry](https://img.shields.io/badge/MCP_Registry-listed_(OCI)-6f42c1)](https://registry.modelcontextprotocol.io/v0/servers?search=io.github.groupdocs-parser/groupdocs-parser-mcp)\n[![Integration tests](https://github.com/groupdocs-parser/GroupDocs.Parser.Mcp.Tests/actions/workflows/integration.yml/badge.svg)](https://github.com/groupdocs-parser/GroupDocs.Parser.Mcp.Tests/actions/workflows/integration.yml)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)\n\n<!-- TODO(manual): record 30s demo per improvement-plan M1 -->\n<!-- ![Demo](assets/demo.gif) -->\n\n## Installation\n\n<!-- install-buttons:start - generated by install/generate-install-links.ps1; do not edit by hand -->\n[![Install in VS Code](https://img.shields.io/badge/VS_Code-Install-0098FF)](https://vscode.dev/redirect/mcp/install?name=groupdocs-parser&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%2Fpath%2Fto%2Fdocuments%3A%2Fdata%22%2C%22-e%22%2C%22GROUPDOCS_MCP_STORAGE_PATH%3D%2Fdata%22%2C%22-e%22%2C%22GROUPDOCS_MCP_OUTPUT_PATH%3D%2Fdata%22%2C%22-e%22%2C%22GROUPDOCS_LICENSE_PATH%3D%22%2C%22ghcr.io%2Fgroupdocs-parser%2Fparser-net-mcp%3Alatest%22%5D%7D) [![Install in VS Code Insiders](https://img.shields.io/badge/VS_Code_Insiders-Install-24bfa5)](https://insiders.vscode.dev/redirect/mcp/install?name=groupdocs-parser&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%2Fpath%2Fto%2Fdocuments%3A%2Fdata%22%2C%22-e%22%2C%22GROUPDOCS_MCP_STORAGE_PATH%3D%2Fdata%22%2C%22-e%22%2C%22GROUPDOCS_MCP_OUTPUT_PATH%3D%2Fdata%22%2C%22-e%22%2C%22GROUPDOCS_LICENSE_PATH%3D%22%2C%22ghcr.io%2Fgroupdocs-parser%2Fparser-net-mcp%3Alatest%22%5D%7D&quality=insiders) [![Add to Cursor](https://img.shields.io/badge/Cursor-Add_MCP-111111)](https://cursor.com/en/install-mcp?name=groupdocs-parser&config=eyJjb21tYW5kIjoiZG9ja2VyIiwiYXJncyI6WyJydW4iLCItLXJtIiwiLWkiLCItdiIsIi9wYXRoL3RvL2RvY3VtZW50czovZGF0YSIsIi1lIiwiR1JPVVBET0NTX01DUF9TVE9SQUdFX1BBVEg9L2RhdGEiLCItZSIsIkdST1VQRE9DU19NQ1BfT1VUUFVUX1BBVEg9L2RhdGEiLCItZSIsIkdST1VQRE9DU19MSUNFTlNFX1BBVEg9IiwiZ2hjci5pby9ncm91cGRvY3MtcGFyc2VyL3BhcnNlci1uZXQtbWNwOmxhdGVzdCJdfQ%3D%3D) [![Codex CLI setup](https://img.shields.io/badge/Codex_CLI-Setup-e5541b)](install/generated/codex.md) [![Windsurf setup](https://img.shields.io/badge/Windsurf-Setup-0e8a7d)](install/generated/windsurf.md)\n\n> One-click installs pre-fill every supported setting: edit the placeholder host path in\n> the volume mount after install; an empty GROUPDOCS_LICENSE_PATH runs in evaluation mode.\n>\n> **More clients** - ready-made configs for Claude Code, Codex CLI, Visual Studio 2022,\n> Cursor, Windsurf, Cline, and JetBrains Rider live in [`install/generated/`](install/generated/).\n<!-- install-buttons:end -->\n\n**This product ships via Docker (GHCR) only.** GroupDocs.Parser's managed DLL embeds ~234 MB of ONNX models, so the packed tool exceeds NuGet.org's 250 MB limit - so `dnx` and\n`dotnet tool install` are **not available** for it. When upstream ships a\nslimmer engine that packs under the limit, the standard NuGet flow returns\n(see the revert notes in `.github/workflows/publish_prod.yml`).\n\n```bash\ndocker run --rm -i \\\n  -v $(pwd)/documents:/data \\\n  ghcr.io/groupdocs-parser/parser-net-mcp:latest\n```\n\nImages are multi-arch (`linux/amd64` + `linux/arm64`), tagged `latest` plus an\nimmutable version tag per release (e.g. `:26.9.0`). To pin, replace `:latest`\nwith the version tag - recommended for shared configs and CI.\n\n## Available MCP Tools\n\n| Tool | Description |\n|---|---|\n| `ExtractText` | Extracts plain text from a document (whole document or a single page). Truncates very large outputs. |\n| `ExtractImages` | Extracts all embedded images and saves them to storage as `<basename>_image<N>.<ext>` files |\n| `ExtractMetadata` | Extracts metadata (author, title, dates, custom properties, EXIF, XMP, IPTC) and returns it as JSON |\n| `ExtractTables` | Extracts tables from a document as Markdown (default — renders in chat) or structured JSON |\n| `ExtractBarcodes` | Detects all barcodes / QR codes and returns their decoded values, types, and positions as JSON |\n| `GetDocumentInfo` | Returns the file type, page count, and size of a document as JSON (without modifying it) |\n\nAll tools support PDF, DOCX, XLSX, PPTX, HTML, EPUB, MSG, EML, JPG, PNG, TIFF, and 50+ more document and image formats.\n\n## Example prompts for AI agents\n\nCopy any of these into Claude Desktop, Cursor, or GitHub Copilot Chat after the\nserver is connected.\n\n1. **Get a document's structure**: *\"How many pages does invoice.pdf have, and what format is it?\"*\n2. **Pull a text snippet**: *\"Extract the text from page 2 of contract.docx.\"*\n3. **Mine the metadata**: *\"What's the author and creation date of report.xlsx?\"*\n4. **Read a structured table**: *\"Pull the line items table out of invoice.pdf as Markdown.\"*\n5. **Scan for barcodes**: *\"Are there any QR codes in shipping-label.png? If so, what do they decode to?\"*\n\n## Licensing\n\n**The MCP server itself is MIT; the underlying GroupDocs engines require a license\nfor production use.** Without one the server runs in **evaluation mode**:\n\n- Text output may include an evaluation watermark, and other outputs may be size-limited.\n\nTo lift the limits, mount your `GroupDocs.Total.lic` into the container and point\n`GROUPDOCS_LICENSE_PATH` at it (see the Claude Desktop example above):\n\n- [Get a free 30-day temporary license](https://purchase.groupdocs.com/temporary-license/)\n- [Purchase a license](https://purchase.groupdocs.com/pricing/parser/net) | [Product page](https://products.groupdocs.com/parser/net/)\n\n## Configuration\n\n| Variable | Description | Default |\n|---|---|---|\n| `GROUPDOCS_MCP_STORAGE_PATH` | Base folder for input and output files | current directory |\n| `GROUPDOCS_MCP_OUTPUT_PATH` | *(Optional)* separate folder for output files (used by `ExtractImages`) | `GROUPDOCS_MCP_STORAGE_PATH` |\n| `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) |\n\n## Usage with Claude Desktop\n\n```json\n{\n  \"mcpServers\": {\n    \"groupdocs-parser\": {\n      \"command\": \"docker\",\n      \"args\": [\"run\", \"--rm\", \"-i\", \"-v\", \"/path/to/documents:/data\", \"ghcr.io/groupdocs-parser/parser-net-mcp:latest\"]\n    }\n  }\n}\n```\n\n> To use a license, add `\"-v\", \"/path/to/license-folder:/license\", \"-e\",\n> \"GROUPDOCS_LICENSE_PATH=/license/GroupDocs.Total.lic\"` before the image name.\n> To pin a version, replace `:latest` with the release tag.\n\n## Usage with VS Code / GitHub Copilot\n\nUse the **Install in VS Code** button above, or add to `.vscode/mcp.json`\n(also in [`install/generated/vscode-mcp.json`](install/generated/vscode-mcp.json)):\n\n```json\n{\n  \"inputs\": [\n    {\n      \"type\": \"promptString\",\n      \"id\": \"storage_path\",\n      \"description\": \"Base folder for input and output files.\",\n      \"password\": false\n    }\n  ],\n  \"servers\": {\n    \"groupdocs-parser\": {\n      \"command\": \"docker\",\n      \"args\": [\"run\", \"--rm\", \"-i\", \"-v\", \"${input:storage_path}:/data\", \"ghcr.io/groupdocs-parser/parser-net-mcp:latest\"]\n    }\n  }\n}\n```\n\n## Usage with Docker Compose\n\n```bash\ncd docker\ndocker compose up\n```\n\nEdit `docker/docker-compose.yml` to point volumes at your local documents folder.\n\n## Documentation & guides\n\nStep-by-step deployment guides and a published-package integration test suite\nlive in the companion repo\n[**GroupDocs.Parser.Mcp.Tests**](https://github.com/groupdocs-parser/GroupDocs.Parser.Mcp.Tests):\n\n- [Install from NuGet](https://github.com/groupdocs-parser/GroupDocs.Parser.Mcp.Tests/blob/master/how-to/01-install-from-nuget.md)\n- [Run via Docker](https://github.com/groupdocs-parser/GroupDocs.Parser.Mcp.Tests/blob/master/how-to/02-run-via-docker.md)\n- [Verify on the MCP registry](https://github.com/groupdocs-parser/GroupDocs.Parser.Mcp.Tests/blob/master/how-to/03-verify-mcp-registry.md)\n- [Use with Claude Desktop](https://github.com/groupdocs-parser/GroupDocs.Parser.Mcp.Tests/blob/master/how-to/04-use-with-claude-desktop.md)\n- [Use with VS Code / GitHub Copilot](https://github.com/groupdocs-parser/GroupDocs.Parser.Mcp.Tests/blob/master/how-to/05-use-with-vscode-copilot.md)\n- [Run the integration tests](https://github.com/groupdocs-parser/GroupDocs.Parser.Mcp.Tests/blob/master/how-to/06-run-integration-tests.md)\n\n## License\n\nMIT — see [LICENSE](LICENSE)\n\n<!-- mcp-name: io.github.groupdocs-parser/groupdocs-parser-mcp -->\n",
  "bytes": 8921,
  "sha": "6c07665357f6df4687a4d5c8d4a7ac4f165a078b109d5cddfb78a8dfd4afa8a8",
  "repo_slug": "groupdocs-parser/groupdocs.parser.mcp",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_groupdocs_parser_groupdocs_par_23f08bb2/readme"
}