Brings GroupDocs.Viewer's 170+ format rendering engine into Claude, Cursor, and other MCP clients as two tools: RenderPage turns any page from PDFs, Office docs, or HTML into PNG images that agents can analyze inline, while GetViewInfo returns file type, page count, and dimensions without rendering. Runs via dnx with no install step, as a dotnet global tool, or in Docker. Storage paths are configurable and you can pass passwords for protected documents. Useful when you need AI agents to visually inspect reports, contracts, or presentations rather than just reading extracted text. The repo includes integration tests that verify every release against the published NuGet package across all three major platforms.
MCP server that exposes GroupDocs.Viewer 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.Viewer.Mcp --yes
Pulls the latest stable release on every invocation. To pin to a specific
version (recommended for shared configs and CI), append @<version>:
dnx GroupDocs.Viewer.Mcp@26.5.1 --yes
Or install as a global dotnet tool:
dotnet tool install -g GroupDocs.Viewer.Mcp
groupdocs-viewer-mcp
Or run via Docker:
docker run --rm -i \
-v $(pwd)/documents:/data \
ghcr.io/groupdocs-viewer/viewer-net-mcp:latest
| Tool | Description |
|---|---|
RenderPage | Renders a single document page as a PNG image and returns it inline (plus saves a copy to storage as <source-stem>_page<N>.png). Supports PDF, Word, Excel, PowerPoint, ODT, RTF, HTML, and 170+ more formats; optional password for protected documents. |
GetViewInfo | Returns file type, page count, and per-page dimensions as JSON — without rendering. Useful as a pre-flight check before deciding which page(s) to render. Optional password for protected documents. |
Once the server is wired up to your MCP client (Claude Desktop, Cursor, VS Code Copilot, …), try:
Render page 1 of report.pdf — show me the image.
How many pages does contract.docx have? What size is each page?
Show me page 5 of the slide deck quarterly.pptx.
Inspect /docs/legal-brief.pdf — what file type and page count?
Render the first three pages of presentation.pptx as PNGs.
The client picks RenderPage for "show me a page" requests and
GetViewInfo for inspection-only questions.
| 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-viewer": {
"type": "stdio",
"command": "dnx",
"args": ["GroupDocs.Viewer.Mcp", "--yes"],
"env": {
"GROUPDOCS_MCP_STORAGE_PATH": "/path/to/documents"
}
}
}
}
To pin to a specific version, replace
"GroupDocs.Viewer.Mcp"with"GroupDocs.Viewer.Mcp@26.5.1"inargs. Pinning is recommended for shared / committed configs to avoid surprise upgrades.
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-viewer": {
"type": "stdio",
"command": "dnx",
"args": ["GroupDocs.Viewer.Mcp", "--yes"],
"env": {
"GROUPDOCS_MCP_STORAGE_PATH": "${input:storage_path}"
}
}
}
}
Same pinning rule as above — swap
"GroupDocs.Viewer.Mcp"for"GroupDocs.Viewer.Mcp@26.5.1"to lock to a specific release.
cd docker
docker compose up
Edit 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.Viewer.Mcp.Tests:
dnx, global tool, pinned vs always-latestThat repo also exercises every advertised tool against the published NuGet artifact on Linux, macOS, and Windows in CI — so the snippets above are verified end-to-end on every release.
MIT — see LICENSE
GROUPDOCS_MCP_STORAGE_PATHGROUPDOCS_MCP_OUTPUT_PATHGROUPDOCS_LICENSE_PATHmiapre/html-to-figma-design-system
ie3jp/illustrator-mcp-server
coding-solo/godot-mcp
ivanmurzak/unity-mcp
yctimlin/mcp_excalidraw
figma/mcp-server-guide