Skip to main content
Glama
DenUsenko

Finnhub MCP Server

by DenUsenko

Finnhub MCP Server

MCP-сервер, який підключає Claude Desktop до real-time даних фондового ринку через Finnhub.

Що всередині

Тип

Назва

Аргументи

Що робить

🔧 Tool

get_company_profile

symbol

Профіль компанії: назва, країна, біржа, market cap, IPO

🔧 Tool

get_stock_quote

symbol · [include_52w]

Real-time котирування; з include_52w=True — додає 52-тижневий діапазон

🔧 Tool

get_market_news

[category]

Останні 5 headlines: general / forex / merger / crypto

📄 Resource

watchlist://my-tickers

Персональний watchlist — список тікерів

💬 Prompt

watchlist-snapshot

Аналізує watchlist і підсвічує потенційні покупки


Related MCP server: IB Portfolio Tracker MCP Server

Швидкий старт

1. Отримай Finnhub API key

Безкоштовно на finnhub.io — реєстрація займає хвилину.

2. Додай сервер у Claude Desktop

Відкрий claude_desktop_config.json і додай блок нижче:

{
  "mcpServers": {
    "finnhub": {
      "command": "uvx",
      "args": ["--from", "git+https://github.com/DenUsenko/ai-eng-mcp-demo", "finnhub-mcp"],
      "env": {
        "FINNHUB_API_KEY": "your_key_here"
      }
    }
  }
}

Розташування конфігу:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

  • Windows: %APPDATA%\Claude\claude_desktop_config.json

Клонувати репозиторій і встановлювати залежності вручну не потрібно — uvx зробить це автоматично при першому запуску.

3. Перезапусти Claude Desktop

Після перезапуску в інтерфейсі з'являться нові tools.

Потрібно мати: uv та Python 3.12+.


Watchlist

За замовчуванням у watchlist — акції MAG7 мінус Google/Amazon плюс Micron:

WATCHLIST = ["MSFT", "META", "MU", "BRK.B", "NVDA"]

Щоб змінити список — зроби fork репозиторію, відредагуй WATCHLIST у server.py і вкажи свій репозиторій у claude_desktop_config.json.


Example Conversations

1 — Market News via get_market_news

User: Give me the latest news on crypto.

Claude:

Here's what's moving in crypto right now:

Bitcoin under pressure — BTC has dropped to the $58K range, with multiple analysts framing the $58K level as "normal" under power-law models, but options traders are actively hedging downside as uncertainty lingers. Some bears are eyeing sub-$50K as a next target if support doesn't hold. (Cointelegraph)

Coinbase Base outage — Coinbase's Base L2 blockchain suffered a two-hour outage earlier today before resuming. No details yet on the root cause, but it's a notable reliability event for one of the more actively used L2 networks. (CoinDesk)

Crypto "invisible" to UK wealth advisers — A CoinShares survey found that half of UK wealth advisers have no visibility into their clients' crypto holdings, pointing to a structural gap in portfolio oversight as adoption grows. (Cointelegraph)

The dominant theme is BTC sentiment — the market's watching whether $58K holds or if there's more downside ahead.


2 — Company Profile via get_company_profile + get_stock_quote

User: Give me a short company profile on SOFI.

Claude:

SoFi Technologies (SOFI) · NASDAQ · Financial Services

Trading at $17.30 today (nearly flat, –0.06%), with a market cap of ~$22.2B. Notable: it's sitting –47.1% below its 52-week high of $32.73 — well past the 20% flag threshold.

What they do: SoFi is a digital-first financial services company targeting "HENRYs" (high earners, not rich yet) — young professionals refinancing student loans or looking for a one-stop-shop bank. Their product stack covers personal loans, student loan refinancing, home loans, a cash management account, investing, and credit cards. They secured a full bank charter in early 2022, a significant milestone that lets them hold deposits and fund loans directly.

The infrastructure play: SoFi also owns Galileo (acquired 2020) and Technisys (acquired 2022) — B2B fintech infrastructure businesses that power card issuing and banking platforms for other fintechs. This gives them a revenue stream beyond consumer finance and makes them something of a picks-and-shovels play on fintech broadly.

Things to watch: Growth has been strong but profitability has been a moving target. The student loan environment (government policy on repayments) has historically been a headwind or tailwind depending on the cycle. At –47% from peak, it's deeply discounted — but worth a closer look at net interest margin and loan quality trends before forming a view.


3 — Watchlist Snapshot via watchlist-snapshot prompt

