BullzeyeBULLZEYE
Join the waitlist
The AI layer

Your AI is smart. It just can't see the tape.

It's 07:04, a name is up 44%, and you have four minutes to answer five questions: is the story real, is the float real, is the crowd organic, what does this event usually do, and are you the trader it eats. The model you already pay for could answer all five. It just has nothing to read. That is the whole problem we solve.

The difference
Your AI, as sold to you

WISA is up 44% premarket. What am I looking at?

WISA's premarket rise could be attributed to several factors, including positive news, favorable market sentiment, or increased investor interest. Low-priced stocks can be volatile, and short-term moves may reflect speculation. Consider reviewing recent announcements and doing your own research before making any trading decisions.

0 facts · 0 sources · answered from nothing
The same AI, wired into the boardsmcp.bullzeye.com/v1

WISA is up 44% premarket. What am I looking at?

scanner.snapshot("WISA") chatter.documents("WISA", 24h) chatter.score("WISA") calendar.baseRate("licensing", "sub-2M")
  • The story is a licensing PR at 08:01 ET: company wire, not a filing. Nothing hit EDGAR in the last 24h (8-K, 6-K and 424B5 searched at 08:44).
  • Float is 0.9M as of the 12 Aug S-1/A, and $9.8M premarket dollar volume has traded: this is real participation, not a marked-up quote.
  • Attention is +21× the name's baseline with 38% copied wording across posts. Genuine excitement duplicates too, but watch whether it led or followed the tape.
  • It halted T1 at 08:12. Licensing pops on sub-2M floats: median +48% max gain inside 60 minutes, 62% halt rate, from 19 episodes, so hold the number loosely.
6 facts · 4 tool calls · every claim checkable
Same model, same question, illustrative fixture session. The left answer is not a strawman: it is what any model produces with nothing to read. The right one made four tool calls you could make yourself.
07:04

The verification sprint, by hand and by tool call.

Every one of these checks decides trades, every one is public information, and every one costs minutes you don't have while the tape is moving. This table is the product's reason to exist.

Is there a filing behind the story?EDGAR full-text search in two tabs, squinting at timestamps while the clock runs ~3 minchatter.documentsWhat was searched, what was found, and when: absence reported as a result, not a blank
Is the float number real?A screener figure of unknown age, cross-checked against the last S-1 if you have time, which you don't ~4 minscanner.snapshotFloat with the date of the filing it came from, next to RVOL, gap and halt state
Is the attention organic, or a room?Scroll three feeds, recognise nothing, guess ~2 minchatter.scoreCopied-wording share, author age, funnel links: measured, with the evidence attached
What does this event class usually do?You do not have 1,200 historical episodes in your head. Nobody does n/acalendar.baseRateMedian move, halt share and drawdown for this event type at this float band, with n
Am I the trader this setup eats?Your journal: if you kept one, and if you re-read it, which you didn't at 07:04 honest? neverledger.performanceYour own expectancy on this setup, sliced by session and mistake tag

That is the painkiller, plainly: the pre-trade verification sprint, eleven-odd minutes across six tabs, done badly under pressure, becomes one question to the model you already use, answered with the trail attached. Not predictions. Not signals. The checking, done properly, at machine speed.

How

Built as tools first. The interface came second.

This only works because it isn't a chatbot bolted onto a scanner. Each claim below is structural, and each is checkable the day you connect.

Built this way from day one

Not a chat box bolted to a scanner

Bullzeye was designed as a set of typed tools over one joined dataset, and the interface was written second. The radar, calendar, chatter and ledger are the same functions whether a human clicks them or a model calls them. There is no separate, weaker API that lags the UI, because the UI is a client of it.

  • Every board reads the same joins: structure, schedule, talk, filings, your ledger
  • Each surface is a typed tool with a declared schema, not a scraped endpoint
  • Anything the interface can show you, a model can request, with the same freshness
Bring your own AI

Your model, your keys, your bill

Connect Anthropic, OpenAI, Google, or a local model over an OpenAI-compatible endpoint. Bullzeye supplies the tools and the data; you choose what reasons over them. If you would rather no third-party model ever sees your ledger, run a local one and it never leaves your machine.

  • Claude, GPT, Gemini, or any OpenAI-compatible endpoint including Ollama and vLLM
  • Your API key, your rate limits, your spend: we do not resell inference
  • Per-tool permissions: let a model read the radar but never touch the ledger
  • Local-model mode keeps prompts and your trade history on your hardware
Model Context Protocol

The whole platform is an MCP server

Point Claude Code, Claude Desktop, Cursor, or your own agent at the Bullzeye MCP server and it gets the boards as tools. Ask for the 4/4 matches, pull the base rate for a reverse split on a sub-2M float, or have it read your ledger and argue with you about position sizing, from whatever client you already work in.

  • One endpoint, OAuth-scoped to your entitlements: an agent can never read data your tier does not include
  • Read tools are free-running; anything that writes to your playbooks or ledger requires explicit scope
  • Works with any MCP client: Claude Desktop, Claude Code, Cursor, or your own
Agents & skills marketplace

Buy the agent, or publish yours

A skill is a packaged prompt plus the tools it is allowed to call. An agent is a skill with a trigger. Install one built by another trader, fork it, or publish your own and take a cut. The marketplace runs on the same permission model as everything else, so installing an agent never grants it more access than you have.

  • Skills declare the tools they need up front; you approve the scope on install
  • Agents can be triggered by a squawk, a schedule, or a radar match crossing your floor
  • Publish paid or free; revenue share on paid installs
  • Every published agent shows its backtest against the historical episode set, or it ships marked as untested
The tools

13 tools, scoped to what you already pay for.

Point Claude Desktop, Claude Code, Cursor or your own agent at the Bullzeye MCP server. Read tools run freely; anything that writes to your playbooks, squawk rules or journal requires an explicit scope you grant once. An agent can never reach data your tier does not include.

radar.matchesSetup Radar
(playbook, floor?, limit?) → Match[]

Names scoring at or above a floor against a named playbook, with the per-precondition breakdown.

radar.playbookSetup Radar
(id) → Playbook

Read or write a precondition set. Writing requires the playbooks:write scope.

scanner.snapshotMomentum Terminal
(filters, session?) → Row[]

Current movers with float, RVOL, gap, halt state and the catalyst behind each.

scanner.haltsMomentum Terminal
(symbol?, since?) → Halt[]

Live and historical halt events with codes, duration and the reopening auction print.

chatter.scoreMarket Chatter
(symbol) → ChatterScore

Attention, coordination and confirmation scores with the cluster and funnel evidence.

chatter.documentsMarket Chatter
(symbol, window?) → DocSearch

What was searched on EDGAR and the exchange feed, what was found, and when. Absence is a result.

calendar.eventsCatalyst Calendar
(from, to, bands?) → Event[]

Scheduled catalysts by window, float band and type, joined to dilution structure.

calendar.baseRateCatalyst Calendar
(type, band) → BaseRate

Measured outcome distribution for an event type at a float band. Always returns n.

squawk.rulesSquawks
(id?) → Rule[]

List, create and arm alert rules. Creating requires the squawks:write scope.

ledger.performanceLedger
(range, groupBy) → Performance

Expectancy, win rate and average R sliced by setup, side, session and mistake tag.

sim.replaySim Trainer
(symbol, date, speed?) → Replay

Open a historical session for replay and step it, so an agent can be graded on the same real tape you were.

sim.episodesSim Trainer
(filters) → Episode[]

Find replayable historical sessions by archetype, float band, catalyst type or outcome.

episodes.queryResearch
(filters) → Episode[]

The historical episode set behind every published base rate. Elite tier only.

Connecting it
{
  "mcpServers": {
    "bullzeye": {
      "type": "http",
      "url": "https://mcp.bullzeye.com/v1",
      "scopes": ["radar:read", "calendar:read", "chatter:read"]
    }
  }
}

One endpoint, OAuth on first connect. Add ledger:write or squawks:write only if you want an agent acting rather than reading. Until then, the prompts in the prompt library work with pasted context in any client.

Marketplace

Install an agent another trader built. Or publish yours.

A skill is a packaged prompt plus the tools it is allowed to call. An agent is a skill with a trigger: a schedule, a squawk, or a radar match crossing your floor. Installing one never grants it more access than you have, and every paid listing shows its backtest against the historical episode set or ships marked untested.

Pre-market briefer

BullzeyeFree
Trigger · 07:00 ET, weekdays2,140 installs

Reads the radar, the calendar and overnight chatter, then writes you four paragraphs: what matches, what is scheduled, what got loud overnight, and what it would ignore. Cites the tool call behind every claim.

Dilution checker

BullzeyeFree
Trigger · On radar match1,876 installs

Before a name reaches your squawk, pulls the filing history and classifies the structure, such as shelf exhausted, ATM active or priced offering in the last five sessions, and downgrades the match if supply just landed.

Halt tactician

@tapewatcher$12/mo
Trigger · On halt884 installs

On a T1 or T12, reads the book and the historical reopening distribution for that float band, then tells you the range the auction has printed in 80% of comparable halts. Backtested on 1,204 episodes.

Honest debrief

@riskfirst$8/mo
Trigger · 16:30 ET, weekdays1,203 installs

Reads today's ledger against the playbook you wrote at 08:00 and asks the uncomfortable question. Configurable bluntness. Most people set it to maximum and then turn it down.

Listings shown are illustrative launch examples, install counts included. The marketplace opens with the founding cohort.

Not claimed

What we are not claiming

No model here predicts price. There is no black box producing a score you cannot inspect, and there is no signal you are asked to trust because the AI said so. Every number a model reports came from a tool call you can make yourself, and the agent shows you which one.

What the AI is genuinely good at is the part of the routine that is reading, cross-referencing and remembering: checking whether a filing exists behind a story, recalling that this setup has lost you money eleven times, noticing that today looks like a day you historically overtrade. That is the work, and it is work a model does tirelessly at 07:00 while you are still making coffee.

The agent runtime, marketplace and MCP server are Elite-tier features. See what each tier includes. Bring-your-own-model is available from Trader.

The founding cohort is 1,000 seats.

We admit 1,000 traders at a time because that is the largest number whose feedback on radar accuracy we can actually work through before opening the next batch. Applications are admitted in order; the intake asks what you trade, and answering it moves you up.

No card at application. Founding price locked for the life of your account. The full intake asks what you trade and moves you up the queue.

Founding cohort · 1,000 seatsApplications open

Admitted in order of application · momentum traders who complete the intake go first · founding price locked for the life of your account