MCP server for GroupDocs.Search for .NET — lets AI agents (Claude, Copilot, Cursor) index and run full-text search across documents on-premise. stdio transport, NuGet/Docker/GHCR/MCP Registry.
- ✓Open-source license (MIT)
- ✓Actively maintained (<30d)
- ✓Clear description
- ✓Documented (README)
git clone https://github.com/groupdocs-search/GroupDocs.Search.McpMCP Servers overview
# GroupDocs.Search MCP Server MCP server that exposes [GroupDocs.Search](https://products.groupdocs.com/search) as AI-callable tools for Claude, Cursor, GitHub Copilot, and other MCP agents. It indexes folders of PDF, Office, email, archive and 70+ other document formats **locally**, then answers full-text, boolean, phrase, fuzzy and date-range queries over them — documents never leave your machine. [](https://github.com/orgs/groupdocs-search/packages/container/package/search-net-mcp) [-6f42c1)](https://registry.modelcontextprotocol.io/v0/servers?search=io.github.groupdocs-search/groupdocs-search-mcp) [](https://github.com/groupdocs-search/GroupDocs.Search.Mcp.Tests/actions/workflows/integration.yml) [](LICENSE) <!-- TODO(manual): record 30s demo per improvement-plan M1 --> <!--  --> ## Installation <!-- install-buttons:start - generated by install/generate-install-links.ps1; do not edit by hand --> [](https://vscode.dev/redirect/mcp/install?name=groupdocs-search&config=%7B%22command%22%3A%22docker%22%2C%22args%22%3A%5B%22run%22%2C%22--rm%22%2C%22-i%22%2C%22-v%22%2C%22%2Fpath%2Fto%2Fdocuments%3A%2Fdata%22%2C%22-e%22%2C%22GROUPDOCS_MCP_STORAGE_PATH%3D%2Fdata%22%2C%22-e%22%2C%22GROUPDOCS_MCP_OUTPUT_PATH%3D%2Fdata%22%2C%22-e%22%2C%22GROUPDOCS_LICENSE_PATH%3D%22%2C%22ghcr.io%2Fgroupdocs-search%2Fsearch-net-mcp%3Alatest%22%5D%7D) [](https://insiders.vscode.dev/redirect/mcp/install?name=groupdocs-search&config=%7B%22command%22%3A%22docker%22%2C%22args%22%3A%5B%22run%22%2C%22--rm%22%2C%22-i%22%2C%22-v%22%2C%22%2Fpath%2Fto%2Fdocuments%3A%2Fdata%22%2C%22-e%22%2C%22GROUPDOCS_MCP_STORAGE_PATH%3D%2Fdata%22%2C%22-e%22%2C%22GROUPDOCS_MCP_OUTPUT_PATH%3D%2Fdata%22%2C%22-e%22%2C%22GROUPDOCS_LICENSE_PATH%3D%22%2C%22ghcr.io%2Fgroupdocs-search%2Fsearch-net-mcp%3Alatest%22%5D%7D&quality=insiders) [](https://cursor.com/en/install-mcp?name=groupdocs-search&config=eyJjb21tYW5kIjoiZG9ja2VyIiwiYXJncyI6WyJydW4iLCItLXJtIiwiLWkiLCItdiIsIi9wYXRoL3RvL2RvY3VtZW50czovZGF0YSIsIi1lIiwiR1JPVVBET0NTX01DUF9TVE9SQUdFX1BBVEg9L2RhdGEiLCItZSIsIkdST1VQRE9DU19NQ1BfT1VUUFVUX1BBVEg9L2RhdGEiLCItZSIsIkdST1VQRE9DU19MSUNFTlNFX1BBVEg9IiwiZ2hjci5pby9ncm91cGRvY3Mtc2VhcmNoL3NlYXJjaC1uZXQtbWNwOmxhdGVzdCJdfQ%3D%3D) [](install/generated/codex.md) [](install/generated/windsurf.md) > One-click installs pre-fill every supported setting: edit the placeholder host path in > the volume mount after install; an empty GROUPDOCS_LICENSE_PATH runs in evaluation mode. > > **More clients** - ready-made configs for Claude Code, Codex CLI, Visual Studio 2022, > Cursor, Windsurf, Cline, and JetBrains Rider live in [`install/generated/`](install/generated/). <!-- install-buttons:end --> **This product ships via Docker (GHCR) only.** The GroupDocs.Search engine DLL is about 200 MiB and ships ONNX Runtime natives, so the packed tool (~281 MiB) exceeds NuGet.org's 250 MB limit — `dnx` and `dotnet tool install` are **not available** for it. When a slimmer engine packs under the limit, the standard NuGet flow returns (see the revert notes in `.github/workflows/publish_prod.yml`). ```bash docker run --rm -i \ -v $(pwd)/documents:/data \ ghcr.io/groupdocs-search/search-net-mcp:latest ``` Images are multi-arch (`linux/amd64` + `linux/arm64`), tagged `latest` plus an immutable version tag per release (e.g. `:26.10.1`). To pin, replace `:latest` with the version tag — recommended for shared configs and CI. ### Linux: run the container as your user The image runs as a non-root user (uid 1654). On Linux a mounted folder keeps its host owner, so a folder you own is **read-only** inside the container and indexing fails with *"The index folder … is not writable"*. Add `--user` so the container writes as you: ```bash docker run --rm -i --user "$(id -u):$(id -g)" \ -v $(pwd)/documents:/data \ ghcr.io/groupdocs-search/search-net-mcp:latest ``` MCP client configs (JSON) do not run a shell, so put the numbers in directly — `id -u` and `id -g` print them, typically `1000`: `"args": ["run", "--rm", "-i", "--user", "1000:1000", "-v", …]`. Docker Desktop on Windows and macOS does not need this. ### Where the index lives Search is the one **stateful** server in the GroupDocs MCP family: an index is a persistent, searchable copy of your documents' text that survives restarts. By default it is kept in a `.groupdocs-search-index` folder **inside the documents folder** (`/data/.groupdocs-search-index` in the container), so the one volume mount above is all you need and the index is never indexed itself. If the documents folder is read-only, keep the index in its own folder: ```bash docker run --rm -i \ -v /path/to/documents:/data:ro \ -v /path/to/index:/index -e GROUPDOCS_MCP_INDEX_PATH=/index \ ghcr.io/groupdocs-search/search-net-mcp:latest ``` ## Available MCP Tools | Tool | Description | |---|---| | `add_to_index` | Indexes a file, a folder (recursively), or the whole storage folder. Creates the index on demand. | | `search` | Finds the documents that match a query, ranked by relevance, with occurrence counts — returned as JSON | | `get_text_fragments` | Returns the matching passages with surrounding words, so the agent can quote or answer from them | | `update_index` | Re-reads changed files, adds new files in indexed folders, drops deleted ones | | `remove_from_index` | Removes an indexed path (a folder or file passed to `add_to_index`) from the index; files on disk are untouched | | `create_index` | Creates or opens a named index (`contracts`, `hr/2026`), or recreates it empty | | `get_index_info` | Reports whether an index exists, its document count, indexed paths, version, and the other indexes — as JSON | | `get_license_status` | Reports the active licensing mode (evaluation / licensed / metered), the engine version, and — under metered — the consumed quantity and credit. Processes no document. | Paths are always **relative to the documents folder** (`contracts`, `reports/2026/q3.pdf`), and indexes are referred to by **name**, never by filesystem path. Several named indexes can live side by side. **Query syntax** (GroupDocs.Search DSL): single words (`invoice`); phrases **in double quotes** (`"force majeure"` — unquoted multi-word input does not match); `AND`, `OR`, `NOT` and parentheses; `?` character wildcards (`?ffect`, `princip?(2~4)`); `daterange(2026-01-01 ~~ 2026-06-30)`; number ranges (`100 ~~ 500`); field prefixes (`filename: lease`); regular expressions starting with `^`; and fuzzy matching via the `fuzzy` argument. Indexable formats include PDF, DOC/DOCX, XLS/XLSX, PPT/PPTX, ODT/ODS/ODP, RTF, TXT, HTML, EPUB, FB2, EML/EMLX/MSG, PST/OST, ONE and ZIP — including documents inside archives and email attachments. `get_index_info` with `includeSupportedFormats: true` lists the engine's full set. ## Example prompts for AI agents Copy any of these into Claude Desktop, Cursor, or GitHub Copilot Chat after the server is connected. 1. **Make a folder searchable**: *"Index everything in my contracts folder."* 2. **Find the right documents**: *"Which contracts mention a termination penalty?"* 3. **Read the evidence, not the file list**: *"Show me the paragraphs that talk about \"force majeure\", with the file each one comes from."* 4. **Keep it current**: *"I edited some files in reports — refresh the index and search for the Q3 forecast again."* 5. **Separate collections**: *"Create an index called hr for the HR folder, then search it for parental leave."* ## Licensing **The MCP server itself is MIT; the underlying GroupDocs.Search engine requires a license for production use.** Without one the server runs in **evaluation mode**, and the limits are counts, not watermarks — results look complete and are not: - **An index holds at most 100 documents** (across all indexes of a repository); indexing stops there. - **A search returns at most 10 documents.** - Every tool response carries an `evaluation` note while this applies. - Full list: [evaluation limitations](https://docs.groupdocs.com/search/net/evaluation-limitations-and-licensing/). There are two ways to license the server. **License file** — mount your `GroupDocs.Search.lic` (or `GroupDocs.Total.lic`) into the container and point `GROUPDOCS_LICENSE_PATH` at it. Works offline. **Metered (pay-per-use)** — set both `GROUPDOCS_METERED_PUBLIC_KEY` and `GROUPDOCS_METERED_PRIVATE_KEY`. You are billed for what you actually process, which suits AI agents well because their usage is bursty and hard to predict up front. If both a metered key pair and a license file are configured, **metered wins** and the file is ignored. > **Metered mode needs outbound connectivity.** Usage is reported to GroupDocs servers, so air-gapped > or firewalled deployments must allow that egress — or use a license file instead. Call the **`get_license_status`** tool at any time to see which mode is active, and — under metered — the consumed quantity and remaining credit. It processes no document and changes nothing. ### Keeping the private key out of your config The metered private key is a secret. MCP client configs are plain files on disk, and a project-scoped `.mcp.json` is committed by convention, so prefer, in order: 1. **Set the variables in your OS environment and leave them out of t
What people ask about GroupDocs.Search.Mcp
What is groupdocs-search/GroupDocs.Search.Mcp?
+
groupdocs-search/GroupDocs.Search.Mcp is mcp servers for the Claude AI ecosystem. MCP server for GroupDocs.Search for .NET — lets AI agents (Claude, Copilot, Cursor) index and run full-text search across documents on-premise. stdio transport, NuGet/Docker/GHCR/MCP Registry. It has 0 GitHub stars and its last recorded update is dated 2026-10-14.
How do I install GroupDocs.Search.Mcp?
+
You can install GroupDocs.Search.Mcp by cloning the repository (https://github.com/groupdocs-search/GroupDocs.Search.Mcp) or following the README instructions on GitHub. ClaudeWave also provides quick install blocks on this page.
Is groupdocs-search/GroupDocs.Search.Mcp safe to use?
+
Our security agent has analyzed groupdocs-search/GroupDocs.Search.Mcp and assigned a Trust Score of 87/100 (tier: Trusted). See the full breakdown of passed checks and flags on this page.
Who maintains groupdocs-search/GroupDocs.Search.Mcp?
+
groupdocs-search/GroupDocs.Search.Mcp is maintained by groupdocs-search. The last recorded GitHub activity is dated 2026-10-14, with 0 open issues.
Are there alternatives to GroupDocs.Search.Mcp?
+
Yes. On ClaudeWave you can browse similar mcp servers at /categories/mcp, sorted by popularity or recent activity.
Deploy GroupDocs.Search.Mcp to your cloud
Ship this repo to production in minutes. Each platform spins up its own environment with editable env vars.
Maintain this repo? Add a badge to your README
Drop the badge into your GitHub README to show it's tracked on ClaudeWave. Each badge links back to this page and reflects the live Trust Score.
[](https://claudewave.com/repo/groupdocs-search-groupdocs-search-mcp)<a href="https://claudewave.com/repo/groupdocs-search-groupdocs-search-mcp"><img src="https://claudewave.com/api/badge/groupdocs-search-groupdocs-search-mcp" alt="Featured on ClaudeWave: groupdocs-search/GroupDocs.Search.Mcp" width="320" height="64" /></a>More MCP Servers
Reverse engineer anything with agents, from app behavior down to native binaries.
Fair-code workflow automation platform with native AI capabilities. Combine visual building with custom code, self-host or cloud, 400+ integrations.
User-friendly AI Interface (Supports Ollama, OpenAI API, ...)
An open-source AI agent that brings the power of Gemini directly into your terminal.
Real-time global intelligence dashboard. AI-powered news aggregation, geopolitical monitoring, and infrastructure tracking in a unified situational awareness interface
🕷️ An adaptive Web Scraping framework that handles everything from a single request to a full-scale crawl! Don't be shy, join here: https://discord.gg/EMgGbDceNQ and follow here for daily tips and tricks: https://x.com/Scrapling_dev