An MCP-compatible service that provides real-time asset prices including precious metals, cryptocurrencies, and more
Asset Price MCP registers two tools (get_asset_price, list_assets) with visible schemas and basic descriptions. Naming follows verb-noun convention. However, descriptions lack depth and strategic guidance for LLM selection. Parameter descriptions are minimal or absent. Output schemas are not explicitly documented in tool definitions. Error handling is basic with no recovery guidance. The implementation is functional but falls short of production-grade quality.
Retrieves current pricing information for specific assets or a default list of major assets. Supports automatic currency conversion.
List all supported assets available for price queries
Tool descriptions lack strategic guidance. 'Retrieves current pricing information...' does not explain WHEN to use get_asset_price vs list_assets, or what fields are returned. LLMs cannot determine tool selection confidence from these descriptions.
Output schemas are not documented. Tool definitions do not state what fields get_asset_price returns (only 'price' and 'currency' are hinted in description). LLMs cannot plan downstream operations or extract required data without seeing the response structure.
Parameter descriptions are minimal or absent. The 'symbol' parameter in get_asset_price says 'The asset symbol to query (e.g., XAU, BTC, AAPL).' but does not explain the expected format, length constraints, case sensitivity, or what happens if the symbol is invalid. Example values should not be in descriptions; use enum constraints instead.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 49 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 40 | - | v1 |
list_assets has no input parameters documented but provides no explanation of what it returns, how many assets, pagination support, or response structure. The description '(List all supported assets available for price queries' is incomplete (unmatched parenthesis) and lacks depth.
No error recovery guidance. If an invalid symbol is passed to get_asset_price, the tool likely returns null or an error. The description does not explain what to do next: retry with a different symbol? Call list_assets first? Ask the user?
No enum constraints for the 'currency' parameter in get_asset_price. Description says '(default: USD)' but does not list supported currencies. LLMs will guess: EUR? GBP? CNY? Are three-letter ISO codes required? Should it be lowercase or uppercase?
Tool composition unclear. get_asset_price accepts an optional 'symbol' and returns 'default list' if omitted. This is confusing, it conflates two responsibilities: fetch one asset OR fetch all assets. Better design: keep get_asset_price for single symbols, rely on list_assets to discover available symbols, then compose.