Skip to content

Finnhub MCP by usefulapi

by usefulapi.io · remote · no sign-in to list tools · v1.16.3 · published by io.usefulapi

Quotes, company profiles, fundamentals, earnings and IPO calendars, plus market and company news.

Final · 4Changes · 8

15 tools: 4 do something that can't be undone, 8 change things and 3 only read.

Scanned Oct 21, 2026

4 checks matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.

claude mcp add --transport http finnhub https://finnhub.usefulapi.io/mcp

Findings

Matches of fixed checks, with the text they matched.

4 warn
  • The server marks "finnhub_company_news" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".

    Matched text

    annotations: {"readOnlyHint":true}; The input addresses people (input.to): what it sends cannot be taken back.

    What this check looks for
  • The server marks "finnhub_insider_transactions" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".

    Matched text

    annotations: {"readOnlyHint":true}; The input addresses people (input.to): what it sends cannot be taken back.

    What this check looks for
  • The server marks "finnhub_earnings_calendar" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".

    Matched text

    annotations: {"readOnlyHint":true}; The input addresses people (input.to): what it sends cannot be taken back.

    What this check looks for
  • The server marks "finnhub_ipo_calendar" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".

    Matched text

    annotations: {"readOnlyHint":true}; The input addresses people (input.to): what it sends cannot be taken back.

    What this check looks for

Tools

Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.

15 tools

Can't be undone 4Claude Code: ask
  • finnhub_company_newsLatest company news for a symbol over a date range (up to 1 year back).1 finding

    Why it is in this group

    • The input addresses people (input.to): what it sends cannot be taken back.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "finnhub_company_news" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".

      Matched text

      annotations: {"readOnlyHint":true}; The input addresses people (input.to): what it sends cannot be taken back.

      What this check looks for
    Description, as the server wrote it
    Latest company news for a symbol over a date range (up to 1 year back). Finnhub REST: GET /company-news.

    Annotations the server declares

    • title: Company news
    • readOnlyHint: true
  • finnhub_earnings_calendarUpcoming and historical earnings release calendar, optionally filtered by date range and/or symbol.1 finding

    Why it is in this group

    • The input addresses people (input.to): what it sends cannot be taken back.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "finnhub_earnings_calendar" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".

      Matched text

      annotations: {"readOnlyHint":true}; The input addresses people (input.to): what it sends cannot be taken back.

      What this check looks for
    Description, as the server wrote it
    Upcoming and historical earnings release calendar, optionally filtered by date range and/or symbol. Finnhub REST: GET /calendar/earnings.

    Annotations the server declares

    • title: Earnings calendar
    • readOnlyHint: true
  • finnhub_insider_transactionsInsider transactions (Form 3/4/5 filings) for a company, optionally within a date range.1 finding

    Why it is in this group

    • The input addresses people (input.to): what it sends cannot be taken back.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "finnhub_insider_transactions" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".

      Matched text

      annotations: {"readOnlyHint":true}; The input addresses people (input.to): what it sends cannot be taken back.

      What this check looks for
    Description, as the server wrote it
    Insider transactions (Form 3/4/5 filings) for a company, optionally within a date range. Finnhub REST: GET /stock/insider-transactions.

    Annotations the server declares

    • title: Insider transactions
    • readOnlyHint: true
  • finnhub_ipo_calendarIPO calendar for a date range — upcoming and recent initial public offerings.1 finding

    Why it is in this group

    • The input addresses people (input.to): what it sends cannot be taken back.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "finnhub_ipo_calendar" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".

      Matched text

      annotations: {"readOnlyHint":true}; The input addresses people (input.to): what it sends cannot be taken back.

      What this check looks for
    Description, as the server wrote it
    IPO calendar for a date range — upcoming and recent initial public offerings. Finnhub REST: GET /calendar/ipo.

    Annotations the server declares

    • title: IPO calendar
    • readOnlyHint: true
