Releases: groupdocs-signature/GroupDocs.Signature.Mcp
Release list
26.7.2
26.7.2 — Full configuration surface in install snippets (docs/infra only)
What changed
No server code changes — the bump republishes so the refreshed README (install
buttons above the fold, Codex/Windsurf guides, fixed one-click links) reaches the
NuGet package page, Docker/GHCR, and the MCP Registry.
- Every install snippet and one-click deeplink (VS Code / Cursor buttons, Claude
Desktop/Code, VS Code, VS 2022, Cursor, Windsurf, Cline, Rider, Codex) now
pre-fills all supported environment variables so users see the full
configuration surface in the install dialog:GROUPDOCS_MCP_STORAGE_PATH— placeholder documents folderGROUPDOCS_MCP_OUTPUT_PATH— same folder as storage by defaultGROUPDOCS_LICENSE_PATH— empty by default (evaluation mode)
- Verified in
GroupDocs.Mcp.Core'sLicenseManager: an empty license path is
handled identically to an unset one (string.IsNullOrEmptyguard → evaluation
mode with a log warning; a wrong path only logs;SetLicenseFromPathis wrapped
in try/catch) — an empty value can never fail the server.
Migration / impact
Drop-in — the server binary is identical apart from the version stamp.
Full Changelog: 26.7.1...26.7.2
26.7.1
26.7.1 — Discoverability & one-click install uplift (docs/infra only)
What changed
Rollout of the org-wide MCP repo improvement plan (piloted on GroupDocs.Conversion.Mcp
26.7.1). No server code changes — the bump ships the new README to the NuGet package page.
- README: badge row (NuGet version/downloads, Docker pulls, MCP Registry, Tests-repo CI,
MIT), demo placeholder, one-click VS Code / Cursor install buttons, pointer to
ready-made client configs (Claude Code, VS 2022, Cursor, Windsurf, Cline, Rider), and a
Licensing section documenting the product's evaluation-mode limits with temporary
license / purchase links. install/config.json+install/generate-install-links.ps1: canonical install config;
the generator emitsinstall/generated/(per-client snippets + deeplinks) and rewrites
the README install-buttons block idempotently. CI drift guard added to
build_packages.yml(-Checkfails the build when generated content is stale).- Hygiene:
SECURITY.md,CONTRIBUTING.md, issue templates,smithery.yaml,
docker/README.hub.md, llms.txt licensing section,.vscode/mcp.jsonpublished-package
entry, GitHub topics.
Why
AI-agent users find MCP servers through registries, GitHub topics, and READMEs; installers
copy the first snippet they see. One canonical config keeps every rendered snippet correct
permanently, and licensing up front removes the main evaluation-mode surprise.
Migration / impact
Drop-in — the server binary is identical to 26.7.0 apart from the version stamp.
Full Changelog: 26.7.0...26.7.1
26.7.0
Release 26.7.0 — engine bump to 26.6.0 + shared error formatter
What changed
- Bumped the MCP package version
GroupDocs.Signature.Mcp26.5.0→26.7.0(CalVer). - Bumped the engine
GroupDocs.Signature26.2.0→26.6.0(latest stable on NuGet;
a four-minor jump). No public API drift affecting the tool surface —Sign,
Verify, all fiveSearch*tools, andGetDocumentInfocompile and behave
unchanged against 26.6.0. - Extracted the per-tool private
FormatExceptionhelpers (duplicated across all
eight tools) into a single sharedTools/ToolError.cs
(ToolError.Format(op, file, ex, subjectSuffix = null)). Every tool'scatch
now calls it. Output text is byte-for-byte identical to the previous per-tool
helpers — the failure prefixes (Signing failed for,Verification failed for,
Barcode search failed for,Document-info lookup failed for, etc.) are
preserved, so integration tests that match on the prefix are unaffected.
SignandVerifypass their(type: '<type>')subject via the new
subjectSuffixparameter.
Why
Routine maintenance release: pick up the latest stable engine and consolidate the
duplicated error-formatting boilerplate (8 identical copies) into one shared helper
per the cross-product MCP conventions (shared ToolError supersedes per-class
FormatException once ≥3 tools exist).
Migration / impact
- No behavioural change to any tool's success or failure output.
- Engine transitive note: as of 26.6.0 the resolved
GroupDocs.Signature.Net80
runtime package now declaresSkiaSharp 3.119.0+
SkiaSharp.NativeAssets.Linux.NoDependencies 3.119.0transitively (it did not at
clone time). The MCP still does not pin SkiaSharp manually — the native
libSkiaSharpnow arrives transitively (Pitfall S). The existing
System.Security.Cryptography.Pkcs 9.0.0override remains in place.
Full Changelog: 26.5.0...26.7.0
26.5.0
Initial public release of GroupDocs.Signature MCP Server
What changed
- NuGet package
GroupDocs.Signature.Mcppublished with theMcpServerpackage type. - Eight MCP tools exposed:
Sign— signs a document with a text, QR code, barcode, or digital certificate signature and saves the signed file as<name>_signed.<ext>.Verify— verifies signatures (text / QR / barcode / digital / all) and returns a validity report as JSON.SearchTextSignatures— finds embedded text signatures with an optional substring filter.SearchBarcodes— finds barcode signatures (Code39, Code128, EAN, etc.) with an optional decoded-text filter; can return inline barcode images.SearchQrCodes— finds QR code signatures with an optional decoded-text filter; can return inline QR images.SearchDigitalSignatures— finds digital certificate signatures and returns signer, issuer, serial number, and validity status.SearchImageSignatures— finds embedded image signatures (logos, stamps, picture overlays) and returns them as base64 PNGs.GetDocumentInfo— returns file type, page count, size, and per-page dimensions as JSON; read-only.
- The seven engine-touching tools (
Sign,Verify, the fiveSearch*tools) are ported from the GroupDocs.Signature framework subproject; a Pitfall #18 catch-and-format exception wrapper was added at clone time to each — engine failures surface as a descriptive"<Op> failed for '<file>': <type>: <msg>"string instead of MCP's opaque generic wrapper.GetDocumentInfois added per Step 11 of the clone instructions; it serializes JSON directly (Pitfall #16) and uses reflection to extractPageCount/Pagesacross subtype-specificIDocumentInfoshapes. - Installable via
dnx GroupDocs.Signature.Mcp@26.5.0 --yes(.NET 10 SDK required),dotnet tool install -g GroupDocs.Signature.Mcp, or Docker. - Docker image published to
ghcr.io/groupdocs-signature/signature-net-mcpanddocker.io/groupdocs/signature-net-mcp. - Environment variables:
GROUPDOCS_MCP_STORAGE_PATH, optionalGROUPDOCS_MCP_OUTPUT_PATH,GROUPDOCS_LICENSE_PATH. - Native dependencies on Linux:
libgdiplus+libfontconfig1+ttf-mscorefonts-installer(the engine rasterizes signature glyphs — text, QR codes, barcodes, certificate annotations — onto document pages, so MS core fonts are required for correct rendering).System.Drawing.EnableUnixSupportis set in the csproj.SkiaSharp.NativeAssets.Linux.NoDependenciesis intentionally NOT pinned — neither the framework subproject nor the upstream engine declares a direct SkiaSharp dependency at clone time; revisit if a runtimelibSkiaSharp.sonot found surfaces on Linux integration runs. - The Pkcs CVE GHSA-555c-2p6r-68mm transitively pulled by
GroupDocs.Signature(System.Security.Cryptography.Pkcs 7.0.0) is overridden by an explicit<PackageReference>to 9.0.0 in the csproj. Re-evaluate when the engine bumps its transitive. - License is applied via Pattern A (the cross-product License-class style):
new GroupDocs.Signature.License().SetLicense(licensePath)(the framework'sSignatureLicenseManager.csuses this verbatim — no caveats observed in the engine).
Why
Exposes GroupDocs.Signature for .NET as AI-callable MCP tools for Claude, Cursor, VS Code / GitHub Copilot, and other MCP-compatible agents, so document signing, signature search, and verification can be invoked from natural-language instructions without bespoke per-agent integration.
Migration / impact
First release — no migration required.
Full Changelog: https://github.com/groupdocs-signature/GroupDocs.Signature.Mcp/commits/26.5.0