Skip to main content
Glama

Server Details

Cryptocurrency fundamentals for agents: TVR Scores, rankings and model-derived valuation estimates.

Ownership verified
Status
Healthy
Uptime
100.0% over 41 days
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
Repository
TrueValueRankings/tvr-mcp-server
GitHub Stars
1
Server Listing
tvr-mcp-server

TDQS

A4/5.0

Scored across 10 tools

Disambiguation3/5

Most tools are distinct (list, history, methodology, portfolio, custom ranking), but get_tvr_score and get_tvr_estimated_value overlap heavily because the former returns the latter's entire output; compare_coins also repeats the same per-coin fields. The descriptions clarify intended scope somewhat, so an agent can usually pick correctly, but misselection risk remains.

Naming Consistency5/5

All tools use lowercase snake_case and a clear verb_noun pattern (get_*, compare_coins, list_coins). Naming uniformly signals the resource and action, with no mixed conventions or vague verbs.

Tool Count4/5

Ten tools is a reasonable, well-scoped number for a crypto ranking API. However, get_tvr_estimated_value is arguably redundant with get_tvr_score, so the set is slightly larger than it needs to be.

Completeness5/5

The surface covers discovery, single-coin snapshots, deep breakdowns, historical changes, fair value, rankings with custom weights, comparisons, portfolio analysis, and methodology. There are no obvious dead ends for the read-only ranking domain; agents can move from list_coins to detail tools without unimplemented steps.

Available Tools

10 tools
compare_coinsCompare CoinsA
Read-onlyIdempotent
Inspect

Free. Compares 2 to 5 cryptocurrencies on TVR Score, rank, valuation, TVR Estimated Value, fair value gap, and all 8 metric scores side by side. Identifies the largest scoring difference. Accepts tickers or names. Data from True Value Rankings (truevaluerankings.com).

ParametersJSON Schema
NameRequiredDescriptionDefault
coinsYesArray of 2-5 cryptocurrency tickers or names to compare (e.g., ["BTC", "Ethereum", "SOL"])

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNofalse on a normal answer, or an error message
statusNoPresent when the request could not be answered as asked, for example not_available
contextNoStanding context about TVR and how to read its outputs
summaryNoPlain-language summary of the answer
requestedNoWhat was asked for, when it could not be resolved
comparisonNoPer-coin scores, ranks and valuations
disclaimerNoModel-derived assessment, not investment advice
learn_moreNoLinks for more detail
attributionNoRequired attribution text
data_sourcesNoWhere the numbers come from
coins_comparedNo
key_differenceNoThe largest gap between the compared coins
metric_comparisonNoMetric-by-metric table
total_coins_evaluatedNo

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already establish read-only, idempotent, non-destructive behavior allowing a low bar. The description adds useful context beyond annotations: the tool is free, reports the largest scoring difference, and sources data from True Value Rankings. It does not mention failure handling for invalid ticker names, but this is a minor gap given the annotations and output 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 compact and front-loaded: the operative purpose appears immediately, followed by distinctive outputs minute.

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?

Given the simple single-parameter schema, full parameter coverage, read-only annotations, and an output schema, no critical information is missing. The description explains what is compared, what insight is produced, accepted inputs, and data provenance, making it complete for an agent deciding whether and how to invoke 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 schema already gives 100% coverage of the only parameter, including constraints and an example. The description restates 'tickers or names' and the 2-5 limit but does not add new parameter-specific details such as case sensitivity, partial-name matching, or behavior with duplicates. Baseline 3 is appropriate because the schema carries the semantic 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 uses a specific verb, 'Compares', names the resource ('cryptocurrencies'), and enumerates the exact fields compared (TVR Score, rank, valuation, fair value gap, all 8 metric scores). It clearly distinguishes this from sibling single-tool getters like get_tvr_score or get_full_breakdown.

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 provides clear context: use this when comparing 2 to 5 cryptocurrencies, and it confirms acceptable input forms ('tickers or names'). It does not explicitly name sibling alternatives or state when not to use it, but the comparison scope makes the intended usage evident.

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

get_custom_rankingGet Custom RankingA
Read-only
Inspect

Paid. Reranks every coin TVR covers with your own weights for the 8 fundamental metrics, applying TVR's non-public score transformation. Returns rank, TVR Score, valuation category, fair value gap and TVR Estimated Value per coin. $0.05 per call, paid in-band with x402 (USDC on Base) or MPP (USDC.e on Tempo), or included with a Premium agent key (HTTP header Authorization: Bearer tvr_k_... on this connection); an unpaid call returns the offer (isError with the x402 PaymentRequired in structuredContent) and charges nothing. Invalid input is refused before any payment. Free alternative: get_top_ranked and the four presets. Data from True Value Rankings (truevaluerankings.com).

ParametersJSON Schema
NameRequiredDescriptionDefault
coinsNoOptional tickers or names (1-50). Omit for all covered coins.
weightsNoUp to 8 weights (0-100) in this order: economic_model, network_security, adoption, privacy, longevity, liquidity, legal_clarity, technical_dev, or an object keyed by those names. Missing entries take TVR defaults.

Output Schema

