MCP server for Blocklens crypto on-chain analytics
The Blocklens MCP server presents well-structured tool definitions with clear naming conventions, comprehensive descriptions, and properly validated schemas using Zod. All 12 tools follow verb_noun naming patterns (list_, get_, search_) and are READ_ONLY operations appropriate for analytics. Descriptions are detailed (100-250 chars typical) and include domain context (e.g., MVRV thresholds, SOPR interpretation). Zod schemas provide type safety and validation. However, output schemas are not explicitly documented, responses are serialized JSON without formal schema definitions. Parameter defaults are sensible (days=30, symbol='BTC'). Error handling returns structured text but lacks recovery guidance (e.g., no suggestions for invalid date ranges or tier requirements). No tool annotations (readOnlyHint, etc.) despite all being read-only.
List all metric categories with counts and metric IDs in each. Categories include: price, supply, valuation, profit. Useful for discovering what data is available.
Get age cohort metrics: supply (BTC), realized cap (USD), and realized price (USD) for a specific UTXO age bracket. 12 cohorts from <24h to 10y+. Used for HODL Waves analysis to track accumulation/distribution by coin age.
Get Coin Days metrics: CDD, binary CDD, supply-adjusted CDD, liveliness, vaultedness, dormancy, dormancy flow, transferred price, and transfer volume. Coin Days measure the economic weight of Bitcoin transactions.
Get Bitcoin profit metrics: LTH/STH Realized P/L (USD) and SOPR (Spent Output Profit Ratio). SOPR > 1 means coins moved at profit; < 1 means at loss. Requires Pro tier API key.
Get Bitcoin holder supply breakdown: Long-Term Holder (LTH) supply, Short-Term Holder (STH) supply, and circulating supply. LTH = held >155 days, STH = held <155 days. Values in BTC.
Output schemas not explicitly documented. Tool descriptions state what data is returned (e.g., 'Returns id, name, description...') but formal JSON Schema definitions for responses are absent. LLMs cannot plan downstream tool composition or extract fields with certainty.
Error responses lack recovery guidance. When API returns an error (e.g., invalid date range, tier restriction, API key missing), the server returns the error message as-is without suggesting next steps. Example: get_holder_profit requires 'Pro tier API key' but error does not guide user to upgrade or provide alternative tools.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | C | 69 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 22 | - | v1 |
Get Bitcoin valuation metrics: Realized Cap (USD), Realized Price (USD), LTH/STH Realized Cap and Price, MVRV ratio (Market Value / Realized Value), and Unrealized P/L. MVRV > 3.5 historically signals overheating; < 1 signals undervaluation.
Get the most recent snapshot across all metric categories (price, supply, valuation, profit) in a single call. Ideal for a quick market overview without specifying date ranges.
Get the full definition of a single metric by its ID. Returns name, description, category, endpoint, unit, access tier, documentation, and related metrics. Use search_metrics or list_metrics first to find metric IDs.
Get daily OHLC prices (open/high/low/close in USD), market cap, and 24h trading volume. Returns one row per day, newest first.
Get UTXO set breakdown by age cohort. Shows token amounts (BTC) and USD values for each cohort date. Useful for analyzing coin dormancy and accumulation patterns — when dormant supply moves, it often precedes price action.
List all available on-chain metrics with descriptions, categories, and tier requirements. Returns id, name, description, category, unit, endpoint, and access tier for each metric.
Search available metrics by name or description. Returns matching metrics with their IDs, API endpoints, access tiers, and descriptions. Use this to discover which metrics are available before fetching data.
No tool annotations for read-only operations. All 12 tools are READ_ONLY (query-only, no side effects) but lack Zod metadata (readOnlyHint=true) or MCP tool annotations. This prevents agents from optimizing tool selection and caching strategies.
Result limits not enforced in descriptions for discovery tools. list_metrics, get_categories, and search_metrics do not state maximum result counts or pagination limits. A search for 'price' could return hundreds of metric definitions, exhausting context.
get_utxo_history parameters are ambiguous and may conflict. Parameters date_processed, cohort_start, cohort_end, and days are all optional and their interaction is undocumented. Should it be (date_processed) OR (cohort_start + cohort_end) OR (days)? Parameter relationships must be explicit.