Skip to main content
Glama

Set a price alarm

set_price_alarm

Sets an alarm that rings on the person's phone when a token reaches a target price, or moves a percent from its price now. For one token's price; a trader or wallet trading, or anyone trading a token, is a different alarm. Takes the token's id, symbol and name, and exactly one of target_price_usd or percent. It rings once and then stops for good. Returns the alarm, the price it started from and its link.

Input Schema

NameRequiredDescriptionDefault
nameYesThe token's name, "Solana".
noteNoA note from the person about the alarm, in their words, shown under its trigger on the alarm's page and in the Daily drop. Up to 500 characters; an empty note clears it.
vibeNoThe feel of the alarm in a few words, and the kind of background and colour if the person named them: "fun poppy anime", "calm", "a simple bell", "hype for a token launch", "ocean waves, purple", "neon and chaotic". LFG picks a sound and a look from its library to match: a live, moving wallpaper when one fits, otherwise a drawn one. Wallpaper words given here replace the look's words; a colour given here makes it a plain gradient in that colour.
briefNoA brief on a schedule as well as the alarm: Rocco gathers on the topic through the day, and the brief arrives quietly at this time, as a notification and in the Daily Drop, never a ring. The phone still rings only when the alarm's own rule matches. Makes it a monitoring alarm. For a clock alarm whose ring brings the brief, use set_time_alarm with follow instead.
chainNoThe token's chain, "solana", "base", "ethereum".
reachNoWho can join: private (only the person), friends (people on its list, or with its link), public (anyone; listed in Discover).private
themeNoA theme or holiday: the alarm gets a song in its moods, a new alarm a title written for it, and a wallpaper dealt for it for variety, one of the theme's pictures, a GIF, a live wallpaper or a gradient. A vibe given as well shapes that ("cozy", "degen"); wallpaper words or a title given are kept. One of: birthday (Birthday), love (Love), night_out (Night out), shopping (Shopping), winter (Winter), christmas (Christmas), hanukkah (Hanukkah), diwali (Diwali), halloween (Halloween), thanksgiving (Thanksgiving), friendsgiving (Friendsgiving), new_years (New Year's Eve).
titleNoShort name for the alarm. When absent, LFG names it. Up to 60 characters; it reads best under about 25.
symbolYesThe token's ticker, "SOL".
percentNoRings when the price moves this much from now: 25 for up 25%, -10 for down 10%.
surpriseNoFor a friends alarm: keep it a surprise. People who join see a curtain instead of its title, picture, sound and note until it rings. Free on every plan.
token_idYesThe token's id.
link_modeNoFor a friends alarm, what its link does: open (anyone who opens the link rides along, the default) or approve (anyone else with the link asks first and the person says yes or no). Invited people walk straight in either way.
add_groupsNoFor a friends alarm: names of the person's friend groups whose members to let in, "Family". Members get a notification.
add_peopleNoFor a friends alarm: up to 20 people to let in, as usernames of the person's LFG friends or as email addresses. Friends get a notification; an email address with no LFG account gets an invitation. Any other username is refused.
button_linkNo
words_colorNoColour of the words as hex, any colour, "#D7FF00".
hide_triggerNoNeeded with surprise, true or false: whether to also keep back when and why it rings, so people who join only know that it will. A surprise is not made until it is given.
snooze_timesNoHow many times it can be snoozed: 3, 10 or unlimited.
silent_snoozeNotrue to snooze without the spoken roast LFG plays by default.
snooze_minutesNoMinutes each snooze lasts: 5, 10, 15, 30 or 60.
send_beacons_toNoA webhook the person got from the other side (a Discord channel's hook, a Zapier catch hook, their own agent's address): every beacon on this alarm is POSTed there as JSON, signed with the alarm's horn token. Public https only. An empty string stops it.
wallpaper_colorNoWallpaper background colour as hex, any colour, "#5B2BFF".
wallpaper_wordsNoWords drawn on the wallpaper, "WAKE UP"; a line break starts a new line. Up to 40 characters; it looks best as 1 to 4 short words, since the words are drawn as large as the square allows.
contract_addressNoThe token's contract address, when it has one.
people_confirmedNoWhether the person has confirmed the people and groups being added. Nobody is added or told without it.
target_price_usdNoRings when the price reaches this, in US dollars, from either side.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / theme / description
      Previous value: -"A picture theme: the alarm gets one of the theme's pictures as its wallpaper and a song in its moods, and a new alarm a title written for it. A wallpaper, title or vibe given as well is kept instead. One of: birthday (Birthday), love (Love), night_out (Night out), shopping (Shopping), winter (Winter), christmas (Christmas), hanukkah (Hanukkah), diwali (Diwali), halloween (Halloween), thanksgiving (Thanksgiving), friendsgiving (Friendsgiving), new_years (New Year's Eve)."New value: +"A theme or holiday: the alarm gets a song in its moods, a new alarm a title written for it, and a wallpaper dealt for it for variety, one of the theme's pictures, a GIF, a live wallpaper or a gradient. A vibe given as well shapes that (\"cozy\", \"degen\"); wallpaper words or a title given are kept. One of: birthday (Birthday), love (Love), night_out (Night out), shopping (Shopping), winter (Winter), christmas (Christmas), hanukkah (Hanukkah), diwali (Diwali), halloween (Halloween), thanksgiving (Thanksgiving), friendsgiving (Friendsgiving), new_years (New Year's Eve)."
  2. Changed1 schema field changed
    • changedInput schema / properties / brief / properties / topic / maxLength
      Previous value: -80New value: +160
  3. Changed1 schema field changed
    • changedInput schema / properties / vibe / description
      Previous value: -"The feel of the alarm in a few words, \"fun poppy anime\", \"calm\", \"a simple bell\", \"hype for a token launch\". LFG picks a sound and a drawn look from its library to match; wallpaper words or colours given here win over the look."New value: +"The feel of the alarm in a few words, and the kind of background and colour if the person named them: \"fun poppy anime\", \"calm\", \"a simple bell\", \"hype for a token launch\", \"ocean waves, purple\", \"neon and chaotic\". LFG picks a sound and a look from its library to match: a live, moving wallpaper when one fits, otherwise a drawn one. Wallpaper words given here replace the look's words; a colour given here makes it a plain gradient in that colour."
  4. Changed1 schema field changed
    • addedInput schema / properties / link_mode
      Added value: +{
      +  "description": "For a friends alarm, what its link does: open (anyone who opens the link rides along, the default) or approve (anyone else with the link asks first and the person says yes or no). Invited people walk straight in either way.",
      +  "enum": [
      +    "open",
      +    "approve"
      +  ],
      +  "type": "string"
      +}
  5. Changed1 schema field changed
    • changedInput schema / properties / brief / description
      Previous value: -"A brief on a schedule as well as the alarm: Rocco gathers on the topic through the day, and the brief arrives quietly at this time, as a notification and in the Daily Drop, never a ring. The phone still rings only when the alarm's own rule matches. Makes it a lookout. For a clock alarm whose ring brings the brief, use set_time_alarm with follow instead."New value: +"A brief on a schedule as well as the alarm: Rocco gathers on the topic through the day, and the brief arrives quietly at this time, as a notification and in the Daily Drop, never a ring. The phone still rings only when the alarm's own rule matches. Makes it a monitoring alarm. For a clock alarm whose ring brings the brief, use set_time_alarm with follow instead."
  6. Changed1 schema field changed
    • addedInput schema / properties / brief
      Added value: +{
      +  "description": "A brief on a schedule as well as the alarm: Rocco gathers on the topic through the day, and the brief arrives quietly at this time, as a notification and in the Daily Drop, never a ring. The phone still rings only when the alarm's own rule matches. Makes it a lookout. For a clock alarm whose ring brings the brief, use set_time_alarm with follow instead.",
      +  "properties": {
      +    "days": {
      +      "description": "Days it arrives, [\"sat\"]. Every day when absent.",
      +      "items": {
      +        "enum": [
      +          "sun",
      +          "mon",
      +          "tue",
      +          "wed",
      +          "thu",
      +          "fri",
      +          "sat"
      +        ],
      +        "type": "string"
      +      },
      +      "maxItems": 7,
      +      "minItems": 1,
      +      "type": "array"
      +    },
      +    "time": {
      +      "description": "When the brief arrives, 24-hour, \"08:00\".",
      +      "pattern": "^([01]\\d|2[0-3]):[0-5]\\d$",
      +      "type": "string"
      +    },
      +    "time_zone": {
      +      "description": "The person's IANA time zone, \"America/New_York\".",
      +      "type": "string"
      +    },
      +    "topic": {
      +      "description": "What to gather for the brief, \"solana news\", \"AI and crypto, and something funny\".",
      +      "maxLength": 80,
      +      "minLength": 2,
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "topic",
      +    "time",
      +    "time_zone"
      +  ],
      +  "type": "object"
      +}
  7. Changed1 schema field changed
    • addedInput schema / properties / send_beacons_to
      Added value: +{
      +  "description": "A webhook the person got from the other side (a Discord channel's hook, a Zapier catch hook, their own agent's address): every beacon on this alarm is POSTed there as JSON, signed with the alarm's horn token. Public https only. An empty string stops it.",
      +  "maxLength": 2048,
      +  "type": "string"
      +}
  8. Changed1 schema field changed
    • changedInput schema / properties / words_color / description
      Previous value: -"Colour of the words as hex, any colour, \"#D7FF00\". Pick one that stands out from the background."New value: +"Colour of the words as hex, any colour, \"#D7FF00\"."
  9. Changed6 schema fields changed
    • changedInput schema / properties / title / description
      Previous value: -"Short name for the alarm. When absent, LFG names it."New value: +"Short name for the alarm. When absent, LFG names it. Up to 60 characters; it reads best under about 25."
    • changedInput schema / properties / title / maxLength
      Previous value: -120New value: +60
    • changedInput schema / properties / wallpaper_color / description
      Previous value: -"Wallpaper background colour as hex, \"#5B2BFF\"."New value: +"Wallpaper background colour as hex, any colour, \"#5B2BFF\"."
    • changedInput schema / properties / wallpaper_words / description
      Previous value: -"Words drawn on the wallpaper, \"WAKE UP\"; a line break starts a new line."New value: +"Words drawn on the wallpaper, \"WAKE UP\"; a line break starts a new line. Up to 40 characters; it looks best as 1 to 4 short words, since the words are drawn as large as the square allows."
    • changedInput schema / properties / wallpaper_words / maxLength
      Previous value: -80New value: +40
    • changedInput schema / properties / words_color / description
      Previous value: -"Colour of the words as hex, \"#D7FF00\"."New value: +"Colour of the words as hex, any colour, \"#D7FF00\". Pick one that stands out from the background."
  10. First observed

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare this is a non-readonly, open-world, non-idempotent, non-destructive write. The description adds meaningful behavior beyond that: it rings once and then stops for good, and it returns the alarm, starting price, and link. It does not cover permissions or error conditions, but the key permanence trait is disclosed.

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?

Five sentences, front-loaded with the core action, followed by the alternative, required inputs, behavioral note, and return values. There is no filler and every sentence contributes useful information.

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

Completeness4/5

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

For a complex 27-parameter tool with no output schema, the description covers the core purpose, required identifiers, the one-of target price/percent constraint, one-shot behavior, and return values. It does not explain optional feature interactions like brief or reach, but those are well documented in the schema.

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 high at 96%, so most parameter meaning comes from the schema. The description adds a crucial constraint not expressed in the schema: exactly one of target_price_usd or percent must be provided. It also names the required token_id, symbol, and name, though it does not explain the many optional parameters.

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 states a specific verb and resource: sets an alarm that rings when a token reaches a target price or moves a percent. It also distinguishes this from a trader or wallet trading alarm, so an agent can tell it apart from siblings like set_trader_alarm.

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

Usage Guidelines4/5

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

It says 'For one token's price' and explicitly notes that a trader or wallet trading, or anyone trading a token, is a different alarm. This gives clear usage context and an alternative, though it does not name the sibling tool or address other alarm types like event or time alarms.

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.