News for AI agents.

Plug AlphAI into ChatGPT, Claude, Gemini, Grok, Cursor, VS Code, Windsurf, or any other client that speaks MCP over Streamable HTTP. Setup is one OAuth login, about a minute. After that your agent can search scored, ticker-linked news, pull insider filings, and triage what's breaking in real time. Behind the tools we scan 10,000+ articles from 6,900+ sources every day, score them 1–10, and let fewer than one in five into the feed.

Install

Settings → Connectors → Add custom connector

  Name: AlphAI
  URL:  https://mcp.alphai.io/mcp

Claude Desktop opens your browser to log in to AlphAI and approve
the connection. After that, the AlphAI tools appear in the tool
list automatically. No API key to copy — auth uses OAuth 2.1.

Check the callback host or app scheme and full callback address on the approval page. App names are supplied by the client and are not verified by AlphAI. Approve only a connection you started.

The tools.read scope lets a connection read news, SEC filings, your saved watchlist and your alert list. The alerts.write scope lets it create, change and remove your own news alerts on Basic or Pro, including after a plan upgrade. The approval page lists each scope. A connection approved before October 25, 2026 has no alerts.write: disconnect and reconnect once to approve it. API keys carry every scope. Review registered callbacks under Account → MCP connections.

Disconnect blocks the app's existing access and refresh tokens, including other sessions of that connection. Work already in progress may finish. To connect again, approve a fresh connection from the app. Other apps and API keys are unaffected.

Building an OAuth client? Refresh one token at a time and save its replacement before the next refresh. Reusing a refresh token ends that connection. If you receive invalid_grant, restart authorization instead of retrying the same credential.

Connecting opens a browser window to authorize (OAuth 2.1); approve it while the client is still running. If the callback tab shows “This site can't be reached”, the client that started the login was restarted mid-flow. Toggle the server off and on (or reconnect) to get a fresh login window, then approve promptly.

Using the mcp-remote bridge? Stale state lives in ~/.mcp-auth; delete that directory and reconnect to restart the flow clean. And a bare curl of the server URL answering 401 is expected: that response is what tells your client to start OAuth.

Running headless, or the browser dance keeps failing? Use an API key instead: create one under Account and send it as Authorization: Bearer ak_live_... (see the “API key (headless)” tab above). No OAuth involved.

Drop-in skills for Claude Code.

Skip the prompting. alphai-claude-skills is an open-source pack of Claude Code skills that wrap these tools into ready-made workflows: a one-ticker brief, a market pulse, an insider-activity scan, a two-ticker read-across, and alert management. Copy them into ~/.claude/skills/ and ask in plain English.

# 1. connect the MCP
claude mcp add --transport http alphai https://mcp.alphai.io/mcp

