Skip to main content
Glama

Forecast ad delivery

soclo_ads_get_linked_in_supply_forecast
Read-onlyIdempotent

Soclo Ads: Forecast ad delivery. Read only; no spend. Fields: soclo://tools/soclo_ads_get_linked_in_supply_forecast.

Input Schema

NameRequiredDescriptionDefault
confirmNoTrue only after owner approval of spending/deletion preview.
payloadYes
platformNo
accountIdYes
requestIdNoReuse this request ID for confirmation and outcome recovery.
parametersNo
adAccountIdNoAdvertiser/ad account selected from your Soclo connection.
expectedCurrencyNoApproved preview currency, e.g. GBP.
expectedBudgetTypeNoApproved preview budget type: daily or lifetime.
expectedBudgetAmountNoApproved preview amount; changes require a new preview.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed33 schema fields changed
    • addedInput schema / definitions
      Added value: +{
      +  "s1": {
      +    "properties": {
      +      "address": {
      +        "type": "string"
      +      },
      +      "distanceUnit": {
      +        "enum": [
      +          "mile",
      +          "kilometer"
      +        ],
      +        "type": "string"
      +      },
      +      "latitude": {
      +        "maximum": 90,
      +        "minimum": -90,
      +        "type": "number"
      +      },
      +      "longitude": {
      +        "maximum": 180,
      +        "minimum": -180,
      +        "type": "number"
      +      },
      +      "name": {
      +        "type": "string"
      +      },
      +      "radius": {
      +        "type": "number"
      +      }
      +    },
      +    "required": [
      +      "latitude",
      +      "longitude",
      +      "radius",
      +      "distanceUnit"
      +    ],
      +    "type": "object"
      +  },
      +  "s2": {
      +    "enum": [
      +      "africa",
      +      "asia",
      +      "europe",
      +      "north_america",
      +      "south_america",
      +      "oceania",
      +      "central_america",
      +      "caribbean",
      +      "eea",
      +      "euro_area",
      +      "nafta",
      +      "mercosur",
      +      "afta",
      +      "apec",
      +      "gcc",
      +      "cisfta",
      +      "emerging_markets",
      +      "itunes_app_store",
      +      "android_free_store",
      +      "android_paid_store"
      +    ],
      +    "type": "string"
      +  },
      +  "s3": {
      +    "items": {
      +      "properties": {
      +        "key": {
      +          "type": "string"
      +        },
      +        "name": {
      +          "type": "string"
      +        }
      +      },
      +      "required": [
      +        "key"
      +      ],
      +      "type": "object"
      +    },
      +    "type": "array"
      +  }
      +}
    • removedInput schema / properties / accountId / description
      Removed value: -"The connected ad account in Soclo."
    • removedInput schema / properties / payload / properties / campaignType / description
      Removed value: -"Defaults to SPONSORED_UPDATES."
    • removedInput schema / properties / payload / properties / connectedTelevisionOnly / description
      Removed value: -"Defaults to false."
    • removedInput schema / properties / payload / properties / currency / description
      Removed value: -"ISO 4217, defaults to USD."
    • removedInput schema / properties / payload / properties / dailyBudget / description
      Removed value: -"Either dailyBudget or totalBudget is required."
    • removedInput schema / properties / payload / properties / enableAudienceExpansion / description
      Removed value: -"Defaults to false."
    • changedInput schema / properties / payload / properties / spec / properties / cities / items / anyOf
      Previous value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "properties": {
      -      "distanceUnit": {
      -        "description": "Required if radius is set.",
      -        "enum": [
      -          "mile",
      -          "kilometer"
      -        ],
      -        "type": "string"
      -      },
      -      "key": {
      -        "type": "string"
      -      },
      -      "name": {
      -        "type": "string"
      -      },
      -      "radius": {
      -        "type": "number"
      -      }
      -    },
      -    "required": [
      -      "key"
      -    ],
      -    "type": "object"
      -  }
      -]New value: +[
      +  {
      +    "type": "string"
      +  },
      +  {
      +    "properties": {
      +      "distanceUnit": {
      +        "enum": [
      +          "mile",
      +          "kilometer"
      +        ],
      +        "type": "string"
      +      },
      +      "key": {
      +        "type": "string"
      +      },
      +      "name": {
      +        "type": "string"
      +      },
      +      "radius": {
      +        "type": "number"
      +      }
      +    },
      +    "required": [
      +      "key"
      +    ],
      +    "type": "object"
      +  }
      +]
    • removedInput schema / properties / payload / properties / spec / properties / countries / description
      Removed value: -"ISO 3166-1 alpha-2 country codes (e.g. ['US'])."
    • addedInput schema / properties / payload / properties / spec / properties / countryGroups / items / $ref
      Added value: +"#/definitions/s2"
    • removedInput schema / properties / payload / properties / spec / properties / countryGroups / items / enum
      Removed value: -[
      -  "africa",
      -  "asia",
      -  "europe",
      -  "north_america",
      -  "south_america",
      -  "oceania",
      -  "central_america",
      -  "caribbean",
      -  "eea",
      -  "euro_area",
      -  "nafta",
      -  "mercosur",
      -  "afta",
      -  "apec",
      -  "gcc",
      -  "cisfta",
      -  "emerging_markets",
      -  "itunes_app_store",
      -  "android_free_store",
      -  "android_paid_store"
      -]
    • removedInput schema / properties / payload / properties / spec / properties / countryGroups / items / type
      Removed value: -"string"
    • addedInput schema / properties / payload / properties / spec / properties / customLocations / items / $ref
      Added value: +"#/definitions/s1"
    • removedInput schema / properties / payload / properties / spec / properties / customLocations / items / properties
      Removed value: -{
      -  "address": {
      -    "type": "string"
      -  },
      -  "distanceUnit": {
      -    "enum": [
      -      "mile",
      -      "kilometer"
      -    ],
      -    "type": "string"
      -  },
      -  "latitude": {
      -    "maximum": 90,
      -    "minimum": -90,
      -    "type": "number"
      -  },
      -  "longitude": {
      -    "maximum": 180,
      -    "minimum": -180,
      -    "type": "number"
      -  },
      -  "name": {
      -    "type": "string"
      -  },
      -  "radius": {
      -    "description": "Positive radius around the point.",
      -    "type": "number"
      -  }
      -}
    • removedInput schema / properties / payload / properties / spec / properties / customLocations / items / required
      Removed value: -[
      -  "latitude",
      -  "longitude",
      -  "radius",
      -  "distanceUnit"
      -]
    • removedInput schema / properties / payload / properties / spec / properties / customLocations / items / type
      Removed value: -"object"
    • removedInput schema / properties / payload / properties / spec / properties / excludedLocations / properties / cities / items / properties / distanceUnit / description
      Removed value: -"Required if radius is set."
    • removedInput schema / properties / payload / properties / spec / properties / excludedLocations / properties / cities / items / properties / radius / description
      Removed value: -"Radius around the excluded city. Requires distanceUnit."
    • addedInput schema / properties / payload / properties / spec / properties / excludedLocations / properties / countryGroups / items / $ref
      Added value: +"#/definitions/s2"
    • removedInput schema / properties / payload / properties / spec / properties / excludedLocations / properties / countryGroups / items / enum
      Removed value: -[
      -  "africa",
      -  "asia",
      -  "europe",
      -  "north_america",
      -  "south_america",
      -  "oceania",
      -  "central_america",
      -  "caribbean",
      -  "eea",
      -  "euro_area",
      -  "nafta",
      -  "mercosur",
      -  "afta",
      -  "apec",
      -  "gcc",
      -  "cisfta",
      -  "emerging_markets",
      -  "itunes_app_store",
      -  "android_free_store",
      -  "android_paid_store"
      -]
    • removedInput schema / properties / payload / properties / spec / properties / excludedLocations / properties / countryGroups / items / type
      Removed value: -"string"
    • addedInput schema / properties / payload / properties / spec / properties / excludedLocations / properties / customLocations / items / $ref
      Added value: +"#/definitions/s1"
    • removedInput schema / properties / payload / properties / spec / properties / excludedLocations / properties / customLocations / items / properties
      Removed value: -{
      -  "address": {
      -    "type": "string"
      -  },
      -  "distanceUnit": {
      -    "enum": [
      -      "mile",
      -      "kilometer"
      -    ],
      -    "type": "string"
      -  },
      -  "latitude": {
      -    "maximum": 90,
      -    "minimum": -90,
      -    "type": "number"
      -  },
      -  "longitude": {
      -    "maximum": 180,
      -    "minimum": -180,
      -    "type": "number"
      -  },
      -  "name": {
      -    "type": "string"
      -  },
      -  "radius": {
      -    "description": "Positive radius around the point.",
      -    "type": "number"
      -  }
      -}
    • removedInput schema / properties / payload / properties / spec / properties / excludedLocations / properties / customLocations / items / required
      Removed value: -[
      -  "latitude",
      -  "longitude",
      -  "radius",
      -  "distanceUnit"
      -]
    • removedInput schema / properties / payload / properties / spec / properties / excludedLocations / properties / customLocations / items / type
      Removed value: -"object"
    • addedInput schema / properties / payload / properties / spec / properties / excludedLocations / properties / regions / $ref
      Added value: +"#/definitions/s3"
    • removedInput schema / properties / payload / properties / spec / properties / excludedLocations / properties / regions / items
      Removed value: -{
      -  "properties": {
      -    "key": {
      -      "type": "string"
      -    },
      -    "name": {
      -      "type": "string"
      -    }
      -  },
      -  "required": [
      -    "key"
      -  ],
      -  "type": "object"
      -}
    • removedInput schema / properties / payload / properties / spec / properties / excludedLocations / properties / regions / type
      Removed value: -"array"
    • addedInput schema / properties / payload / properties / spec / properties / excludedLocations / properties / zips / $ref
      Added value: +"#/definitions/s3"
    • removedInput schema / properties / payload / properties / spec / properties / excludedLocations / properties / zips / items
      Removed value: -{
      -  "properties": {
      -    "key": {
      -      "type": "string"
      -    },
      -    "name": {
      -      "type": "string"
      -    }
      -  },
      -  "required": [
      -    "key"
      -  ],
      -  "type": "object"
      -}
    • removedInput schema / properties / payload / properties / spec / properties / excludedLocations / properties / zips / type
      Removed value: -"array"
    • removedInput schema / properties / payload / properties / timeRangeStart / description
      Removed value: -"Unix ms. Must be in the future."
    • removedInput schema / properties / platform / description
      Removed value: -"The campaign platform."
  2. Changed2 schema fields changed
    • removedInput schema / properties / payload / properties / enableAudienceNetwork / description
      Removed value: -"Defaults to false. Required true for connectedTelevisionOnly."
    • removedInput schema / properties / payload / properties / timeRangeEnd / description
      Removed value: -"Unix ms. Must be after start and within LinkedIn's max horizon."
  3. First observed