Changes things 8Claude Code: ask
  • finnhub_basic_financialsKey financial metrics for a company — valuation, margins, growth, per-share and 52-week ratios.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Key financial metrics for a company — valuation, margins, growth, per-share and 52-week ratios. Finnhub REST: GET /stock/metric.

    Annotations the server declares

    • title: Basic financials
    • readOnlyHint: true
  • finnhub_company_profileGeneral company profile — name, country, currency, exchange, industry, market cap, share outstanding, IPO date, logo and more.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    General company profile — name, country, currency, exchange, industry, market cap, share outstanding, IPO date, logo and more. Provide at least one of `symbol`, `isin` or `cusip`. Finnhub REST: GET /stock/profile2.

    Annotations the server declares

    • title: Company profile
    • readOnlyHint: true
  • finnhub_earnings_surprisesHistorical quarterly EPS surprises — actual vs.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Historical quarterly EPS surprises — actual vs. estimated EPS by period. Finnhub REST: GET /stock/earnings.

    Annotations the server declares

    • title: Earnings surprises
    • readOnlyHint: true
  • finnhub_market_newsGeneral latest market news by category.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    General latest market news by category. Finnhub REST: GET /news.

    Annotations the server declares

    • title: Market news
    • readOnlyHint: true
  • finnhub_peersPeer companies for a symbol (same country and GICS sub-industry).No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Peer companies for a symbol (same country and GICS sub-industry). Finnhub REST: GET /stock/peers.

    Annotations the server declares

    • title: Company peers
    • readOnlyHint: true
  • finnhub_price_targetAnalyst price targets for a symbol — high / low / median / mean target.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Analyst price targets for a symbol — high / low / median / mean target. Note: this is a premium-tier Finnhub endpoint (may return 403 on the free plan). Finnhub REST: GET /stock/price-target.

    Annotations the server declares

    • title: Price target
    • readOnlyHint: true
  • finnhub_quoteReal-time quote for a stock — current price (c), change (d), percent change (dp), high (h), low (l), open (o), previous close (pc) and unix timestamp (t).No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Real-time quote for a stock — current price (c), change (d), percent change (dp), high (h), low (l), open (o), previous close (pc) and unix timestamp (t). Finnhub REST: GET /quote.

    Annotations the server declares

    • title: Real-time quote
    • readOnlyHint: true
Only reads 3Claude Code: allow
  • finnhub_market_statusCurrent market open/closed status and session for an exchange.No findings

    Why it is in this group

    • The name "finnhub_market_status" says "status": a word for reading.
    Description, as the server wrote it
    Current market open/closed status and session for an exchange. Finnhub REST: GET /stock/market-status.

    Annotations the server declares

    • title: Market status
    • readOnlyHint: true
  • finnhub_stock_symbolsList all symbols supported on an exchange.No findings

    Why it is in this group

    • The description's first verb is "list": a word for reading.
    Description, as the server wrote it
    List all symbols supported on an exchange. Finnhub REST: GET /stock/symbol.

    Annotations the server declares

    • title: Stock symbols
    • readOnlyHint: true

This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.

Install

Pinned to version 1.16.3. Values in angle brackets are yours to fill in.

claude mcp add --transport http finnhub https://finnhub.usefulapi.io/mcp

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__finnhub__finnhub_symbol_search",
      "mcp__finnhub__finnhub_stock_symbols",
      "mcp__finnhub__finnhub_market_status"
    ],
    "ask": [
      "mcp__finnhub__finnhub_quote",
      "mcp__finnhub__finnhub_company_profile",
      "mcp__finnhub__finnhub_company_news",
      "mcp__finnhub__finnhub_market_news",
      "mcp__finnhub__finnhub_basic_financials",
      "mcp__finnhub__finnhub_recommendation_trends",
      "mcp__finnhub__finnhub_earnings_surprises",
      "mcp__finnhub__finnhub_price_target",
      "mcp__finnhub__finnhub_peers",
      "mcp__finnhub__finnhub_insider_transactions",
      "mcp__finnhub__finnhub_earnings_calendar",
      "mcp__finnhub__finnhub_ipo_calendar"
    ],
    "deny": []
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as finnhub. Review it before you use it.