An AI agent should find watermarks in a document locally before it removes any, because the search tells it what is really there and what a removal tool often cannot take out. With the GroupDocs.Watermark.Mcp server, Claude Code, Cursor or GitHub Copilot can run that sequence on your own files:

Does contract.pdf have a watermark, and what does it say?

The step-by-step version with config and troubleshooting is in the documentation: How to find and remove watermarks with an AI agent.

Who is this for, and what is it not for?

This post is about governance of documents you own or are authorised to change: a DRAFT stamp that outlived its draft, a template that still carries last year’s brand, an internal mark that should not reach an archive. It is not a guide to stripping marks from documents that belong to someone else, and the server’s documentation says plainly that removing a watermark from a document you have no right to redistribute is a different matter that no API changes. The limits below also show that the tool cannot remove what is part of the page itself.

Why is “remove the watermark” the wrong first prompt?

The usual request skips a step. An LLM asked to take a mark off can call the removal tool and report success, but “reported as removed” and “removed” are different statements. Without a text filter, remove_watermarks removes every watermark the engine can identify, including the company logo you meant to keep. And if the visible DRAFT is not a watermark object at all, nothing is removed and the file you ship still says DRAFT. The reliable order is three calls.

Step 1: How do you find watermarks in documents with an AI agent?

search_watermarks reports the watermark objects the engine can identify. It returns count and, per mark, type (text or image), text, page, position, size and rotateAngle.

List every watermark in contract.pdf with its page and text.

An empty result on a file that visibly shows DRAFT is informative, not a failure: the mark is part of the page content, so a removal call usually cannot take it out.

remove_watermarks with textFilter removes only marks whose text contains the given substring, case-insensitively, and saves <name>_unwatermarked.<ext>.

Remove the DRAFT watermark but leave the company logo.

If nothing matches, the original is saved unchanged with a message starting “No matching watermarks found in”, so you can tell a no-op from a removal.

Step 3: How do you verify the cleanup?

Now search the cleaned file and confirm what is left.

A second search_watermarks call on the produced file costs one call and is the one people skip. It is also how you audit a folder: ask for every file that still carries DRAFT, with the page and text of each mark, before you archive or reuse the set.

Example session (abridged)

You:    Does contract.pdf have a watermark, and what does it say?
Agent:  [search_watermarks]
        count: 2
        - type: text,  text: "DRAFT", page: 1, rotateAngle: -45
        - type: image, page: 1 (company logo)
You:    Remove the DRAFT watermark but leave the logo.
Agent:  [remove_watermarks: textFilter "DRAFT"]
        Removed 1 watermark(s) from "contract.pdf"
        Saved as contract_unwatermarked.pdf
Agent:  [search_watermarks on the cleaned file]
        count: 1 - type: image. DRAFT is gone, the logo remains.

What will not come out?

The mark is Removable?
A watermark object added by this server or the GroupDocs library Yes
A watermark object added by many common tools Often, for documents you are entitled to change (see the intent section above)
Text drawn into the page content No, it is content, not a watermark
Pixels flattened into a page image No, nothing distinguishes it from the page

For the last two, the right fix is a clean copy from the source document, or redaction when the aim is to cover an area.

What are the limits?

Without a license, the cleaned file is affected too: the server’s licensing page says output carries evaluation limitations, and tool responses include an evaluation-mode notice; the exact limits are on the library’s licensing page. A cleaned copy produced in evaluation mode is therefore a draft in its own right. Call get_license_status first; it returns mode without processing a document. A watermark is also only a deterrent, so cleanup is about accuracy of your records and not about security.

FAQ

Can an AI agent detect watermarks in a PDF? Yes. search_watermarks lists the watermark objects it can identify, with their text, page and position. It does not detect text that was drawn directly into the page.

Can I remove the draft watermark from a Word file with AI? For your own documents, yes. Ask the agent to search first, then call remove_watermarks with textFilter set to DRAFT, and check the result with a second search.

How do I list every watermark in a folder? Name the folder and ask for each file with its marks. The agent calls search_watermarks per file and summarises the results.

Go deeper