assets_refresh_all
Queue an asset snapshot refresh
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| connection_context | No |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| message | No | ||
| retryable | No | ||
| support_ref | No |
Queue an asset snapshot refresh
| Name | Required | Description | Default |
|---|---|---|---|
| connection_context | No |
| Name | Required | Description | Default |
|---|---|---|---|
| message | No | ||
| retryable | No | ||
| support_ref | No |
Changes observed during successful MCP inspections.
Output schema / else / then / properties / categoryAdded value: +{
+ "type": "string"
+}Output schema / else / then / properties / expectedAdded value: +{
+ "type": "boolean"
+}Output schema / else / then / properties / failure_kindAdded value: +{
+ "type": "string"
+}Output schema / else / then / properties / responsibility_hintAdded value: +{
+ "type": "string"
+}Output schema / else / then / properties / routeAdded value: +{
+ "type": "string"
+}Output schema / else / then / properties / user_visibleAdded value: +{
+ "type": "boolean"
+}Input schema / properties / connection_contextAdded value: +{
+ "pattern": "^mctx_v1_[0-9a-f]{64}$",
+ "type": "string"
+}Output schema / $defsAdded value: +{
+ "s0": {
+ "properties": {
+ "count": {
+ "type": "integer"
+ },
+ "has_more": {
+ "type": "boolean"
+ },
+ "items": {
+ "items": {
+ "properties": {
+ "id": {
+ "type": "string"
+ },
+ "name": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "required": [
+ "id"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "count",
+ "items",
+ "has_more"
+ ],
+ "type": "object"
+ },
+ "s3": {
+ "properties": {
+ "status": {
+ "enum": [
+ "requires_validation",
+ "awaiting_assets",
+ "blocked"
+ ],
+ "type": "string"
+ },
+ "summary": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "status",
+ "summary"
+ ],
+ "type": "object"
+ }
+}Output schema / else / else / properties / created_atAdded value: +{
+ "type": [
+ "null",
+ "string"
+ ]
+}Output schema / else / else / properties / finished_atAdded value: +{
+ "type": [
+ "null",
+ "string"
+ ]
+}Output schema / else / else / properties / launch_readinessAdded value: +{
+ "$ref": "#/$defs/s3"
+}Output schema / else / else / properties / refresh_summaryAdded value: +{
+ "properties": {
+ "failed_connections": {
+ "items": {
+ "properties": {
+ "label": {
+ "type": "string"
+ },
+ "reason": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "label",
+ "reason"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "failed_connections_count": {
+ "type": "integer"
+ },
+ "failed_connections_has_more": {
+ "type": "boolean"
+ },
+ "launch_readiness": {
+ "$ref": "#/$defs/s3"
+ },
+ "observed_at": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "routing_errors": {
+ "type": "integer"
+ },
+ "scope": {
+ "enum": [
+ "tenant",
+ "fb_user"
+ ],
+ "type": "string"
+ },
+ "updated_assets": {
+ "properties": {
+ "ad_accounts": {
+ "$ref": "#/$defs/s0"
+ },
+ "businesses": {
+ "$ref": "#/$defs/s0"
+ },
+ "pages": {
+ "$ref": "#/$defs/s0"
+ }
+ },
+ "required": [
+ "ad_accounts",
+ "pages",
+ "businesses"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "observed_at",
+ "scope",
+ "updated_assets",
+ "failed_connections",
+ "launch_readiness"
+ ],
+ "type": [
+ "null",
+ "object"
+ ]
+}Output schema / else / else / properties / requested_scopeAdded value: +{
+ "enum": [
+ "tenant",
+ "fb_user"
+ ],
+ "type": "string"
+}Output schema / else / else / properties / started_atAdded value: +{
+ "type": [
+ "null",
+ "string"
+ ]
+}Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The word "Queue" usefully signals asynchronous, fire-and-forget behavior that the annotations do not convey, but the description omits cost, throttling, scope of the refresh, and how to observe completion — real gaps for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler — nothing redundant is present. The terseness is under-specification rather than bloat, so it scores well for structure while leaving content gaps.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The output schema removes the need to document return values, and annotations cover safety. However, for a write operation that refreshes assets in bulk, the description omits what gets refreshed, whether the action affects every linked account, and any async/status-checking context — leaving the agent unable to reason about consequences or follow-up steps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% for the single connection_context parameter, and the description supplies no meaning for it at all. Since coverage is well under 50%, the description was expected to compensate and does not; only the opaque pattern in the schema hints at its nature.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
"Queue an asset snapshot refresh" names a verb (queue/refresh) and a resource (asset snapshot), so the operation is identifiable. But it never clarifies the scope implied by "all" in the name, nor distinguishes it from the sibling assets_refresh_ad_account, so an agent cannot tell the two apart from the text alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no statement of prerequisites, and no routing to alternatives. The sibling assets_refresh_ad_account exists as an obvious narrower variant, and the description says nothing about when to prefer one over the other.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Add one secure layer between your agents and this server.