# Publish application form changes

`matchmaking_application_editor.publish`

Publish exactly the saved draft and participant effects reviewed by publish_review. This changes an existing application immediately and can permanently delete removed questions' submitted answers and file access. First establish intent, explain the reviewed question changes, affected stored data, selected participants and exact message, then request consent. Consent is required even with no participants. Pass the review's live_revision as expected_live_revision, draft_revision as expected_draft_revision and exact review_digest, recipient_ids and message. Use allow_destructive_changes only for expressly approved removals; unsupported conversions remain blocked. Communications include update notifications/emails and, with a message, shared messages and possible additional notifications/emails. Undo/reset cannot recall communications or restore deleted answers. Preserve client_request_id for identical retries; read get_config after success or any uncertain outcome before a new action. This toolset is available only by specific grant; access can be requested. Saved drafts and published question changes can mark earlier matching results as out of date. These tools do not rerun matching, contact recipients or create Deals.

[Matchmaking criteria editor guide](https://docs.staging.levr.ai/mcp/resources/matchmaking_application_editor.md)

Availability depends on live discovery and your access to the record. Do not infer MCP calls from REST paths.

Operation: write. Required OAuth scopes: mcp.

## Input schema

```json
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false,
  "properties": {
    "allow_destructive_changes": {
      "default": false,
      "description": "Set true only after explicit consent to the reviewed permanent answer deletion.",
      "type": "boolean"
    },
    "client_request_id": {
      "description": "Unique action key. Retry the identical call with this same key after an uncertain outcome.",
      "maxLength": 255,
      "minLength": 1,
      "type": "string"
    },
    "expected_draft_revision": {
      "description": "Copy draft_revision from the same current action review.",
      "pattern": "^[0-9a-f]{64}$",
      "type": "string"
    },
    "expected_live_revision": {
      "description": "Copy live_revision from the current action review.",
      "pattern": "^[0-9a-f]{64}$",
      "type": "string"
    },
    "message": {
      "default": "",
      "description": "Optional shared participant message. Review the same text before publishing.",
      "maxLength": 4000,
      "type": "string"
    },
    "provider_slug": {
      "description": "Provider workspace returned by providers.list.",
      "maxLength": 255,
      "minLength": 1,
      "type": "string"
    },
    "recipient_ids": {
      "default": [],
      "description": "Exact recipient_id values from publish_review. Empty selects no communications; defaults are never applied.",
      "items": {
        "pattern": "^recipient_[a-f0-9]{64}$",
        "type": "string"
      },
      "maxItems": 100,
      "type": "array",
      "uniqueItems": true
    },
    "review_digest": {
      "description": "Exact review_digest from publish_review for these recipients and message.",
      "pattern": "^[0-9a-f]{64}$",
      "type": "string"
    },
    "user_confirmed": {
      "const": true,
      "type": "boolean"
    },
    "workspace_slug": {
      "description": "Matching workspace from projects.list or projects.get; use workspace_slug, not the Project id.",
      "maxLength": 32,
      "minLength": 1,
      "pattern": "^mmw_[a-z0-9]+$",
      "type": "string"
    }
  },
  "required": [
    "provider_slug",
    "workspace_slug",
    "expected_live_revision",
    "expected_draft_revision",
    "review_digest",
    "client_request_id",
    "user_confirmed"
  ],
  "type": "object"
}
```

## Output schema

```json
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false,
  "oneOf": [
    {
      "not": {
        "required": [
          "error"
        ]
      },
      "properties": {
        "ok": {
          "const": true
        }
      },
      "required": [
        "data"
      ]
    },
    {
      "not": {
        "required": [
          "data"
        ]
      },
      "properties": {
        "ok": {
          "const": false
        }
      },
      "required": [
        "error"
      ]
    }
  ],
  "properties": {
    "data": {
      "additionalProperties": false,
      "properties": {
        "config_source": {
          "enum": [
            "live",
            "draft"
          ],
          "type": "string"
        },
        "draft_revision": {
          "anyOf": [
            {
              "description": "SHA-256 fingerprint of the exact document content.",
              "pattern": "^[0-9a-f]{64}$",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "description": "SHA-256 fingerprint of the exact document content."
        },
        "frontend_link": {
          "anyOf": [
            {
              "format": "uri",
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "has_draft": {
          "type": "boolean"
        },
        "live_revision": {
          "description": "SHA-256 fingerprint of the exact document content.",
          "pattern": "^[0-9a-f]{64}$",
          "type": "string"
        },
        "owner_kind": {
          "enum": [
            "client_intake",
            "deal",
            "matchmaking"
          ],
          "type": "string"
        },
        "owner_name": {
          "anyOf": [
            {
              "description": "Current application's owner display name.",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "description": "Current application's owner display name."
        },
        "owner_slug": {
          "anyOf": [
            {
              "description": "Canonical owning workspace ID. Use it as deal_id, business_id or workspace_slug in this editor.",
              "maxLength": 255,
              "minLength": 1,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "description": "Canonical owning workspace ID. Use it as deal_id, business_id or workspace_slug in this editor."
        },
        "provider_slug": {
          "description": "Stable public identifier for the referenced resource.",
          "maxLength": 255,
          "minLength": 1,
          "type": "string"
        },
        "publication": {
          "additionalProperties": false,
          "properties": {
            "changed": {
              "type": "boolean"
            },
            "changed_section_keys": {
              "items": {
                "maxLength": 255,
                "type": "string"
              },
              "maxItems": 1000,
              "type": "array"
            },
            "message": {
              "default": "",
              "description": "Optional shared participant message. Review the same text before publishing.",
              "maxLength": 4000,
              "type": "string"
            },
            "recipient_ids": {
              "default": [],
              "description": "Exact recipient_id values from publish_review. Empty selects no communications; defaults are never applied.",
              "items": {
                "pattern": "^recipient_[a-f0-9]{64}$",
                "type": "string"
              },
              "maxItems": 100,
              "type": "array",
              "uniqueItems": true
            }
          },
          "required": [
            "changed",
            "changed_section_keys",
            "recipient_ids",
            "message"
          ],
          "type": "object"
        },
        "runtime_slug": {
          "description": "Stable public identifier for the referenced resource.",
          "maxLength": 255,
          "minLength": 1,
          "type": "string"
        }
      },
      "required": [
        "owner_kind",
        "owner_slug",
        "owner_name",
        "frontend_link",
        "runtime_slug",
        "provider_slug",
        "has_draft",
        "live_revision",
        "draft_revision",
        "config_source",
        "publication"
      ],
      "type": "object"
    },
    "error": {
      "additionalProperties": false,
      "properties": {
        "code": {
          "type": "string"
        },
        "details": {
          "additionalProperties": true,
          "description": "Optional bounded, agent-safe correction or recovery facts.",
          "type": "object"
        },
        "message": {
          "type": "string"
        },
        "retryable": {
          "type": "boolean"
        }
      },
      "required": [
        "code",
        "message",
        "retryable"
      ],
      "type": "object"
    },
    "meta": {
      "additionalProperties": false,
      "properties": {
        "request_id": {
          "type": "string"
        }
      },
      "required": [
        "request_id"
      ],
      "type": "object"
    },
    "ok": {
      "description": "Whether the tool completed successfully.",
      "type": "boolean"
    }
  },
  "required": [
    "ok",
    "meta"
  ],
  "type": "object"
}
```

Check the result, then read the affected record to confirm your change.
