Integration tests for the GroupDocs.Parser.Mcp
MCP server — exposes GroupDocs.Parser
as AI-callable tools.
This repository validates the published distribution end-to-end: it launches the server, connects as an MCP client, and exercises every advertised tool against real document fixtures sourced from the upstream GroupDocs.Parser-for-.NET Examples.
NOTE — Docker-first distribution: as of 26.5.0,
GroupDocs.Parser.Mcpis shipped only via Docker because the engine DLL (~235 MB) exceeds NuGet.org's 250 MB package-size limit. Thednx GroupDocs.Parser.Mcp@26.5.0 --yesroute is currently blocked. Integration tests target the Docker image atghcr.io/groupdocs-parser/parser-net-mcp:26.5.0. See the main repo'schangelog/001for context.
- how-to/ — step-by-step guides for every deployment channel.
- examples/ — ready-to-paste
claude-desktop.json,vscode-mcp.json, anddocker-compose.yml. - AGENTS.md — orientation for AI coding agents working in this repo.
- llms.txt — machine-readable summary for LLM tooling.
- changelog/ — one entry per change set.
- Files/README.md — provenance of real fixtures (which MCP method ↔ which upstream example ↔ which file).
| Area | Covered by |
|---|---|
| Package installs and starts | McpServerFixture |
| MCP handshake, server info, tool list (6 tools) | ToolDiscoveryTests |
extract_text — PDF / DOCX / EPUB / HTML, page parameter, password |
ExtractTextTests |
extract_images — PDF + XLSX with embedded images, synthetic empty |
ExtractImagesTests |
extract_metadata — DOCX / PDF, valid JSON schema |
ExtractMetadataTests |
extract_tables — invoice PDF, Markdown + JSON formats |
ExtractTablesTests |
extract_barcodes — barcodes PDF, JSON schema validation |
ExtractBarcodesTests |
get_document_info — synthetic + 5 real samples, JSON shape |
GetDocumentInfoTests |
| Unknown / corrupted files, password parameter | ErrorHandlingTests |
Requires .NET 10 SDK.
dotnet testNote: while the NuGet-publish path is blocked (see above), the test fixture would launch the server via
dnxagainst the published NuGet — which won't resolve. Tests currently exercise the code paths but require infrastructure changes (Docker-based test fixture) to run end-to-end. Track as a follow-up item; the test suite itself is structurally complete.
.github/workflows/integration.yml runs
on push / PR / nightly cron / workflow_dispatch / repository_dispatch.
Matrix: ubuntu-latest, windows-latest, macos-latest. Linux runners
install libgdiplus + libfontconfig1.
In evaluation mode (no GROUPDOCS_LICENSE_PATH), Parser may truncate text
output, watermark some responses, or limit row counts. Tests pass either way
— assertions check JSON-shape validity and the absence of the per-tool
<Operation> failed for ... diagnostic prefix, not exact text contents.
For CI, store a base64-encoded .lic file as repo secret GROUPDOCS_LICENSE
— the workflow decodes it into $RUNNER_TEMP and exports
GROUPDOCS_LICENSE_PATH automatically.
Real fixtures live under Files/ and are sourced from the upstream
GroupDocs.Parser-for-.NET/Examples/Resources/SampleFiles/ folder. Each
fixture is documented in Files/README.md with its MCP
method ↔ upstream example ↔ filename mapping.
MIT — see LICENSE