Financial Data MCP Server
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Financial Data MCP ServerCompare Apple, Microsoft, and Google stock metrics"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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 singleDataFetchErrorfor 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 translatingDataFetchErrorinto 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 |
| Resolve a company name to candidate ticker symbols |
| Current price, day change %, volume |
| Sector, industry, market cap, short description |
| P/E, EPS, ROE, debt-to-equity |
| Historical OHLC data for a given period |
| Revenue, net income, margins (annual/quarterly) |
| 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 syncRun locally with MCP Inspector
uv run fastmcp dev inspector server.pyOpens 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
.infocall, sinceget_stock_quote,get_company_overview, andget_financial_ratiosall 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
INFOfor normal operation,WARNINGfor expected failures (e.g. invalid ticker), andERRORfor 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 toolscompare_stocks_toolCompare Stocks ToolA
Compare key metrics (price, change%, P/E, ROE, debt-to-equity) across 2-3 tickers.
| Name | Required | Description | Default |
|---|---|---|---|
| tickers | Yes | List of 2-3 exact ticker symbols, e.g. ["AAPL", "MSFT"]. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| ticker | Yes | Exact stock ticker symbol, e.g. "AAPL". If you only have a company name, call search_ticker first. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| ticker | Yes | Exact stock ticker symbol, e.g. "AAPL". |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| period | No | One of "1d","5d","1mo","3mo","6mo","1y","2y","5y","10y","ytd","max". Defaults to "1mo". | 1mo |
| ticker | Yes | Exact stock ticker symbol, e.g. "AAPL". |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| ticker | Yes | Exact stock ticker symbol, e.g. "AAPL". | |
| quarterly | No | If True, return quarterly statements instead of annual. Defaults to False (annual). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
| ticker | Yes | Exact stock ticker symbol, e.g. "AAPL", "MSFT", "RELIANCE.NS". If you only have a company name, call search_ticker first. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| company_name | Yes | Full or partial company name, e.g. "Apple" or "Microsoft Corporation". |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
7 tool updates
v0.1.0- First observed
compare_stocks_tool - First observed
get_company_overview_tool - First observed
get_financial_ratios_tool - First observed
get_historical_prices_tool - First observed
get_income_statement_tool - First observed
get_stock_quote_tool - First observed
search_ticker
TDQS
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.
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.
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.
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
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
33 pay-per-call market and news data tools over MCP with free discovery and x402 payments.
Finnhub MCP — wraps Finnhub Stock API (finnhub.io)
- mcpOAuthcom.twelvedata
Twelve Data MCP: real-time & historical market data (stocks, crypto, forex, etc).
Alpha Vantage MCP — Stock market data, fundamentals, and earnings
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceProvides real-time stock analysis tools including price lookup, comprehensive investment scoring, and company-to-ticker conversion through a MCP interface.1-
- AlicenseCqualityCmaintenanceEnables 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.713MIT
- AlicenseAqualityDmaintenanceEnables querying stock data, financial information, news, and historical prices from Yahoo Finance through a set of MCP tools.5MIT
- AlicenseAqualityAmaintenanceMCP 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.22MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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