Bill Baran.
All projects

Equity Watch

Price alerts that don't stop at "it fired."

Demo with invented dataOpen full screen ↗

Every symbol, price, alert and position here is made up. The real app runs on licensed brokerage market data. Nothing in the demo contacts a market-data, news or brokerage service.

Agents can use it too

WebMCP is a proposed browser standard that lets a web page hand an AI agent in the browser a set of typed tools. So far it's only in Chrome and Edge, behind a flag. Equity Watch registers its own controls as tools. An agent sees what you see and can do only what the unlocked page can. Changes go through the same queue, guards and server-side checks as a click.

The panel below plays the agent. It lists the tools the demo registered and calls them. Unlock or lock editing, or tick "Agents may see holdings", and the list changes.

  • Every change asks first. The spec doesn't settle consent yet, so the page shows its own dialog. It ignores scripted clicks, so page code can't approve its own request.
  • Holdings stay private until you share them. A tool's output goes to whatever model the agent runs, so the holdings tools only appear after you opt in.
  • It doesn't trust the browser. Chrome passes arguments through unchecked and doesn't tell the page when an agent cancels. So every call is checked against its schema, a question expires after two minutes, and a repeat of a pending change is refused.
  • One set of tools, two hosts. The same file serves these tools to desktop agents through an MCP server.

Waiting for the demo to register its tools…

Equity Watch is a self-hosted alert engine for US stocks. It replaced a paid service that capped how many alerts you could have. Each alert that fires lands in a revisit queue where you can apply a suggested new level, dismiss it, or ask for a new suggestion, from any device.

What's interesting about it

  • AI agents can drive it. The dashboard registers its own controls as WebMCP tools, a proposed browser standard that's only behind a flag in Chrome so far. The same tools are also served by an MCP server for desktop agents. Every change waits for your approval.
  • Alerts on price levels, trailing stops, volume and moving averages, with ATR, moving averages and volume baselines all calculated in-house.
  • Every alert that fires goes into a ranked revisit queue that suggests a new level and explains the signals behind it.
  • "State is local; the cloud is a mailbox." The static dashboard sends edits through Lambda to SQS FIFO, and the home server pulls them in. There is no always-on server to secure.
  • Holdings are encrypted with WebCrypto and decrypted only in the browser.
  • A run with nothing to check makes zero API calls.