Skip to content

Releases: groupdocs-viewer/GroupDocs.Viewer.Mcp

26.5.1

03 May 23:47

Choose a tag to compare

26.5.1 — GetViewInfo JSON response no longer truncated mid-document

What changed

  • GetViewInfoTool now returns raw JSON directly instead of routing it through OutputHelper.TruncateText.
  • OutputHelper.TruncateText is intended for plain-text output: when the input exceeds McpConfig.MaxOutputCharacters (default 5000), it appends a [Output truncated — showing first X of Y characters. ...] marker on a new line. That marker is non-JSON and breaks any consumer using JsonDocument.Parse / JsonSerializer.Deserialize on the response.
  • Affected callers in practice: long documents where the per-page width/height/name list pushes the JSON past 5 KB, plus any client that strict-parses the tool response. Lenient consumers (Claude, Cursor, VS Code Copilot) tolerate the trailing marker, so user-visible AI-agent flows in 26.5.0 are unaffected.

Why

Tools that emit structured JSON should always return valid JSON regardless of size. Truncation should be expressed inside the JSON document (e.g. capped inner array + truncated: true flag) rather than by appending a non-JSON marker line. In practice the response is bounded by API realities (a few KB to ~30 KB), so removing the wrapping is sufficient — no in-document truncation needed today.

Migration / impact

Drop-in replacement for 26.5.0. No public-API or wire-name changes. Tool responses now contain only the JSON document; previous trailing marker line for ~5KB+ responses is gone. Strict-JSON parsers that broke against 26.5.0 work cleanly against 26.5.1.

Full Changelog: 26.5.0...26.5.1

26.5.0

03 May 22:04

Choose a tag to compare

Initial public release of GroupDocs.Viewer MCP Server

What changed

  • NuGet package GroupDocs.Viewer.Mcp published with McpServer package type.
  • Two MCP tools exposed:
    • RenderPage — render a single document page as a PNG image. Returns a CallToolResult with both a TextContentBlock (saved file path: <source-stem>_page<N>.png) and an ImageContentBlock (PNG bytes inline as image/png). Supports PDF, Word, Excel, PowerPoint, ODT, RTF, HTML, and 170+ more formats; takes optional page (1-based, default 1) and password.
    • GetViewInfo — return file type, page count, and per-page dimensions as JSON. No rendering performed. Optional password for protected documents.
  • Installable via dnx GroupDocs.Viewer.Mcp@26.5.0 --yes (.NET 10 SDK required) or dotnet tool install -g.
  • Docker image published to ghcr.io/groupdocs-viewer/viewer-net-mcp and docker.io/groupdocs/viewer-net-mcp.
  • Environment variables: GROUPDOCS_MCP_STORAGE_PATH, optional GROUPDOCS_MCP_OUTPUT_PATH, GROUPDOCS_LICENSE_PATH.
  • Linux native graphics deps wired up: SkiaSharp.NativeAssets.Linux.NoDependencies (3.119.1) is referenced because GroupDocs.Viewer's nuspec declares the SkiaSharp managed and native packages — we pin explicitly so transitive resolution stays deterministic. libgdiplus + libfontconfig1 are installed in the Docker image and the System.Drawing.EnableUnixSupport runtime flag is set because Viewer's Slides, image post-processing, archive-to-Word, mail/Outlook saving, and barcode generation paths still call System.Drawing.Common.

Why

Fourth product MCP server in the GroupDocs MCP framework (after Metadata, Conversion, and Comparison). Exposes
GroupDocs.Viewer for .NET as AI-callable tools for Claude, Cursor,
VS Code / GitHub Copilot, and other MCP-compatible agents.

RenderPage is the first tool in the GroupDocs MCP family to return a CallToolResult directly with an inline ImageContentBlock — AI clients can display the rendered page without a separate fetch.

Migration / impact

First release — no migration required.

Full Changelog: https://github.com/groupdocs-viewer/GroupDocs.Viewer.Mcp/commits/26.5.0