TDQS

C2.4/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true and openWorldHint=true, so "Read only; no spend" restates structured data rather than adding context. Nothing is said about what the forecast returns (impressions, reach, bid ranges), how latency or rate limits behave, or why confirm/requestId exist on a read-only call. No contradiction, but little added value.

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

Conciseness3/5

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

It is short and front-loads the only substantive phrase ("Forecast ad delivery"), so there is no verbosity problem. However the third fragment is a dangling URI pointer that conveys no information to an agent and reads like a broken template, wasting one of the three sentences.

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?

This is a high-complexity tool (10 params, nested targeting object with dozens of sub-fields) with no output schema, yet the description explains neither the expected inputs nor the return shape of a forecast. For a tool whose entire value is the returned delivery estimate, that gap leaves an agent guessing on both ends of the call.

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

Parameters2/5

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

With 10 parameters, a deeply nested payload.spec targeting object, and only 60% schema description coverage, the description contributes nothing: it names no parameter and gives no semantics for timeRangeStart/timeRangeEnd (raw epoch integers), currency, dailyBudget vs totalBudget, or the expected* preview-confirmation fields. "Fields: soclo://tools/..." is an opaque reference rather than an explanation.

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

Purpose3/5

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

The phrase "Forecast ad delivery" gives a verb and a resource, so the general intent (a read-only forecasting call) is visible. But it never says LinkedIn supply/reach forecasting, even though the name is LinkedIn-specific and siblings like soclo_ads_estimate_ad_reach and soclo_ads_get_linked_in_bid_pricing occupy adjacent ground. An agent cannot tell from the description alone which forecast to pick.

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?

There is no when-to-use guidance, no prerequisites, and no reference to alternatives such as soclo_ads_estimate_ad_reach or the campaign-creation flow this forecast presumably feeds. "Read only; no spend" implies a safe pre-flight check but never states the condition that selects this tool.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources