Skip to main content
Glama

Server Details

Intrinsic stock value from SEC filings: DCF, EPV, Graham, moat signals. Deterministic, not guessed.

If you are the author of this connector, you can claim ownership with GitHub, an HTTP challenge, or a DNS record. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Last Tested
Transport
Streamable HTTP
URL
Tool DescriptionsA

Average 4.4/5 across 7 of 7 tools scored.

Server CoherenceA
Disambiguation4/5

Each tool has a distinct primary purpose: searching, fundamentals, quality, valuation, expected return, thesis, and screening. The only minor overlap is between get_business_quality and get_thesis, but their descriptions clearly differentiate (quality metrics vs. combined thesis). Overall, agents can reliably select the right tool with minimal confusion.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern with lowercase and underscores: get_*, screen_undervalued, search_companies. The verbs are descriptive and uniform, and the one adjective (undervalued) doesn't break the pattern. This is highly predictable.

Tool Count5/5

Seven tools is well within the ideal range for a specialized financial analysis server. Each tool covers a distinct core function without redundancy or bloat, making the set easy to navigate and maintain.

Completeness5/5

The tool set covers the full workflow for fundamental analysis: resolving companies, retrieving raw fundamentals, assessing quality, valuing the business, computing expected returns, generating theses, and screening for undervalued names. The deliberate absence of market data is documented, so there are no dead ends.

Available Tools

7 tools
get_business_qualityMoat and management signalsA
Read-only
Inspect

Is this a good business? Return on invested capital (or equity) against its cost of capital, and what management has done with the share count. Returns the year-by-year series as well as the averages, so the reading can be disputed without losing the evidence. These are signals, not verdicts — present them that way.

ParametersJSON Schema
NameRequiredDescriptionDefault
tickerYesTicker symbol, e.g. AAPL. Case-insensitive.

Output Schema

ParametersJSON Schema
NameRequiredDescription
moatYes
notesNoCaveats about what the filings did and didn't support.
tickerYes
managementYes
years_coveredNoHow many fiscal years the signals were computed over.
engine_versionYesEngine build that produced these figures.
Behavior4/5

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 valuable context beyond that: it explains the output is evidence-based (series and averages) and explicitly frames results as 'signals, not verdicts,' guiding how the AI should present them. This is a meaningful behavioral caveat not captured in 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 three sentences long, front-loaded with the main purpose, and each sentence provides unique information: what it measures, what it returns, and how to interpret it. No redundancy or filler.

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 single-parameter read-only tool with an output schema, the description thoroughly covers what the tool does, what metrics it returns, and how the results should be interpreted. It is complete enough for an agent to select and invoke it correctly.

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

Parameters3/5

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

The only parameter, ticker, is already well-documented in the schema with a description (e.g., case-insensitive). The tool description does not add additional semantic meaning about the parameter beyond the schema, so with 100% schema coverage the baseline of 3 applies.

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

Purpose5/5

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

The description clearly states what the tool does: it returns ROIC/ROE against cost of capital and share count changes, with year-by-year series and averages. This specific verb+resource combination effectively distinguishes it from sibling tools like get_intrinsic_value or get_expected_return.

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

Usage Guidelines3/5

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

The description implies the tool is for assessing business quality via the opening question 'Is this a good business?' but does not explicitly state when to use it over alternatives or when not to use it. The note about 'signals, not verdicts' is more about presentation than usage context.

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

get_expected_returnExpected return at a given priceA
Read-only
Inspect

At a price you supply, the annual return the base case implies. MeritValue holds no market-data licence, so it never returns a live quote — the caller must provide the price. Ask the user for it, or have them check a broker; do not guess one, and do not present a guessed price as a real one.

ParametersJSON Schema
NameRequiredDescriptionDefault
priceYesShare price to test, in the company's reporting currency.
tickerYesTicker symbol, e.g. AAPL. Case-insensitive.

Output Schema

ParametersJSON Schema
NameRequiredDescription
priceYesEchoed back — the price you supplied, never a quote.
tickerYes
refusedNoPresent when the flagship DCF doesn't apply. A refusal is a result — report it, don't retry.
currencyNo
disclaimerNo
assumptionsNo
engine_versionYesEngine build that produced these figures.
expected_returnYesAnnual return the base case implies, as a fraction. Null when it can't be solved.
Behavior5/5

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

