# publish-document-with-descendants

Publishes a document and its descendants by Id. This is an asynchronous operation that may take time for large document trees. The tool will poll for completion and return the final result when finished.

Agent View of the PolicyLayer registry record for `publish-document-with-descendants`. HTML page: https://policylayer.com/tools/mcp-dev/publish-document-with-descendants

## Facts

- Tool: `publish-document-with-descendants`
- Server: Mcp Dev (`@umbraco-cms/mcp-dev`) — https://policylayer.com/tools/mcp-dev.md
- Install: `npx -y @umbraco-cms/mcp-dev`
- Homepage: git+https://github.com/umbraco/Umbraco-CMS-MCP-Dev.git
- Risk category: Write (Medium risk)
- Registry record: grade F, identity unverified
- Server rate-limited: no
- Parameters: 0
- Recommended policy verdict: Rate-limited

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

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "publish-document-with-descendants",
    "arguments": {}
  }
}
```

## Why publish-document-with-descendants is rated Medium

Publishing documents is a reversible write operation that changes content state and visibility. While potentially impactful (affecting multiple descendants), it is not destructive (data remains intact and can be unpublished), not financial, and not execute (no arbitrary code execution).

From the tool's own definition: "Tool name 'publish-document-with-descendants' and description states it 'Publishes a document and its descendants' — this modifies the published state of content in Umbraco CMS, affecting multiple documents and potentially public-facing content visibility."

## Use case

AI agents use publish-document-with-descendants to create or update resources in Mcp Dev, usually the action step of a workflow, after the agent has gathered context. Every call changes real data in your Mcp Dev environment.

## Recommended policy (PolicyLayer)

Verdict: **Rate-limited**. Enforced by the PolicyLayer MCP gateway (https://policylayer.com/mcp-gateway) before a call reaches Mcp Dev:

```json
{
  "version": "1",
  "default": "deny",
  "tools": {
    "publish-document-with-descendants": {
      "limits": [
        {
          "counter": "publish-document-with-descendants_rate",
          "window": "minute",
          "max": 30,
          "scope": "grant"
        }
      ]
    }
  }
}
```

## Other tools on Mcp Dev (418)

- `create-document-version-rollback` — Destructive — https://policylayer.com/tools/mcp-dev/create-document-version-rollback.md
- `delete-data-type` — Destructive — https://policylayer.com/tools/mcp-dev/delete-data-type.md
- `delete-data-type-folder` — Destructive — https://policylayer.com/tools/mcp-dev/delete-data-type-folder.md
- `delete-dictionary-item` — Destructive — https://policylayer.com/tools/mcp-dev/delete-dictionary-item.md
- `delete-document` — Destructive — https://policylayer.com/tools/mcp-dev/delete-document.md
- `delete-document-blueprint` — Destructive — https://policylayer.com/tools/mcp-dev/delete-document-blueprint.md
- `delete-document-blueprint-folder` — Destructive — https://policylayer.com/tools/mcp-dev/delete-document-blueprint-folder.md
- `delete-document-public-access` — Destructive — https://policylayer.com/tools/mcp-dev/delete-document-public-access.md
- `delete-document-recycle-bin-item` — Destructive — https://policylayer.com/tools/mcp-dev/delete-document-recycle-bin-item.md
- `delete-document-type` — Destructive — https://policylayer.com/tools/mcp-dev/delete-document-type.md
- `delete-document-type-folder` — Destructive — https://policylayer.com/tools/mcp-dev/delete-document-type-folder.md
- `delete-element` — Destructive — https://policylayer.com/tools/mcp-dev/delete-element.md
- `delete-element-folder` — Destructive — https://policylayer.com/tools/mcp-dev/delete-element-folder.md
- `delete-element-folder-from-recycle-bin` — Destructive — https://policylayer.com/tools/mcp-dev/delete-element-folder-from-recycle-bin.md
- `delete-element-from-recycle-bin` — Destructive — https://policylayer.com/tools/mcp-dev/delete-element-from-recycle-bin.md
- `delete-from-recycle-bin` — Destructive — https://policylayer.com/tools/mcp-dev/delete-from-recycle-bin.md
- `delete-language` — Destructive — https://policylayer.com/tools/mcp-dev/delete-language.md
- `delete-log-viewer-saved-search-by-name` — Destructive — https://policylayer.com/tools/mcp-dev/delete-log-viewer-saved-search-by-name.md
- `delete-media` — Destructive — https://policylayer.com/tools/mcp-dev/delete-media.md
- `delete-media-from-recycle-bin` — Destructive — https://policylayer.com/tools/mcp-dev/delete-media-from-recycle-bin.md
- `delete-media-recycle-bin-item` — Destructive — https://policylayer.com/tools/mcp-dev/delete-media-recycle-bin-item.md
- `delete-media-type` — Destructive — https://policylayer.com/tools/mcp-dev/delete-media-type.md
- `delete-media-type-folder` — Destructive — https://policylayer.com/tools/mcp-dev/delete-media-type-folder.md
- `delete-member` — Destructive — https://policylayer.com/tools/mcp-dev/delete-member.md
- `delete-member-group` — Destructive — https://policylayer.com/tools/mcp-dev/delete-member-group.md
- `delete-member-type` — Destructive — https://policylayer.com/tools/mcp-dev/delete-member-type.md
- `delete-partial-view` — Destructive — https://policylayer.com/tools/mcp-dev/delete-partial-view.md
- `delete-partial-view-folder` — Destructive — https://policylayer.com/tools/mcp-dev/delete-partial-view-folder.md
- `delete-redirect` — Destructive — https://policylayer.com/tools/mcp-dev/delete-redirect.md
- `delete-script` — Destructive — https://policylayer.com/tools/mcp-dev/delete-script.md
- …and 388 more: https://policylayer.com/tools/mcp-dev.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=mcp-dev · API: https://policylayer.com/registry/api · Policy library: https://policylayer.com/policies/mcp-dev
