To brand documents automatically, give an AI agent one standing instruction and let it call an image-watermark tool locally for every file in the outgoing folder. With the GroupDocs.Watermark.Mcp server that instruction can be a single line in a rules file, a project instruction in Claude Code, or a prompt you paste into Cursor:
Put logo.png on every page of each file in the outgoing folder at 25% opacity, then list the files you produced.
The step-by-step version with config and troubleshooting is in the documentation: How to brand documents with a logo watermark using AI.
Why does manual branding drift?
Branding applied by hand varies by person: one team pastes the logo into the source file, another stamps the PDF at full strength, a third forgets. An LLM that “adds a logo” by editing document content has no stable placement either. The add_image_watermark tool applies the logo as a watermark object, with explicit opacity and rotation values, so the same inputs give the same strength and angle. Because it is an object and not pasted content, the logo can be found and removed later when the brand changes.
What does the agent decide, and what does the engine do?
| Step | The agent decides | The engine does |
|---|---|---|
| Which files are in scope | Reads the folder and your instruction | Nothing |
| Which tool to call | add_image_watermark for a logo, add_watermark for a status |
Nothing |
| Strength and angle | Passes opacity and rotation from your standard |
Draws the mark with exactly those values |
| Output | Reports the produced files | Writes a new file; the original is not modified |
The standard lives in your prompt. The server does not schedule itself and has no built-in brand policy; the repeatable part is the instruction you save and reuse.
How do you enforce the standard in five steps?
- Keep the logo beside the documents. Both the document and the image are resolved by name from the storage folder (
GROUPDOCS_MCP_STORAGE_PATH). Use a transparent PNG; a logo on a white rectangle shows that rectangle over the page. - Separate outgoing files. Set
GROUPDOCS_MCP_OUTPUT_PATHto a different folder if you want branded copies kept apart from sources. If unset, output goes to the storage folder. - Check the license. Ask: “What is the license status of the watermark server?” The agent calls
get_license_status. - Run the standard prompt. Opacity between 0.2 and 0.4 is the range the documentation recommends for branding; above 0.6 the logo dominates the page.
- Verify. Ask for a
search_watermarkspass on each produced file and compare the count with what you expect.
Can the mark also state a status?
Yes, with a second chained call. Brand and state the status in one request:
Add the logo at 25% opacity, then add a CONFIDENTIAL text watermark to that result.
Each call writes a new file, so “to that result” is what keeps both marks.
Example session (abridged)
You: Put logo.png on report.pdf at 30% opacity.
Agent: [add_image_watermark: watermarkImage logo.png, opacity 0.3]
Added image watermark from "logo.png" to "report.pdf"
You: That is too strong - redo it at 0.2.
Agent: [add_image_watermark: opacity 0.2, from the original report.pdf]
Added image watermark from "logo.png" to "report.pdf"
Two branded copies exist. Delete the 0.3 copy if you do not need it.
Iterating this way is safe because every attempt is a new file. Delete the rejected ones afterwards.
Which delivery channel suits a team rollout?
For a shared setup, the Docker image avoids installing anything else on each machine, because the runtime and native dependencies are inside it:
docker run --rm -i -v $(pwd)/documents:/data \
ghcr.io/groupdocs-watermark/watermark-net-mcp:latest
The NuGet channel (dnx GroupDocs.Watermark.Mcp --yes) needs the .NET 10 SDK. Both run on Windows, Linux and macOS (dnx on Linux/macOS also needs libgdiplus), and both use the same six tools, so the brand prompt does not change between them.
What are the limits?
Plan around two limits. First, the tool exposes opacity and rotation only: there is no position, size or margin setting. Second, evaluation mode: the server’s licensing page says unlicensed output carries evaluation limitations (the exact limits are on the library’s licensing page), so branded copies produced without a license are not distributable. Run get_license_status before a brand rollout. Under metered licensing each processed file is billed, and under a license file the server works offline. Also keep in mind that a watermark labels a document; it does not protect the content beneath it.
FAQ
Can AI add our company logo to all PDFs?
Yes. Ask for the logo by file name and give an opacity; the agent calls add_image_watermark once per file. The same call also works on Word, PowerPoint, Excel and image files.
Can I use the same logo on images and documents? Yes. Images are valid targets, so branding product photos works like branding a PDF.
What happens when the brand changes?
remove_watermarks can take the old logo off, because it was applied as a watermark object. Its textFilter matches watermark text only, so removing an image logo means removing all watermarks, text marks included. Search first so you know what is there, then add the new logo.
Go deeper
- Documentation, canonical how-to: How to brand documents with a logo watermark using AI
- Documentation hub: GroupDocs.Watermark MCP Server
- Start here: 3 ways to label AI-generated documents with watermarks via MCP
- Related: Watermark a whole folder in one prompt
- Related: Why audit the watermarks in your own documents before removing any
- On-premise and security model: 3 architectures for AI document processing, and the one that keeps files inside your network
- Questions: GroupDocs Watermark forum
- Source: GroupDocs.Watermark.Mcp on GitHub