@pipeworx/finnhub
Connect: https://pipeworx.io/mcp — every tool in the catalog, including @pipeworx/finnhub’s. Install: one-click buttons
Connect to just the @pipeworx/finnhub pack
https://gateway.pipeworx.io/finnhub/mcp — only @pipeworx/finnhub’s own tools, nothing else in the catalog.
No MCP client? Skip the connection: POST https://gateway.pipeworx.io/v1/tools/search_packs {"query":"..."} to find a tool below, GET /v1/tools/<name> for its schema, POST the same URL with arguments for the data — see For AI agents.
Tools: 5
Finnhub’s REST API. Real-time stock quotes, fundamentals, earnings, news, alternative data (insider transactions, sentiment, ETF holdings), economic data, crypto, and forex. Comprehensive market data with a strong free tier.
Why this matters for AI agents
Where Alpha Vantage is solid for fundamentals + technical, Finnhub is stronger for real-time quotes (1-minute resolution on free), insider transactions, news/sentiment, and international markets. For finance agents that need price data alongside news flow and insider activity, Finnhub is fit-for-purpose.
Common flows:
- Quote. Real-time (or 15-min delayed on free tier) stock quote.
- Company news. Recent news for a ticker with sentiment scoring.
- Insider transactions. Form 4 filings with timing and dollar amounts (also see insider-trading pack which is SEC-EDGAR-direct).
- Earnings. Upcoming earnings calendar, surprise history, EPS estimates.
- International symbols. European, Asian, emerging-market tickers (where Alpha Vantage gets thinner).
Auth
Free key from https://finnhub.io/dashboard. Free tier: 60 API calls/minute. Pass via _apiKey.
Higher tiers ($50-200/mo) unlock real-time data, longer historical, and rate limits suitable for production. The free tier is sufficient for most agent research.
When to use Finnhub vs. Alpha Vantage
| Need | Better source |
|---|---|
| Quotes | Either; Finnhub real-time-er on free tier |
| Income statement / balance sheet | Alpha Vantage (cleaner schema) |
| Insider transactions | Finnhub or insider-trading pack |
| Company news with sentiment | Finnhub |
| Earnings calendar | Finnhub |
| International coverage | Finnhub |
| Technical indicators | Alpha Vantage |
| ETF holdings | Finnhub |
For richest coverage, Pipeworx agents often mount both.
Earnings surprises vs. the earnings calendar
Two different tools answer two different earnings questions, and picking the wrong one silently misses data:
- “What were last quarter’s actual results vs. what analysts expected?”
→
get_earnings_surprises({ symbol }). Keyed by symbol, not by a date window, so it reaches back through the company’s reporting history regardless of how long ago the quarter was. Returns EPS actual, EPS estimate, surprise amount and surprise percent per quarter (most recent first). EPS only — Finnhub’s earnings-surprise history does not carry revenue, and the tool says so explicitly rather than returning a silentnull. - “What’s scheduled to report, or what happened in the last few weeks?”
→
get_earnings_calendar({ symbol, from, to }). Takes a date window and includes revenue estimate/actual alongside EPS — but measured live (2026-10-21), the calendar’s historical reach on this plan is short: roughly the last several weeks from today, not the company’s full reporting history. A quarter older than that returnsfound: falseeven though the company genuinely reported — that reads as “no earnings” if you don’t know the window is truncated. Useget_earnings_surprisesinstead for anything older than a few weeks.
Common pitfalls
- Symbol conventions. US tickers are simple (AAPL); international markets need exchange suffixes (NESN.SW for Nestlé on Swiss exchange). Finnhub has a symbol search.
- Free tier real-time delay. “Real-time” on free is essentially current; on paid it’s actually live. For agent research, free is fine. For trading, paid.
- News sentiment is heuristic. Finnhub computes sentiment with NLP — it’s directionally useful but noisy. Don’t treat as ground truth; useful as a signal.
- Insider transaction lag. SEC requires Form 4 filing within 2 business days of the transaction. Finnhub picks them up shortly after. Real-time alerting requires either polling or a separate real-time SEC feed.
- Estimates vs. actuals. Finnhub provides analyst consensus estimates; mixing them with actuals in plots requires labeling carefully.
- Free-tier coverage holes. Some smaller caps and OTC stocks have limited Finnhub coverage on free. Verify the data exists for your target tickers before designing flows around it.
Tools
- get_quote — Get a real-time stock quote including current price, change, and volume. Example: get_quote({ symbol: “AAPL”, _apiKey: “your-key” })
- get_company_news — Get recent news articles about a company within a date range. Returns headline, summary, source, and URL. Example: get_company_news({ symbol: “AAPL”, from: “2024-01-01”, to: “2024-01-31”, _apiKey: “yo
- get_earnings_calendar — Get upcoming and recent earnings reports. Pass
symbolfor one company’s earnings dates, or omit it for the whole market. Optionally filter by date range. Example: get_earnings_calendar({ symbol: “CR - get_earnings_surprises — EPS actual vs analyst (consensus) estimate, beat or miss, for a company’s recent quarters — the “earnings surprise” history. Returns per quarter: fiscal period, EPS actual, EPS estimate, surprise amou
- search_symbol — Search for stock ticker symbols by company name or keyword. Returns matching symbols with descriptions. Example: search_symbol({ query: “apple”, _apiKey: “your-key” })
Tools
get_company_news— Get recent news articles about a company within a date range. Returns headline, summary, source, and URL. Example: get_company_news({ symbol: AAPL , from: 2024-01-01 , to: 2024-01-31 , _apiKey: your-kget_earnings_calendar— Get upcoming and recent earnings reports. Pass `symbol` for one company's earnings dates, or omit it for the whole market. Optionally filter by date range. Example: get_earnings_calendar({ symbol: CRMget_earnings_surprises— EPS actual vs analyst (consensus) estimate, beat or miss, for a company's recent quarters — the earnings surprise history. Returns per quarter: fiscal period, EPS actual, EPS estimate, surprise amountget_quote— Get a real-time stock quote including current price, change, and volume. Example: get_quote({ symbol: AAPL , _apiKey: your-key })search_symbol— Search for stock ticker symbols by company name or keyword. Returns matching symbols with descriptions. Example: search_symbol({ query: apple , _apiKey: your-key })