Skip to main content
Glama
Kanishka-dabas

Financial Data MCP Server

Financial Data MCP Server

A remote MCP (Model Context Protocol) server that exposes stock market and company financial data as tools, callable by any MCP client (Claude Desktop, Claude.ai, custom agents). Built to demonstrate MCP protocol design, remote HTTP transport, cloud deployment, and production concerns like caching and structured logging.

Live server: https://financial-data-server.fastmcp.app/mcp (authenticated — see Authentication below)

Tech Stack

  • Language: Python 3.12, managed with uv

  • Framework: FastMCP 4.0.3

  • Data source: yfinance (Yahoo Finance)

  • Deployment: FastMCP Cloud

  • Transport: streamable-http

Related MCP server: polygon-mcp

Architecture

The codebase is split into two layers with a single responsibility each:

  • data_fetcher.py — all yfinance calls, isolated from any MCP concern. Raises a single DataFetchError for any failure (invalid ticker, network issue, empty data) so the tool layer has one exception type to handle. Has zero dependency on FastMCP, so it can be reused standalone in another project without pulling in MCP at all.

  • server.py — the MCP tool layer only: schemas (inferred from type hints), docstrings (what the client LLM reads to decide when to call a tool), and translating DataFetchError into a clean {"error": true, "message": ...} dict instead of letting a raw traceback reach the client.

This separation means the data-fetching logic could later be lifted straight into a different project (e.g. a RAG platform) that also needs stock data, with no MCP-specific code coming along for the ride.

Tools

Tool

Description

search_ticker

Resolve a company name to candidate ticker symbols

get_stock_quote_tool

Current price, day change %, volume

get_company_overview_tool

Sector, industry, market cap, short description

get_financial_ratios_tool

P/E, EPS, ROE, debt-to-equity

get_historical_prices_tool

Historical OHLC data for a given period

get_income_statement_tool

Revenue, net income, margins (annual/quarterly)

compare_stocks_tool

Side-by-side comparison of 2-3 tickers

Every tool validates its input and never lets a raw exception reach the client — failures come back as a structured {"error": true, "message": str} so an LLM client can reason about what went wrong.

Local Setup

git clone https://github.com/Kanishka-dabas/financial-data-mcp-server.git
cd financial-data-mcp-server
uv sync

Run locally with MCP Inspector

uv run fastmcp dev inspector server.py

Opens a browser UI to call each tool directly and inspect its schema/response.

Deployment

Deployed on FastMCP Cloud, which builds the repo on every push to main and serves it over HTTPS with streamable-http transport.

if __name__ == "__main__":
    mcp.run(transport="streamable-http")

FastMCP Cloud manages host/port binding at the platform level, so no hardcoded host/port is needed in the entrypoint.

Authentication

Access to the deployed server requires authentication via FastMCP Cloud's built-in (Horizon) auth layer — a client must log in and be a member of the hosting organization to connect.

Reliability & Performance

  • Caching: An in-memory TTL cache (60s) sits in front of the Yahoo Finance .info call, since get_stock_quote, get_company_overview, and get_financial_ratios all read from the same underlying data. Measured ~2000x speedup on a cache hit (2s → <1ms) and reduces load against Yahoo's unofficial, rate-limit-sensitive endpoint. (Note: in-memory only — resets on restart and isn't shared across multiple replicas. A multi-instance production deployment would use a shared cache like Redis.)

  • Structured logging: Every tool logs on call, success, and failure, with INFO for normal operation, WARNING for expected failures (e.g. invalid ticker), and ERROR for unexpected exceptions — keeping monitoring noise separate from real bugs.

Known Limitations

  • The in-memory cache is per-instance and non-persistent.

  • Authentication is enforced by FastMCP Cloud's platform-level auth rather than a custom OAuth provider wired into the server code.

What This Project Demonstrates

  • Designing MCP tools with clear schemas and LLM-readable docstrings

  • Separating protocol-layer code from business/data logic

  • Remote MCP transport (streamable-http) vs local (stdio)

  • Cloud deployment and debugging real build-time vs runtime environment differences (e.g. env vars not available during a build-time inspection step)

  • Practical reliability engineering: caching with measured impact, structured logging with intentional log-level discipline

Available Tools

7 tools
compare_stocks_toolCompare Stocks ToolA

Compare key metrics (price, change%, P/E, ROE, debt-to-equity) across 2-3 tickers.