The description goes beyond annotations by explaining that MeritValue holds no market-data licence and never returns a live quote, so the caller must provide the price. It also warns against presenting a guessed price as real, adding meaningful behavioral context that is not in the readOnlyHint or openWorldHint flags.

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 three sentences, front-loaded with the primary purpose, followed by the rationale for the price requirement, and ends with a clear usage instruction. Every sentence earns its place with no redundant content.

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?

The tool is simple, with annotations covering read-only behavior, a complete schema, and an output schema present. The description covers the essential nuance (no live data, caller-provided price) and is fully sufficient for an agent to use the tool correctly.

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

Parameters4/5

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

While the schema already covers both parameters (100% coverage), the description adds semantic context to the price parameter by emphasizing it must be supplied externally and not guessed. This extra guidance clarifies the parameter's role beyond its type and description.

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

Purpose5/5

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

The description clearly states the tool's purpose: given a price, it returns the annual return implied by the base case. This is a specific verb+resource, and it distinguishes itself from siblings like get_intrinsic_value by focusing on return at a supplied price rather than valuation.

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 explicitly tells the caller that they must supply the price and instructs them to ask the user or check a broker, not to guess. It does not mention alternatives or explicitly say 'use this instead of X', but it gives clear context on how to obtain the required input.

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

get_fundamentalsFundamentals with filing provenanceA
Read-only
Inspect

Normalized fundamentals per fiscal year — revenue, earnings, cash flow, capex, debt, shares — each carrying the CIK, accession number and XBRL tag it came from. Use when the user wants the underlying numbers or asks where a figure came from. Foreign filers report in their home currency; read the currency field.

ParametersJSON Schema
NameRequiredDescriptionDefault
tickerYesTicker symbol, e.g. AAPL. Case-insensitive.

Output Schema

ParametersJSON Schema
NameRequiredDescription
cikNoSEC Central Index Key.
nameNo
yearsYesOne entry per fiscal year. Each figure carries the CIK, accession number and XBRL tag it came from.
tickerYes
warningsNo
completenessNoFraction of expected figures the filings actually supplied.
fiscal_yearsNoHow many years are covered.
engine_versionYesEngine build that produced these figures.
Behavior4/5

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

Annotations declare readOnlyHint=true, and the description adds valuable behavioral context beyond that: each figure carries provenance metadata, and foreign filers report in home currency requiring attention to the currency field. This goes beyond the annotation and helps the agent understand output nuances.

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 three sentences, each serving a distinct purpose: describing the output, giving usage guidance, and flagging a currency caveat. It is front-loaded and contains no redundant or filler content.

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 tool with one well-described parameter, an output schema, and read-only annotations, the description covers its purpose, usage, and a key data interpretation caveat. It is complete enough for an agent to correctly select and invoke the tool.

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

Parameters3/5

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

The schema provides full coverage for the single ticker parameter, including an example and case-insensitivity note. The description does not add any additional parameter semantics, so the baseline of 3 is appropriate.

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

Purpose5/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 'Normalized fundamentals per fiscal year' and lists the metrics included, along with the unique provenance features (CIK, accession number, XBRL tag). This distinguishes it from sibling tools like get_intrinsic_value or screen_undervalued, which focus on different calculations or screening.

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 explicitly says 'Use when the user wants the underlying numbers or asks where a figure came from,' providing clear when-to-use guidance. It does not mention specific alternatives by name or provide when-not-to-use criteria, but the context is clear enough to guide tool selection.

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

get_intrinsic_valueIntrinsic value across modelsA
Read-only
Inspect

Every valuation model's verdict plus the fair-value range: DCF (5Y/10Y), earnings-power value, Graham number, P/E reversion. Refusals are included and are meaningful — a DCF declining to value a bank is a result, not a gap. Never present a refused model as missing data, and never substitute another model's number for it.

ParametersJSON Schema
NameRequiredDescriptionDefault
tickerYesTicker symbol, e.g. AAPL. Case-insensitive.

Output Schema

