Skip to main content
Glama

Server Details

OptimistFi's MCP gives AI assistants read-only access to dated investment theses, thesis-break signals, and sourced financial evidence for US stocks, over a compact set of intent-level tools. Access is by bearer token from optimistfi.com/partners.

Ownership verified
Status
Healthy
Uptime
99.5% over 22 days
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL

TDQS

A3.8/5.0

Scored across 14 tools

Disambiguation3/5

Several tools answer the same user questions: 'how was X's quarter / did X beat' is claimed by answer, get_thesis_impact, and what_changed, and 'is X a buy' by both answer and get_thesis. The descriptions try to carve boundaries with 'Not for' clauses, but the answer/thesis/thesis_impact/what_changed cluster remains genuinely overlapping. The remaining tools (perps, filings, insider/congress trades, capital returns, calendar, resolve_entity) are clearly distinct.

Naming Consistency4/5

Names are consistently lowercase snake_case with a get_ verb_noun pattern for the data-fetch tools (get_filings, get_insider_trades, get_thesis, get_perps_market, etc.). A few tools (answer, compare, what_changed) deviate from the get_ prefix but are still readable verbs. No mixed casing or chaotic styles.

Tool Count5/5

14 tools is well within the sweet spot for a financial-research server, and each tool covers a distinct data domain (thesis, filings, insiders, congress, capital returns, calendar, perps). No tool feels redundant by count alone and none appears to be filler.

Completeness4/5

Coverage is broad: entity resolution, thesis lifecycle (case, impact, track record), filings, insider and congressional trades, capital returns, calendar, perps, and comparison. Gaps are minor — there is no dedicated fundamentals/financial-statement or price-history tool, though valuation and price moves are folded into answer and what_changed.

Available Tools

14 tools
answerFinancial answerB
Read-only
Inspect

OptimistFi focuses on the investment thesis for a stock, alongside the numbers: the standing case, valuation off its filed financials, and the latest quarter. Use when the user asks: is X a buy; is X cheap; what's X's P/E; what are X's earnings; how was X's quarter; did X beat. response_mode=plain for beginners. Args: entity; response_mode.

ParametersJSON Schema
NameRequiredDescriptionDefault
entityYes
reading_levelNo
response_modeNostandard

TDQS

B3.3/5.0
Behavior3/5

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

The annotations already declare readOnlyHint=true, so the read-only nature is covered. The description adds useful behavioral context: the tool synthesizes an investment thesis with valuation and latest-quarter numbers. It does not disclose much beyond that, but for a read-only answer tool, no destructive or side-effect transparency is needed.

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

Conciseness3/5

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

The trigger-phrase list is front-loaded and useful, but the opening 'OptimistFi focuses...' sentence is vague and jargon-heavy. The final 'Args: entity; response_mode' line merely repeats schema information. The description is not overly long, but not every sentence earns its place.

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 mostly simple Q&A tool, the description covers the main use cases and mentions response_mode. However, there is no output schema and the description does not describe return content, explain reading_level, or clarify how entity resolution should occur despite a resolve_entity sibling. These gaps leave some ambiguity for an agent deciding how to invoke it correctly.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate for the schema's lack of parameter explanations. It mentions entity and response_mode, but omits reading_level entirely. It also does not explain entity format or the meaning of response_mode values beyond saying 'plain is for beginners,' leaving agents to infer the rest.

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 resource (a stock) and the action (answering financial questions about buy/cheap/P/E/earnings/quarter). It provides concrete example questions that convey what the tool does. However, it does not explicitly differentiate this general 'answer' tool from siblings like get_filings or get_thesis, so it stops short of full sibling distinction.

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 description includes explicit 'Use when the user asks' trigger phrases, which gives the agent concrete criteria for selecting this tool. It does not mention when NOT to use it or point to alternatives, but the listed scenarios are specific enough to guide invocation.

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

compareCompare companiesA
Read-only
Inspect

Two or more companies side by side: each one's valuation, investment case, and what supports or challenges it, so the comparison rests on the cases, not just ratios. Use when the user asks: X vs Y; which is the better buy; is X or Y more defensive. response_mode=plain for beginners. Not for: one company → answer. Args: entities (2-5).

ParametersJSON Schema
NameRequiredDescriptionDefault
entitiesYes
reading_levelNo
response_modeNostandard

TDQS

