Skip to main content
Glama

Set up an automation (spends balance as it runs)

create_automation
Destructive

Set up an automation: Spoofy places ordinary orders for the user on a plan. Kinds: spread (a total over time, e.g. {"kind":"spread","service":12,"link":"…","quantity":10000,"over":"3d"}; pace "steady" or "front" for an S-curve growth plan, "launch" for about half straight away then each run smaller), scheduled (one order at start_at), recurring (every "1d"/"6h"/"1w", optional at "14:00" + timezone, with times, until or budget), split (past one order's max), campaign (steps [{service, link, quantity, offset_minutes, over_minutes}] or template: "token-launch" + links), keep_above (target + days + budget; public Telegram channels/groups and YouTube videos only), feed (a public Telegram channel, YouTube channel, CoinMarketCap Community profile, Pinterest profile or board, Bluesky account, Reddit user or subreddit, RSS feed, or an X account while X's API is on: every new post gets quantity of service — or quantity_min + quantity_max, a random whole number in that range for each post; spread_minutes (30–360) + parts (2–10) splits each post's order into parts at random times within the window, each at least the service's minimum (pace "launch": the first part about half); delay_min_minutes + delay_max_minutes start it a random number of minutes after the post; posts: the next N posts, then it completes — "likes on my next 30 posts" is posts 30, no days needed; max_per_day; budget, needed only without posts; change them later with update_automation), per_link (a new post each run: service, quantity each run, runs, optional every "daily" + at "14:00" and days; no link now — each run goes out when its post's link is sent with add_automation_link; runs not used are never charged). For new posts elsewhere (Instagram, TikTok …) order an "On new posts" service instead (find_services; fields username, min, max, posts, delay): the provider watches the account. Service ids come from find_services. THIS SPENDS THE USER'S REAL BALANCE: each run is charged when it goes, at the price on sale then — a price that moves while it runs moves the plan with it (a rise is emailed to the user and the automation keeps running; it never pauses for a price). Call first without confirm (or with dry_run: true): you get the plan — every run's time, size and cost at today's price, the total and the balance. Tell the user the total and timing, and this line: "Prices follow our costs and can change while it runs; we’ll email you if they go up, and you can stop it any time." — get their explicit OK, then call again with confirm: true and an idempotency_key. Errors: bad_automation / bad_schedule (the message says what to change), budget_required, count_not_readable (keep_above only reads those links), bad_feed (a feed Spoofy does not read; X only while its API is on), too_many_automations, over_order_cap / platform_not_allowed / read_only_key (this key's limits).

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "automation": "<automation>"
    },
    "name": "create_automation"
  }
}

Input Schema

NameRequiredDescriptionDefault
confirmNoMust be true to actually create it. Only after the user agreed to the plan and its cost.
dry_runNotrue = plan and price only, create nothing.
automationYesThe automation, exactly as POST /api/v1/automations takes it: {"kind": …, "service": …, "link": …, …}.
idempotency_keyNoUnique string per intended automation; a retry with the same key returns the first one.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.7/5.0
Behavior5/5

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

Goes well beyond annotations: it discloses that the tool spends real balance, charges each run at the then-current price, never pauses for price increases, emails the user on rises, returns a plan with total and balance before creation, and requires an idempotency key on confirm. It also lists specific error codes and their meanings.

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 purpose and critical warning are front-loaded, and most sentences carry useful information. But the description is a dense wall of text with many run-on parentheticals and nested examples, making it harder to scan than it needs to be.

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

Completeness5/5

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

For a high-complexity mutation tool with a nested automation payload and no output schema, the description covers the creation flow, pricing behavior, confirmation requirement, alternatives, and error handling. An agent has enough to select and invoke it correctly.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3. However, the description adds substantial meaning for the otherwise loosely typed automation object by documenting each kind's fields, pacing options, schedules, budgets, and feed constraints, which the schema alone does not convey.

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?

States a specific verb and resource ('Set up an automation') and enumerates the supported automation kinds with their core parameters. It also differentiates from siblings by naming update_automation for later changes and directing new-post-elsewhere use cases to a different service via find_services.

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

Usage Guidelines5/5

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

Explicitly describes the two-step confirm flow, when to call without confirm or with dry_run, when to use add_automation_link and update_automation, and when to instead order an 'On new posts' service. It also notes the keep_above channel restrictions and X API availability caveat.

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