Skip to main content
Glama

Delivery: upload areas [sandbox]

delivery_add_areas_sandbox

Upload courier delivery and pickup areas for a tariff, defined by Russian Post postal codes. Sandbox environment for delivery-service partners to test area configuration.

Instructions

[SANDBOX] Uploads the areas where courier delivery/pickup is available for the specified tariff. The address classifier is Russian Post postal codes (1 postal code = all addresses belonging to it). For delivery-service partners only. The body is an array of areas directly.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
areasYesArray of areas: directionTag, providerAreaNumber, services (intake/delivery), utcTimezone, zipCodes, restrictions.
dryRunNov0.7.0: if true — returns a preview of the HTTP request without calling the Avito API. Safe for inspecting exactly what would be done. Default: the value of AVITO_MCP_DRY_RUN_DEFAULT (usually false).
tariff_idYesTariff identifier (int32, in path); legacy decimal strings remain accepted.
idempotencyKeyNov0.7.0: optional key for duplicate protection. A repeat call with the same key within AVITO_MCP_IDEMPOTENCY_TTL_SEC returns the cached result. The same key with different args returns a conflict error. Keys are stored as bounded SHA-256 fingerprints.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv1.3.3
  2. Removedv1.3.2
  3. Changed9 schema fields changedv1.2.0
    • removedInput schema / properties / areas / items / additionalProperties
      Removed value: -{}
    • removedInput schema / properties / areas / items / description
      Removed value: -"See Area in swaggers/delivery.json"
    • addedInput schema / properties / areas / items / properties
      Added value: +{
      +  "deliverySchedule": {
      +    "properties": {
      +      "cutoff": {
      +        "properties": {
      +          "cutoffTime": {
      +            "minLength": 1,
      +            "type": "string"
      +          },
      +          "daysAfterCutoff": {
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "daysBeforeCutoff": {
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          }
      +        },
      +        "required": [
      +          "cutoffTime",
      +          "daysAfterCutoff",
      +          "daysBeforeCutoff"
      +        ],
      +        "type": "object"
      +      },
      +      "regularSchedule": {
      +        "properties": {
      +          "fri": {
      +            "items": {
      +              "type": "string"
      +            },
      +            "type": "array"
      +          },
      +          "mon": {
      +            "items": {
      +              "type": "string"
      +            },
      +            "type": "array"
      +          },
      +          "sat": {
      +            "items": {
      +              "type": "string"
      +            },
      +            "type": "array"
      +          },
      +          "sun": {
      +            "items": {
      +              "type": "string"
      +            },
      +            "type": "array"
      +          },
      +          "thu": {
      +            "items": {
      +              "type": "string"
      +            },
      +            "type": "array"
      +          },
      +          "tue": {
      +            "items": {
      +              "type": "string"
      +            },
      +            "type": "array"
      +          },
      +          "wed": {
      +            "items": {
      +              "type": "string"
      +            },
      +            "type": "array"
      +          }
      +        },
      +        "required": [
      +          "mon",
      +          "tue",
      +          "wed",
      +          "thu",
      +          "fri",
      +          "sat",
      +          "sun"
      +        ],
      +        "type": "object"
      +      }
      +    },
      +    "required": [
      +      "cutoff",
      +      "regularSchedule"
      +    ],
      +    "type": "object"
      +  },
      +  "directionTag": {
      +    "minLength": 1,
      +    "type": "string"
      +  },
      +  "intakeSchedule": {
      +    "properties": {
      +      "cutoff": {
      +        "properties": {
      +          "cutoffTime": {
      +            "minLength": 1,
      +            "type": "string"
      +          },
      +          "daysAfterCutoff": {
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "daysBeforeCutoff": {
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          }
      +        },
      +        "required": [
      +          "cutoffTime",
      +          "daysAfterCutoff",
      +          "daysBeforeCutoff"
      +        ],
      +        "type": "object"
      +      },
      +      "regularSchedule": {
      +        "properties": {
      +          "fri": {
      +            "items": {
      +              "type": "string"
      +            },
      +            "type": "array"
      +          },
      +          "mon": {
      +            "items": {
      +              "type": "string"
      +            },
      +            "type": "array"
      +          },
      +          "sat": {
      +            "items": {
      +              "type": "string"
      +            },
      +            "type": "array"
      +          },
      +          "sun": {
      +            "items": {
      +              "type": "string"
      +            },
      +            "type": "array"
      +          },
      +          "thu": {
      +            "items": {
      +              "type": "string"
      +            },
      +            "type": "array"
      +          },
      +          "tue": {
      +            "items": {
      +              "type": "string"
      +            },
      +            "type": "array"
      +          },
      +          "wed": {
      +            "items": {
      +              "type": "string"
      +            },
      +            "type": "array"
      +          }
      +        },
      +        "required": [
      +          "mon",
      +          "tue",
      +          "wed",
      +          "thu",
      +          "fri",
      +          "sat",
      +          "sun"
      +        ],
      +        "type": "object"
      +      }
      +    },
      +    "required": [
      +      "cutoff",
      +      "regularSchedule"
      +    ],
      +    "type": "object"
      +  },
      +  "providerAreaNumber": {
      +    "maxLength": 128,
      +    "minLength": 1,
      +    "type": "string"
      +  },
      +  "restrictions": {
      +    "properties": {
      +      "dimensionalFactor": {
      +        "maximum": 100000,
      +        "minimum": 1000,
      +        "type": "integer"
      +      },
      +      "maxDeclaredCost": {
      +        "maximum": 15000000,
      +        "minimum": 1000,
      +        "type": "integer"
      +      },
      +      "maxDimensionalWeight": {
      +        "maximum": 100000000000,
      +        "minimum": 1000,
      +        "type": "integer"
      +      },
      +      "maxDimensions": {
      +        "items": {
      +          "maximum": 3000,
      +          "minimum": 0,
      +          "type": "integer"
      +        },
      +        "type": "array"
      +      },
      +      "maxWeight": {
      +        "maximum": 100000000000,
      +        "minimum": 1000,
      +        "type": "integer"
      +      }
      +    },
      +    "required": [
      +      "maxDeclaredCost",
      +      "maxDimensions",
      +      "maxWeight"
      +    ],
      +    "type": "object"
      +  },
      +  "services": {
      +    "items": {
      +      "enum": [
      +        "intake",
      +        "delivery"
      +      ],
      +      "type": "string"
      +    },
      +    "type": "array"
      +  },
      +  "utcTimezone": {
      +    "minLength": 1,
      +    "type": "string"
      +  },
      +  "zipCodes": {
      +    "items": {
      +      "minLength": 1,
      +      "type": "string"
      +    },
      +    "minItems": 1,
      +    "type": "array"
      +  }
      +}
    • removedInput schema / properties / areas / items / propertyNames
      Removed value: -{
      -  "type": "string"
      -}
    • addedInput schema / properties / areas / items / required
      Added value: +[
      +  "directionTag",
      +  "providerAreaNumber",
      +  "restrictions",
      +  "services",
      +  "utcTimezone",
      +  "zipCodes"
      +]
    • changedInput schema / properties / idempotencyKey / description
      Previous value: -"v0.7.0: optional key for duplicate protection. A repeat call with the same key within AVITO_MCP_IDEMPOTENCY_TTL_SEC returns the cached result. The same key with different args returns a conflict error — this is safe by design."New value: +"v0.7.0: optional key for duplicate protection. A repeat call with the same key within AVITO_MCP_IDEMPOTENCY_TTL_SEC returns the cached result. The same key with different args returns a conflict error. Keys are stored as bounded SHA-256 fingerprints."
    • addedInput schema / properties / tariff_id / anyOf
      Added value: +[
      +  {
      +    "maximum": 9007199254740991,
      +    "minimum": -9007199254740991,
      +    "type": "integer"
      +  },
      +  {
      +    "pattern": "^-?\\d+$",
      +    "type": "string"
      +  }
      +]
    • changedInput schema / properties / tariff_id / description
      Previous value: -"Tariff identifier (in path)."New value: +"Tariff identifier (int32, in path); legacy decimal strings remain accepted."
    • removedInput schema / properties / tariff_id / type
      Removed value: -"string"
  4. Changed1 schema field changedv0.8.1
    • changedInput schema / properties / areas / items / description
      Previous value: -"See Area in swaggers/Доставка.json"New value: +"See Area in swaggers/delivery.json"
  5. Changed5 schema fields changedv0.8.0
    • changedInput schema / properties / areas / description
      Previous value: -"Массив областей."New value: +"Array of areas: directionTag, providerAreaNumber, services (intake/delivery), utcTimezone, zipCodes, restrictions."
    • changedInput schema / properties / areas / items / description
      Previous value: -"См. Area в swaggers/Доставка.json"New value: +"See Area in swaggers/Доставка.json"
    • changedInput schema / properties / dryRun / description
      Previous value: -"v0.7.0: если true — возвращает preview HTTP-запроса без вызова Avito API. Безопасно для просмотра, что именно будет сделано. Default: значение AVITO_MCP_DRY_RUN_DEFAULT (обычно false)."New value: +"v0.7.0: if true — returns a preview of the HTTP request without calling the Avito API. Safe for inspecting exactly what would be done. Default: the value of AVITO_MCP_DRY_RUN_DEFAULT (usually false)."
    • changedInput schema / properties / idempotencyKey / description
      Previous value: -"v0.7.0: опциональный ключ для защиты от дублей. Повторный вызов с тем же ключом в течение AVITO_MCP_IDEMPOTENCY_TTL_SEC возвращает закешированный результат. Тот же ключ с другими args вернёт ошибку conflict — это безопасно по дизайну."New value: +"v0.7.0: optional key for duplicate protection. A repeat call with the same key within AVITO_MCP_IDEMPOTENCY_TTL_SEC returns the cached result. The same key with different args returns a conflict error — this is safe by design."
    • changedInput schema / properties / tariff_id / description
      Previous value: -"ID тарифа."New value: +"Tariff identifier (in path)."
  6. First observedv0.7.4

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=false and destructiveHint=false. The description adds context: 'The address classifier is Russian Post postal codes (1 postal code = all addresses belonging to it).' However, it does not clarify whether the upload replaces or appends existing areas, or mention sandbox-specific behavior beyond the tag.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences, each serving a clear function: purpose, classifier detail, and audience. No redundant information. Efficient and front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite high schema coverage, the description lacks key contextual details for a mutation tool. It does not explain whether the upload replaces or appends areas, what validation occurs, or sandbox environment implications. The tool's complexity (nested objects) is not addressed in the description.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with detailed descriptions for all parameters. The main description adds minimal extra meaning: it explains that areas are an array and that zipCodes are Russian postal codes. This is useful but not significant beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's action: 'Uploads the areas where courier delivery/pickup is available for the specified tariff.' It specifies the classifier (Russian Post postal codes) and audience (delivery-service partners only). This distinguishes it from siblings like delivery_add_terminals_sandbox or delivery_add_sorting_center.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no explicit guidance on when to use this tool versus alternatives. It mentions it is for delivery-service partners only, but does not state prerequisites (e.g., tariff must exist) or when not to use it. No mention of alternatives or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Deploy Server

Other Tools