A4.4/5.0
Behavior4/5

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

Annotations declare readOnlyHint=true, so the safety profile is already covered. The description adds meaningful behavioral context: the comparison is based on investment cases rather than just ratios, and it will surface both supporting and challenging factors. There is no contradiction with annotations.

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 compact, front-loaded with the core purpose, and uses short clauses to cover use cases, exclusions, and argument guidance. Every sentence earns its place without unnecessary repetition.

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 there is no output schema, the description does a good job of explaining what the response will contain (valuation, investment case, supporting and challenging factors). It also covers usage triggers, exclusions, and a key parameter constraint. It is slightly incomplete on reading_level and other response modes, but generally sufficient for safe invocation.

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 0%, so the description must compensate. It does add useful meaning for 'entities' by stating the 2-5 range, and it hints at response_mode usage for beginners. However, it does not explain reading_level at all and only partially clarifies the response_mode enum, leaving a visible gap.

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 states a specific verb and resource: compare companies side by side, covering valuation, investment case, and supporting/challenging factors. It also distinguishes itself from sibling tools by explicitly saying 'Not for: one company → answer', so an agent can tell it apart from the answer tool.

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

Usage Guidelines5/5

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

The description gives explicit trigger examples ('X vs Y; which is the better buy; is X or Y more defensive'), a clear not-for case ('one company → answer'), and even mode advice ('response_mode=plain for beginners'). This tells the agent exactly when to invoke it and when to route to a sibling.

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

get_calendarUpcoming dated eventsA
Read-only
Inspect

What is ahead for a company, nearest first: the next earnings date projected from its own filing cadence (held, not rolled, marked overdue when lapsed) and trial readouts. Use when the user asks: when does X report next; what's coming up for X. Not for: past events → get_filings; what the earnings were → answer. Args: entity; types; limit.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
typesNo
entityYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior5/5

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

Beyond the readOnlyHint annotation, it discloses the projection method ('from its own filing cadence') and unusual behaviors ('held, not rolled, marked overdue when lapsed'). This is exactly the kind of non-obvious behavioral context that helps an agent set expectations.

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

Conciseness4/5

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

The key purpose and usage are front-loaded, with exclusions and a brief arg list. Dense but efficient; the only minor waste is the arg name list that duplicates schema property names.

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 read-only tool with an output schema, the behavioral and routing context is solid. However, with no parameter descriptions in the schema, the ambiguity around types and limit leaves an agent guessing about valid invocations.

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

Parameters2/5

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

Schema coverage is 0%, so the description should clarify entity, types, and limit. It only lists the argument names and implies entity is a company via context; it does not define what values types accepts, what limit controls, or how they interact. The natural language hints at trial readouts vs earnings but does not map them to types.

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 names a specific resource (upcoming company dated events) and a specific action (returns nearest-first earnings projections and trial readouts). It also explicitly distinguishes itself from get_filings and answer, so an agent can tell what it is not.

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

Usage Guidelines5/5

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

