Hesper Atlas

Hesper Atlas for AI agents

A Model Context Protocol endpoint. The whole published record is free to read, with no credential. Today's live signals need a subscription.

Endpoint: https://hesperatlas.com/mcp . Protocol: 2026-07-28 . Public track record . Ledger JSON

Short answer: point any MCP client at https://hesperatlas.com/mcp. Five tools work immediately and cover the entire signal ledger, winners and losers, plus the open book and the per-name history. Four more return today's action layer and need an API key from an active subscription. Everything returned is educational signal data, never personalized investment advice.

1Connect

The transport is Streamable HTTP: one stateless POST carrying JSON-RPC 2.0. There is no stream to open, no session to keep and, in the current protocol, no initialize handshake. MCP clients handle the request metadata automatically. A plain HTTP client can discover the server like this:

curl -s https://hesperatlas.com/mcp \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json, text/event-stream' \
  -H 'MCP-Protocol-Version: 2026-07-28' \
  -H 'Mcp-Method: server/discover' \
  -d '{"jsonrpc":"2.0","id":1,"method":"server/discover","params":{"_meta":{
        "io.modelcontextprotocol/protocolVersion":"2026-07-28",
        "io.modelcontextprotocol/clientInfo":{"name":"curl","version":"1"},
        "io.modelcontextprotocol/clientCapabilities":{}}}}'

Every current-protocol request repeats that _meta block and sends matching MCP-Protocol-Version and Mcp-Method headers. A tools/call request also sends Mcp-Name. This makes each request independently routable and prevents a proxy and the application from interpreting different operations.

For a subscription key, add one header. Nothing else changes.

curl -s https://hesperatlas.com/mcp \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json, text/event-stream' \
  -H 'MCP-Protocol-Version: 2026-07-28' \
  -H 'Mcp-Method: tools/call' \
  -H 'Mcp-Name: get_signal' \
  -H 'Authorization: Bearer hsp_live_...' \
  -d '{"jsonrpc":"2.0","id":2,"method":"tools/call",
       "params":{"name":"get_signal","arguments":{"symbol":"NVDA"},"_meta":{
         "io.modelcontextprotocol/protocolVersion":"2026-07-28",
         "io.modelcontextprotocol/clientInfo":{"name":"curl","version":"1"},
         "io.modelcontextprotocol/clientCapabilities":{}}}}'

In an MCP client that takes a remote server URL, add https://hesperatlas.com/mcp as a Streamable HTTP server and set the bearer token if you have one. Current clients may use server/discover; domain-level discovery metadata also lives at /.well-known/mcp.json. 2025-era clients remain supported through their automatic initialize / notifications/initialized flow.

2The tools

ToolAccessReturns
get_track_recordFreeHeadline record plus a bounded page of the open book. Defaults to 10 open positions; use open_limit and open_offset to page, or limit 0 for summary only.
get_ledger_statsFreePer year, per theme, return distribution, holding periods, ten best and ten worst, closed and open cut on identical buckets.
get_symbol_recordFreeEvery closed round trip on one ticker, plus its open position if it has one.
list_closed_tradesFreeThe raw closed ledger, newest first, filterable and paged.
get_methodologyFreeHow the engine decides, what the numbers claim, the known biases.
get_signalKeyToday's bot-safe action and target position, confirmed ownership state, current ledger leg, first longer-history entry, risk level and trigger prices.
list_signalsKeyrecent_entries for chronological entries; recent_buys only for entries still actionable now, plus recent sells, at risk, opportunities, undervalued, catch-up and on-deck.
get_market_contextKeyRegime, breadth, market heat and the cycle read.
get_model_portfolioKeyThe model book: best N names to own now, risk-weighted.

For automation, treat action and suggested_position as authoritative. The confirmed state can still read LONG during the interval after price crosses a published sell line and before the closing-bar engine transition is recorded; in that case the tool returns action: EXIT, recommended_state: FLAT and target position 0. Entry clocks are named explicitly: current_leg matches the public ledger window, while first_entry covers the longer active trend.

Calling a key-only tool without one is not an error you have to handle specially: it returns a structured payload naming the price, the sign-up URL and the free tools that cover the same ground, so an agent can simply tell its user what to do.

3Keys

A subscriber creates a key on the account page and copies it once. Keys are stored hashed, so a lost key is replaced, never recovered. Up to ten active keys per account, each revocable on its own.

A key is a read credential and only that. It is accepted on /mcp and refused everywhere else, so a key you hand to a third-party agent cannot cancel your subscription, change your billing, delete your account or create more keys. A stolen session cookie could do all four; a stolen key cannot.

4Limits and fair use

5What the API deliberately does not return

No raw price history. Every field is Hesper Atlas's own derived output: signals, dates, returns, statistics. If you need candles, use a market-data vendor; that is their product, not ours.

No personalized advice, from any tool. The engine does not know your portfolio, tax position, horizon or risk tolerance, and its output is an impersonal publication. Every payload carries a disclaimer field for exactly this reason: relay it.