# 2. add the skills
git clone https://github.com/makeev/alphai-claude-skills
cp -r alphai-claude-skills/skills/* ~/.claude/skills/

Tools

Market overview

alphai_radar

Find tickers getting more news coverage than usual, with the headlines behind each score.

Usage notes for alphai_radar
  • Scan the market or your saved watchlist over 4h or 24h (default). Filter by exact tickers, market or sentiment; choose sort and order. limit is 1–100 on every plan, default 20.
  • Snapshots refresh every minute. Free adds 60 minutes of delay, Basic 15, Pro none; collection and enrichment take additional time. Check as_of and freshness. Keep filters and limit unchanged with next_cursor; restart without a cursor on snapshot_expired.
  • Scores describe news activity, not price forecasts or confirmed alerts. Missing metrics include a reason. Open supporting news with alphai_article. Collection coverage is not verified.
  • event_context adds 7 days of 8-K and selected earnings 6-K filings, plus 30 days of open-market insider clusters, dated by the latest SEC filing. Share classes with the same SEC CIK share this context. Each list shows up to three entries, with SEC links and independent buyer counts.
  • Check event_context status and as_of, then each row’s status: null means unavailable; zero means no eligible stored records. Filings include news_uid, news_title, news_published and has_article. Open news_uid only when has_article is true; sec_url remains available. Older snapshots use false with null title and publication metadata.
  • Context is frozen at its cutoff and follows the same snapshot delay and cursor. It does not change news scores or which rows qualify. Available context does not certify complete SEC coverage.
alphai_watchlist_brief

Catch up on your saved watchlist. News is grouped by story, with SEC filings and upcoming earnings alongside.

Usage notes for alphai_watchlist_brief
  • Add tickers at /account/watchlist. Available on every plan. hours accepts 1–168 (default 24); limit accepts 1–20 per section (default 20). Shared events name every matched ticker.
  • Each section groups the newest 500 matching articles and ranks them by relevance, novelty and recency. events_truncated and filings_truncated flag omitted coverage. The window uses publication time; it is not a changes cursor.
  • Unknown symbols are listed explicitly. A missing earnings date means no confirmed date is on file.
alphai_trending

The top news from the past 48 hours, ranked by relevance and freshness.

Usage notes for alphai_trending
  • At most two stories per ticker. Coverage of the same event is grouped, with story_id, sources_count and sources. story_id is shared across news tools and alphai_story. Set dedupe=false to keep every article.
alphai_actionable_now

Find recent news that may need attention today.

Usage notes for alphai_actionable_now
  • Returns high-actionability news from the last few hours. Set min_actionability="medium" to include stories that may shape a position over time. Grouped items carry story_id, sources_count and sources, as in alphai_trending.
alphai_macro

Read macro news, from rate decisions to inflation, alongside the US release schedule.

Usage notes for alphai_macro
  • Covers the last N hours of central-bank decisions, inflation, jobs, commodities and geopolitics. Results put new information ahead of commentary, usually without tickers. Full analysis is included by default; grouped articles carry story_id, sources_count and sources.
  • Filter by categories or set min_relevance=7 to focus roughly on release-day events. releases lists scheduled US releases from the same window, newest first with coverage, followed by those due in the next 24 hours.
  • elapsed means the scheduled time passed. Check schedule_status for postponements or cancellations. Empty coverage means no linked AlphAI stories, not proof that a release was published.
alphai_calendar

See which US economic releases are coming up. Past releases link to related news when available.

Usage notes for alphai_calendar
  • Uses official calendars for FOMC decisions and minutes (including SEP and press-conference markers), CPI, PPI, jobs, GDP, PCE, retail sales, weekly jobless claims and JOLTS.
  • Each release keeps its uid if rescheduled. phase is upcoming or elapsed; elapsed only means its scheduled time passed. Check schedule_status for postponements. Coverage links can be opened with alphai_article.
  • days_back counts from today’s UTC midnight, so the default includes today’s elapsed releases. Use alphai_macro to read the surrounding news.

Search & stories

alphai_news_search

Search financial news by topic, ticker or date. Add category and relevance filters to narrow the results.

Usage notes for alphai_news_search
  • query searches titles, summaries and entity names. Words are required together; use "a phrase", -word or OR to refine a search. One typo is allowed in words of five or more letters. Results are ranked, with newest first among equal matches, up to the best 200.
  • query_interpretation.search reports strict, broadened or no_match within your plan’s archive. A broadened search keeps articles matching at least two words; check search_match.terms_matched before treating them as matches. Recognized tickers and categories in query_interpretation are hints, not filters. Explicit ticker and category filters always apply.
  • Use page_size (or its alias limit) and next_cursor to page results. collapse_stories=true groups reprints and other coverage of one event; sources_count counts distinct outlets and is usually 1. sort="ingested" supports polling for new arrivals and cannot be combined with query. See the polling notes below.
  • source_type accepts gdelt (press), sec_form4, sec_form8k or sec_form6k. item="5.02" finds officer-change 8-K filings; categories cover 2.02 (earnings) and 2.01 (mergers_acquisitions). Full 8-K results include items, primary_item, accession_number, filed_at, event_date and exhibit_url in a filing block.
  • time_published is the article’s publication time; created_at is when AlphAI received it.
alphai_ticker_news

Get the latest news for one ticker, including insider filings.

Usage notes for alphai_ticker_news
  • Use min_relevance to set a relevance floor. The default 4 leaves out low-relevance items; 1-3 adds them. Results are newest first with cursor pagination. sort="ingested" polls new arrivals; collapse_stories=true groups coverage of the same event.
  • Delisted symbols return their history with delisted=true. renamed_to points to a company’s new symbol. Share classes include each other’s tagged news (GOOGL includes GOOG); bare crypto symbols resolve to -USD (DOGE serves Dogecoin).
alphai_stories

Browse events covered by at least two publishers, with a summary of each story when ready.

Usage notes for alphai_stories
  • list=top ranks the last 48 hours by importance, breadth of coverage and freshness, with one slot per ticker. list=latest pages all stories by their newest article. These are events with independent coverage; alphai_trending ranks articles.
  • Cards include story_id, title and lead, importance (7 or above on the 1–10 scale), publishers and materials. summary_state is published, stale if articles arrived after the summary, or preparing if no summary exists yet.
alphai_story

Read a story summary with sourced facts and links to the articles behind it.

Usage notes for alphai_story
  • Pass story_id from a news result. The summary includes why_it_matters, up to six key_facts with publisher and source_uid, ticker_takes and open uncertainties. It also returns the first page of source articles, which you can open with alphai_article. Figures are drawn from source articles; article bodies are not returned.
  • status is found, merged (call again with redirect_to), or not_a_story (one publisher covered the event; article identifies that result).
alphai_pair_analysis

Compare recent news for two tickers and find stories that mention both.

alphai_article

Open an article by its UID to get the full AlphAI summary and analysis.

Usage notes for alphai_article
  • Use it to expand a compact result or fetch any known article. SEC results include structured Form 4 trades or 8-K filing details. Major-ticker earnings filings add an earnings block (8-K item 2.02 or a foreign issuer’s 6-K earnings release).
alphai_tickers

Look up supported tickers, company details and confirmed earnings dates.

Usage notes for alphai_tickers
  • Includes name, sector and exchange. next_report_date is company-confirmed, never an estimate. null means no confirmed date is on file.

Filings & earnings

alphai_insider_news

Find SEC Form 4 trades by company insiders. Filter by ticker or trading-plan status.

Usage notes for alphai_insider_news
  • Covers directors, officers and 10%+ owners. Filter by date and minimum relevance; is_10b5_1=false excludes trades under prearranged plans.
  • Full results include side, shares, average price, total value, owner and filed_at. late_filing flags filings beyond the two-business-day deadline.
  • Use sort="ingested" to watch for new filings. A trade may be reported days later, so its article can arrive below the newest page in publication order.
alphai_insider_clusters

Find companies where several insiders bought shares on the open market. Each result links to the SEC filings.

Usage notes for alphai_insider_clusters
  • Purchases form a cluster when consecutive trade dates are at most 10 days apart, up to a 30-day episode. Buyers count only after their purchases are checked.
  • The default open_market list excludes IPO/PIPE allocations, ESPP/DRIP and director-plan purchases, unpriced units or note exchanges, and duplicate ownership reports. Price patterns and filing footnotes help identify offerings. Buyer roles are independent, plan_like, unpriced or duplicate_of; use pattern=plan_or_offering, holders_only or all to inspect the others.
  • days uses known_at, when the latest filing reached EDGAR. Free reaches 30 days; Basic and Pro reach 90. Sort by recent, buyers or value. Results include accession numbers, EDGAR links and news UIDs for alphai_article.
alphai_earnings

Read earnings figures and management guidance from a company’s SEC filings.

Usage notes for alphai_earnings
  • Reports are newest first, with the next confirmed report date when available. Coverage starts in late July 2026, so a ticker may have only one or two reports. An empty list means no read is available.
  • key_metrics and segments include numeric, unit and scale beside each printed value. table_scale gives the filing tables’ unit.

Alerts

Basic and Pro plans
alphai_alerts_list

See your active ticker alerts and their filters.

alphai_alerts_subscribe

Create a ticker alert or change its filters.

Usage notes for alphai_alerts_subscribe
  • Category and relevance filters you supply replace saved values; omitted filters stay unchanged. The tool has destructiveHint: true because it can overwrite settings, so your client may ask for confirmation.
  • New alerts default to min_relevance_score=7. This threshold applies to email and Telegram. Pro webhooks receive every matched article and apply their own filtering.
alphai_alerts_unsubscribe

Remove a ticker alert from your account.

ChatGPT deep research

search

News search for ChatGPT deep research. Understands company names and topics as well as ticker symbols.

Usage notes for search
  • Query terms resolve to filters. Use alphai_news_search when you need to set filters explicitly.
fetch

Open a result from search as citation-ready text, with links to AlphAI and the original source.

Usage notes for fetch
  • Pass the id returned by search. Includes the enriched digest and, when ready, an earnings read with metrics, comparisons, segments, guidance, concerns and missing data.

Response formats & polling

Full or compact responses
  • Use detail="compact" to scan headlines, then open a result with alphai_article(uid). Supported by alphai_news_search, alphai_ticker_news, alphai_insider_news, alphai_trending, alphai_actionable_now, alphai_macro and alphai_pair_analysis. The default, detail="full", keeps each tool's usual format, including pair_analysis's condensed recent lists.
  • Compact keeps uid, title, url, source, source_domain, source_type, time_published, created_at, tickers, category and relevance_score. actionability and information_novelty move to the top level. story_id, sources_count, sources, ownership_form and search_match keep their values. Summary, analysis, images, read time and insider, filing and earnings blocks are omitted.
  • Results, order, cursors and page metadata stay the same, so you can switch detail between pages. Query interpretation and macro releases keep their shapes. Compact does not change story grouping or the number of calls charged.
  • Missing the detail parameter? Refresh your tool catalog. In Claude Code, open /mcp and reconnect AlphAI. In Claude.ai, reconnect in connector settings and start a new conversation. The refreshed schema should list full and compact choices for detail.
Grouping articles by story
  • On alphai_news_search and alphai_ticker_news, set collapse_stories=true to group coverage of the same event, including in ingested order. The default is false; sources_count and sources are null when grouping is off. Keep this setting unchanged when continuing a cursor.
  • REST /api/news/ and /api/news/search/ also accept collapse_stories=true, equivalent to collapse=story. Use one spelling per request. False leaves articles ungrouped.
  • Grouped polling returns a representative article for each story. Later articles joining that story are not story-update events. To receive every matching article, keep grouping off and group by story_id in your client.
Polling for new articles
  1. Use sort="ingested". The first response gives a recent sample and next_cursor at the feed head. The sample may be partial or empty. Use published order for older history.
  2. For a minimal starting response, set page_size=1 and detail="compact". Ignore the optional item and save next_cursor, then continue with your usual page size. Keep filters and sort unchanged. There is no cursor-only flag.
  3. After the first request, an empty successful page means you are caught up. A short nonempty page can still have more results. A tool error never means completion.
  4. On delta_scan_incomplete, read the error JSON (message, extra.reason and extra.next_cursor) and continue from extra.next_cursor with the same filters and sort. Do not repeat the old cursor. On delta_candidates_changed, retry the original request.

Same tools, deeper reach.

Every plan sees all 21 tools. Tiers differ on cadence, page depth (page_size caps at 20 on Free and Basic and 50 on Pro; oversized requests are clamped, not rejected), how far back search reaches, and alert capacity. MCP calls are metered per account, with a per-minute burst cap and a per-day volume cap, separately from the REST quota. Only tool calls are metered: the connect handshake, the tool catalog and keepalives are free, and a request rejected with 429 does not spend budget either.

FreeBasicPro
Burst / min2060150
Volume / day10010,000100,000
News feed max page size202050
Radar added delay60 min delay15 min delayNo added delay
News archive depth30 days90 days180 days
Ticker alerts—1050
Alert delivery—Daily digestInstant

What an MCP-connected agent can do.

One OAuth flow connects all 21 tools. Your agent taps the same news index you read yourself.

What your agent gets right now.

The stories alphai_trending returns at this moment, trimmed to the core fields. Ask Claude what's moving and these are the rows behind the answer.

alphai_trending · output excerpt
[
  {
    "title": "DoorDash Reportedly Nears $17 Bln Deal To Acquire Instacart",
    "tickers": [
      "DASH"
    ],
    "relevance_score": 9,
    "category": "mergers_acquisitions",
    "time_published": "2026-10-27T05:36:33Z"
  },
  {
    "title": "EQT, Range Resources To Combine To Form $50B Gas Giant",
    "tickers": [
      "EQT",
      "RRC"
    ],
    "relevance_score": 9,
    "category": "mergers_acquisitions",
    "time_published": "2026-10-27T05:01:00Z"
  },
  {
    "title": "ArriVent BioPharma’s ARR-217 Shows 44.8% Response Rate in Colorectal Cancer Study",
    "tickers": [
      "AVBP"
    ],
    "relevance_score": 9,
    "category": "other",
    "time_published": "2026-10-27T04:02:01Z"
  }
]

Claude, what's moving in chips today?

Once AlphAI is installed, Claude reaches for the right tools on its own; you never have to name a tool in the prompt. The same articles you read in the feed end up in Claude's context window.

Example tool call · Claude Code

What's driving semiconductor stocks today? Focus on the last 24 hours.

alphai_news_search({
  "tickers": [
    "NVDA",
    "AMD",
    "TSM"
  ],
  "min_relevance": 8,
  "from_date": "2026-10-26T06:09:33.022Z"
})

Matching articles include source links and per-ticker analysis. The example timestamp is set to 24 hours before this page was rendered.

Still shipping.

99.97%
99.85%
99.99%
99.85%

The probes run from GitHub Actions, outside our own infrastructure, so the status page stays reachable when our services are not. The API probe is a deep one and passes only when the database and the cache both answer. Response times, history and past incidents are public.

Questions

What is the AlphAI MCP server?

A hosted financial-news MCP server. It exposes AlphAI's scored, ticker-linked news feed, SEC Form 4 insider filings, and trending-story triage as Model Context Protocol tools that any compliant client can call. Connect once over OAuth 2.1 and your agent reads the same enriched newswire that powers alphai.io.

Which MCP clients work with AlphAI?

Any spec-compliant MCP client that speaks Streamable HTTP. ChatGPT, Claude Desktop, Claude Code, Gemini, Grok, Antigravity, Cursor, VS Code, and Windsurf are all tested. Point the client at https://mcp.alphai.io/mcp and authenticate with OAuth in the browser, or send an AlphAI API key as a Bearer header where no browser is available. Google Antigravity does not run the browser login for custom MCP servers, so it connects with an API key only.

Can I connect without a browser, for a bot or a server?

Yes. The same API keys that authenticate the AlphAI REST API work on the MCP server: send Authorization: Bearer ak_live_... with every request and skip the OAuth flow entirely. Create a key under Account, then paste it into any client that supports custom headers, such as n8n, cron agents, CI jobs, or an SDK. The key carries the same plan limits as an OAuth session.

Is there a free tier for the MCP server?

Yes. The Free plan connects to the MCP server with an allotment of 20 requests a minute and 100 a day, which is enough to wire an agent up and evaluate the tools before paying. Basic and Pro raise the caps for production and commercial use.

How do I connect Claude to financial news?

In Claude Desktop, open Settings → Connectors → Add custom connector, name it AlphAI, and paste https://mcp.alphai.io/mcp. Claude walks you through the OAuth login, then reaches for the AlphAI tools on its own whenever a prompt needs market news.

Claude + the newswire.

The Free tier is 100 calls a day, no card. Sign up, connect your MCP client, and your agent is reading the feed in about a minute.