ParametersJSON Schema
NameRequiredDescription
countNo
errorNo
legalNo
reasonNo
statusNo
contextNo
paymentNo
productNo
successNo
rankingsNoRanked coins under the requested weights
disclaimerNo
how_to_payNo
learn_moreNo
redeliveryNo
weights_usedNo
defaults_applied_forNo

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds valuable behavioral context beyond annotations: the per-call cost, payment methods, the fact that an unpaid call returns an offer with x402 PaymentRequired, and that invalid input is refused before payment. It also discloses that TVR's non-public score transformation is applied, which is a meaningful behavioral trait.

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 dense but well-structured, front-loading the most important fact ('Paid') and then covering payment, alternatives, and data source in a compact paragraph. Every sentence earns its place, though it could be slightly more scannable with line breaks or bullet points.

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 description is complete for a paid, read-only tool with an output schema. It covers cost, payment methods, failure behavior, free alternatives, and data source. The output schema exists, so return values need not be explained in the description. Nothing an agent needs 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.

Parameters3/5

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 parameters thoroughly. The description adds context about the weights ('your own weights for the 8 fundamental metrics') and the output fields, but it doesn't add much beyond the schema's detailed parameter descriptions. Baseline 3 is appropriate since the schema does the heavy lifting.

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 ('Reranks'), a resource ('every coin TVR covers'), and the mechanism ('your own weights for the 8 fundamental metrics'). It also names the output fields (rank, TVR Score, valuation category, fair value gap, TVR Estimated Value), which makes the tool's purpose unmistakable and distinguishes it from siblings like get_top_ranked and get_tvr_score.

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 explicitly says this is a paid tool, names the free alternative ('get_top_ranked and the four presets'), and explains the payment flow (unpaid call returns the offer, charges nothing). It also states that invalid input is refused before payment, giving an agent clear conditions for when to use this tool versus alternatives.

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

get_full_breakdownGet Full BreakdownA
Read-onlyIdempotent
Inspect

Free. Returns the complete fundamental analysis for a cryptocurrency: all 8 metric scores with weights, the scoring factors that shaped them, the valuation note, and ranking context. Accepts a ticker or a name. Data from True Value Rankings (truevaluerankings.com).

ParametersJSON Schema
NameRequiredDescriptionDefault
coinYesCryptocurrency ticker or name (e.g., BTC, Bitcoin, ETH, LTC, XMR, SOL, ADA, AVAX, DOT, POL, LINK)

Output Schema

ParametersJSON Schema
NameRequiredDescription
coinNoCoin name
rankNoRank among evaluated coins, 1 is best
errorNofalse on a normal answer, or an error message
statusNoPresent when the request could not be answered as asked, for example not_available
symbolNoTicker
contextNoStanding context about TVR and how to read its outputs
summaryNoPlain-language summary of the answer
categoryNoTVR coin category
requestedNoWhat was asked for, when it could not be resolved
tvr_scoreNoTVR Score, 0 to 100
valuationNoUndervalued, Fair Value or Overvalued
disclaimerNoModel-derived assessment, not investment advice
learn_moreNoLinks for more detail
attributionNoRequired attribution text
rank_out_ofNoNumber of coins evaluated
data_sourcesNoWhere the numbers come from
metric_scoresNo
fair_value_gapNoGap between TVR Estimated Value and market price, formatted as a percentage
valuation_noteNo
ranking_contextNo
scoring_factorsNoThe reasoning behind each metric score
tvr_estimated_valueNoTVR Estimated Value, formatted in USD
scoring_methodology_noteNo

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnly, idempotent, and non-destructive behavior, so the safety profile is covered. The description adds useful context: it is free, data comes from truevaluerankings.com, and the output includes metric scores, weights, factors, valuation note, and ranking context. It does not describe edge cases or response ordering, but with annotations present this is adequate.

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 key return-value information. The initial 'Free.' is slightly extraneous but not harmful; the rest is dense and useful.

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 one well-documented parameter, an output schema, and annotations covering safety, the description adds enough context about the response contents. It doesn't explain how to interpret the ranking context or what happens with invalid tickers, but those are not required for selecting and invoking the tool correctly given the output schema.

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

Parameters3/5

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

Schema coverage is 100% and the single 'coin' parameter already documents ticker/name with examples. The description repeats 'Accepts a ticker or a name' without adding format, normalization, or case-sensitivity details, so it stays at the high-coverage baseline.

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

Purpose4/5

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

The description uses the specific verb 'Returns' with a clear resource: the complete fundamental analysis for a cryptocurrency, enumerating all 8 metric scores with weights, scoring factors, valuation note, and ranking context. This differentiates it from siblings like get_tvr_score, though it does not explicitly name an alternative.

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 a full fundamental breakdown is needed, and 'Accepts a ticker or a name' clarifies input flexibility. However, it offers no explicit when-to-use vs alternatives such as compare_coins or get_tvr_score, nor any exclusions.

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

get_historical_scoresGet Historical ScoresA
Read-onlyIdempotent
Inspect

Free slice, paid full record. Score history of one coin: every recorded change to its 8 metric scores as a dated record with the TVR Score, the method version, a source label (baseline for the opening record, auto_captured for rows written from the change itself), the public reason where recorded and a SHA-256 hash per record; forward-only from the day the record began. Without scope (or scope "free"): the last 90 days or the last 3 records, free, no payment, no key. scope "full": the whole record, included with a Premium agent key (Authorization: Bearer on this connection), or $0.05 per pull paid in-band with x402 (USDC on Base) or MPP (USDC.e on Tempo) once the record extends beyond the free slice; until then the free record is returned and nothing is charged. Data from True Value Rankings (truevaluerankings.com).

ParametersJSON Schema
NameRequiredDescriptionDefault
coinYesTicker or name of a coin covered by TVR (BTC, Bitcoin, ETH, LTC, XMR, SOL, ADA, AVAX, DOT, POL, LINK)
scopeNofree (default): the last 90 days or the last 3 records, no payment. full: the whole record; included with a Premium agent key, or paid per pull once the record extends beyond the free slice.

Output Schema

ParametersJSON Schema
NameRequiredDescription
nameNo
noteNo
errorNo
legalNo
scopeNo
accessNo
periodNo
reasonNo
statusNo
symbolNo
contextNo
paymentNo
productNo
recordsNoDated score states, newest first: as_of, revision, source, scores, tvr_score, method_version, changed_metrics, reason_public, published_at, record_hash
successNo
coverageNo
hash_noteNo
disclaimerNo
how_to_payNo
learn_moreNo
redeliveryNo
full_recordNo
hash_formatNo
method_versionsNo

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior, and the description adds substantial context beyond that: forward-only record traversal, source label semantics, per-record SHA-256 hashes, and exact payment/auth conditions for free vs full scope. 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.

Conciseness4/5

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

The description is long and dense, but every clause carries useful information and the 'Free slice, paid full record' opening is a strong front-loaded summary. It loses one point because the free/full rules are woven into a long run-on structure that could be clearer as a short list.

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?

Given the rich output schema, complete parameter schema, and strong annotations, the description covers all necessary call semantics: coin identification, free vs full behavior, payment methods, authentication for paid access, record contents, and data source. Nothing needed to invoke the tool correctly is missing.

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%, so the baseline is 3. The description adds meaningful semantics beyond the schema by explaining the real-world consequences of scope: what 'free' returns, what 'full' returns, how and when payment triggers, and that no charge occurs before the free slice is exceeded.

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 resource ('Score history of one coin') and a precise resource shape: every recorded change to its 8 metric scores, with dated records, TVR Score, method version, source label, public reason, and SHA-256 hash. This clearly distinguishes it from sibling tools like get_tvr_score (current score) and get_full_breakdown.

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 explicit decision guidance for scope: free returns the last 90 days or last 3 records with no payment, while full requires a Premium key or per-pull payment beyond the free slice. It does not explicitly name alternative sibling tools or state when not to use them, so it stops short of a 5.

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

get_methodologyGet Scoring MethodologyA
Read-onlyIdempotent
Inspect

Free. Explains how True Value Rankings scores cryptocurrencies: the 8 metrics, their current default weights, the 4 built-in weight presets, and the general scoring approach. Data from True Value Rankings (truevaluerankings.com).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNofalse on a normal answer, or an error message
statusNoPresent when the request could not be answered as asked, for example not_available
contextNoStanding context about TVR and how to read its outputs
summaryNoPlain-language summary of the answer
requestedNoWhat was asked for, when it could not be resolved
disclaimerNoModel-derived assessment, not investment advice
learn_moreNoLinks for more detail
attributionNoRequired attribution text
methodologyNoThe 8 metrics, their default weights and how the TVR Score is built
data_sourcesNoWhere the numbers come from

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already establish readOnlyHint=true, idempotentHint=true, and destructiveHint=false, and the description does not contradict these. It adds useful context beyond the annotations by noting the tool is 'Free' and attributing the data source to truevaluerankings.com.

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 short sentences with no filler. It front-loads the key fact ('Free'), then lists exactly what the tool explains, and ends with the data source—every element earns its place.

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 no-parameter informational tool, the description fully covers the subject matter: metrics, current default weights, built-in presets, and general scoring approach. Since an output schema exists, the description does not need to detail return fields.

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?

The tool has zero parameters and an empty input schema, so there are no parameter semantics to clarify; the baseline of 4 applies. The description does not need to add parameter detail because none exists.

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

Purpose5/5

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

The description uses a specific verb ('Explains') and clearly identifies the resource: True Value Rankings' scoring methodology. It enumerates concrete content (8 metrics, default weights, 4 weight presets, general approach), making the tool easy to distinguish from siblings that return scores or comparisons.

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 does not explicitly state when to use this tool versus siblings like get_tvr_score or compare_coins. It implies the use case through its content, but there is no direct routing or exclusion such as 'use this when you need weights, not scores.'

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

get_portfolio_analysisGet Portfolio AnalysisA
Read-only
Inspect

Paid. Fundamentals profile of a portfolio: allocation-weighted scores for the 8 metrics, each holding's TVR Score and valuation category, and the portfolio TVR Score from TVR's scoring engine (scores only, no prices). $0.08 per call, paid in-band with x402 (USDC on Base) or MPP (USDC.e on Tempo), or included with a Premium agent key (HTTP header Authorization: Bearer tvr_k_... on this connection); an unpaid call returns the offer (isError with the x402 PaymentRequired in structuredContent) and charges nothing. Invalid input is refused before any payment. Free alternative: compare_coins. Data from True Value Rankings (truevaluerankings.com).

ParametersJSON Schema
NameRequiredDescriptionDefault
portfolioYesThe holdings to analyse

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNo
legalNo
accessNo
reasonNo
statusNo
contextNo
paymentNo
productNo
profileNo
successNo
holdingsNo
disclaimerNo
how_to_payNo
learn_moreNo
redeliveryNo
weights_usedNo
blended_metricsNo
portfolio_tvr_scoreNo

TDQS

A4.6/5.0
Behavior5/5

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

