Skip to content
advardeDeveloper docs
v1.0

Edit optimization proposal

Loading server catalog…. Download catalog

POSThttps://app.advarde.com/mcp
Write

Campaign optimizer must be enabled for the workspace.

Description: Revise an unapproved proposal using supplied copy. Requires the current revision and returns it to dashboard review. Cannot change an approved ad.

Method: tools/call · ads_edit_optimization_proposal

Output: Tool data is returned in result.structuredContent and as JSON text in result.content. Inspect result.isError before using the result. Individual output fields depend on the operation.

Access: Requires the applicable write scopes, workspace role, and account permissions.

Authentication

Use an MCP access token from MCP connections, or connect through OAuth. Send your token in the Authorization: Bearer header.

For full protocol initialization and tool discovery, use an MCP client. These examples show individual JSON-RPC requests.

Tool arguments

Send these fields inside params.arguments. The tool name is sent as params.name.

proposal_idstringrequired
format: "uuid"
expected_revisionintegerrequired
minimum: 1maximum: 1000000
variantobjectrequired
additionalProperties: false
EXPAND VARIANT
base_ad_idstringrequired
minLength: 1maxLength: 255
namestringrequired
minLength: 1maxLength: 200
titlestringrequired
minLength: 1maxLength: 50
bodystringrequired
minLength: 1maxLength: 100
target_urlstringrequired
minLength: 1maxLength: 2048
asset_idstringoptional
format: "uuid"
rationalestringrequired
minLength: 1maxLength: 4000
hypothesisstringrequired
minLength: 1maxLength: 2000
Full JSON Schema
{
  "type": "object",
  "properties": {
    "proposal_id": {
      "type": "string",
      "format": "uuid"
    },
    "expected_revision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 1000000
    },
    "variant": {
      "type": "object",
      "properties": {
        "base_ad_id": {
          "type": "string",
          "minLength": 1,
          "maxLength": 255
        },
        "name": {
          "type": "string",
          "minLength": 1,
          "maxLength": 200
        },
        "title": {
          "type": "string",
          "minLength": 1,
          "maxLength": 50
        },
        "body": {
          "type": "string",
          "minLength": 1,
          "maxLength": 100
        },
        "target_url": {
          "type": "string",
          "minLength": 1,
          "maxLength": 2048
        },
        "asset_id": {
          "type": "string",
          "format": "uuid"
        },
        "rationale": {
          "type": "string",
          "minLength": 1,
          "maxLength": 4000
        },
        "hypothesis": {
          "type": "string",
          "minLength": 1,
          "maxLength": 2000
        }
      },
      "required": [
        "base_ad_id",
        "name",
        "title",
        "body",
        "target_url",
        "rationale",
        "hypothesis"
      ],
      "additionalProperties": false
    }
  },
  "required": [
    "proposal_id",
    "expected_revision",
    "variant"
  ],
  "additionalProperties": false
}

Responses

200Successful protocol response

Inspect result.isError for tool-level failures, even when the HTTP status is 200.

202Notification accepted

MCP notifications return no JSON-RPC response body.

400Invalid request

Check the JSON-RPC envelope, parameters, and protocol version.

406Not acceptable

Accept must include application/json and text/event-stream.

429Rate limited

Wait for the Retry-After interval before making another request.

401Unauthorized

A valid, unexpired MCP bearer token is required.

403Access denied

Your connection needs access to this workspace and the requested operation.

Advarde MCP API v1.0