ParametersJSON Schema
NameRequiredDescriptionDefault
tickersYesList of 2-3 exact ticker symbols, e.g. ["AAPL", "MSFT"].

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

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

No annotations are provided, so the description carries the behavioral disclosure burden. It communicates the essential behavior—comparing specified metrics across 2-3 tickers—but does not discuss data freshness, read-only status, error handling, or ordering. For a non-destructive comparison tool, the core behavior is reasonably clear.

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 sentence with no filler. The action, resource, scope, and specific metrics are all front-loaded in a compact, readable way.

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

Completeness4/5

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

For a tool with one well-described parameter and an output schema, the description is mostly complete: it states purpose, scope, and exact metrics. It lacks explicit sibling routing and deeper behavioral context, but the multi-ticker framing is sufficient to differentiate it from most sibling tools.

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?

The input schema already fully describes the 'tickers' parameter, including the 2-3 constraint, symbol format, and an example. With 100% schema coverage, the description adds little beyond reinforcement, so the baseline score of 3 applies.

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

Purpose4/5

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

The description uses a clear verb ('Compare') and a specific resource ('key metrics'), listing exact metrics and a 2-3 ticker scope. It distinguishes itself from sibling single-ticker tools by emphasizing multi-ticker comparison, though it does not explicitly name alternatives.

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 multi-ticker framing: an agent can infer this tool is for comparing several tickers rather than fetching a single quote or overview. However, there is no explicit guidance on when to prefer it over siblings like get_financial_ratios_tool or get_stock_quote_tool.

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

get_company_overview_toolGet Company Overview ToolA

Get a company profile overview for a ticker symbol.

Returns sector, industry, country, market cap, employee count, website, and a short (truncated) business description.

ParametersJSON Schema
NameRequiredDescriptionDefault
tickerYesExact stock ticker symbol, e.g. "AAPL". If you only have a company name, call search_ticker first.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior4/5

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

With no annotations, the description carries the behavioral burden. It clearly discloses the output scope, including that the business description is truncated. For a read-only overview tool, this is adequate, though it does not mention error or empty-data handling.

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?

Two concise sentences: the first states the action, the second enumerates the return fields. No filler, no repetition, and the main purpose is front-loaded.

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

Completeness4/5

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

Given the tool's low complexity, one required parameter, and the presence of an output schema, the description is largely complete. It could add how unavailable fields are returned, but the listed fields and truncation caveat cover most of what an agent needs.

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%, and the ticker description already provides a format example and search_ticker fallback guidance. The tool description adds no new parameter semantics beyond reusing 'ticker symbol'.

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

Purpose4/5

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

The description states a specific verb and resource ('Get a company profile overview for a ticker symbol') and enumerates the returned fields, making its domain distinct from siblings like get_stock_quote_tool or get_financial_ratios_tool. It doesn't explicitly name a sibling, but the field list is sufficient for differentiation.

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

Usage Guidelines4/5

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

The schema's ticker description gives an explicit conditional routing rule: if only a company name is available, call search_ticker first. This covers the main identification ambiguity, though it does not state when to prefer this tool over the other financial siblings.

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

get_financial_ratios_toolGet Financial Ratios ToolB

Get key financial ratios for a ticker: P/E, EPS, ROE, debt-to-equity.

ParametersJSON Schema
NameRequiredDescriptionDefault
tickerYesExact stock ticker symbol, e.g. "AAPL".

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.3/5.0
Behavior3/5

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

No annotations are provided, so the description carries the burden of behavioral disclosure. It implies a read-only retrieval through the verb 'Get' and shows no destructive intent, but it does not disclose data freshness, availability, access requirements, or handling of missing ratios. The output schema covers return shape, yet broader behavioral context is minimal.

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, front-loaded sentence that states the action, the target resource, and representative output fields without filler. It is concise, scannable, and every word contributes to understanding the tool.

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 single-parameter getter with an output schema, the description is nearly sufficient for invocation. However, it lacks usage routing relative to sibling tools and gives little non-obvious behavioral context, leaving moderate completeness gaps.

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?

The input schema fully documents the single ticker parameter with 100% coverage. The description merely echoes 'for a ticker' and adds no new semantic detail beyond the schema, so the baseline of 3 is appropriate.

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

Purpose4/5

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

The description clearly states the action ('Get') and the resource ('key financial ratios for a ticker') and lists concrete outputs (P/E, EPS, ROE, debt-to-equity). It is reasonably distinct from siblings, though it does not explicitly differentiate itself from overlapping tools like get_company_overview_tool or compare_stocks_tool.

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?

