Skip to main content
Any Framework

MCP server exposing GroupDocs.Metadata for .NET — read, write, and remove metadata properties from documents, images, and media files via AI agents.

Published
Jul 24, 2026
2mo ago
Total Downloads
3.7K
3,659

Install

dotnet add package GroupDocs.Metadata.Mcp --version 26.7.2

No framework information available.

README

GroupDocs.Metadata MCP Server

MCP server that exposes GroupDocs.Metadata as AI-callable tools for Claude, Cursor, GitHub Copilot, and other MCP agents.

NuGet NuGet downloads Docker pulls MCP Registry Integration tests License: MIT

Installation

Requires .NET 10 SDK.

Run directly with dnx (recommended — no install step):

dnx GroupDocs.Metadata.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 [email protected] --yes

Install in VS Code Install in VS Code Insiders Add to Cursor

One-click buttons prompt for your documents folder (and optional license). Cursor's deeplink installs with a placeholder storage path - edit it after install.

More clients — ready-made configs for Claude Code, Visual Studio 2022 (.mcp.json), Cursor, Windsurf, Cline, and JetBrains Rider live in install/generated/.

Or install as a global dotnet tool:

dotnet tool install -g GroupDocs.Metadata.Mcp
groupdocs-metadata-mcp

Or run via Docker:

docker run --rm -i \
  -v $(pwd)/documents:/data \
  ghcr.io/groupdocs-metadata/metadata-net-mcp:latest

Native prerequisites

The underlying GroupDocs engine uses System.Drawing (GDI+) for some operations. When you run the server natively (via dnx or the global dotnet tool) on Linux or macOS, install the native libgdiplus library first:

Platform Setup
Windows Nothing — GDI+ is built into the OS.
Linux sudo apt-get install -y libgdiplus libfontconfig1
macOS brew install mono-libgdiplus
Docker Nothing — the image already bundles libgdiplus.

Skipping this on Linux/macOS surfaces as DllNotFoundException: libgdiplus in the tool response. The simplest zero-setup option on Linux/macOS is the Docker image.

Available MCP Tools

Tool Description
ReadMetadata Reads all metadata properties (author, title, creation date, custom properties) and returns them as JSON
SearchMetadata Searches within one document and returns only matching properties (filter by category, name, or value) — e.g. "show me the author", "does this have GPS?"
WriteMetadata Sets, changes, or adds a property (Author, Title, Subject, Keywords, Comments, Copyright, Company, Manager) and saves the updated file
RemoveMetadata Removes metadata and saves a cleaned file. Strips everything by default, or only specific categories (gps, author, comments, company, dates, software, copyright, keywords, personal)
GetDocumentInfo Returns the file type, MIME type, page count, byte size, and encryption status as JSON — a lightweight structural check that does not enumerate metadata properties

Licensing

The MCP server itself is MIT; the underlying GroupDocs.Metadata engine requires a license for production use. Without one the server runs in evaluation mode:

  • A single server process can open at most 15 documents; further calls fail with an evaluation-cap error until the server restarts.
  • Saving metadata changes (write / remove) is blocked without a license.

To lift the limits, point GROUPDOCS_LICENSE_PATH at your GroupDocs.Total.lic:

Configuration

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)

Usage with Claude Desktop

{
  "mcpServers": {
    "groupdocs-metadata": {
      "type": "stdio",
      "command": "dnx",
      "args": ["GroupDocs.Metadata.Mcp", "--yes"],
      "env": {
        "GROUPDOCS_MCP_STORAGE_PATH": "/path/to/documents"
      }
    }
  }
}

To pin to a specific version, replace "GroupDocs.Metadata.Mcp" with "[email protected]" in args. Pinning is recommended for shared / committed configs to avoid surprise upgrades.

Usage with VS Code / GitHub Copilot

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-metadata": {
      "type": "stdio",
      "command": "dnx",
      "args": ["GroupDocs.Metadata.Mcp", "--yes"],
      "env": {
        "GROUPDOCS_MCP_STORAGE_PATH": "${input:storage_path}"
      }
    }
  }
}

Same pinning rule as above — swap "GroupDocs.Metadata.Mcp" for "[email protected]" to lock to a specific release.

Usage with Docker Compose

cd docker
docker compose up

Edit docker/docker-compose.yml to point volumes at your local documents folder.

Documentation & guides

Step-by-step deployment guides and a published-package integration test suite live in the companion repo GroupDocs.Metadata.Mcp.Tests:

That 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.

License

MIT — see LICENSE

Changes from Previous Version

No structural changes between v26.7.1 and v26.7.2.

Adoption Assessment

A verified publisher signal is available. Assess fit from the package's supported frameworks, license and dependency graph rather than popularity alone.

No target framework metadata is available. Confirm compatibility in a representative project before standardising on this package.

Related Guides & Workflows

Learn how to evaluate, integrate, or audit this package in your .NET project.