Skip to content

Releases: groupdocs-signature/GroupDocs.Signature.Mcp

26.7.2

Choose a tag to compare

@github-actions github-actions released this 25 Jul 19:07

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 folder
    • GROUPDOCS_MCP_OUTPUT_PATH — same folder as storage by default
    • GROUPDOCS_LICENSE_PATHempty by default (evaluation mode)
  • Verified in GroupDocs.Mcp.Core's LicenseManager: an empty license path is
    handled identically to an unset one (string.IsNullOrEmpty guard → evaluation
    mode with a log warning; a wrong path only logs; SetLicenseFromPath is 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

Choose a tag to compare

@github-actions github-actions released this 24 Jul 18:30

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 emits install/generated/ (per-client snippets + deeplinks) and rewrites
    the README install-buttons block idempotently. CI drift guard added to
    build_packages.yml (-Check fails 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.json published-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

Choose a tag to compare

@github-actions github-actions released this 17 Jul 21:42

Release 26.7.0 — engine bump to 26.6.0 + shared error formatter

What changed

  • Bumped the MCP package version GroupDocs.Signature.Mcp 26.5.026.7.0 (CalVer).
  • Bumped the engine GroupDocs.Signature 26.2.026.6.0 (latest stable on NuGet;
    a four-minor jump). No public API drift affecting the tool surface — Sign,
    Verify, all five Search* tools, and GetDocumentInfo compile and behave
    unchanged against 26.6.0.
  • Extracted the per-tool private FormatException helpers (duplicated across all
    eight tools) into a single shared Tools/ToolError.cs
    (ToolError.Format(op, file, ex, subjectSuffix = null)). Every tool's catch
    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.
    Sign and Verify pass their (type: '<type>') subject via the new
    subjectSuffix parameter.

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 declares SkiaSharp 3.119.0 +
    SkiaSharp.NativeAssets.Linux.NoDependencies 3.119.0 transitively (it did not at
    clone time). The MCP still does not pin SkiaSharp manually — the native
    libSkiaSharp now arrives transitively (Pitfall S). The existing
    System.Security.Cryptography.Pkcs 9.0.0 override remains in place.

Full Changelog: 26.5.0...26.7.0

26.5.0

Choose a tag to compare

@github-actions github-actions released this 28 May 21:42

Initial public release of GroupDocs.Signature MCP Server

What changed

  • NuGet package GroupDocs.Signature.Mcp published with the McpServer package 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 five Search* 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. GetDocumentInfo is added per Step 11 of the clone instructions; it serializes JSON directly (Pitfall #16) and uses reflection to extract PageCount/Pages across subtype-specific IDocumentInfo shapes.
  • 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-mcp and docker.io/groupdocs/signature-net-mcp.
  • Environment variables: GROUPDOCS_MCP_STORAGE_PATH, optional GROUPDOCS_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.EnableUnixSupport is set in the csproj. SkiaSharp.NativeAssets.Linux.NoDependencies is intentionally NOT pinned — neither the framework subproject nor the upstream engine declares a direct SkiaSharp dependency at clone time; revisit if a runtime libSkiaSharp.so not 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's SignatureLicenseManager.cs uses 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