There is no guidance on when to use this tool versus alternatives. It does not mention preferred conditions, exclusions, or related sibling tools, so an agent has to infer usage solely from the tool name and brief description.

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

get_historical_prices_toolGet Historical Prices ToolA

Get historical OHLC (Open/High/Low/Close) price data for a ticker.

ParametersJSON Schema
NameRequiredDescriptionDefault
periodNoOne of "1d","5d","1mo","3mo","6mo","1y","2y","5y","10y","ytd","max". Defaults to "1mo".1mo
tickerYesExact stock ticker symbol, e.g. "AAPL".

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It only states the kind of data returned (OHLC) and does not describe ordering, adjustment behavior, timezone handling, error behavior, or whether the operation is strictly read-only beyond the verb 'Get'.

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 front-loaded sentence with no filler. Every word contributes to identifying the resource and data type.

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

Completeness4/5

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

For a simple two-parameter retrieval tool with complete schema documentation and an output schema present, the description is adequate to enable invocation. It does not cover usage distinctions or behavioral edge cases, but those are covered in other dimensions and the tool name/sibling context supplies additional orientation.

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 ticker and period both documented in the input schema, including permitted period values and the default. The description itself adds no parameter-level meaning beyond mentioning 'ticker', so the baseline of 3 applies.

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 uses a specific verb and resource: 'Get historical OHLC price data for a ticker.' It clearly distinguishes this tool from sibling tools like get_stock_quote_tool (current quote vs historical) and get_company_overview_tool (fundamentals vs 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?

The word 'historical' implies when this tool is appropriate, but the description does not explicitly say when to use it over get_stock_quote_tool or mention any exclusions. Usage context is implied rather than stated.

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

get_income_statement_toolGet Income Statement ToolB

Get revenue, net income, and margins from a company's income statement.

ParametersJSON Schema
NameRequiredDescriptionDefault
tickerYesExact stock ticker symbol, e.g. "AAPL".
quarterlyNoIf True, return quarterly statements instead of annual. Defaults to False (annual).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior1/5

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

No annotations are provided, and the description gives no information about side effects, read-only nature, permissions, or other behavioral aspects. The tool appears to be a read operation, but this is not explicitly stated.

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, efficient sentence that conveys all necessary information without redundancy.

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

Completeness2/5

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

While the description covers the basic purpose and parameters, it lacks context about output format, error handling, or relationships to sibling tools. The presence of an output schema is noted but not described, leaving some ambiguity.

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

Parameters5/5

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

Both parameters are fully described with clear semantics. 'ticker' specifies an exact stock ticker symbol, and 'quarterly' clearly explains the boolean behavior and default value.

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 action (Get), the resource (income statement), and specific data fields (revenue, net income, margins). It is precise and distinguishes from sibling tools like get_financial_ratios_tool.

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

Usage Guidelines1/5

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

No guidance is provided on when to use this tool versus alternatives. The description does not mention any conditions or scenarios that would favor this tool over siblings.

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

get_stock_quote_toolGet Stock Quote ToolA

Get the current stock quote for a ticker symbol.

Returns live/latest price, previous close, day's change (absolute and percent), day high/low, volume, and market state (e.g. REGULAR, CLOSED, PRE).

ParametersJSON Schema
NameRequiredDescriptionDefault
tickerYesExact stock ticker symbol, e.g. "AAPL", "MSFT", "RELIANCE.NS". If you only have a company name, call search_ticker first.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior3/5

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

No annotations are present, so the description carries the burden of explaining behavior. It clearly discloses the quote fields and market state examples, but it does not mention read-only side-effect absence, data freshness/delay, authentication needs, or behavior for invalid tickers.

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 two tightly written sentences with the core purpose front-loaded and the return payload summarized compactly. There is no redundancy or filler.

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

Completeness4/5

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

For a single-parameter quote tool with an output schema present, the description covers the core purpose and expected return data. The main gap is the lack of explicit behavioral caveats and alternative routing in the description itself, but nothing essential to invoking the tool is missing.

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%, so the baseline is 3. The tool description adds no parameter meaning beyond the word 'ticker symbol'; the schema already supplies exact-symbol guidance, examples, and the search_ticker fallback.

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 opens with a specific verb and resource: 'Get the current stock quote for a ticker symbol.' It then itemizes quote-specific fields such as live price, previous close, day high/low, volume, and market state, which clearly differentiates it from historical, overview, and ratio siblings.

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?

The description implies when to use it through the word 'current' and the quote-specific return fields, so an agent can infer it is not for historical or fundamental analysis. However, it does not explicitly name alternative tools or state when-not-to-use conditions; the schema's search_ticker fallback is helpful but not part of the tool description.

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

search_tickerSearch TickerA

Resolve a company name to its stock ticker symbol(s).

Use this first when you have a company name (e.g. "Apple", "Tata Motors") rather than an exact ticker. Returns up to 5 candidate matches with symbol, name, exchange, and security type, ranked by relevance.

ParametersJSON Schema
NameRequiredDescriptionDefault
company_nameYesFull or partial company name, e.g. "Apple" or "Microsoft Corporation".

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden and does well: it states the tool returns up to 5 ranked candidate matches and lists the returned fields. It does not explicitly mention no-match/error behavior, but the read-only search semantics are clear from the description.

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?

Three concise sentences, each earning its place: purpose, when-to-use, and return behavior. The most important information is front-loaded, and there is no redundant filler.

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

Completeness4/5

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

For a simple one-parameter resolver, the description covers what input to provide, what the tool does, and what comes back. The presence of an output schema covers formal return structure. A small gap is the absence of explicit failure or no-match behavior, but that is minor for tool selection.

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?

The schema has 100% description coverage for its single parameter, so the baseline is 3. The description adds examples like 'Apple' and 'Tata Motors' and reinforces partial-name support, but it does not substantially go beyond the schema's own 'Full or partial company name' explanation.

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 uses a specific verb ('Resolve') and clear resource: a company name to stock ticker symbol(s). It distinguishes itself from sibling tools by establishing that it maps names to tickers, whereas siblings like get_stock_quote_tool operate on already-known tickers.

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

Usage Guidelines4/5

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

'Use this first when you have a company name rather than an exact ticker' gives explicit guidance on when to invoke the tool. It implies the inverse condition (do not use it when you already have an exact ticker), though it does not name specific sibling alternatives.

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. 7 tool updatesv0.1.0
    • First observedcompare_stocks_tool
    • First observedget_company_overview_tool
    • First observedget_financial_ratios_tool
    • First observedget_historical_prices_tool
    • First observedget_income_statement_tool
    • First observedget_stock_quote_tool
    • First observedsearch_ticker

TDQS

A3.7/5.0
Disambiguation4/5

Each tool targets a distinct financial data aspect, but get_financial_ratios_tool and get_income_statement_tool could both be selected for fundamental analysis queries, and compare_stocks_tool overlaps with fields already covered by quotes and ratios. The descriptions help clarify boundaries, so the set is mostly unambiguous.

Naming Consistency4/5

Most tools follow a predictable get_[resource]_tool pattern, while search_ticker and compare_stocks_tool use different verbs but still follow the verb_noun_tool convention. The snake_case style is consistent and readable, with only minor deviations from the dominant 'get_' prefix.

Tool Count5/5

Seven tools is a well-scoped count for a financial data server, covering ticker resolution, quotes, company overview, financial ratios, historical prices, income statements, and cross-stock comparison. Each tool has a clear role and none feel redundant.

Completeness4/5

Core equity research workflows are covered: finding tickers, getting current prices, historical data, company profiles, key ratios, income statement data, and comparisons. Missing balance sheet/cash flow statements and batch quote retrieval are minor gaps that agents can work around.

Maintenance

ActivityMaintained
ResponsivenessNo issues

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

  • F
    license
    Not graded
    quality
    D
    maintenance
    Provides real-time stock analysis tools including price lookup, comprehensive investment scoring, and company-to-ticker conversion through a MCP interface.
    1
    -
  • A
    license
    C
    quality
    C
    maintenance
    Enables querying real-time and historical financial market data for stocks, options, forex, and crypto, including quotes, trades, technical indicators, and reference data through a set of MCP tools.
    71
    3
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    Enables querying stock data, financial information, news, and historical prices from Yahoo Finance through a set of MCP tools.
    5
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    MCP server that exposes Yahoo Finance data through tools for searching instruments, fetching quotes, history, company info, financials, dividends, news, recommendations, and options. Enables AI assistants to answer market-data questions using natural language.
    22
    MIT

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/Kanishka-dabas/financial-data-mcp-server'

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