Skip to main content
Glama

Set a price alert

set_price_alert
Idempotent

Leave a standing instruction: tell me when this symbol crosses this price.

    The alert OUTLIVES this conversation. It is evaluated against official daily closes by a
    resident agent and delivered to your realtime stream and to any webhook endpoints you have
    registered — signed, retried, and de-duplicated so one crossing is one notification.

    This is a NOTIFICATION, not an order. Nothing in TWMD can place a trade.

    Args:
        rule_id: your name for this alert. Re-using one UPDATES it rather than adding a second.
        symbol: the Taiwan ticker, e.g. "2330".
        direction: "below" or "above".
        threshold: the price level, in TWD.
        label: optional human-readable note carried on the alert.
        edge_triggered: True (default) fires on the CROSSING only — one long slump does not
            notify you every day. False fires on every bar that is past the level.
    

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
labelNo
symbolYes
rule_idYes
directionYes
thresholdYes
edge_triggeredNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
hintNo
ruleNo
errorNo
reasonNo
blockedNo
deletedNo
rule_idNo
deliveryNo
not_investment_adviceNo

TDQS

A4.8/5.0
Behavior5/5

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

The description adds substantial behavioral detail beyond annotations: the alert outlives the conversation, is evaluated against official daily closes, is delivered to the realtime stream and webhooks, and is signed, retried, and de-duplicated. It also explains that reusing rule_id updates rather than duplicates, which complements the idempotentHint annotation without contradicting it.

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?

The description is front-loaded with a one-sentence purpose, followed by a compact behavioral paragraph and a well-organized Args list. Every sentence adds operational value, with no filler or repetition of schema details.

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 persistent, side-effecting notification tool with six parameters and no schema-level enums, the description covers purpose, persistence, delivery, idempotency, edge behavior, and every parameter's meaning. Since an output schema exists, omitting return-value details is appropriate.

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

Parameters5/5

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

The input schema has 0% parameter description coverage, but the description fully compensates by explaining all six parameters: rule_id update semantics, symbol format with an example, direction allowed values, threshold units in TWD, label as optional, and edge_triggered exact firing behavior. This is essential given the schema provides only raw names and types.

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 opens with a clear verb and resource: 'Leave a standing instruction: tell me when this symbol crosses this price.' It also explicitly separates this from order/trade tools, making its purpose unambiguous and distinct from siblings like list_alerts and delete_alert.

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?

The description clearly states this is for standing price-crossing notifications that outlive the conversation and explicitly warns 'This is a NOTIFICATION, not an order' and 'Nothing in TWMD can place a trade.' However, it does not explicitly name alternatives such as list_alerts or delete_alert, so it stops short of full alternative routing.

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.

TDQS

A4/5.0
Disambiguation4/5

The tools are largely distinct: querying, searching, backtesting, risk reads, alerts, memory, and audit functions each have clear homes. A few adjacent pairs (risk_read vs risk_assess, company_health_check vs positioning_read) could be confused, but the descriptions draw explicit boundaries.

Naming Consistency3/5

There are strong consistent clusters like list_*, get_*, run_*, and memory_*, but the *_read suffix alternates with noun-first names like company_health_check, and bare-verb tools like ask, calendar, chart, and screen break the pattern. The naming is readable but not uniform.

Tool Count2/5

Forty tools is well past the 25+ threshold and makes the surface heavy for an agent to navigate, even though the breadth reflects a genuinely wide platform. Several clusters could plausibly be consolidated without losing capability.

Completeness4/5

The tool surface covers the main lifecycle well: discovery, point-in-time querying, filings search and full text, backtesting, research, risk assessment, alerts, memory, approvals, and provenance verification. Minor gaps exist—no strategy management tools, no memory deletion, no bulk export—but agents can work around them.

Resources