User: (selected the watchlist-snapshot prompt and watchlist://my-tickers resource from the Claude chat UI)

Claude:

Got the tools. Now let me pull quotes with 52-week data for all 5 tickers simultaneously... All quotes in. Now let me grab the MSFT profile — it's the one furthest off its peak... Here's the full picture. A few key takeaways:

Potential buys (>20% below 52-week peak):

MSFT is the standout at –36.5% off its high of $555.45 — the largest drawdown in the watchlist by a meaningful margin. That's a significant pullback for a company of its quality and suggests the market has repriced it substantially, though a drop of that magnitude warrants understanding the catalyst (macro rates, valuation compression, Azure growth deceleration) before treating it as a simple entry.

META is also flagged at –31.8% off $796.25, down another 2.65% today. Still generating massive FCF and expanding its AI/advertising stack, so this is worth watching closely.

Not triggered:

NVDA is just under the threshold at –17.2%, trading at $195.74 vs. its $236.54 peak. Close, but not quite there by the 20% rule.

MU is on an absolute tear — up 15.7% today alone and sitting right at its 52-week high of $1,213.56.

BRK.B caveat: Finnhub's 52-week data for BRK.B came back clearly wrong (returning BRK.A Class A figures near $775K). The current price of $487.81 looks plausible for BRK.B, but I excluded it from the peak-distance analysis entirely rather than surface bad numbers. Worth checking a second source on that one.

Not financial advice.


Обмеження

  • Rate limit: Finnhub free tier — 60 запитів/хв. Watchlist snapshot робить 1–2 запити на тікер.

  • Market hours: поза торговою сесією повертається ціна закриття без позначки "ринок закритий".

  • Watchlist статичний: зміни потребують fork і редагування server.py.

  • US-centric: free tier має обмежені дані для не-американських бірж.

  • 52-week дані: для ETF та маловідомих символів поле може повернути 0.

Available Tools

3 tools
get_company_profileA

Return company metadata for a stock ticker: name, country, exchange, industry, market cap, IPO date, and website.

ParametersJSON Schema
NameRequiredDescriptionDefault
symbolYesStock ticker symbol, e.g. AAPL or NVDA

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, and the description only states the return data. It lacks disclosure about error handling, authentication, rate limits, or behavior for invalid symbols.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence efficiently lists all returned fields without fluff. Well-structured and front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-parameter tool, it adequately describes inputs and outputs. However, lacks details on error handling, data freshness, or response format (no output schema).

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description adds a brief mention of 'stock ticker' but no additional meaning beyond the schema's 'Stock ticker symbol, e.g. AAPL or NVDA'.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool returns company metadata for a stock ticker, listing specific fields (name, country, etc.). It distinguishes itself from siblings like get_market_news (news) and get_stock_quote (price data).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by the context of sibling tools, but no explicit when-to-use or when-not-to-use guidance is provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_market_newsA

Return the latest 5 market news headlines for a given category.

ParametersJSON Schema
NameRequiredDescriptionDefault
categoryNoNews category: general, forex, merger, or cryptogeneral

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Discloses output limit (5 headlines) and that it returns headlines. No annotations, but description is honest about the read-only nature. Could mention error handling for invalid categories.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, no wasted words. Front-loaded with key information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Adequate for a simple tool with one optional parameter. No output schema needed; return behavior described.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema provides 100% coverage with description of category values. Description adds no extra meaning beyond schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states it returns exactly 5 market news headlines, with a category filter. Distinct from sibling tools (get_company_profile, get_stock_quote).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool vs. siblings. Does not mention scenarios where category might be omitted or expected.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_stock_quoteA

Return a real-time stock quote. Optionally includes 52-week high and low fetched from basic financials.

ParametersJSON Schema
NameRequiredDescriptionDefault
symbolYesStock ticker symbol, e.g. AAPL or TSLA
include_52wNoIf true, adds 52-week high and low to the response

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description is the sole source. It describes what is returned (real-time quote, optional 52-week data) but lacks specifics on error behavior, authentication, or data source latency. Adequate but not thorough.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence with no wasted words. Key information is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simple tool (2 params, no output schema), the description covers main functionality but does not fully explain what a 'stock quote' includes (e.g., price only or more fields). Adequate but could be more complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% with clear param descriptions. The tool description adds a mention of 'basic financials' for the optional 52-week data, providing minor extra context beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool returns a real-time stock quote with a verb and resource. It distinguishes from sibling tools like get_company_profile and get_market_news which cover different data.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus alternatives. The description does not mention when not to use it or suggest other tools for related queries.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 3 tool updatesv0.1.0
    • First observedget_company_profile
    • First observedget_market_news
    • First observedget_stock_quote

TDQS

A3.8/5.0
Disambiguation5/5

Each tool targets a distinct domain: company metadata, market news, and real-time stock quotes. No overlap or ambiguity.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern with snake_case: get_company_profile, get_market_news, get_stock_quote.

Tool Count4/5

With only 3 tools, the set is minimal but appropriate for a focused purpose. Each tool serves a clear, non-redundant function.

Completeness3/5

The set covers basic metadata, news, and quotes, but lacks common financial data operations like historical prices, symbol search, or financial statements.

Maintenance

ActivityMaintained
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    Provides comprehensive financial market data and news through the Finnhub API. Enables real-time stock quotes, company profiles, financial metrics, analyst recommendations, and market news access.
    1
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Connects Claude AI to Interactive Brokers accounts to enable real-time portfolio tracking, position management, and historical market data retrieval. It also integrates financial news and sentiment analysis from multiple sources, including Finnhub and IB native feeds.
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    Provides real-time stock market data for Claude Desktop and MCP-compatible clients, enabling natural language queries for quotes, historical prices, company profiles, financial statements, analyst ratings, comparisons, news, options, holdings, dividends, estimates, symbol search, and market status.
    194
    17
    MIT
  • F
    license
    A
    quality
    D
    maintenance
    Provides stock market data and analysis tools using the Finnhub API, including stock prices, financial metrics, news, and historical data.
    6
    7
    -

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/DenUsenko/ai-eng-mcp-demo'

If you have feedback or need assistance with the MCP directory API, please join our Discord server