# remove_watermark

Remove VML watermarks (e.g., DRAFT) from all document headers.

Agent View of the PolicyLayer registry record for `remove_watermark`. HTML page: https://policylayer.com/tools/securityronin-docx-mcp/remove-watermark

## Facts

- Tool: `remove_watermark`
- Server: Docx (`securityronin/docx-mcp`) — https://policylayer.com/tools/securityronin-docx-mcp.md
- Homepage: https://github.com/SecurityRonin/docx-mcp
- Risk category: Destructive (Critical risk)
- Registry record: grade F, identity unverified
- Server rate-limited: no
- Parameters: 0
- Recommended policy verdict: Hidden

## Example call (MCP tools/call, JSON-RPC 2.0)

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "remove_watermark",
    "arguments": {}
  }
}
```

## Why remove_watermark is rated Critical

This tool irreversibly removes watermarks from all document headers. The action is destructive because it permanently deletes document elements (VML watermarks) across the entire document, with no indication of reversibility. Misuse could result in permanent loss of document markings such as DRAFT status indicators across all headers.

From the tool's own definition: "Remove VML watermarks... from all document headers"

Risk signals: Bulk/mass operation — affects multiple targets

## Use case

AI agents call remove_watermark to permanently remove resources in Docx, typically in cleanup and lifecycle workflows. It does its job in a single call, and there is no undo.

## Recommended policy (PolicyLayer)

Verdict: **Hidden**. Enforced by the PolicyLayer MCP gateway (https://policylayer.com/mcp-gateway) before a call reaches Docx:

```json
{
  "version": "1",
  "default": "deny",
  "hide": [
    "remove_watermark"
  ]
}
```

## Other tools on Docx (218)

- `delete_column_from_table` — Destructive — https://policylayer.com/tools/securityronin-docx-mcp/delete-column-from-table.md
- `delete_comment` — Destructive — https://policylayer.com/tools/securityronin-docx-mcp/delete-comment.md
- `delete_content_control` — Destructive — https://policylayer.com/tools/securityronin-docx-mcp/delete-content-control.md
- `delete_custom_property` — Destructive — https://policylayer.com/tools/securityronin-docx-mcp/delete-custom-property.md
- `delete_endnote` — Destructive — https://policylayer.com/tools/securityronin-docx-mcp/delete-endnote.md
- `delete_field` — Destructive — https://policylayer.com/tools/securityronin-docx-mcp/delete-field.md
- `delete_footer` — Destructive — https://policylayer.com/tools/securityronin-docx-mcp/delete-footer.md
- `delete_footnote` — Destructive — https://policylayer.com/tools/securityronin-docx-mcp/delete-footnote.md
- `delete_header` — Destructive — https://policylayer.com/tools/securityronin-docx-mcp/delete-header.md
- `delete_image` — Destructive — https://policylayer.com/tools/securityronin-docx-mcp/delete-image.md
- `delete_paragraph` — Destructive — https://policylayer.com/tools/securityronin-docx-mcp/delete-paragraph.md
- `delete_section_break` — Destructive — https://policylayer.com/tools/securityronin-docx-mcp/delete-section-break.md
- `delete_style` — Destructive — https://policylayer.com/tools/securityronin-docx-mcp/delete-style.md
- `delete_table` — Destructive — https://policylayer.com/tools/securityronin-docx-mcp/delete-table.md
- `delete_table_row` — Destructive — https://policylayer.com/tools/securityronin-docx-mcp/delete-table-row.md
- `delete_text` — Destructive — https://policylayer.com/tools/securityronin-docx-mcp/delete-text.md
- `flatten_document` — Destructive — https://policylayer.com/tools/securityronin-docx-mcp/flatten-document.md
- `remove_bookmark` — Destructive — https://policylayer.com/tools/securityronin-docx-mcp/remove-bookmark.md
- `scrub_pii` — Destructive — https://policylayer.com/tools/securityronin-docx-mcp/scrub-pii.md
- `compare_documents` — Execute — https://policylayer.com/tools/securityronin-docx-mcp/compare-documents.md
- `xpath_query` — Execute — https://policylayer.com/tools/securityronin-docx-mcp/xpath-query.md
- `audit_document` — Read — https://policylayer.com/tools/securityronin-docx-mcp/audit-document.md
- `check_accessibility` — Read — https://policylayer.com/tools/securityronin-docx-mcp/check-accessibility.md
- `compare_contracts` — Read — https://policylayer.com/tools/securityronin-docx-mcp/compare-contracts.md
- `diff_to_text` — Read — https://policylayer.com/tools/securityronin-docx-mcp/diff-to-text.md
- `export_markdown` — Read — https://policylayer.com/tools/securityronin-docx-mcp/export-markdown.md
- `generate_change_summary` — Read — https://policylayer.com/tools/securityronin-docx-mcp/generate-change-summary.md
- `get_alt_text` — Read — https://policylayer.com/tools/securityronin-docx-mcp/get-alt-text.md
- `get_body_text` — Read — https://policylayer.com/tools/securityronin-docx-mcp/get-body-text.md
- `get_bookmarked_text` — Read — https://policylayer.com/tools/securityronin-docx-mcp/get-bookmarked-text.md
- …and 188 more: https://policylayer.com/tools/securityronin-docx-mcp.md

## For agents

This record is a snapshot. Live verdicts and the full registry:

- Check every server in your MCP config at once: `npx -y policylayer stack`
- Vet a server before you add it: install the mcp-precheck skill — `npx skills add https://policylayer.com` (skill text: https://policylayer.com/skill.md)
- Query the registry over MCP: endpoint `https://api.policylayer.com/mcp` — tools `check_mcp_server`, `check_mcp_stack`, `check_tool`, `search_registry`, `get_change_events`

---

Source: the PolicyLayer MCP registry — one continuously verified record per MCP server. Full record: https://policylayer.com/registry?q=securityronin-docx-mcp · API: https://policylayer.com/registry/api · Policy library: https://policylayer.com/policies/securityronin-docx-mcp