ParametersJSON Schema
NameRequiredDescription
waccNoDiscount rate used by the DCF models.
modelsYesOne entry per model, including the ones that refused.
tickerYes
currencyNoReporting currency; foreign filers are not USD.
engine_versionYesEngine build that produced these figures.
fair_value_rangeNoLow/high across the models that applied, and how many did.
Behavior5/5

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

Even with readOnlyHint=true, the description adds significant non-obvious behavior: model refusals are valid results, not gaps, and must not be substituted or presented as missing data. This is critical operational guidance beyond the annotations and directly shapes how an agent should interpret and present output.

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

Conciseness5/5

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

The description is two sentences: the first front-loads what the tool returns, and the second delivers a critical behavioral caveat. No wasted words, and every clause contributes to safe and correct usage.

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 read-only tool with one fully documented parameter and an existing output schema, the description covers the core return content, the range of models, and an essential interpretation rule. No significant information gaps remain for an agent to invoke and use this tool correctly.

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

Parameters3/5

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

Schema coverage is 100% for the single ticker parameter, which already defines it with an example. The description adds no additional parameter-level meaning beyond what the schema provides, so the baseline score of 3 is appropriate.

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

Purpose5/5

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

The description clearly states the tool returns 'every valuation model's verdict plus the fair-value range' and enumerates the models (DCF, earnings-power value, Graham number, P/E reversion). This specific verb+resource phrasing distinguishes it from sibling tools like get_fundamentals or get_expected_return.

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

Usage Guidelines3/5

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

The description implies usage when multi-model intrinsic value is needed, and the interpretation guidance (refusals are meaningful) helps the agent handle results. However, it does not explicitly state when to prefer this tool over siblings or provide exclusion criteria, leaving the when-to-use context merely implied.

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

get_thesisComputed investment thesisA
Read-only
Inspect

The thesis for a company, computed from its SEC filings: business quality and fair value in one breath. Deterministic — the same filings always produce the same sentences — and byte-identical to what meritvalue.com shows. Returns null when the filings support neither a moat read nor a fair value, rather than inventing one. Use this first when asked whether a company is worth owning.

ParametersJSON Schema
NameRequiredDescriptionDefault
tickerYesTicker symbol, e.g. AAPL. Case-insensitive.

Output Schema

ParametersJSON Schema
NameRequiredDescription
nameNo
basisNoThe figures the sentences were derived from.
thesisYesNull when the filings support neither a moat read nor a fair value. Quote verbatim.
tickerYes
disclaimerNo
engine_versionYesEngine build that produced these figures.
Behavior5/5

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

Annotations provide readOnlyHint=true and openWorldHint=false, but the description adds valuable behavior beyond that: deterministic output, byte-identical to meritvalue.com, and returns null when filings don't support a moat or fair value rather than inventing one. This gives the agent a clear model of edge cases and output guarantees.

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 sentences, each earning its place: what it is, key behavioral guarantees (deterministic, byte-identical), and the null edge case. Front-loaded with the core purpose and no redundancy.

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 single-parameter tool with an output schema, the description provides essentical context: the nature of the thesis, deterministic computation, source (SEC filings), and null behavior. It is complete for the intended use.

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 already covers 100% of parameters with a clear description ('Ticker symbol, e.g. AAPL. Case-insensitive.'). The tool description adds nothing specific about the ticker parameter, so baseline 3 is appropriate.

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?

Description clearly states what the tool does: computes an investment thesis from SEC filings, covering business quality and fair value. It distinguishes itself by noting it's deterministic and byte-identical to meritvalue.com, and it's positioned as the first tool to use for 'is it worth owning?' which differentiates it from siblings like get_business_quality and get_intrinsic_value.

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 says 'Use this first when asked whether a company is worth owning,' giving clear context for when to invoke it. It does not explicitly state when not to use it or name alternative tools, but the directive 'first' implies precedence, which is sufficient guidance.

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

screen_undervaluedScreen the covered universeA
Read-only
Inspect

Rank covered companies by a chosen model's value. Requires a key with screening enabled — a 403 means the key lacks it, which is a plan limit and not an error to retry.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax results (1–500, default 50).
modelNoValuation model to rank by.

Output Schema