The description goes well beyond the readOnlyHint/destructiveHint annotations by disclosing the $0.08 per-call cost, accepted payment rails, premium key header, unpaid-call offer behavior, and no-charge-on-invalid-input policy. It also states that the tool returns 'scores only, no prices,' which is a meaningful behavioral constraint.

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 long but information-dense: every clause adds value from pricing to payment, error behavior, alternative, and source. It is front-loaded with the core function and paid status. It could be slightly better structured with bullets or shorter clauses, but it is not bloated.

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?

Given the single documented parameter, the existing output schema, and the annotations, the description covers all operational essentials: what the tool computes, what it costs, how payment works, what happens on unpaid/invalid calls, and a free alternative. No critical calling context is missing.

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% and the portfolio parameter already has descriptions. The description adds useful semantic context by specifying allocation-weighted scoring and the portfolio-level TVR Score, which clarifies how the single parameter is interpreted. This is more than the schema alone provides.

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 verb-resource pair and enumerates the exact output: allocation-weighted scores for 8 metrics, per-holding TVR Score and valuation category, and the portfolio TVR Score. It also distinguishes itself from compare_coins as a free alternative, so an agent can separate 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 Guidelines4/5

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

The description clearly labels the tool as paid, states the payment methods, and names compare_coins as the free alternative. It also notes that invalid input is refused before payment, which is useful guidance. However, it does not explicitly say 'use this when you need portfolio-level aggregate scores' or articulate exclusions beyond the free alternative.

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

get_top_rankedGet Top Ranked CoinsA
Read-onlyIdempotent
Inspect

Free. Returns the top N cryptocurrencies by a chosen ranking method: tvr_score (fundamental strength), most_undervalued (largest positive fair value gap), or most_overvalued (largest negative fair value gap). Data from True Value Rankings (truevaluerankings.com).

ParametersJSON Schema
NameRequiredDescriptionDefault
countNoNumber of coins to return (default 5)
rank_byNoRanking method: tvr_score, most_undervalued, or most_overvaluedtvr_score

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNofalse on a normal answer, or an error message
statusNoPresent when the request could not be answered as asked, for example not_available
contextNoStanding context about TVR and how to read its outputs
rank_byNoThe ranking basis used
summaryNoPlain-language summary of the answer
rankingsNoOrdered list of coins
requestedNoWhat was asked for, when it could not be resolved
disclaimerNoModel-derived assessment, not investment advice
learn_moreNoLinks for more detail
attributionNoRequired attribution text
data_sourcesNoWhere the numbers come from
rank_by_descriptionNo
total_coins_evaluatedNo

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the description does not need to cover mutation safety. It adds useful context beyond annotations by stating the API is 'Free' and by supplying source attribution and the meaning of each ranking method, which clarifies behavior without contradicting 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 two sentences with no filler: the return action is front-loaded, the ranking options are compactly listed, and the free/source details are relevant. Every sentence earns its place.

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 simple read-only, two-parameter tool with full schema coverage and an output schema, the description covers the essential non-schema information: free access, ranking-method semantics, and data source. No meaningful missing context remains for correct invocation.

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 fully documents count and rank_by with defaults/enum values, so the baseline is already met. The description goes further by explaining what each rank_by enum means (fundamental strength, positive fair-value gap, negative fair-value gap), giving the agent semantic understanding that the schema enum alone lacks.

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 specific verb 'Returns' with a clear resource ('top N cryptocurrencies') and the ranking method parameter. It also distinguishes the tool from list-style siblings by emphasizing ranked selection via tvr_score/most_undervalued/most_overvalued.

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 intended use case (retrieve a ranked cryptocurrency top-N list) is clear from the description, but there is no explicit when-not-to-use guidance or routing to sibling tools such as list_coins or compare_coins. Usage remains implied rather than stated as a decision rule.

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

get_tvr_estimated_valueGet TVR Estimated ValueA
Read-onlyIdempotent
Inspect

Free. Returns TVR's fair value estimate (TVR Estimated Value) for a cryptocurrency, including the fair value gap and valuation category. The TVR Estimated Value compares fundamental quality to current market price. Accepts a ticker or a name. Data from True Value Rankings (truevaluerankings.com).

ParametersJSON Schema
NameRequiredDescriptionDefault
coinYesCryptocurrency ticker or name (e.g., BTC, Bitcoin, ETH, LTC, XMR, SOL, ADA, AVAX, DOT, POL, LINK)

Output Schema

ParametersJSON Schema
NameRequiredDescription
coinNoCoin name
errorNofalse on a normal answer, or an error message
statusNoPresent when the request could not be answered as asked, for example not_available
symbolNoTicker
contextNoStanding context about TVR and how to read its outputs
summaryNoPlain-language summary of the answer
requestedNoWhat was asked for, when it could not be resolved
valuationNoUndervalued, Fair Value or Overvalued
disclaimerNoModel-derived assessment, not investment advice
learn_moreNoLinks for more detail
attributionNoRequired attribution text
data_sourcesNoWhere the numbers come from
fair_value_gapNoGap between TVR Estimated Value and market price, formatted as a percentage
tvr_estimated_valueNoTVR Estimated Value, formatted in USD

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds value beyond annotations by disclosing the data source ('Data from True Value Rankings'), that the tool is free, and what the estimate conceptually measures. No contradiction with annotations; the added source and cost context is genuinely helpful.

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?

