Configuration

Configure the GroupDocs.Search MCP server on the docker run command line — volumes and -e variables before the image name:

docker run --rm -i \
  -v /path/to/documents:/data \
  -v /path/to/license-folder:/license:ro \
  -e GROUPDOCS_LICENSE_PATH=/license/GroupDocs.Search.lic \
  ghcr.io/groupdocs-search/search-net-mcp:latest

Environment variables

VariableDescriptionDefault
GROUPDOCS_MCP_STORAGE_PATHDocuments folder inside the container; tool paths are relative to it/data in the image
GROUPDOCS_MCP_INDEX_PATHWhere indexes are stored; each index is a sub-folder named after it<output or storage>/.groupdocs-search-index
GROUPDOCS_MCP_OUTPUT_PATHOptional writable folder; indexes go under it when GROUPDOCS_MCP_INDEX_PATH is not setsame as storage
GROUPDOCS_LICENSE_PATHPath inside the container to a GroupDocs license fileempty = evaluation mode
GROUPDOCS_METERED_PUBLIC_KEYMetered public key. Requires the private key too; takes precedence over the license fileunset
GROUPDOCS_METERED_PRIVATE_KEYMetered private key. Treat as a secret — see Licensingunset

These are container paths, not host paths: /data is whatever host folder you mounted there.

Where indexes live

By default, in .groupdocs-search-index inside the documents folder — /data/.groupdocs-search-index/contracts for an index named contracts. That keeps one mount for everything: the index survives --rm, and the next container finds it. The server never indexes its own index folder. In a code repository, add .groupdocs-search-index/ to .gitignore.

The index contains the documents’ text. Protect and dispose of it like the documents.

Read-only documents and a separate index

Mount the documents read-only and give the index its own writable volume — always both together:

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

Without the /index volume — or without GROUPDOCS_MCP_INDEX_PATH — the server tries to write the index into the read-only /data and indexing fails with “The index folder … is not writable by the server process”.

Linux: run 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 the index cannot be written — indexing fails with “The index folder … is not writable by the server process”. Run the container as your user. Docker Desktop on Windows and macOS does not enforce this. Add --user "$(id -u):$(id -g)" — or the numbers, in a JSON config: Install on Linux.

Metered keys

Forward the keys by name so they never appear in a config file:

docker run --rm -i -v /path/to/documents:/data \
  -e GROUPDOCS_METERED_PUBLIC_KEY -e GROUPDOCS_METERED_PRIVATE_KEY \
  ghcr.io/groupdocs-search/search-net-mcp:latest

Indexes from older versions

Indexes built by GroupDocs.Search 22.7–26.8 are converted to the 26.10 format on first use. The original is kept as <index>.pre-26.10-backup next to it, and the tool response says a conversion happened. Delete the backup once you are satisfied.

Docker Compose

services:
  groupdocs-search:
    image: ghcr.io/groupdocs-search/search-net-mcp:26.10.1
    stdin_open: true
    volumes:
      - ./documents:/data

A Compose service suits supervised or shared hosts; most desktop clients start the container themselves per session.

Close
Loading

Analyzing your prompt, please hold on...

An error occurred while retrieving the results. Please refresh the page and try again.