Skip to main content
Glama

Create a standing watch

create_watch
Destructive

Keep watching a source between agent runs and alert when it changes. Persist watch_id and key; later poll_alerts with since= returns only what you missed. Required by type: url/rss/x402 need url; price needs coin plus a threshold; edgar needs ticker or cik. Create includes the baseline and 7 days of polling. Costs $0.005 USDC per call via x402 (Base) — no API key, no account. Calling without payment returns 402 with the payment requirements. Free alternative: GET https://longwatch.dev/demo for a free NVDA Form 4 sample, or POST https://longwatch.dev/try for a 24h watch — no wallet needed.

Input Schema

NameRequiredDescriptionDefault
cikNoedgar: SEC CIK, as an alternative to ticker
urlNourl|rss|x402: public URL to watch
bodyNox402: optional JSON object for POST/PUT/PATCH/DELETE, e.g. {"type":"edgar","ticker":"NVDA"}; omit for GET/HEAD
coinNoprice: CoinGecko id, e.g. 'bitcoin'
typeYeswatch type
aboveNoprice: alert when USD price crosses above this
belowNoprice: alert when USD price crosses below this
formsNoedgar: form filter, e.g. ["8-K","4"]
methodNox402: HTTP method, default GET. POST/PUT/PATCH/DELETE can modify the target even without payment; use only on a target you are authorized to probe
tickerNoedgar: stock ticker, e.g. 'NVDA'
webhookNooptional: POST alerts to this URL as they occur (signed); polling still works
move_pct_24hNoprice: alert when |24h change| exceeds this percent
expected_schemeNox402: optional expected scheme, e.g. exact
idempotency_keyNounique retry key; the same key and input return the original watch without charging twice
expected_networkNox402: optional expected CAIP-2 network, e.g. eip155:8453
expected_amount_atomicNox402: optional expected token amount in atomic units, e.g. "1000" for 0.001 USDC

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed6 schema fields changed
    • addedInput schema / properties / body / description
      Added value: +"x402: optional JSON object for POST/PUT/PATCH/DELETE, e.g. {\"type\":\"edgar\",\"ticker\":\"NVDA\"}; omit for GET/HEAD"
    • addedInput schema / properties / expected_amount_atomic / description
      Added value: +"x402: optional expected token amount in atomic units, e.g. \"1000\" for 0.001 USDC"
    • addedInput schema / properties / expected_network / description
      Added value: +"x402: optional expected CAIP-2 network, e.g. eip155:8453"
    • addedInput schema / properties / expected_scheme / description
      Added value: +"x402: optional expected scheme, e.g. exact"
    • addedInput schema / properties / method / description
      Added value: +"x402: HTTP method, default GET. POST/PUT/PATCH/DELETE can modify the target even without payment; use only on a target you are authorized to probe"
    • addedInput schema / properties / webhook / properties / url / description
      Added value: +"Public HTTPS webhook URL, e.g. https://example.com/alerts"
  2. Changed7 schema fields changed
    • addedInput schema / properties / body
      Added value: +{
      +  "additionalProperties": {},
      +  "type": "object"
      +}
    • addedInput schema / properties / expected_amount_atomic
      Added value: +{
      +  "type": [
      +    "string",
      +    "number"
      +  ]
      +}
    • addedInput schema / properties / expected_network
      Added value: +{
      +  "type": "string"
      +}
    • addedInput schema / properties / expected_scheme
      Added value: +{
      +  "type": "string"
      +}
    • addedInput schema / properties / method
      Added value: +{
      +  "enum": [
      +    "GET",
      +    "POST",
      +    "PUT",
      +    "PATCH",
      +    "DELETE",
      +    "HEAD"
      +  ],
      +  "type": "string"
      +}
    • changedInput schema / properties / type / enum
      Previous value: -[
      -  "url",
      -  "rss",
      -  "price",
      -  "edgar"
      -]New value: +[
      +  "url",
      +  "rss",
      +  "price",
      +  "edgar",
      +  "x402"
      +]
    • changedInput schema / properties / url / description
      Previous value: -"url|rss: page or feed URL to watch"New value: +"url|rss|x402: public URL to watch"
  3. Changed1 schema field changed
    • addedInput schema / properties / idempotency_key
      Added value: +{
      +  "description": "unique retry key; the same key and input return the original watch without charging twice",
      +  "type": "string"
      +}
  4. Changed1 schema field changed
    • addedInput schema / properties / webhook
      Added value: +{
      +  "additionalProperties": false,
      +  "description": "optional: POST alerts to this URL as they occur (signed); polling still works",
      +  "properties": {
      +    "url": {
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "url"
      +  ],
      +  "type": "object"
      +}
  5. First observed

TDQS

A4.3/5.0
Behavior5/5

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

With annotations already declaring destructiveness and open-world behavior, the description adds substantial context: the $0.005 USDC x402 cost on Base, no API key or account needed, the 402 response with payment requirements when unpaid, that creation includes the baseline plus 7 days of polling, and that a webhook is optional while polling still works. This is exactly the pricing/auth/failure-mode detail annotations cannot express.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose and persistence contract are front-loaded, then the type requirements, then cost — a sensible order with no repeated content. The closing free-alternative sentence is longer than strictly necessary and reads slightly promotional, but it does carry actionable routing information for wallet-less agents.

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 16-parameter, nested, destructive, paid mutation tool with no output schema, the description supplies the pricing model, the payment failure mode, the id persistence contract, the polling handoff, and the per-type required fields. An agent can select and invoke it without further exploration; the remaining gap (alert payload shape) is covered by the sibling poll_alerts.

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, but the description earns more by stating conditional requirements the schema cannot express: url/rss/x402 need url, price needs coin plus a threshold, edgar needs ticker or cik. That cross-parameter rule is the single most useful thing an agent needs before building the call, and it is not derivable from the per-field schema text.

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 opens with a concrete verb and resource — 'Keep watching a source between agent runs and alert when it changes' — which clearly frames this as a persistent watch rather than a one-shot check. It never names the sibling check_* tools (check_web_page, check_sec_filings) or watch_* variants to explain when this generic creator is preferred over the typed ones, so differentiation is implied by 'between agent runs' 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 Guidelines4/5

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

It explicitly says when to use the tool (persistent monitoring across agent runs) and names the follow-up flow: persist watch_id, then poll_alerts with since=<last cursor>. It also gives concrete free alternatives (demo endpoint, try endpoint / try_watch) for agents without a wallet. What's missing is guidance on when to choose create_watch versus the typed siblings like watch_web_page or watch_crypto_price.

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