Skip to main content
Glama

What to make next

get_creative_strategy
Read-onlyIdempotent

This business's creative strategy as a decision: the next ad to make and why (the owner's one line), what wins here in plain words (its own ads' results), what tends to win for businesses like it, what rivals lead with, what not to repeat, and a ranked plan of the next 3-5 creatives, each with its id, op (new or variations), format, placements, why, the expected effect and the risk. Useful for 'what should my next ad be?', 'what should we make?'. Read only.

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "get_creative_strategy"
  }
}

Input Schema

NameRequiredDescriptionDefault
accountNoAn ad account's name; omit for the account whose creatives speak for the business (most creative spend).
languageNoThe owner line's language. The business's language by default.

Output Schema

NameRequiredDescriptionDefault
asOfNoThe day the data runs to (the daily sync).
noteNoA plain note instead of a decision (nothing connected yet, not available here).
planNoBest first, 3-5 items.
errorNoWhy nothing was judged, as a short code.
answerNoThe answer in one line, in the asked language. Every number in it comes from Taseli's code.
dontDoNoWhat not to do now, and why.
accountNo
actionsNo
reasonsNoAt most 3 (6 with detail full), strongest first.
verdictNo
currencyNo
languageNo
nextCheckNoWhen Taseli looks again.
confidenceNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedOutput schema / properties / plan / items / properties / id / description
      Previous value: -"The id of this plan item (create_ad strategy_item)."New value: +"The id of this plan item: the strategy_item an ad made from it carries."
  2. Changed25 schema fields changed
    • addedOutput schema / properties / actions
      Added value: +{
      +  "items": {
      +    "properties": {
      +      "approvalUrl": {
      +        "description": "Where the owner approves it, in Taseli.",
      +        "type": "string"
      +      },
      +      "proposalId": {
      +        "type": "string"
      +      },
      +      "tool": {
      +        "description": "A ready call with its arguments.",
      +        "properties": {
      +          "args": {
      +            "type": "object"
      +          },
      +          "name": {
      +            "description": "A tool on this server.",
      +            "type": "string"
      +          }
      +        },
      +        "type": "object"
      +      },
      +      "what": {
      +        "type": "string"
      +      },
      +      "who": {
      +        "description": "taseli: Taseli does it or already watches; owner: a tap in Taseli or a fix on the site; agent: the caller may do it.",
      +        "enum": [
      +          "taseli",
      +          "owner",
      +          "agent"
      +        ],
      +        "type": "string"
      +      },
      +      "worth": {
      +        "properties": {
      +          "basis": {
      +            "enum": [
      +              "measured",
      +              "estimated"
      +            ],
      +            "type": "string"
      +          },
      +          "monthly": {
      +            "type": "number"
      +          }
      +        },
      +        "type": "object"
      +      }
      +    },
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
    • addedOutput schema / properties / answer
      Added value: +{
      +  "description": "The answer in one line, in the asked language. Every number in it comes from Taseli's code.",
      +  "type": "string"
      +}
    • changedOutput schema / properties / asOf / description
      Previous value: -"The day the plan was built (rebuilt weekly and after each decided test)."New value: +"The day the data runs to (the daily sync)."
    • addedOutput schema / properties / confidence
      Added value: +{
      +  "properties": {
      +    "level": {
      +      "enum": [
      +        "low",
      +        "medium",
      +        "high"
      +      ],
      +      "type": "string"
      +    },
      +    "why": {
      +      "description": "Why, in numbers (days, results, what was left out).",
      +      "type": "string"
      +    }
      +  },
      +  "type": "object"
      +}
    • addedOutput schema / properties / currency
      Added value: +{
      +  "type": "string"
      +}
    • addedOutput schema / properties / dontDo
      Added value: +{
      +  "description": "What not to do now, and why.",
      +  "items": {
      +    "properties": {
      +      "line": {
      +        "type": "string"
      +      },
      +      "why": {
      +        "type": "string"
      +      }
      +    },
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
    • addedOutput schema / properties / error
      Added value: +{
      +  "description": "Why nothing was judged, as a short code.",
      +  "type": "string"
      +}
    • removedOutput schema / properties / fatigue
      Removed value: -{
      -  "items": {
      -    "properties": {
      -      "assetId": {
      -        "type": "string"
      -      },
      -      "date": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ]
      -      },
      -      "days": {
      -        "anyOf": [
      -          {
      -            "type": "number"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ]
      -      },
      -      "state": {
      -        "type": "string"
      -      }
      -    },
      -    "type": "object"
      -  },
      -  "type": "array"
      -}
    • addedOutput schema / properties / language
      Added value: +{
      +  "type": "string"
      +}
    • addedOutput schema / properties / nextCheck
      Added value: +{
      +  "description": "When Taseli looks again.",
      +  "type": "string"
      +}
    • changedOutput schema / properties / note / description
      Previous value: -"A plain note instead of data (nothing connected yet, not available here)."New value: +"A plain note instead of a decision (nothing connected yet, not available here)."
    • removedOutput schema / properties / owner
      Removed value: -{
      -  "anyOf": [
      -    {
      -      "properties": {
      -        "line": {
      -          "description": "'Next up: …' in the asked language.",
      -          "type": "string"
      -        },
      -        "why": {
      -          "description": "Why, in one line, from the business's own data.",
      -          "type": "string"
      -        }
      -      },
      -      "type": "object"
      -    },
      -    {
      -      "type": "null"
      -    }
      -  ]
      -}
    • removedOutput schema / properties / peers
      Removed value: -{
      -  "items": {
      -    "description": "Only cells wide enough (10+ businesses) to show the owner.",
      -    "properties": {
      -      "direction": {
      -        "type": "string"
      -      },
      -      "key": {
      -        "type": "string"
      -      },
      -      "nBusinesses": {
      -        "type": "number"
      -      },
      -      "winRate": {
      -        "type": "number"
      -      }
      -    },
      -    "type": "object"
      -  },
      -  "type": "array"
      -}
    • removedOutput schema / properties / plan / items / properties / angle
      Removed value: -{
      -  "anyOf": [
      -    {
      -      "type": "string"
      -    },
      -    {
      -      "type": "null"
      -    }
      -  ]
      -}
    • removedOutput schema / properties / plan / items / properties / hook
      Removed value: -{
      -  "anyOf": [
      -    {
      -      "type": "string"
      -    },
      -    {
      -      "type": "null"
      -    }
      -  ]
      -}
    • changedOutput schema / properties / plan / items / properties / id / description
      Previous value: -"The id of this plan item."New value: +"The id of this plan item (create_ad strategy_item)."
    • removedOutput schema / properties / plan / items / properties / sources
      Removed value: -{
      -  "items": {
      -    "description": "fatigue, own, tests, peers, rivals, untried or starter.",
      -    "type": "string"
      -  },
      -  "type": "array"
      -}
    • removedOutput schema / properties / plan / items / properties / style
      Removed value: -{
      -  "anyOf": [
      -    {
      -      "type": "string"
      -    },
      -    {
      -      "type": "null"
      -    }
      -  ]
      -}
    • addedOutput schema / properties / reasons
      Added value: +{
      +  "description": "At most 3 (6 with detail full), strongest first.",
      +  "items": {
      +    "properties": {
      +      "evidence": {
      +        "items": {
      +          "properties": {
      +            "fact": {
      +              "type": "string"
      +            },
      +            "n": {
      +              "description": "Peers only: how many businesses the figure comes from.",
      +              "type": "number"
      +            },
      +            "source": {
      +              "enum": [
      +                "account",
      +                "history",
      +                "peers",
      +                "rules",
      +                "memory",
      +                "calendar"
      +              ],
      +              "type": "string"
      +            },
      +            "value": {
      +              "anyOf": [
      +                {
      +                  "type": "number"
      +                },
      +                {
      +                  "type": "string"
      +                }
      +              ]
      +            },
      +            "window": {
      +              "type": "string"
      +            }
      +          },
      +          "type": "object"
      +        },
      +        "type": "array"
      +      },
      +      "line": {
      +        "description": "One plain reason.",
      +        "type": "string"
      +      }
      +    },
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
    • removedOutput schema / properties / rivals
      Removed value: -{
      -  "anyOf": [
      -    {
      -      "properties": {
      -        "ads": {
      -          "type": "number"
      -        },
      -        "angles": {
      -          "items": {
      -            "properties": {
      -              "angle": {
      -                "type": "string"
      -              },
      -              "share": {
      -                "type": "number"
      -              }
      -            },
      -            "type": "object"
      -          },
      -          "type": "array"
      -        },
      -        "people": {
      -          "type": "number"
      -        },
      -        "price": {
      -          "type": "number"
      -        },
      -        "video": {
      -          "type": "number"
      -        }
      -      },
      -      "type": "object"
      -    },
      -    {
      -      "type": "null"
      -    }
      -  ]
      -}
    • removedOutput schema / properties / truncated
      Removed value: -{
      -  "type": "boolean"
      -}
    • removedOutput schema / properties / truncatedNote
      Removed value: -{
      -  "type": "string"
      -}
    • removedOutput schema / properties / untried
      Removed value: -{
      -  "items": {
      -    "type": "string"
      -  },
      -  "type": "array"
      -}
    • addedOutput schema / properties / verdict
      Added value: +{
      +  "enum": [
      +    "make_next",
      +    "refresh",
      +    "start"
      +  ],
      +  "type": "string"
      +}
    • removedOutput schema / properties / winning
      Removed value: -{
      -  "items": {
      -    "properties": {
      -      "confidence": {
      -        "type": "string"
      -      },
      -      "creatives": {
      -        "type": "number"
      -      },
      -      "gainPct": {
      -        "description": "Cheaper per result than the account's other creatives, %.",
      -        "type": "number"
      -      },
      -      "key": {
      -        "type": "string"
      -      },
      -      "results": {
      -        "type": "number"
      -      }
      -    },
      -    "type": "object"
      -  },
      -  "type": "array"
      -}
  3. First observed

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, and the trailing 'Read only' merely restates them. Beyond that the description adds little operational behavior: no note on cost/latency, data freshness, or what happens when no strategy can be derived. The bulk of the text describes return contents, which the output schema already carries.

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?

The definition is a single long run-on sentence that enumerates output fields rather than front-loading the purpose, so the core point ('a ranked plan of the next 3-5 creatives') arrives mid-sentence. Much of the enumeration duplicates the output schema and does not earn its place, though the trigger-phrase examples at the end are valuable.

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

Completeness3/5

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

An output schema exists, so the lengthy return-value inventory is largely redundant, and the description leaves the real gaps unfilled: how this strategy differs from get_plan/get_decision, and how the default account is chosen beyond the schema note. For a complex, judgment-heavy tool, it is adequate but not complete.

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 description coverage is 100%, so both parameters (account, language) and their defaults are already documented in the schema, making 3 the baseline. The description adds no meaning beyond that — it never mentions the account selection or the owner-line language. It also doesn't explain that both parameters are optional, though the schema shows that.

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

Purpose4/5

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

The description states a specific resource (this business's creative strategy) and what it delivers: a ranked plan of the next 3-5 creatives with id, op, format, placements, why, expected effect and risk. That is far more specific than the name alone. It stops short of naming the sibling it is not (e.g. get_plan, get_decision, get_creatives), so the boundary is inferred rather than stated.

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

Usage Guidelines3/5

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

It offers two concrete trigger phrases ('what should my next ad be?', 'what should we make?'), which gives real usage context. However, it never says when NOT to use it, nor routes the agent to the many plausible alternatives in the sibling list (get_plan, get_decision, propose_campaign, get_creatives), so the choice between them is left to inference.

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