dev.coinop/longwatch
Measured conclusion: Deep-tested. L2 outcome: tools_ok.
You are ephemeral; this remembers. Persist watch_id+key; poll later for what you missed.
| Author | dev.coinop |
|---|---|
| Access | remote |
| Publisher key required | No |
| Measured state | Deep-tested |
| L1 liveness | alive |
| L1 latency | 2610 ms |
| Last measured | 2026-10-24 |
Add to your agent
Copy this into your MCP client config:
{
"mcpServers": {
"longwatch": {
"url": "https://longwatch.dev/mcp",
"transport": "streamable-http"
}
}
}
Measured tools (18)
check_nowThis-session snapshot only — no watch, no cursor. Use when you will not come back. Required by type: url/rss/x402 need url; price needs coin plus above, below, or move_pct_24h; edgar needs ticker or cik. 8-K items are decoded, Form 4 trades parsed, and x402 probes validate the unpaid 402 challenge without sending payment. If the job spans runs, create_watch instead and persist watch_id + key. Costs $0.001 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.
Parameters:
type(required) — string — source typecik— number — edgar: SEC CIK, as an alternative to tickerurl— string — url|rss|x402: public URLbody— objectcoin— string — price: CoinGecko id, e.g. 'bitcoin'above— number — price: threshold to compare againstbelow— number — price: threshold to compare againstforms— array — edgar: form filter, e.g. ["8-K","4"]method— stringticker— string — edgar: stock ticker, e.g. 'NVDA'move_pct_24h— number — price: 24h move threshold to compare againstexpected_scheme— stringexpected_network— stringexpected_amount_atomic— ['string', 'number']
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
create_watchKeep watching a source between agent runs and alert when it changes. Persist watch_id and key; later poll_alerts with since=<last cursor> 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.
Parameters:
type(required) — string — watch typecik— number — edgar: SEC CIK, as an alternative to tickerurl— string — url|rss|x402: public URL to watchbody— objectcoin— string — price: CoinGecko id, e.g. 'bitcoin'above— number — price: alert when USD price crosses above thisbelow— number — price: alert when USD price crosses below thisforms— array — edgar: form filter, e.g. ["8-K","4"]method— stringticker— string — edgar: stock ticker, e.g. 'NVDA'webhook— object — optional: POST alerts to this URL as they occur (signed); polling still worksmove_pct_24h— number — price: alert when |24h change| exceeds this percentexpected_scheme— stringidempotency_key— string — unique retry key; the same key and input return the original watch without charging twiceexpected_network— stringexpected_amount_atomic— ['string', 'number']
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
check_web_pageFetch a public web page now and return normalized text metadata. Use for a one-session lookup. Costs $0.001 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.
Parameters:
url(required) — string — public http(s) page URL
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
watch_web_pageMonitor a public web page between agent runs and alert with added and removed text when it changes. Includes 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.
Parameters:
url(required) — string — public http(s) page URLwebhook— object — optional HTTPS endpoint for signed push alerts; polling still worksidempotency_key— string — unique retry key; the same key and input return the original watch
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
check_rss_feedRead the latest items from a public RSS or Atom feed now. Use for a one-session lookup. Costs $0.001 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.
Parameters:
url(required) — string — public RSS or Atom feed URL
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
watch_rss_feedMonitor an RSS or Atom feed between agent runs and alert once per new item. Includes 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.
Parameters:
url(required) — string — public RSS or Atom feed URLwebhook— object — optional HTTPS endpoint for signed push alerts; polling still worksidempotency_key— string — unique retry key; the same key and input return the original watch
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
check_crypto_priceCheck a CoinGecko asset price and whether it currently meets a USD threshold or 24-hour move condition. Costs $0.001 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.
Parameters:
coin(required) — string — CoinGecko id, e.g. bitcoinabove— numberbelow— numbermove_pct_24h— number
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
watch_crypto_priceMonitor a crypto price between agent runs and alert once when it crosses a threshold, with hysteresis before re-arming. Includes 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.
Parameters:
coin(required) — string — CoinGecko id, e.g. bitcoinabove— numberbelow— numberwebhook— object — optional HTTPS endpoint for signed push alerts; polling still worksmove_pct_24h— numberidempotency_key— string — unique retry key; the same key and input return the original watch
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
check_sec_filingsGet recent SEC filings for a ticker or CIK now, with decoded 8-K items and parsed Form 4 transactions. Costs $0.001 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.
Parameters:
cik— numberforms— arrayticker— string
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
watch_sec_filingsMonitor a company between agent runs for new SEC filings, decoded 8-K events, and parsed Form 4 trades. Includes 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.
Parameters:
cik— numberforms— arrayticker— stringwebhook— object — optional HTTPS endpoint for signed push alerts; polling still worksidempotency_key— string — unique retry key; the same key and input return the original watch
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
check_insider_tradesGet recent Form 4 insider transactions for a ticker or CIK, parsed into buyer/seller, shares, value, transaction type, and 10b5-1 status. Costs $0.001 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.
Parameters:
cik— numberticker— string
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
watch_insider_tradesMonitor a company between agent runs for new Form 4 insider buys, sells, grants, and tax withholding. Includes 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.
Parameters:
cik— numberticker— stringwebhook— object — optional HTTPS endpoint for signed push alerts; polling still worksidempotency_key— string — unique retry key; the same key and input return the original watch
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
check_x402_endpointSend an unpaid request and validate the endpoint's HTTP 402 challenge, accepted networks, scheme, amount, and recipient. The target probe does not attach payment. Costs $0.001 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.
Parameters:
url(required) — stringbody— objectmethod— stringexpected_scheme— stringexpected_network— stringexpected_amount_atomic— ['string', 'number']
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
watch_x402_endpointMonitor an x402 endpoint for downtime and changes to its payment challenge, price, network, scheme, or recipient. Target probes do not attach payment. Includes 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.
Parameters:
url(required) — stringbody— objectmethod— stringwebhook— object — optional HTTPS endpoint for signed push alerts; polling still worksexpected_scheme— stringidempotency_key— string — unique retry key; the same key and input return the original watchexpected_network— stringexpected_amount_atomic— ['string', 'number']
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
poll_alertsWhat is new since your last run. Pass since={last seq you saw}; the response carries a new cursor. New paid watches include 7 days of polling. After that window, one $0.005 paid poll renews the next 7 days. Polling keeps the watch alive; beta watches remain free. Free through the watch's included polling window; after that, one $0.005 USDC x402 payment renews 7 days. No API key or account.
Parameters:
watch_id(required) — string — watch_id returned by create_watchkey(required) — string — key returned by create_watchsince— number — highest alert seq already seen; 0 on first poll
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
try_watchCreate a free trial watch — no payment, no wallet, no account. Same watch types as create_watch (url, rss, price, edgar, x402). The trial runs for 24h, one at a time per caller, and cannot use webhooks. Use this first to see what the alerts look like before paying. Free — no payment required.
Parameters:
type(required) — string — watch typecik— number — edgar: SEC CIK, as an alternative to tickerurl— string — url|rss|x402: public URL to watchbody— objectcoin— string — price: CoinGecko id, e.g. 'bitcoin'above— number — price: alert when USD price crosses above thisbelow— number — price: alert when USD price crosses below thisforms— array — edgar: form filter, e.g. ["8-K","4"]method— stringticker— string — edgar: stock ticker, e.g. 'NVDA'move_pct_24h— number — price: alert when |24h change| exceeds this percentexpected_scheme— stringexpected_network— stringexpected_amount_atomic— ['string', 'number']
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
poll_trialPoll a trial watch created by try_watch. Free. Pass since={last seq you saw}; the response carries a new cursor. Once the trial expires, create a paid watch with create_watch; paid creation includes 7 days of polling and can be renewed. Free — no payment required.
Parameters:
watch_id(required) — string — watch_id returned by try_watchkey(required) — string — key returned by try_watchsince— number — highest alert seq already seen; 0 on first poll
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
delete_watchStop and delete a watch. Free. Free — no payment required.
Parameters:
watch_id(required) — string — watch_id to deletekey(required) — string — key returned by create_watch
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
Measured by MCPYP probing. Untested fields are omitted, never estimated. Listing is always free; MCPYP never proxies calls or stores user tokens.