It explicitly says when to use the tool ('when does X report next; what's coming up for X') and gives exclusions ('Not for past events → get_filings; what the earnings were → answer'). No inference is required.

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

get_capital_returnsDividends & buybacksA
Read-only
Inspect

How a company returns capital: dividend-rate history with each raise or cut, buyback authorizations beside the cash actually spent, splits and name changes. Forward ex-dates are not served. Use when the user asks: did X raise its dividend; is X buying back stock; has X cut it. Args: entity; kind = dividends | buybacks | actions.

ParametersJSON Schema
NameRequiredDescriptionDefault
kindNodividends
limitNo
entityYes
periodsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior4/5

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

The readOnlyHint annotation is supplemented by useful behavioral context: the tool is a read-oriented historical data tool, and it explicitly avoids forward ex-dates. The description also clarifies what data is included (each raise/cut, buybacks authorized versus spent, splits, name changes), which sets user expectations beyond the annotation. No contradiction exists.

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 compact and front-loaded: it opens with the core content, then provides concrete user-phrase triggers, then ends with a concise parameter hint. Every sentence adds useful information and there is no filler. The structure makes the tool's purpose scannable in seconds.

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 output schema exists and the annotations mark this as read-only, the description covers the main scenarios and data scope well. The missing semantics for 'limit' and 'periods' create a minor gap in invocation confidence, and an explicit pointer to a sibling for forward-looking dates would strengthen completeness. Overall, the definition is adequate for correct use in most cases.

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

Parameters2/5

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

Schema description coverage is 0%, so the description carries the burden of explaining parameters. It briefly mentions 'entity' and 'kind = dividends | buybacks | actions,' which clarifies the kind enum but omits the parameter aliases and the meaning of 'limit' and 'periods.' The description adds some value but leaves two of four parameters effectively undocumented.

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 identifies the tool's resource: how a company returns capital, including dividend-rate history, buyback authorizations versus cash spent, splits, and name changes. It distinguishes the tool from siblings by naming specific data elements and explicitly noting that forward ex-dates are not served. This is a specific and actionable definition beyond the tool name.

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 description provides explicit trigger questions: 'did X raise its dividend; is X buying back stock; has X cut it,' which makes it easy for an agent to route user intent to this tool. It also gives a clear exclusion ('Forward ex-dates are not served'), though it does not name an alternative sibling like get_calendar for forward-looking queries. The guidance is strong but not fully exhaustive about when not to use this tool.

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

get_congress_tradesCongressional tradesA
Read-only
Inspect

US House stock-trade disclosures (STOCK Act) by ticker or by member, dated by transaction. Use when the user asks: which members of Congress traded X; what did a named member buy; is Congress selling X. Not for: company insiders → get_insider_trades. Args: ticker or member; limit.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
entityNo
memberNo
tickerNo
chamberNohouse

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior3/5

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

The readOnlyHint annotation already covers the safety profile. The description adds useful context about the data source (STOCK Act disclosures) and that results are dated by transaction, but it does not disclose behaviors like sorting, pagination, or how the limit parameter affects results. That is acceptable given the annotation, so a moderate score applies.

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 compact yet information-dense: key use cases, an exclusion, and a pointer to the main arguments all fit in three short sentences. The most identifying information is front-loaded, and every sentence earns its place.

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?

With an output schema present and readOnlyHint set, the description does not need to explain return values or safety. It covers the main scenarios, the sibling differentiation, and the core arguments. The only minor gap is incomplete parameter semantics for entity and chamber, but the overall context is sufficient for correct invocation.

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 0%, so the description carries the burden. It adds meaning for ticker, member, and limit ('Args: ticker or member; limit'), and the 'US House' phrase aligns with the house default for chamber. However, entity and chamber are left unexplained, leaving part of the parameter surface undocumented.

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 states a specific verb and resource ('US House stock-trade disclosures'), identifies the two core lookup modes (by ticker, by member), and even notes the date dimension ('dated by transaction'). It also differentiates itself from the sibling get_insider_trades explicitly, so an agent cannot confuse the two.

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

Usage Guidelines5/5

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

The description gives concrete user-phrasing examples ('which members of Congress traded X; what did a named member buy; is Congress selling X') and an explicit negative case with the correct alternative ('Not for: company insiders → get_insider_trades'). This is exemplary routing guidance.

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

get_filingsSEC filings & eventsA
Read-only
Inspect

A company's own disclosures: filed 8-K events, its press releases, the text of those 8-Ks, and governance red flags (late filings, auditor changes, selling clusters). Use when the user asks: any red flags at X; what did X announce; latest 8-K from X. Not 10-K/10-Q sections. Args: entity; kind = events | press_releases | event_text | red_flags.

ParametersJSON Schema
NameRequiredDescriptionDefault
endNo
kindNoevents
limitNo
startNo
entityYes

TDQS

A4.2/5.0
Behavior4/5

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

The readOnlyHint annotation already signals a safe read operation, so the bar is lower. The description adds useful behavioral context by defining what kind of content is returned, including the specific red-flag categories (late filings, auditor changes, selling clusters), which goes beyond the schema.

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 tight and front-loaded: data categories, usage examples, an exclusion, and the core argument summary all appear in a few short sentences. Every sentence earns its place.

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?

It covers the core data scope and usage triggers well, and readOnlyHint covers safety. However, with 5 parameters and no output schema, the description should at least mention start/end/limit semantics. The omission of three optional parameters makes it not fully complete for invocation.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate. It names only 'entity' and 'kind' and lists canonical kind values, but it omits start, end, and limit entirely. It also does not explain date formats or the meaning of the optional parameters, leaving an agent to guess.

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?

States a specific resource ('a company's own disclosures') and enumerates the data types: 8-K events, press releases, 8-K text, and governance red flags. It also explicitly distinguishes itself from 10-K/10-Q sections, so an agent can tell it apart from other filings tools.

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

Usage Guidelines5/5

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

Gives explicit trigger examples: 'any red flags at X; what did X announce; latest 8-K from X.' It also provides a clear exclusion: 'Not 10-K/10-Q sections.' This tells an agent exactly when to invoke this tool and when not to.

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

get_insider_tradesInsider transactionsA
Read-only
Inspect

Form 4 insider transactions for one company, newest first: who, role, code (P buy, S sell, A grant, M exercise, F tax), shares and dollar value. Use when the user asks: are insiders buying X; did X's CEO sell; insider activity at X. Not for: Congress → get_congress_trades. Args: entity; start; end; limit.

ParametersJSON Schema
NameRequiredDescriptionDefault
endNo
limitNo
startNo
entityYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already mark the operation read-only, and the description adds useful behavioral context: Form 4 source, one-company scope, newest-first ordering, and trade-code meaning. It doesn't cover rate limits or auth, but those are not critical with readOnlyHint=true.

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 short sentences carry scope, output details, usage guidance, exclusion, and an argument list. There is no filler and key information 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?

With an output schema present, return values need not be spelled out; the description covers scope, ordering, code semantics, and sibling routing. The only notable gap is that start/end/limit are not semantically described, though schema types/defaults partially cover them.

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

Parameters2/5

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

Schema description coverage is 0%, but the description only lists argument names (entity; start; end; limit). It implies entity is a company but gives no format or semantics for start/end or how limit behaves, so it fails to compensate for the empty schema descriptions.

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 states the action and resource clearly: Form 4 insider transactions for one company, with specific output fields and newest-first ordering. It also differentiates from get_congress_trades, so an agent can distinguish it from siblings.

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

Usage Guidelines5/5

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

Gives explicit when-to-use examples (insiders buying X, CEO selling, insider activity) and an explicit exclusion with the sibling to use instead (Congress -> get_congress_trades). This is unambiguous routing guidance.

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

get_perpsPerpetual futuresA
Read-only
Inspect

Perpetual futures on a stock, crypto or commodity across ~30 venues: price, open interest, funding, and liquidation levels from real positions. Weekends, a stock's perp move since the close and its record. Use when the user asks: X funding rate; X open interest; where do X longs get liquidated; X perps this weekend. Args: entity.

ParametersJSON Schema
NameRequiredDescriptionDefault
entityYes

TDQS

A3.7/5.0
Behavior3/5

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 two genuine behavioral traits beyond that: the data comes 'from real positions' (provenance) and weekend queries return a perp's move since the close plus its record, implying different semantics when the underlying market is shut.

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

Conciseness4/5

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

Purpose and scope are front-loaded before the trigger examples, and there is no filler. The fragment 'Weekends, a stock's perp move since the close and its record' is syntactically awkward and takes a beat to parse, slightly weakening an otherwise tight definition.

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?

With no output schema, the enumerated fields (price, OI, funding, liquidation levels) usefully stand in for return-value documentation, and the read-only annotation covers safety. However, the single required parameter is left entirely undefined, leaving a real gap in how an agent should supply it.

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

Parameters2/5

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

'Args: entity' merely restates the single schema property, which has 0% description coverage. The description never clarifies whether entity is a ticker, crypto symbol, commodity name, or an ID that must first be produced by resolve_entity — a meaningful ambiguity for a data-fetch tool.

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?

States a specific resource (perpetual futures) and enumerates the exact payload (price, open interest, funding, liquidation levels) across ~30 venues. This is clearly distinguishable from sibling tools like get_filings, get_calendar, or get_congress_trades without opening any schema.

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?

Gives explicit trigger phrasing with four concrete user-question patterns ('X funding rate', 'X open interest', 'where do X longs get liquidated', 'X perps this weekend'), which is strong when-to-use guidance. It stops short of naming when NOT to use it or which sibling (e.g., compare) to prefer for cross-entity questions.

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

get_perps_marketPerpetual futures — whole marketA
Read-only
Inspect

Perp markets ranked across ~1,000 markets: trending, movers, funding, open_interest, liquidations, whales, weekend. Use when the user asks: which perps are trending; highest funding rates; biggest liquidations today; whale trades; what stock perps say this weekend. Args: view; asset_class; window.

ParametersJSON Schema
NameRequiredDescriptionDefault
viewNotrending
limitNo
windowNo24h
asset_classNo

TDQS

A3.6/5.0
Behavior3/5

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 useful context about coverage (~1,000 markets) and the set of ranking modes, but says nothing about result ordering, pagination, or freshness of the data. Reasonable but not rich 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.

Conciseness4/5

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

Front-loaded with scope, then views, then usage triggers, then args. Dense but every clause carries information; no filler.

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?

No output schema exists, so the description should cover behavior and parameters more fully. View enumeration covers the main axis, but with 4 parameters at 0% schema coverage, the missing semantics for window, asset_class, and limit leave real 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?

Schema description coverage is 0%, so the description must carry parameter meaning. It enumerates the view values (trending, movers, funding, open_interest, liquidations, whales, weekend), which is genuinely valuable, but leaves window, asset_class, and limit (omitted entirely from the Args list) undefined in both schema and text.

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?

States a specific verb and resource with scope: 'Perp markets ranked across ~1,000 markets,' then enumerates the view modes. The scope ('whole market') implicitly separates it from the sibling get_perps, though it never names that sibling explicitly.

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?

Gives concrete user-question triggers ('which perps are trending', 'highest funding rates', 'biggest liquidations today', 'whale trades'), which map cleanly onto the listed views. It never states when *not* to use it or when to prefer get_perps instead.

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

get_thesisInvestment thesisA
Read-only
Inspect

The standing investment case for a stock: the thesis, its testable claims with the condition that breaks each, the bear case, the catalysts, and whether it still holds. Use when the user asks: is X still a buy; what's the bull case for X; is X's story holding up. response_mode=plain for beginners. Args: entity; view = case | review | story.

ParametersJSON Schema
NameRequiredDescriptionDefault
viewNocase
entityYes
reading_levelNo
response_modeNostandard

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already provide readOnlyHint=true, and the description adds useful behavioral context by enumerating the components returned (thesis, break conditions, bear case, catalysts, status) and noting response_mode=plain for beginners. This goes beyond the annotation without contradicting it.

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

Conciseness4/5

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

The description is compact and front-loaded with the core purpose in the first sentence. The usage triggers, response_mode note, and argument summary are all relevant, though the 'Args:' line is a bit compressed and could be clearer.

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?

With no output schema, the description carries the burden of explaining returns and parameters. It does list the thesis components, but it leaves reading_level unexplained and does not clarify what each view variant returns. This is adequate but has notable gaps for a tool with four parameters.

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 0%, so the description must compensate for parameter meaning. It does explain view values ('case | review | story') and response_mode=plain, but it gives no explanation of reading_level and only a vague sense of entity from 'stock.' This is partial compensation, not full.

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 that the tool returns a stock's standing investment thesis, including testable claims, bear case, catalysts, and whether it still holds. It is specific about the resource and content, but it does not explicitly distinguish itself from the sibling tool get_thesis_impact.

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 description gives concrete trigger examples ('is X still a buy; what's the bull case for X; is X's story holding up'), which tells an agent when to use the tool. It does not mention when not to use it or name alternative tools, so it stops short of full usage guidance.

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

get_thesis_impactThesis impact of an eventA
Read-only
Inspect

One reported figure read against the investment case: the claim it tests, how it supports or challenges that claim, and why the number is what it is. item=earnings covers revenue, profit and EPS. Use when the user asks: what does X's revenue mean; what do X's earnings mean; how was the quarter. response_mode=plain for beginners. Args: entity; item.

ParametersJSON Schema
NameRequiredDescriptionDefault
itemNorevenue
entityYes
reading_levelNo
response_modeNostandard

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior4/5

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

The readOnlyHint annotation already signals a safe read operation. The description adds meaningful behavioral context by explaining the output structure: the claim tested, how the figure supports/challenges it, and why the number is what it is. No contradictions with annotations.

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

Conciseness4/5

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

The description is compact and front-loads the core behavior, then adds usage triggers and parameter hints. Every sentence earns its place, though the 'Args: entity; item' line is minimal and slightly telegraphic.

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

Completeness3/5

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

Given four parameters, zero schema descriptions, and a rich sibling set, the description explains the tool's purpose and primary usage well. However, the reading_level parameter and the full response_mode behavior are left undocumented, which is a notable gap for an agent trying to invoke this correctly.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must carry parameter meaning, but it only briefly mentions 'entity' and 'item'. It clarifies that item=earnings covers revenue, profit and EPS, and that response_mode=plain is for beginners, but it does not explain reading_level or the other response_mode values.

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 identifies a specific action and resource: reading one reported figure against the investment case, and lists what the output contains (claim tested, support/challenge, why the number is what it is). It distinguishes this from siblings like get_thesis or what_changed by focusing on a single figure's impact rather than a general narrative.

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?

Explicit trigger examples are provided: 'what does X's revenue mean', 'what do X's earnings mean', 'how was the quarter'. This gives clear when-to-use guidance, though it does not name alternatives or exclusion conditions.

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

get_track_recordTrack recordA
Read-only
Inspect

OptimistFi's dated track record on a company: each time a filing crossed or held its thesis's break condition. A crossing whose thesis predates the filing is a genuine call, dated before the event. Use when the user asks: has OptimistFi been right on X; did X's thesis break. response_mode=plain for beginners. Args: entity.

ParametersJSON Schema
NameRequiredDescriptionDefault
entityYes
reading_levelNo
response_modeNostandard

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, and the description adds meaningful context beyond that: a crossing only counts as a genuine call if the thesis predates the filing, and records are dated before the event. It does not describe return format or limits, but the read-only annotation lowers that burden.

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 tight sentences with zero fluff. The core definition is front-loaded, the genuine-call nuance earns its place, and the parameter hints are appended without redundancy.

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?

The description is good for a simple read-only tool, but there are gaps: no output schema exists, and the description doesn't state what the response looks like, how to format entity, or what reading_level controls. It is adequate but not fully complete.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate. It mentions 'Args: entity' and hints that response_mode=plain is for beginners, but it does not explain reading_level, the meaning of entity, or the available response_mode values beyond the enum names.

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?

States a specific verb and resource: 'dated track record on a company' and defines exactly what counts as a record ('each time a filing crossed or held its thesis's break condition'). This clearly distinguishes it from sibling tools like get_thesis and what_changed.

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?

Explicitly gives use cases: 'when the user asks: has OptimistFi been right on X; did X's thesis break.' It does not name alternative tools or state when not to use it, so it falls just short of a full 5.

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

resolve_entityResolve a company or tickerA
Read-only
Inspect

Resolve a ticker, company name, or CIK to the canonical company, confirming which company a name means before other tools run. Use when the user asks: which company is X; what's the ticker for X; is X listed. Args: query.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior3/5

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

readOnlyHint already covers the no-mutation safety profile, and the description adds the canonical-company behavior and sequencing context. However, it does not disclose ambiguity handling, coverage limits, or any other operational behavior beyond what the annotation and purpose already imply.

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

Conciseness4/5

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

The description is short, front-loaded with the action and input forms, and includes useful usage examples. The only minor redundancy is 'Args: query', which repeats the schema and does not add much.

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

Completeness5/5

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

For a one-parameter, read-only resolver with an output schema, the description provides all necessary context: what the tool does, accepted input forms, and when to use it. No hidden parameters, enums, or nested-object concerns exist.

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?

The schema provides only the name 'query' with 0% description coverage, so the description fully carries the parameter meaning. It explicitly says the query may be a ticker, company name, or CIK, which is exactly what the agent needs to populate the single parameter.

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 states a specific verb ('Resolve') and resource (ticker, company name, or CIK) and defines the outcome as the canonical company. It also positions the tool as a pre-step before other tools, which differentiates it from the sibling data-retrieval tools.

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?

It gives explicit trigger questions ('which company is X', 'what's the ticker for X', 'is X listed') and says to run it before other tools. It does not name alternative tools or give exclusion cases, but the guidance is clear enough for correct routing.

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

what_changedWhat changed recentlyA
Read-only
Inspect

What has happened for a company since a date, read against its case: the latest quarter, filings and 8-K events, insider trades, capital returns, price move. Use when the user asks: what changed with X; what's new; how did X's earnings go. response_mode=plain for beginners. Args: entity; since; response_mode.

ParametersJSON Schema
NameRequiredDescriptionDefault
sinceNo
entityYes
reading_levelNo
response_modeNostandard

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already mark the tool as readOnlyHint=true, and the description is consistent with that. It adds useful behavioral context by saying results are 'read against its case' and listing the aggregated data sources. It does not disclose output format or potential latency, but the read-only annotation lowers the bar.

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

Conciseness4/5

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

The description is compact and front-loaded with the core behavior, followed by practical usage triggers and a parameter hint. Every sentence contributes value, though the 'Args' list is slightly redundant with the schema.

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

Completeness3/5

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

Given the moderate complexity, read-only annotation, and no output schema, the description covers the main purpose and usage context well. However, it is incomplete because reading_level is left unexplained and response_mode is only partially described, leaving the agent to infer meaning from the schema alone.

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 0%, so the description is the only natural-language source for parameters. It adds meaning for 'entity' as a company, 'since' as a date, and 'response_mode=plain for beginners,' but it omits the reading_level parameter entirely and does not define the other response_mode values.

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 explains that the tool summarizes what changed for a company across quarter results, filings, 8-K events, insider trades, capital returns, and price moves. This distinguishes it from category-specific siblings like get_filings or get_insider_trades, though it does not name them explicitly.

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 description gives concrete natural-language triggers: 'what changed with X; what's new; how did X's earnings go.' It provides clear context for when to use the tool, though it does not state when not to use it or name 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.

  1. 1 tool update
    • Addedget_perps_market
  2. 1 tool update
    • Addedget_perps
  3. 1 tool update
    • Changedwhat_changed1 field changed
      • removedInput schema / properties / user
        Removed value: -{
        -  "anyOf": [
        -    {
        -      "type": "string"
        -    },
        -    {
        -      "type": "null"
        -    }
        -  ],
        -  "default": null,
        -  "title": "User"
        -}
  4. 29 tool updates
    • Removedget_analyst_view
    • Removedget_coherence_report
    • Removedget_company_brief
    • Removedget_earnings
    • Removedget_event_studies
    • Removedget_filing_text
    • Removedget_fundamentals
    • Removedget_holdings
    • Removedget_indicator
    • Removedget_industry_valuation_medians
    • Removedget_insider_window
    • Removedget_macro
    • Removedget_market
    • Removedget_market_setups
    • Removedget_overview
    • Removedget_ownership
    • Removedget_pattern_context
    • Removedget_press_releases
    • Removedget_prices
    • Removedget_profile
    • Removedget_recent_breaks
    • Removedget_reliability
    • Removedget_search_trends
    • Removedget_thesis_map
    • Removedget_trading_signals
    • Removedget_valuation
    • Removedget_watch_alerts
    • Removedscreen
    • Removedsearch_filings
  5. 1 tool update
    • Addedget_reliability
  6. 40 tool updates
    • First observedanswer
    • First observedcompare
    • First observedget_analyst_view
    • First observedget_calendar
    • First observedget_capital_returns
    • First observedget_coherence_report
    • First observedget_company_brief
    • First observedget_congress_trades
    • First observedget_earnings
    • First observedget_event_studies
    • First observedget_filing_text
    • First observedget_filings
    • First observedget_fundamentals
    • First observedget_holdings
    • First observedget_indicator
    • First observedget_industry_valuation_medians
    • First observedget_insider_trades
    • First observedget_insider_window
    • First observedget_macro
    • First observedget_market
    • First observedget_market_setups
    • First observedget_overview
    • First observedget_ownership
    • First observedget_pattern_context
    • First observedget_press_releases
    • First observedget_prices
    • First observedget_profile
    • First observedget_recent_breaks
    • First observedget_search_trends
    • First observedget_thesis
    • First observedget_thesis_impact
    • First observedget_thesis_map
    • First observedget_track_record
    • First observedget_trading_signals
    • First observedget_valuation
    • First observedget_watch_alerts
    • First observedresolve_entity
    • First observedscreen
    • First observedsearch_filings
    • First observedwhat_changed

Related MCP Servers

  • A
    license
    A
    quality
    C
    maintenance
    Enables brand visibility monitoring across major AI platforms like ChatGPT, Claude, Gemini, and Perplexity. It allows users to track visibility scores, analyze competitor data, and receive actionable insights to improve AI-generated brand recommendations.
    16
    24 npm
    1
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Browse IndustryLens's published competitive-intelligence reports and head-to-head competitor comparisons from any AI agent — real, source-backed data.
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources