# How to connect Claude or ChatGPT to a daily momentum screener over MCP

MCP is the protocol an AI assistant uses to call an outside service. Point a
client at one address — `https://qmscreener.com/mcp` — and the assistant can read
QM Screener's daily screens in the conversation, instead of you opening the
dashboard, reading rows and typing them back in. There are 5
tools: 3 answer with no credential, and 2 need a token from a
subscriber account. The engineering detail is on the
[docs page](https://qmscreener.com/docs); this page is what it does for a trader.

## What MCP actually gives you

An assistant with no tools is working from memory, and memory is the wrong
thing to ask about a market: it will produce a moving average it never
computed and a confident sentence about today from a training set that ended
months ago. A tool call fixes that at the source — the assistant reads the
same result file the dashboard draws, from the run that finished after the
last close.

What that changes is the shape of the question you can ask. Ranking, filtering
and charting are what the dashboard is for. What it cannot do is answer in
words, cross two lists, or say why a name is on one and not the other. Over
MCP you can ask for the intersection, or hand the assistant a ticker and have
it check the day's lists for you. The screen still decides
what passed; the assistant only reads it.

The screens are the same 6 the site runs: Momentum Continuation, Trend Template, VCP, Gappers, Defensive Strength and Swing Momentum.
Each encodes publicly documented trend and momentum criteria assembled from
public sources. QM Screener is an independent product and is not affiliated
with, endorsed by, or sponsored by any trader, author, publisher or firm.

## The 5 tools

These are the tools as the server advertises them, taken from the same list
the server card publishes and the endpoint answers `tools/list` with, so a
tool cannot be described here and be missing there.

| Tool | What it answers | Access |
|---|---|---|
| `list_screens` | List the momentum screens this site runs and what each one tests for. | Public |
| `todays_top_setups` | The highest-ranked passing tickers per screen from the most recent run, with the total that passed. | Public |
| `sector_strength` | Trailing returns for 21 US sector ETFs measured against SPY. | Public |
| `screen_results` | One screen's full result set — every passing ticker with the metric values that decided it, plus the near-miss and mean-reversion lists and the run's SPY benchmark return. | Subscriber |
| `price_history` | Daily OHLCV bars for one US ticker. | Subscriber |

Three things about that table are worth spelling out.

- **`todays_top_setups` is the one to start with.** It answers "what is
  setting up today" without the assistant having to pick a screen first. It is
  public, and its ticker list is always truncated to the highest-ranked
  5 names per screen, token or no token — the answer says so and
  carries the true passing count beside it, so the assistant reports how many
  names passed and shows 5 of them, rather than reporting
  5 as the day's total. The full lists are `screen_results`.
- **`sector_strength` covers 21 sector and industry ETFs** measured
  against SPY. It is public because which part of the market is
  leading is a fact about the market rather than a list of picks.
- **`screen_results` is the full document.** Every passing name with the
  values that decided it, plus the near-miss list (everything except relative
  strength), the mean-reversion list, and the run's own SPY
  three-month return so those comparisons can be checked against the rows.

## Connecting a client

Every MCP client words this differently, so the steps below are the shape of
it rather than a menu path. It starts in your client's server or connector
settings, and [the docs page](https://qmscreener.com/docs) carries the specifics.

- **Add the server URL.** `https://qmscreener.com/mcp`, as a remote MCP server over Streamable
  HTTP. That is the whole address, and there is nothing to install locally.
- **Try a public question first.** Ask for today's top setups. If that
  answers, the connection is good and no credential was involved.
- **Sign in when a paid tool is first called.** The client sends you to a page
  on this site to sign in and approve what it is asking for. Approving hands
  the client a token; declining leaves it with the public tools.

For a client that reads a description before connecting, the server card at
`https://qmscreener.com/.well-known/mcp/server-card.json` carries the endpoint, the transport,
the authorization scheme and this same tool list as JSON.

## Questions an assistant can answer

Each of these maps to a tool above, which is the useful test — a question that
maps to no tool is answered from memory.

- **"What is setting up in US stocks today?"** The top names on each screen
  from the most recent run, with the number that passed each one.
- **"Which of today's names are tagged BASE or TIGHT?"** Every row carries a
  setup tag, which separates the consolidations from the names that have
  already run.
- **"What does the VCP screen actually test for?"** The screen list names each
  screen's methodology and the number that screen leads with, before any list
  is read.
- **"Which sectors are leading over the last month, and did anything change?"**
  Trailing returns for the 21 funds against SPY, from the same
  run.
- **"Which names on the momentum list also clear the trend checklist?"** Two
  full result documents and an intersection — the cross-screen question the
  dashboard cannot ask. Subscriber token.
- **"Give me the daily bars for one of them and describe the base."** Daily
  OHLCV, oldest first, from the same cache the screens run on, with an optional
  cap on how many of the most recent bars come back. Subscriber token.

What no question reaches: an intraday price, a quote, an earnings date, a news
headline or an order. None of those is in a tool.

## What a token can and cannot do

A bearer token is not a session. It is issued to a client you approved, it
carries a named scope, and it opens exactly what that scope covers and no
more.

- **The credential flow is OAuth 2.1** with an authorization code and PKCE.
  The client registers itself, you approve it on a page here, and the token is
  bound to your account and its subscription. The flow is written out at
  `https://qmscreener.com/auth.md`.
- **The scope for the paid tools is `screener:read`** — read every screen's
  full results and price history. A token without it is refused by the tool
  even when the account behind it is paying.
- **Tokens are short-lived.** An access token is good for
  60 minutes and a refresh token for 30 days, and
  refresh tokens rotate, so the one a client presents dies as its replacement
  is written.
- **Revocation is a real endpoint** (RFC 7009), and revoking a refresh token
  takes effect immediately. No scope can place an order, move money or change
  a subscription.
- **Never paste a password into a chat.** The one place this flow ever asks
  for a password is the sign-in and approval page on this site, so a client or
  tool that wants an account password typed into a conversation to "connect"
  is not talking to this server.

## Limits, and what they are for

- **Rate limit.** 240 requests per
  60 seconds per address, across the API, the MCP endpoint
  and the OAuth endpoints together. Every metered response carries the RFC
  9331 `RateLimit` headers and a refusal carries `Retry-After` in seconds, so
  a client can throttle on what it is told. The budget is generous because the
  data changes once a day: polling faster returns the same rows.
- **End of day only.** One run per trading day, after the US close, keyed to
  the newest settled session rather than to the clock. A run started while the
  market is open screens the previous close instead of a partial bar.
- **No execution, no advice.** The tools list names that passed published
  filters. They do not size a position, set a stop, or know anything about
  your circumstances.

## How to use this in QM Screener

- **Read the setup steps** on the [docs page](https://qmscreener.com/docs) — the address, the
  tool list and the error format in one place — plus the server card at
  `https://qmscreener.com/.well-known/mcp/server-card.json` for a client that reads one.
- **Add `https://qmscreener.com/mcp`** in your MCP client's server settings, then ask for
  today's top setups before connecting an account.
- **Approve the sign-in** when a paid tool is first called.
- **Or copy the address from the product.** The dashboard's `...` menu has a
  **Connect AI assistant** item that shows the same URL ready to copy. It is
  there on every signed-in account, free included, since the public tools work
  either way.
- **Keep the dashboard for what it is better at.** Open it at
  [https://qmscreener.com/](https://qmscreener.com/) and pick a screen in the picker at the top — there is no
  per-screen link. A chart has one: `https://qmscreener.com/?view=chart&t=TICKER`.

A free account — a verified email address, no card — sees the top
5 names of each screen every day and can chart them, and the public
MCP tools answer on the same terms. The full lists, the per-row values, price
history and the exports are $10 a month or
$84 a year, each starting with a
7-day free trial. [Start there](https://qmscreener.com/signup), or
[sign in](https://qmscreener.com/login) if you already have an account.

## Frequently asked questions

### Do I need an API key?

No. There is no key to paste and nothing to install. The public tools answer with no credential. For the subscriber tools the client registers itself and sends you to a sign-in and approval page on this site, which is where the token is issued and where your password is typed — never in the chat.

### What can an assistant read without a subscription?

Three of the five tools: the list of screens and what each one tests for, the highest-ranked passing names per screen from the most recent run, and the sector strength ranking. The passing list is truncated and the true total is reported beside it, so the count is never wrong even when the names are cut short.

### Can the assistant place a trade?

No. Every tool is read-only, and no scope grants anything else. What comes back is a screening result, which is not advice and carries no position size, target or stop.

### How do I disconnect it?

Revoke the token. The site implements RFC 7009 revocation, which is immediate for a refresh token; an access token that is already issued expires on its own within the hour. Removing the server in your client stops it calling; revoking stops the credential working at all.

### Is the data live?

No. This is end-of-day US equities, rerun once per trading day after the close. An assistant asking mid-session gets the previous close, the same data the dashboard shows at that moment. There is no intraday feed, no quotes and no execution.

## Read next

- [Docs](https://qmscreener.com/docs) — the setup steps, the HTTP API for scripts, and the
  error format.
- [How to screen for momentum stocks](https://qmscreener.com/how-to-screen-for-momentum-stocks) — the
  measurements every screen is built from, and what the setup tags mean.
- [Trend template stock screener](https://qmscreener.com/trend-template-stock-screener) — the
  eight-point checklist behind one of the screens.
- [Export a screen to TradingView](https://qmscreener.com/export-screener-to-tradingview) —
  the other way a list leaves the dashboard.
- [All guides](https://qmscreener.com/guides) — everything published so far.

---

Educational content, not financial advice. QM Screener lists stocks that passed
published filters; it does not recommend trades, size positions or know
anything about your circumstances. US equities, end-of-day, refreshed once per
trading day after the close.