ParametersJSON Schema
NameRequiredDescription
countYes
modelYes
resultsYes
engine_versionYesEngine build that produced these figures.
min_completenessNoFilings below this threshold are excluded rather than published wrong.
Behavior4/5

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

Annotations already indicate readOnlyHint=true, establishing the tool is safe. The description adds useful context about API key requirements and 403 semantics, which goes beyond the structured annotations. This extra behavioral detail helps the agent handle errors correctly.

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

Conciseness5/5

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

The description is two sentences long, with the core purpose front-loaded in the first sentence and an important error-handling caveat in the second. Every word contributes value; there is no fluff or 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?

For a simple tool with 0 required parameters, an output schema, and rich schema descriptions, the description is sufficient. It covers the core action and the non-obvious auth caveat. It does not explain return formatting, but the output schema covers that. Slightly missing is an explicit mention of ranking direction (e.g., undervalued ascending), but 'Rank... by value' implies it.

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

Parameters3/5

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

The input schema fully describes both parameters (limit and model) with 100% coverage, including enum values for model. The description merely references 'a chosen model's value' without adding new meaning to individual parameters. Baseline 3 is appropriate since the schema carries the explanatory load.

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

Purpose5/5

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

The description clearly states the tool ranks covered companies by a chosen model's value, using a specific verb ('rank') and resource ('covered companies'). This distinguishes it from sibling tools that fetch data for individual companies (e.g., get_intrinsic_value, get_fundamentals). The purpose is unmistakable.

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 implies use for screening across the covered universe, contrasting with sibling tools focused on single-company details. It also provides practical guidance: a 403 indicates a plan limitation, not a retryable error. However, it does not explicitly state 'use this when you want a broad screen, not when you need a single company's data,' leaving room for ambiguity.

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

search_companiesFind a covered companyA
Read-only
Inspect

Resolve a company name or partial ticker to covered companies — 'coca cola' finds KO. Use this before the other tools when you have a name rather than a symbol. Coverage is US filers with SEC filings.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax results (1–50, default 10).
queryYesCompany name or ticker fragment.

Output Schema

ParametersJSON Schema
NameRequiredDescription
queryYes
resultsYes
engine_versionYesEngine build that produced these figures.
Behavior4/5

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

The annotations already declare readOnlyHint=true and openWorldHint=false, so the safety profile is known. The description adds valuable behavioral context: the matching semantics (name or partial ticker, example) and coverage scope (US filers with SEC filings). It does not contradict the 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 (three short sentences) and front-loaded with the primary purpose. Every sentence adds value: definition, usage guidance, and coverage scope. No filler or redundancy.

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 relatively simple lookup tool with an output schema available, the description fully covers the essential context: what it does, when to use it, and its scope. It does not need to detail return values since an output schema exists. The description is complete for an agent to select and invoke the tool correctly.

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

Parameters4/5

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

Schema coverage is 100% with clear descriptions for both 'query' and 'limit'. The description adds an illustrative example ('coca cola' finds KO) that clarifies the acceptable query format and partial matching behavior, going beyond the schema's literal field 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 clearly states the tool's function: 'Resolve a company name or partial ticker to covered companies,' with a concrete example ('coca cola' finds KO). It also distinguishes itself from sibling analysis tools by positioning it as a precursor: 'Use this before the other tools when you have a name rather than a symbol.'

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?

Explicit guidance is given on when to use the tool: 'Use this before the other tools when you have a name rather than a symbol.' This implies the alternative (using other tools directly when you have a symbol) and also sets expectations with 'Coverage is US filers with SEC filings.'

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

Frequently Asked Questions

Discussions

No comments yet. Be the first to start the discussion!

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    F
    maintenance
    Provides derived financial intelligence for AI agents, including insider activity analysis, earnings surprises, institutional moves, stock screening with a proprietary composite value score, and macro indicators.
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Standardized DCF valuation engine for stocks (A-shares, Hong Kong, US, Japan). One run_dcf tool with an analyst-style two-phase flow: baseline valuation from 5-year historicals, then a final valuation with reasoned assumptions — value bridge, sensitivity matrix, reverse DCF. Deterministic: same inputs, same result.
    1
    AGPL 3.0
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources