Finnhub MCP by usefulapi
Server Details
Quotes, company profiles, fundamentals, earnings and IPO calendars, plus market and company news.
The last two health checks of this connector failed. If this server requires authentication, missing or expired test credentials may be the cause. A test profile lets Glama authenticate for health checks and discover tools; it is separate from your personal connections.
If you are the author, claim ownership, then add or update a test profile under Admin → Test Profile.
- Status
- Unhealthy
- Uptime
- 83.7% over 79 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- Repository
- m190/usefulapi-mcp
- GitHub Stars
- 0
- ChatGPT
- –
- Claude
- –
TDQS
Scored across 15 tools
Each tool maps to a distinct Finnhub endpoint and resource+action, so boundaries are clear. The only near-overlap (finnhub_stock_symbols listing by exchange vs finnhub_symbol_search querying by name) is well-differentiated in the descriptions, and news variants (company vs market) and earnings variants (calendar vs surprises) are clearly separated.
All 15 tools follow a strict finnhub_<resource>_<noun> snake_case pattern. Naming is entirely predictable and readable, with no style drift.
15 tools sit comfortably in the well-scoped range for a market-data API surface. Each tool covers a distinct data domain with no filler.
The surface covers quotes, financials, profiles, news, earnings, insider activity, IPO, market status, peers, price targets, recommendations and symbol lookup — a strong lifecycle for market data. Minor gaps remain (historical OHLC/candles, technical indicators, dividends/splits), but core reference and quote workflows are covered.
Available Tools
15 toolsfinnhub_basic_financialsBasic financialsBRead-onlyInspect
Key financial metrics for a company — valuation, margins, growth, per-share and 52-week ratios. Finnhub REST: GET /stock/metric.
| Name | Required | Description | Default |
|---|---|---|---|
| metric | No | Metric group to fetch — 'all' (default) returns every available metric. | |
| symbol | Yes | Stock ticker symbol, e.g. 'AAPL' (required). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The only annotation is readOnlyHint=true, so safety is covered, and the description sensibly adds the upstream REST endpoint (GET /stock/metric) as provenance context. It says nothing about rate limits, symbol validity handling, or the shape/coverage of the returned metric set, which is a modest gap for a data-fetch tool.
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 compact clauses: the content summary first, the endpoint second. No filler, no restatement of the title, and the most decision-relevant information 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?
For a two-parameter read-only endpoint with 100% schema coverage and no output schema, the definition covers purpose, content, and provenance adequately. Mentioning the categories partially compensates for the absent output schema, though it still does not describe how metrics are organized in the response.
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% — both 'symbol' (required, with an AAPL example) and 'metric' (default 'all') are fully documented in the schema. The description adds no parameter-level detail beyond what the schema already provides, so the baseline 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 names a specific resource (company key financial metrics) and enumerates the content categories — valuation, margins, growth, per-share, 52-week ratios — plus the exact REST route. It is clearly distinguishable from quote or company_profile by content, though it never explicitly contrasts itself with those 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?
There is no when-to-use guidance, no prerequisites, and no named alternative. Use must be inferred purely from the tool name and the metric categories listed, which leaves an agent guessing between this and siblings like finnhub_company_profile or finnhub_quote.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
finnhub_company_newsCompany newsBRead-onlyInspect
Latest company news for a symbol over a date range (up to 1 year back). Finnhub REST: GET /company-news.
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | End date, yyyy-mm-dd (required). | |
| from | Yes | Start date, yyyy-mm-dd (required). | |
| symbol | Yes | Stock ticker symbol, e.g. 'AAPL' (required). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, covering the safety profile. The description adds the meaningful temporal constraint 'up to 1 year back' and names the underlying REST endpoint, but it does not disclose rate limits, authentication requirements, pagination, or the shape of returned news items.
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 short sentences with zero filler; the core purpose and temporal limitation are front-loaded before the REST endpoint reference. Every element earns its place.
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 read-only, three-parameter tool with complete schema coverage and no output schema, the description supplies the purpose, date-range scope, and endpoint needed to invoke it correctly. It could still mention what the news payload contains or how results are ordered, but the essentials are covered.
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%, and the schema itself documents symbol, from, and to with formats and patterns. The description adds no syntax or format detail beyond what the schema provides, 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 states a specific verb (retrieve news), resource (company news), and scope (for a symbol over a date range, up to 1 year back), which is clear and actionable. It implicitly distinguishes itself from finnhub_market_news by requiring a symbol, but never names the sibling alternative explicitly, keeping it short of a 5.
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 gives no explicit when-to-use or when-not-to-use guidance and never names the obvious alternative, finnhub_market_news. The requirement of a symbol is a weak implicit hint that this is company-specific rather than general market news, but nothing routes the agent between the two tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
finnhub_company_profileCompany profileARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| isin | No | ISIN identifier (use instead of symbol/cusip). | |
| cusip | No | CUSIP identifier (use instead of symbol/isin). | |
| symbol | No | Stock ticker symbol, e.g. 'AAPL'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With readOnlyHint=true already declaring the safety profile, the description adds the upstream REST endpoint (GET /stock/profile2) and enumerates the returned payload, which is valuable given there is no output schema. It still omits any note on identifier resolution behaviour or error cases when an identifier matches nothing.
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 compact sentences: what it returns, the identifier requirement, and the backing endpoint. The resource and identifier constraint are front-loaded, and nothing is padding.
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 read-only lookup with no output schema, the description covers the returned fields and the required identifier input, which is enough to call it correctly. Minor gaps remain around behaviour when multiple or zero matches occur, but the essentials are present.
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%, so the baseline is 3, but the description adds a real constraint the schema does not encode: required is empty, yet the tool needs at least one of symbol/isin/cusip, and the description says so explicitly. That prevents an agent from calling it with no arguments.
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?
States a specific resource (company profile) and enumerates the fields it returns — name, country, currency, exchange, industry, market cap, shares outstanding, IPO date, logo — which separates it from finnhub_quote and finnhub_basic_financials without naming them. It is clear what the tool is, though it never explicitly contrasts itself with those 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 gives a usage constraint ('provide at least one of symbol, isin or cusip') but offers no guidance on when to pick this tool over finnhub_basic_financials, finnhub_symbol_search or finnhub_quote. Usage is implied by the field list rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
finnhub_earnings_calendarEarnings calendarARead-onlyInspect
Upcoming and historical earnings release calendar, optionally filtered by date range and/or symbol. Finnhub REST: GET /calendar/earnings.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | End date, yyyy-mm-dd (optional). | |
| from | No | Start date, yyyy-mm-dd (optional). | |
| symbol | No | Filter the calendar to a single symbol, e.g. 'AAPL'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the safety profile is covered. The description adds the useful scope that results include both upcoming and historical releases, but omits return format, pagination, or rate-limit/auth behavior.
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 tightly written sentences; the core resource and scope are front-loaded before the optional filter detail and source endpoint. No wasted language.
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 read-only calendar endpoint with full schema coverage and annotations, the description supplies enough to invoke correctly. It stops short of describing default behavior when no filters are supplied or any facets of the returned calendar entries, which is a minor gap given the absence of an output schema.
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 schema already documents the from, to, and symbol parameters with format and examples. The description only restates that filtering is optional and by date range/symbol, adding no syntax or constraint detail beyond the schema.
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?
Names the specific resource (earnings release calendar) and its temporal scope (upcoming and historical), which distinguishes it from siblings like finnhub_earnings_surprises and finnhub_ipo_calendar without needing the schema.
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 usage for retrieving earnings dates and mentions optional date/symbol filters, but does not state when to use this tool versus alternatives such as finnhub_earnings_surprises or finnhub_ipo_calendar, nor any exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
finnhub_earnings_surprisesEarnings surprisesBRead-onlyInspect
Historical quarterly EPS surprises — actual vs. estimated EPS by period. Finnhub REST: GET /stock/earnings.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Limit the number of periods returned (most recent first). | |
| symbol | Yes | Stock ticker symbol, e.g. 'AAPL' (required). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the safety profile is covered. The description adds that data is historical/quarterly and gives the backing REST endpoint (GET /stock/earnings), which is modest extra context, but it says nothing about ordering guarantees beyond what the schema's limit param implies, rate limits, or coverage/emptiness behavior.
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 short sentences, front-loaded with the data scope. The REST endpoint fragment is arguably redundant for an agent but is brief and harmless; nothing else is wasted.
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 read tool with full schema coverage and a readOnly annotation, the description plus schema is nearly sufficient. The only real gap is that no output schema exists and the description only loosely sketches the return shape ('actual vs. estimated EPS by period'), and it omits sibling differentiation.
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 both 'symbol' and 'limit' are already well documented (ticker example, most-recent-first ordering, bounds). The description adds no meaning beyond that, which is the expected baseline when the schema carries the load.
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?
States a specific verb+resource: 'Historical quarterly EPS surprises — actual vs. estimated EPS by period.' It is clear what data comes back, but it never names or contrasts itself with the closest sibling, finnhub_earnings_calendar, so the agent must infer the difference between historical surprises and an earnings calendar.
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 explicit when-to-use guidance, no exclusions, and no mention of alternatives. The word 'Historical' implies past-data lookups, but nothing tells the agent when to prefer this over finnhub_earnings_calendar or finnhub_basic_financials.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
finnhub_insider_transactionsInsider transactionsARead-onlyInspect
Insider transactions (Form 3/4/5 filings) for a company, optionally within a date range. Finnhub REST: GET /stock/insider-transactions.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | End date, yyyy-mm-dd (optional). | |
| from | No | Start date, yyyy-mm-dd (optional). | |
| symbol | Yes | Stock ticker symbol, e.g. 'AAPL' (required). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
readOnlyHint=true already establishes the safe-read profile, and the description reinforces it by naming the underlying GET endpoint, which signals a non-mutating fetch. It says nothing about result limits, pagination, or what a returned filing record contains, so behavioral value beyond the annotation is modest.
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 short sentences, with the purpose front-loaded before the optional date-range and endpoint details. Efficient, though the REST endpoint citation is the one element that does not meaningfully help an agent decide or invoke.
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 low-complexity, read-only, single-required-param tool with full schema coverage and annotations covering safety, the description is nearly sufficient. The remaining gap is that without an output schema it never characterizes the returned filings, but that is a minor omission here.
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% and already documents symbol (with example) and the from/to dates including their yyyy-mm-dd format. The description only restates the optional date-range notion, adding no syntax or semantics the schema lacks, so the baseline 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?
Names a specific resource (insider transactions) scoped to a company, and elaborates with the SEC form types (Form 3/4/5) that qualify the data, which an agent can map to a concrete dataset. No sibling tool covers insider filings, so differentiation is implicit rather than stated, keeping it short of a 5.
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?
"optionally within a date range" gives an implied usage context, but there is no explicit when-to-use, when-not-to-use, or named alternative (e.g. company_news or company_profile). The agent can infer the scenario but must supply the routing logic itself.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
finnhub_ipo_calendarIPO calendarARead-onlyInspect
IPO calendar for a date range — upcoming and recent initial public offerings. Finnhub REST: GET /calendar/ipo.
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | End date, yyyy-mm-dd (required). | |
| from | Yes | Start date, yyyy-mm-dd (required). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so safety is covered. The description usefully adds that coverage spans both upcoming and recent IPOs (forward- and backward-looking) and names the upstream Finnhub endpoint, but says nothing about pagination, result volume, or rate limits.
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 compact clauses with the resource front-loaded and the data scope immediately after; the REST endpoint hint is a single trailing token. Nothing is wasted.
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 read tool with no output schema and readOnlyHint already declared, the description supplies what an agent needs to invoke it: subject matter, temporal scope, and endpoint. Only minor gaps remain around result shape and any range limits.
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% — both 'from' and 'to' are documented with format and required status. The description's 'for a date range' adds no syntax or boundary detail (e.g. max span, inclusive/exclusive endings) beyond the schema, so baseline 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?
States a specific resource (IPO calendar) and scope (date range, upcoming and recent IPOs), which is easy to separate from finnhub_earnings_calendar and other siblings by name. It stops short of explicitly contrasting itself with the earnings calendar, but the resource is unambiguous.
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 only implied — an agent can infer this is for retrieving IPO listings over a window, but the description names no alternatives, prerequisites, or conditions for choosing it over the earnings calendar. No when-not guidance is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
finnhub_market_newsMarket newsBRead-onlyInspect
General latest market news by category. Finnhub REST: GET /news.
| Name | Required | Description | Default |
|---|---|---|---|
| minId | No | Only return news with an id greater than this (pagination). | |
| category | No | News category — 'general' (default), 'forex', 'crypto' or 'merger'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
readOnlyHint=true already tells the agent this is a safe read. The description adds only the upstream REST mapping (GET /news) and nothing about pagination behavior, rate limits, or result freshness, so it contributes little beyond the annotation.
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 short, front-loaded sentences with no filler. The Finnhub endpoint sentence is arguably redundant metadata, but the whole description is compact and readable.
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 zero-required-parameter read tool with a fully documented schema and no output schema, the description covers the essentials. It omits any note about the shape of returned news items or pagination workflow, which would help an agent consume results.
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%, so both minId (pagination) and the category enum are fully documented in the schema. The description's 'by category' merely restates the schema; baseline 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?
States a specific verb+resource: returns latest general market news, filterable by category. The word 'general' implicitly distinguishes it from finnhub_company_news, but the sibling is never named, so an agent must infer the boundary.
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 when-to-use guidance, no exclusions, and no reference to the alternative finnhub_company_news for company-specific headlines. The category mention hints at filtering but does not state conditions for selecting this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
finnhub_market_statusMarket statusBRead-onlyInspect
Current market open/closed status and session for an exchange. Finnhub REST: GET /stock/market-status.
| Name | Required | Description | Default |
|---|---|---|---|
| exchange | Yes | Exchange code, e.g. 'US' (required). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the safety profile is covered. The description adds the REST endpoint (GET /stock/market-status), which reinforces read-only behavior but does not disclose rate limits, auth needs, or return format. With annotations doing heavy lifting, a 3 is appropriate.
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 sentences with zero waste. The purpose is front-loaded, and the REST endpoint detail is a compact, useful addition for developers.
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 read-only tool with one parameter and no output schema, the description adequately covers what the tool returns (open/closed status and session). It could optionally mention response details or auth, but is largely complete.
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% for the single 'exchange' parameter, so the schema already documents its meaning and example. The description adds no additional parameter semantics beyond what the schema provides, making the baseline 3 correct.
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+resource: 'current market open/closed status and session for an exchange.' It is clear what the tool returns, but it does not explicitly differentiate itself from any sibling (e.g., by naming an alternative tool), so it falls short of the top score.
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 gives no when-to-use guidance, no exclusions, and no alternatives. While the purpose implies its usage, there is no explicit context about when an agent should call this tool versus others.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
finnhub_peersCompany peersARead-onlyInspect
Peer companies for a symbol (same country and GICS sub-industry). Finnhub REST: GET /stock/peers.
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | Stock ticker symbol, e.g. 'AAPL' (required). | |
| grouping | No | Peer grouping criterion, e.g. 'sector', 'industry' or 'subIndustry' (default). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
readOnlyHint=true already establishes the safety profile, so the description's contribution is the peer-selection rule (country + GICS sub-industry), which is genuinely useful context. It does not disclose whether the queried symbol is included in the result, ordering, or behavior for unknown symbols. The 'grouping' parameter also implies selectable criteria that the fixed description sentence does not reconcile.
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 short sentences, zero filler, with the resource and its scoping rule front-loaded and the REST provenance last. Nothing needs trimming.
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 read tool with no output schema, annotations covering safety, and full schema coverage, the description is adequate. It could add a word on the returned peer list format or symbol treatment, but nothing essential for correct invocation 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 schema already documents both 'symbol' and 'grouping' at the baseline level. The description adds the underlying selection rule, but it also creates a mild tension: it fixes peers to sub-industry while 'grouping' accepts 'sector' and 'industry' without 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?
States a specific resource ('Peer companies for a symbol') plus the exact scoping rule ('same country and GICS sub-industry') and the upstream REST endpoint, which removes the main ambiguity of what 'peers' means. It is trivially distinguishable from siblings like finnhub_quote, finnhub_company_profile, or finnhub_recommendation_trends.
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 only implied: the scoping sentence tells the agent what the tool returns but never states when to prefer it over finnhub_company_profile or finnhub_recommendation_trends, nor any exclusions (e.g., unsupported exchanges or symbols). No explicit alternative or precondition is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
finnhub_price_targetPrice targetARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | Stock ticker symbol, e.g. 'AAPL' (required). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
readOnlyHint=true already covers the safety profile, so the bar is lower; the description adds genuinely useful context by disclosing the premium-tier restriction and likely 403 response, plus the underlying REST route. It stops short of return format or rate-limit detail, but the error behavior disclosure is the key operational fact here.
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 sentences, result fields front-loaded, caveat and endpoint appended with zero filler. Every clause earns its place.
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?
No output schema exists, yet the description names the returned metrics, so the agent knows what to expect. Combined with the 403 caveat and the single fully-described parameter, nothing needed to call this tool correctly 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% with a single well-documented 'symbol' parameter, so the schema carries the burden. The description adds nothing param-specific beyond implying the symbol is a ticker and 100% baseline 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?
States the exact resource (analyst price targets for a symbol) and enumerates the returned metrics (high/low/median/mean target), which distinguishes it from the nearest sibling finnhub_recommendation_trends and from quote/profile tools. No ambiguity about what an agent gets back.
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?
Provides a real usage caveat — the premium-tier 403 on the free plan — which helps an agent interpret failures. However, it never states when this tool is preferable to alternatives (e.g. recommendation trends) or what prerequisites apply, so usage selection remains implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
finnhub_quoteReal-time quoteBRead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | Stock ticker symbol, e.g. 'AAPL' (required). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the safety profile is covered. The description's value-add is the return-field breakdown, which is genuinely useful behavioral context given there is no output schema. However, it discloses nothing about rate limits, data freshness/delay, or the REST endpoint's auth needs, keeping it at a minimum-viable level.
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 tight sentences; the purpose is front-loaded and the field list is compact and informative. No filler or redundant restatement of the name.
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 one-parameter read tool with no output schema, the description compensates well by enumerating the returned fields. Minor gaps remain, such as currency/units and whether the quote is delayed, but nothing essential to invoking it 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 coverage is 100%, and the single symbol parameter is fully documented in the schema with an example ('AAPL'). The description adds no parameter syntax or format detail beyond what the schema already provides, so the baseline 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?
States a specific resource ('real-time quote for a stock') and enumerates the exact return fields, so an agent knows precisely what this returns. It is clearly distinct from siblings like basic_financials or company_profile, though it does not explicitly name the 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?
There is no when-to-use guidance or mention of alternatives. With fifteen sibling tools, nothing tells the agent to reach for finnhub_quote versus basic_financials or price_target for valuation-style data. Usage is only implied by the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
finnhub_recommendation_trendsRecommendation trendsBRead-onlyInspect
Analyst recommendation trends over time — counts of strong buy / buy / hold / sell / strong sell by period. Finnhub REST: GET /stock/recommendation.
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | Stock ticker symbol, e.g. 'AAPL' (required). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint=true annotation already establishes the safety profile, so the description's burden is lighter. It adds useful context by disclosing the shape of the payload (rating counts bucketed by period) and the underlying REST endpoint, but says nothing about historical depth, rate limits, or whether periods are quarterly.
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 compact sentences with zero filler: the data shape comes first and the endpoint reference trails. Every clause earns its place.
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 read-only, single-parameter tool with no output schema, the description does the important work of naming the returned fields and their period bucketing, which partially substitutes for a return schema. What remains missing is minimal.
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?
Only one parameter (symbol) and schema description coverage is 100%, so the schema already documents it fully with an example ('AAPL'). The description adds no syntax or format detail beyond the schema, which is the expected baseline for a single well-documented parameter.
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?
States a specific resource (analyst recommendation trends) and enumerates the exact fields returned (strong buy / buy / hold / sell / strong sell by period), so the agent knows precisely what data comes back. It does not, however, distinguish itself from adjacent siblings like finnhub_price_target or finnhub_basic_financials, which also surface analyst opinion 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?
There is no when-to-use / when-not-to-use guidance and no alternatives named among the 15 sibling tools. The reader must infer from the resource name alone that this is the tool for consensus analyst ratings rather than price targets or financials.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
finnhub_stock_symbolsStock symbolsBRead-onlyInspect
List all symbols supported on an exchange. Finnhub REST: GET /stock/symbol.
| Name | Required | Description | Default |
|---|---|---|---|
| mic | No | Filter by Market Identifier Code (MIC). | |
| currency | No | Filter by trading currency, e.g. 'USD'. | |
| exchange | Yes | Exchange code, e.g. 'US' (required). | |
| securityType | No | Filter by security type, e.g. 'Common Stock'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
readOnlyHint=true already tells the agent this is a safe read, and the description adds only the underlying REST route (GET /stock/symbol), which doesn't change invocation behavior. Nothing is said about pagination, result size, rate limits, or the shape of what comes back — meaningful gaps for a symbol-enumeration endpoint.
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 short sentences, purpose front-loaded, no filler. The trailing REST-route reference is marginally useful context but borders on noise for an agent that only needs the tool name.
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, read-only, 4-parameter endpoint with full schema coverage, the essential information is present. However, with no output schema the description should hint at the return format or volume, and it says nothing about result size or pagination for what could be a very large symbol list.
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 all four filters (mic, currency, exchange, securityType) are already documented in the schema with examples and the required flag. The description adds no additional parameter meaning, 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?
States a specific verb and resource ('List all symbols supported on an exchange'), which is clearly an enumeration operation rather than a lookup. It is implicitly distinguishable from the sibling finnhub_symbol_search, but the description never names or contrasts with that sibling.
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 phrase 'list all symbols supported on an exchange' implies you use this to enumerate an exchange's universe, but there is no explicit when-to-use, when-not-to-use, or named alternative (e.g. finnhub_symbol_search for name/lookup queries). Guidance is only inferable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
finnhub_symbol_searchSymbol searchARead-onlyInspect
Search for stock symbols by name or ticker — returns best-matching symbols with descriptions and types. Finnhub REST: GET /search.
| Name | Required | Description | Default |
|---|---|---|---|
| q | Yes | Free-text query — a company name or ticker, e.g. 'apple' (required). | |
| exchange | No | Restrict results to an exchange, e.g. 'US'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
readOnlyHint=true already tells the agent this is a safe read, and the description usefully adds the return shape (symbols with descriptions and types) plus the upstream endpoint. It does not disclose result limits, ranking behavior, or pagination, so it adds context without being rich.
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 compact clauses with the core purpose front-loaded and zero filler; the trailing 'Finnhub REST: GET /search.' is largely redundant for an agent invoking an MCP tool but costs almost nothing.
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 two-parameter, read-only lookup with no output schema, the description covers purpose, inputs, and the shape of results, which is enough to call it correctly. Missing are result-count/limit behavior and differentiation from the near-identical finnhub_stock_symbols sibling.
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 'q' documented as free-text name or ticker and 'exchange' as an exchange restriction, so the baseline is 3. The description adds no syntax, format, or query-construction detail beyond the schema.
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?
Specific verb (search) plus resource (stock symbols) and a scope note (by name or ticker), with a stated return shape ('best-matching symbols with descriptions and types'). It falls short of 5 because it never distinguishes itself from the sibling finnhub_stock_symbols, which an agent could easily confuse with this 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?
Usage is implied by 'search for stock symbols by name or ticker', so an agent can infer the lookup scenario. There is no explicit when-to-use, no exclusion, and no routing to the obvious alternative finnhub_stock_symbols, leaving the choice between the two ambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Related MCP Connectors
Stock quotes, price history and fundamentals, plus SEC EDGAR company filings.
Real-time stock quotes, market indices, and institutional holdings
Stocks, ETFs, crypto, commodities, forex: quotes, fundamentals, SEC filings, point-in-time history.
US stock quotes, analyst targets, superinvestor 13F, insider buys and earnings from SEC filings
Related MCP Servers
AlicenseAqualityDmaintenanceProvides as-reported US equity fundamentals, live quotes, financial statements, valuation comps, and a screener from SEC filings, with per-cell filing provenance for citations.7MIT- AlicenseNot gradedqualityDmaintenanceProvides comprehensive financial data and insights for stocks listed on BSE and NSE, including stock details, historical data, news, IPOs, and mutual funds.9 npmISC
- AlicenseAqualityCmaintenanceProvides access to Yahoo Finance data including real-time stock quotes, historical prices, financial statements, company info, symbol search, and news.651 npm1MIT
- FlicenseNot gradedqualityDmaintenanceProvides access to comprehensive financial data including income statements, balance sheets, cash flow statements, stock prices, company news, SEC filings, and cryptocurrency information with built-in financial ratio analysis.-
Glama MCP Gateway
Add one secure layer between your agents and this server.