This server has significant definition quality gaps. Tool names follow verb_noun convention (positive), but descriptions are generic and lack actionable context. Parameter schemas are present for most tools but descriptions are minimal. No output schemas are documented. Error handling is absent from tool definitions. The server lacks guidance on parameter formats, ranges, and interdependencies. Overall, definitions are functional but fall well below production standards for agentic tool design.
Tools (5)
analyze_metricsread onlyauthsource verified70/100
Analyze metrics by category with detailed explanations and usefulness information
generate_dashboardwriteauthsource verified63/100
Generate a Grafana dashboard JSON for a specific metric category
get_metric_detailsread onlyauth50/100
Get detailed information about a specific metric including recent values, field keys, and tag keys
list_metricsread onlyauthsource verified63/100
List all available metrics from InfluxDB
search_rust_coderead onlysource verified62/100
Search through Solana validator source code for references to a specific metric
No output schemas documented. LLMs cannot plan downstream tool calls or extract structured data from responses. Every tool lacks a documented return type.
Tool descriptions are under 50 characters and lack actionable context. Missing WHEN to use, WHAT it returns, and HOW it differs from similar tools. 'List all available metrics from InfluxDB' does not explain discovery intent or expected structure.
Parameter descriptions are missing or trivial. 'category' in analyze_metrics has an enum but lacks context on what each category represents or when to use each. 'metric_name' in get_metric_details and search_rust_code lack format/range guidance.
analyze_metricsget_metric_detailssearch_rust_code
Recommendations
Add documented output schemas for all 5 tools. Example for list_metrics: {type: 'object', properties: {metrics: {type: 'array', items: {type: 'string'}, description: 'List of available metric names'}, total: {type: 'integer'}, description: 'Total count of metrics'}}.
Expand tool descriptions to 100-200 characters. Describe WHAT each tool does, WHEN to use it vs. alternatives, and WHAT it returns. Example: 'Retrieve detailed statistics for a single InfluxDB metric including recent values and field/tag keys. Use this after list_metrics to drill into a specific metric. Returns measurement name, field definitions, tag keys, and last 10 data points.'
Add parameter descriptions to all enum values. For analyze_metrics category, expand: 'Metric category (string). Must be one of: Consensus (vote, slot, epoch metrics), Network (gossip, shred, repair), Banking (transaction, poh), Accounts (accounts_db, snapshot), RPC (jsonrpc endpoints), Performance (cpu, memory, bench_tps), Jito/MEV (tips, bundles), All (all categories combined). Start with list_metrics to discover available metrics.'
Add format guidance for metric_name parameter: 'The InfluxDB measurement name (case-sensitive, typically lowercase with underscores). Examples: validator_vote, banking_stage, rpc_service. Use list_metrics to discover valid names.'
Add error recovery guidance to descriptions. Example for get_metric_details: 'If metric not found, returns empty result. Call list_metrics first to verify the metric exists. If InfluxDB is unavailable, returns timeout error, retry after 30 seconds.'
No error handling guidance in definitions. If a metric_name does not exist, or InfluxDB is unavailable, the tool provides no recovery path or suggested next steps for the LLM.
generate_dashboard is marked WRITE but has no confirmation step or dry-run option. Agents can create duplicate or unintended dashboards without safeguard. No idempotency guidance either.
No pagination or result-limiting guidance. list_metrics and analyze_metrics could return hundreds of items without bounds, bloating context window. No mention of page/limit parameters or total count.
Tool dependencies not documented. analyze_metrics should note 'Call list_metrics first to discover available categories' or guide on parameter interdependencies.
analyze_metrics
Implement confirmation step for generate_dashboard. Add parameter: 'dry_run (boolean, default: true). If true, return dashboard JSON preview without saving to Grafana. If false, save to Grafana. Always preview first when possible.'
Add pagination to list_metrics and analyze_metrics. Parameters: 'limit (integer, 1-100, default: 20)' and 'offset (integer, default: 0)'. Response includes 'total' and 'has_more' fields.
Document InfluxDB version-specific behavior in descriptions. Note that list_metrics uses 'SHOW MEASUREMENTS' for v1 and Flux schema API for v2. Clarify which version is configured via INFLUX_VERSION env var.
For search_rust_code, add expected response format and limitations: 'Searches Solana validator source code for metric references. Returns file paths and line numbers where metric_name appears. Limited to validator codebase; does not search client libraries or third-party extensions.'