Four sentences with zero waste: cost, return contents, conceptual meaning, input format, and data source are each covered once. The most important information (what it returns) is front-loaded, and every sentence earns its place. No redundancy with annotations or schema.

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

Completeness4/5

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

For a single-parameter lookup tool with an output schema present and annotations covering the safety profile, the description is nearly complete. It covers cost, source, input format, and the meaning of the value. The only minor gap is the absence of alternative-routing guidance, which is covered under usage_guidelines rather than completeness.

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 a well-described 'coin' parameter including examples. The description adds meaning beyond the schema by explicitly stating the accepted input forms ('Accepts a ticker or a name'), clarifying that either format works, which the schema only implies through examples. This is a useful addition, though modest given the schema's strength.

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 verb ('Returns'), the specific resource (TVR's fair value estimate), and the exact contents (fair value gap, valuation category). It is clearly distinguishable from sibling tools like get_tvr_score and get_top_ranked by focusing on 'Estimated Value' for a single coin. The phrase 'compares fundamental quality to current market price' further clarifies the semantics.

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 (a lookup tool for a single cryptocurrency's fair value estimate) and confirms input format ('Accepts a ticker or a name'), but it never names alternatives or states when NOT to use it versus get_tvr_score or get_full_breakdown. No explicit routing or exclusion guidance is provided, leaving the agent to infer context from the tool name and siblings.

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

get_tvr_scoreGet TVR ScoreA
Read-onlyIdempotent
Inspect

Free. Returns the TVR Score, rank, valuation category, TVR Estimated Value, fair value gap, and all 8 metric scores for a cryptocurrency. Accepts a ticker (BTC) or a name (Bitcoin). TVR evaluates fundamental strength using Sound Value principles. Data from True Value Rankings (truevaluerankings.com). Rate limit: 100 requests per 15 minutes per IP.

ParametersJSON Schema
NameRequiredDescriptionDefault
coinYesCryptocurrency ticker or name (e.g., BTC, Bitcoin, ETH, LTC, XMR, SOL, ADA, AVAX, DOT, POL, LINK)

Output Schema

ParametersJSON Schema
NameRequiredDescription
coinNoCoin name
rankNoRank among evaluated coins, 1 is best
errorNofalse on a normal answer, or an error message
statusNoPresent when the request could not be answered as asked, for example not_available
symbolNoTicker
contextNoStanding context about TVR and how to read its outputs
summaryNoPlain-language summary of the answer
categoryNoTVR coin category
requestedNoWhat was asked for, when it could not be resolved
tvr_scoreNoTVR Score, 0 to 100
valuationNoUndervalued, Fair Value or Overvalued
disclaimerNoModel-derived assessment, not investment advice
learn_moreNoLinks for more detail
attributionNoRequired attribution text
rank_out_ofNoNumber of coins evaluated
data_sourcesNoWhere the numbers come from
metric_scoresNoAll 8 metric scores with their weights
fair_value_gapNoGap between TVR Estimated Value and market price, formatted as a percentage
weakest_metricNo
strongest_metricNo
tvr_estimated_valueNoTVR Estimated Value, formatted in USD

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare the tool read-only, idempotent, and non-destructive. The description adds valuable behavioral context beyond that: it notes the tool is free, explicitly discloses a rate limit (100 requests per 15 minutes per IP), and cites the data source. This helps the agent anticipate throttling and provenance without contradicting any 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?

The description is compact at four sentences and covers essential information: cost, output, input format, methodology, data source, and rate limit. The first sentence quickly communicates 'Free' and the result set. Some minor redundancy exists (methodology sentence could be trimmed), but overall it is well-structured and not bloated.

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 has a single well-documented parameter, an output schema exists (so return values are structurally defined), and annotations cover safety semantics. The description completes the picture by naming the exact outputs, input flexibility, pricing, data provenance, and rate limit. An agent has everything needed to invoke 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% and the parameter 'coin' is already well-described with examples. The description reinforces that the tool accepts a ticker or a name (e.g., BTC, Bitcoin), but adds no semantic meaning beyond what the schema already provides. A baseline of 3 is appropriate because the schema does the heavy lifting.

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 explicitly states the verb 'Returns' and enumerates the complete set of outputs (TVR Score, rank, valuation category, TVR Estimated Value, fair value gap, and all 8 metric scores). This clearly differentiates it from siblings like get_tvr_estimated_value by listing the full result set. An agent can immediately understand what this tool provides.

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

Usage Guidelines2/5

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

The description gives no explicit guidance on when to use this tool instead of its siblings. It does not name alternatives like get_full_breakdown or get_tvr_estimated_value, nor does it provide exclusion criteria. The only contextual hints are 'Free' and the rate limit, which do not help select between tools.

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

list_coinsList Evaluated CoinsA
Read-onlyIdempotent
Inspect

Free. Lists all cryptocurrencies currently evaluated by True Value Rankings with their symbol, name, and category. New coins are added regularly. Data from True Value Rankings (truevaluerankings.com).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
coinsNoCovered coins with ticker and name
errorNofalse on a normal answer, or an error message
totalNo
statusNoPresent when the request could not be answered as asked, for example not_available
contextNoStanding context about TVR and how to read its outputs
summaryNoPlain-language summary of the answer
requestedNoWhat was asked for, when it could not be resolved
disclaimerNoModel-derived assessment, not investment advice
learn_moreNoLinks for more detail
attributionNoRequired attribution text
data_sourcesNoWhere the numbers come from

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior. The description adds useful behavioral context beyond those: the call is free, the list is maintained by a specific source, and 'new coins are added regularly', meaning the result set is not static. 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 short and front-loaded: cost first, then the action, then the source and mutability of the data. Every sentence contributes useful information and there is no filler.

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

Completeness4/5

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

For a zero-parameter listing tool with an output schema, the description covers cost, content, source, and the fact that new coins are added over time. It does not mention ordering or pagination, but the simplicity of the tool and presence of an output schema make these gaps minor.

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?

The tool has zero parameters, so there is no parameter documentation burden. The description still adds value by stating the output fields (symbol, name, category), which helps an agent understand the shape of the returned list.

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 ('Lists') and resource ('all cryptocurrencies currently evaluated by True Value Rankings') and enumerates returned fields: symbol, name, and category. This clearly distinguishes it from ranking- and value-specific siblings like get_top_ranked and get_tvr_score.

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?

It conveys when to use the tool: to get the full current inventory of evaluated coins. However, it does not explicitly contrast with sibling tools or state when a user should prefer get_top_ranked or get_full_breakdown instead. The usage context is implied by the plain 'lists all' framing rather than stated as guidance.

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. 2 tool updates
    • Addedget_historical_scores
    • Changedget_portfolio_analysis1 field changed
      • addedOutput schema / properties / access
        Added value: +{}
  2. 2 tool updates
    • Addedget_custom_ranking
    • Addedget_portfolio_analysis
  3. 7 tool updates
    • Changedcompare_coins1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": true,
        +  "properties": {
        +    "attribution": {
        +      "description": "Required attribution text",
        +      "type": "string"
        +    },
        +    "coins_compared": {
        +      "type": "number"
        +    },
        +    "comparison": {
        +      "description": "Per-coin scores, ranks and valuations"
        +    },
        +    "context": {
        +      "description": "Standing context about TVR and how to read its outputs"
        +    },
        +    "data_sources": {
        +      "description": "Where the numbers come from"
        +    },
        +    "disclaimer": {
        +      "description": "Model-derived assessment, not investment advice",
        +      "type": "string"
        +    },
        +    "error": {
        +      "description": "false on a normal answer, or an error message"
        +    },
        +    "key_difference": {
        +      "description": "The largest gap between the compared coins"
        +    },
        +    "learn_more": {
        +      "description": "Links for more detail"
        +    },
        +    "metric_comparison": {
        +      "description": "Metric-by-metric table"
        +    },
        +    "requested": {
        +      "description": "What was asked for, when it could not be resolved",
        +      "type": "string"
        +    },
        +    "status": {
        +      "description": "Present when the request could not be answered as asked, for example not_available",
        +      "type": "string"
        +    },
        +    "summary": {
        +      "description": "Plain-language summary of the answer",
        +      "type": "string"
        +    },
        +    "total_coins_evaluated": {
        +      "type": "number"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedget_full_breakdown1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": true,
        +  "properties": {
        +    "attribution": {
        +      "description": "Required attribution text",
        +      "type": "string"
        +    },
        +    "category": {
        +      "description": "TVR coin category",
        +      "type": "string"
        +    },
        +    "coin": {
        +      "description": "Coin name",
        +      "type": "string"
        +    },
        +    "context": {
        +      "description": "Standing context about TVR and how to read its outputs"
        +    },
        +    "data_sources": {
        +      "description": "Where the numbers come from"
        +    },
        +    "disclaimer": {
        +      "description": "Model-derived assessment, not investment advice",
        +      "type": "string"
        +    },
        +    "error": {
        +      "description": "false on a normal answer, or an error message"
        +    },
        +    "fair_value_gap": {
        +      "description": "Gap between TVR Estimated Value and market price, formatted as a percentage",
        +      "type": "string"
        +    },
        +    "learn_more": {
        +      "description": "Links for more detail"
        +    },
        +    "metric_scores": {},
        +    "rank": {
        +      "description": "Rank among evaluated coins, 1 is best",
        +      "type": "number"
        +    },
        +    "rank_out_of": {
        +      "description": "Number of coins evaluated",
        +      "type": "number"
        +    },
        +    "ranking_context": {},
        +    "requested": {
        +      "description": "What was asked for, when it could not be resolved",
        +      "type": "string"
        +    },
        +    "scoring_factors": {
        +      "description": "The reasoning behind each metric score"
        +    },
        +    "scoring_methodology_note": {
        +      "type": "string"
        +    },
        +    "status": {
        +      "description": "Present when the request could not be answered as asked, for example not_available",
        +      "type": "string"
        +    },
        +    "summary": {
        +      "description": "Plain-language summary of the answer",
        +      "type": "string"
        +    },
        +    "symbol": {
        +      "description": "Ticker",
        +      "type": "string"
        +    },
        +    "tvr_estimated_value": {
        +      "description": "TVR Estimated Value, formatted in USD",
        +      "type": "string"
        +    },
        +    "tvr_score": {
        +      "description": "TVR Score, 0 to 100",
        +      "type": "number"
        +    },
        +    "valuation": {
        +      "description": "Undervalued, Fair Value or Overvalued",
        +      "type": "string"
        +    },
        +    "valuation_note": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedget_methodology1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": true,
        +  "properties": {
        +    "attribution": {
        +      "description": "Required attribution text",
        +      "type": "string"
        +    },
        +    "context": {
        +      "description": "Standing context about TVR and how to read its outputs"
        +    },
        +    "data_sources": {
        +      "description": "Where the numbers come from"
        +    },
        +    "disclaimer": {
        +      "description": "Model-derived assessment, not investment advice",
        +      "type": "string"
        +    },
        +    "error": {
        +      "description": "false on a normal answer, or an error message"
        +    },
        +    "learn_more": {
        +      "description": "Links for more detail"
        +    },
        +    "methodology": {
        +      "description": "The 8 metrics, their default weights and how the TVR Score is built"
        +    },
        +    "requested": {
        +      "description": "What was asked for, when it could not be resolved",
        +      "type": "string"
        +    },
        +    "status": {
        +      "description": "Present when the request could not be answered as asked, for example not_available",
        +      "type": "string"
        +    },
        +    "summary": {
        +      "description": "Plain-language summary of the answer",
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedget_top_ranked1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": true,
        +  "properties": {
        +    "attribution": {
        +      "description": "Required attribution text",
        +      "type": "string"
        +    },
        +    "context": {
        +      "description": "Standing context about TVR and how to read its outputs"
        +    },
        +    "data_sources": {
        +      "description": "Where the numbers come from"
        +    },
        +    "disclaimer": {
        +      "description": "Model-derived assessment, not investment advice",
        +      "type": "string"
        +    },
        +    "error": {
        +      "description": "false on a normal answer, or an error message"
        +    },
        +    "learn_more": {
        +      "description": "Links for more detail"
        +    },
        +    "rank_by": {
        +      "description": "The ranking basis used",
        +      "type": "string"
        +    },
        +    "rank_by_description": {
        +      "type": "string"
        +    },
        +    "rankings": {
        +      "description": "Ordered list of coins",
        +      "type": "array"
        +    },
        +    "requested": {
        +      "description": "What was asked for, when it could not be resolved",
        +      "type": "string"
        +    },
        +    "status": {
        +      "description": "Present when the request could not be answered as asked, for example not_available",
        +      "type": "string"
        +    },
        +    "summary": {
        +      "description": "Plain-language summary of the answer",
        +      "type": "string"
        +    },
        +    "total_coins_evaluated": {
        +      "type": "number"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedget_tvr_estimated_value1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": true,
        +  "properties": {
        +    "attribution": {
        +      "description": "Required attribution text",
        +      "type": "string"
        +    },
        +    "coin": {
        +      "description": "Coin name",
        +      "type": "string"
        +    },
        +    "context": {
        +      "description": "Standing context about TVR and how to read its outputs"
        +    },
        +    "data_sources": {
        +      "description": "Where the numbers come from"
        +    },
        +    "disclaimer": {
        +      "description": "Model-derived assessment, not investment advice",
        +      "type": "string"
        +    },
        +    "error": {
        +      "description": "false on a normal answer, or an error message"
        +    },
        +    "fair_value_gap": {
        +      "description": "Gap between TVR Estimated Value and market price, formatted as a percentage",
        +      "type": "string"
        +    },
        +    "learn_more": {
        +      "description": "Links for more detail"
        +    },
        +    "requested": {
        +      "description": "What was asked for, when it could not be resolved",
        +      "type": "string"
        +    },
        +    "status": {
        +      "description": "Present when the request could not be answered as asked, for example not_available",
        +      "type": "string"
        +    },
        +    "summary": {
        +      "description": "Plain-language summary of the answer",
        +      "type": "string"
        +    },
        +    "symbol": {
        +      "description": "Ticker",
        +      "type": "string"
        +    },
        +    "tvr_estimated_value": {
        +      "description": "TVR Estimated Value, formatted in USD",
        +      "type": "string"
        +    },
        +    "valuation": {
        +      "description": "Undervalued, Fair Value or Overvalued",
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedget_tvr_score1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": true,
        +  "properties": {
        +    "attribution": {
        +      "description": "Required attribution text",
        +      "type": "string"
        +    },
        +    "category": {
        +      "description": "TVR coin category",
        +      "type": "string"
        +    },
        +    "coin": {
        +      "description": "Coin name",
        +      "type": "string"
        +    },
        +    "context": {
        +      "description": "Standing context about TVR and how to read its outputs"
        +    },
        +    "data_sources": {
        +      "description": "Where the numbers come from"
        +    },
        +    "disclaimer": {
        +      "description": "Model-derived assessment, not investment advice",
        +      "type": "string"
        +    },
        +    "error": {
        +      "description": "false on a normal answer, or an error message"
        +    },
        +    "fair_value_gap": {
        +      "description": "Gap between TVR Estimated Value and market price, formatted as a percentage",
        +      "type": "string"
        +    },
        +    "learn_more": {
        +      "description": "Links for more detail"
        +    },
        +    "metric_scores": {
        +      "description": "All 8 metric scores with their weights"
        +    },
        +    "rank": {
        +      "description": "Rank among evaluated coins, 1 is best",
        +      "type": "number"
        +    },
        +    "rank_out_of": {
        +      "description": "Number of coins evaluated",
        +      "type": "number"
        +    },
        +    "requested": {
        +      "description": "What was asked for, when it could not be resolved",
        +      "type": "string"
        +    },
        +    "status": {
        +      "description": "Present when the request could not be answered as asked, for example not_available",
        +      "type": "string"
        +    },
        +    "strongest_metric": {},
        +    "summary": {
        +      "description": "Plain-language summary of the answer",
        +      "type": "string"
        +    },
        +    "symbol": {
        +      "description": "Ticker",
        +      "type": "string"
        +    },
        +    "tvr_estimated_value": {
        +      "description": "TVR Estimated Value, formatted in USD",
        +      "type": "string"
        +    },
        +    "tvr_score": {
        +      "description": "TVR Score, 0 to 100",
        +      "type": "number"
        +    },
        +    "valuation": {
        +      "description": "Undervalued, Fair Value or Overvalued",
        +      "type": "string"
        +    },
        +    "weakest_metric": {}
        +  },
        +  "type": "object"
        +}
    • Changedlist_coins1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": true,
        +  "properties": {
        +    "attribution": {
        +      "description": "Required attribution text",
        +      "type": "string"
        +    },
        +    "coins": {
        +      "description": "Covered coins with ticker and name",
        +      "type": "array"
        +    },
        +    "context": {
        +      "description": "Standing context about TVR and how to read its outputs"
        +    },
        +    "data_sources": {
        +      "description": "Where the numbers come from"
        +    },
        +    "disclaimer": {
        +      "description": "Model-derived assessment, not investment advice",
        +      "type": "string"
        +    },
        +    "error": {
        +      "description": "false on a normal answer, or an error message"
        +    },
        +    "learn_more": {
        +      "description": "Links for more detail"
        +    },
        +    "requested": {
        +      "description": "What was asked for, when it could not be resolved",
        +      "type": "string"
        +    },
        +    "status": {
        +      "description": "Present when the request could not be answered as asked, for example not_available",
        +      "type": "string"
        +    },
        +    "summary": {
        +      "description": "Plain-language summary of the answer",
        +      "type": "string"
        +    },
        +    "total": {
        +      "type": "number"
        +    }
        +  },
        +  "type": "object"
        +}
  4. 9 tool updates
    • Changedcompare_coins1 field changed
      • changedInput schema / properties / coins / description
        Previous value: -"Array of 2-5 cryptocurrency ticker symbols to compare (e.g., [\"BTC\", \"ETH\", \"SOL\"])"New value: +"Array of 2-5 cryptocurrency tickers or names to compare (e.g., [\"BTC\", \"Ethereum\", \"SOL\"])"
    • Removedget_comparison_report
    • Removedget_custom_ranking
    • Changedget_full_breakdown2 fields changed
      • removedInput schema / properties / _meta
        Removed value: -{
        -  "description": "Payment metadata (handled automatically by MPP-enabled clients)"
        -}
      • changedInput schema / properties / coin / description
        Previous value: -"Cryptocurrency ticker symbol (e.g., BTC, ETH, LTC, XMR, SOL, ADA, AVAX, DOT, POL, LINK)"New value: +"Cryptocurrency ticker or name (e.g., BTC, Bitcoin, ETH, LTC, XMR, SOL, ADA, AVAX, DOT, POL, LINK)"
    • Removedget_historical_scores
    • Removedget_portfolio_analysis
    • Changedget_top_ranked2 fields changed
      • changedInput schema / properties / count / description
        Previous value: -"Number of coins to return (1-10, default 5)"New value: +"Number of coins to return (default 5)"
      • changedInput schema / properties / count / maximum
        Previous value: -10New value: +50
    • Changedget_tvr_estimated_value1 field changed
      • changedInput schema / properties / coin / description
        Previous value: -"Cryptocurrency ticker symbol (e.g., BTC, ETH, LTC, XMR, SOL, ADA, AVAX, DOT, POL, LINK)"New value: +"Cryptocurrency ticker or name (e.g., BTC, Bitcoin, ETH, LTC, XMR, SOL, ADA, AVAX, DOT, POL, LINK)"
    • Changedget_tvr_score1 field changed
      • changedInput schema / properties / coin / description
        Previous value: -"Cryptocurrency ticker symbol (e.g., BTC, ETH, LTC, XMR, SOL, ADA, AVAX, DOT, POL, LINK)"New value: +"Cryptocurrency ticker or name (e.g., BTC, Bitcoin, ETH, LTC, XMR, SOL, ADA, AVAX, DOT, POL, LINK)"
  5. 2 tool updates
    • Addedget_tvr_estimated_value
    • Removedget_tvr_price
  6. 6 tool updates
    • Addedget_comparison_report
    • Addedget_custom_ranking
    • Addedget_full_breakdown
    • Addedget_historical_scores
    • Addedget_portfolio_analysis
    • Changedget_top_ranked2 fields changed
      • changedInput schema / properties / count / description
        Previous value: -"Number of top-ranked coins to return (1-10, default 5)"New value: +"Number of coins to return (1-10, default 5)"
      • addedInput schema / properties / rank_by
        Added value: +{
        +  "default": "tvr_score",
        +  "description": "Ranking method: tvr_score, most_undervalued, or most_overvalued",
        +  "enum": [
        +    "tvr_score",
        +    "most_undervalued",
        +    "most_overvalued"
        +  ],
        +  "type": "string"
        +}
  7. 6 tool updates
    • First observedcompare_coins
    • First observedget_methodology
    • First observedget_top_ranked
    • First observedget_tvr_price
    • First observedget_tvr_score
    • First observedlist_coins

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    F
    maintenance
    Scores tokens for market cap risk, liquidity, volatility, and sentiment using CoinGecko, DeFiLlama, and Fear & Greed data.
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Provides typed onchain verdicts for EVM tokens with calibrated probabilities, enabling agents to make informed decisions on tokens such as ape, watch, or avoid, along with risk scores.
    158 npm
    3
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.