← All MCP tools

MCP tool

create_agent_mission

Create a durable mission with explicit objectives, success criteria and an initial authority mandate. Observe/recommend mandates cannot carry money authority. An execute mandate requires an explicit action allowlist, integer-minor-unit budget ceiling and currency. This stores authority only: it does not start a run, call a provider or spend money. Show an execute mandate to the user and obtain explicit approval before creating it.

Input

Pass fields from this schema as the tool arguments. Runtime ownership, product scope and readiness checks still apply.

Input JSON Schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "title": {
      "type": "string",
      "minLength": 1,
      "maxLength": 160
    },
    "objectives": {
      "minItems": 1,
      "maxItems": 20,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "description": {
            "type": "string",
            "minLength": 1,
            "maxLength": 2000
          },
          "successCriteria": {
            "minItems": 1,
            "maxItems": 20,
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "maxLength": 500
            }
          }
        },
        "required": [
          "description",
          "successCriteria"
        ]
      }
    },
    "mandate": {
      "default": {
        "mode": "observe",
        "allowedActions": []
      },
      "type": "object",
      "properties": {
        "mode": {
          "default": "observe",
          "type": "string",
          "enum": [
            "observe",
            "recommend",
            "execute"
          ]
        },
        "allowedActions": {
          "default": [],
          "maxItems": 50,
          "type": "array",
          "items": {
            "type": "string",
            "minLength": 1,
            "maxLength": 120,
            "pattern": "^[a-z][a-z0-9]*(?:[._:-][a-z0-9]+)*$"
          }
        },
        "maxBudgetMinor": {
          "type": "integer",
          "minimum": 0,
          "maximum": 1900000000
        },
        "currency": {
          "type": "string",
          "enum": [
            "GBP",
            "USD",
            "EUR"
          ]
        },
        "validUntil": {
          "type": "string",
          "format": "date-time",
          "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
        }
      }
    }
  },
  "required": [
    "title",
    "objectives"
  ]
}

REST mapping and authority

The tool wraps this REST endpoint. The mapping identifies path/query/body transformations and approval or idempotency headers.

Request contract
{
  "method": "POST",
  "path": "/api/v1/agent/missions",
  "pathFields": [],
  "pathSchema": {
    "type": "object",
    "properties": {},
    "additionalProperties": false
  },
  "pathEncoding": "encodeURIComponent for each path field",
  "governedAction": null,
  "headers": {},
  "bodySchema": {
    "type": "object",
    "properties": {
      "title": {
        "type": "string",
        "minLength": 1,
        "maxLength": 160
      },
      "objectives": {
        "minItems": 1,
        "maxItems": 20,
        "type": "array",
        "items": {
          "type": "object",
          "properties": {
            "description": {
              "type": "string",
              "minLength": 1,
              "maxLength": 2000
            },
            "successCriteria": {
              "minItems": 1,
              "maxItems": 20,
              "type": "array",
              "items": {
                "type": "string",
                "minLength": 1,
                "maxLength": 500
              }
            }
          },
          "required": [
            "description",
            "successCriteria"
          ]
        }
      },
      "mandate": {
        "default": {
          "mode": "observe",
          "allowedActions": []
        },
        "type": "object",
        "properties": {
          "mode": {
            "default": "observe",
            "type": "string",
            "enum": [
              "observe",
              "recommend",
              "execute"
            ]
          },
          "allowedActions": {
            "default": [],
            "maxItems": 50,
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "maxLength": 120,
              "pattern": "^[a-z][a-z0-9]*(?:[._:-][a-z0-9]+)*$"
            }
          },
          "maxBudgetMinor": {
            "type": "integer",
            "minimum": 0,
            "maximum": 1900000000
          },
          "currency": {
            "type": "string",
            "enum": [
              "GBP",
              "USD",
              "EUR"
            ]
          },
          "validUntil": {
            "type": "string",
            "format": "date-time",
            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
          }
        }
      }
    },
    "additionalProperties": false,
    "required": [
      "title",
      "objectives"
    ]
  },
  "responseMapping": "REST JSON is returned as MCP structuredContent and a compatibility text block; privacy-sensitive tools validate their output schema."
}

Output

This is the registered MCP output envelope. Nested fields are only modeled where the schema explicitly defines them.

Output JSON Schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "mission": {
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {}
    }
  },
  "required": [
    "mission"
  ],
  "additionalProperties": {}
}

Safety annotations

MCP annotations
{
  "readOnlyHint": false,
  "destructiveHint": true,
  "idempotentHint": false,
  "openWorldHint": false
}

Annotations help a client present the tool. The API independently enforces authorization and exact action approvals. Error and retry guidance →

create_agent_mission | AdBuyMCP docs