# io.github.imokokok/insight-oracle: tool descriptions scored

- tools/list taken: 2026-11-02 (UTC)
- From: [Official MCP Registry](https://registry.modelcontextprotocol.io/v0/servers/io.github.imokokok%2Finsight-oracle/versions/latest)
- Connected to: https://www.oracleinsight.xyz/api/mcp
- Repository: https://github.com/imokokok/Insight
- Scoring rules: v2
- Tools: 63
- Average: 45.2 / 100 (Cloudy)
- Near-identical pairs: 4

This page shows how io.github.imokokok/insight-oracle's tool descriptions scored, the issues found and the names of its tools and parameters. The descriptions are the server's own: read them where the copy came from.

Forecall asked the URL this server lists in the official MCP Registry for its tools/list once, on the date above, without calling any tool. The server may have changed since.

## Across the server

- Major: 63 tools. Above 40, models choose less accurately.
- Minor: The server has no instructions. Say there, once, what the server is for and when to use it: Claude Code and Gemini CLI read the instructions before the tool descriptions.

## Tools

- `get_stablecoin_list`: 23 / 100
  - Major: The description only restates the name (5 words).
  - Major: The description is too short (5 words).
  - Major: Says nothing about when to use it, or when not to.
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `assess_rwa_evidence`: 30 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: input, input.instrument, input.instrument.schema, input.instrument.underlyingId, input.instrument.issuer, input.instrument.tokenChainId, input.instrument.tokenAddress, input.instrument.venueMic, input.instrument.kind, input.instrument.currency, input.instrument.priceBasis, input.instrument.corporateActionVersion, input.request, input.request.instrumentId, input.request.action, input.request.amount, input.request.call, input.request.call.chainId, input.request.call.from, input.request.call.to, input.request.call.calldataHash, input.request.call.value, input.request.call.nonce, input.prices, input.prices[].feedId, input.prices[].instrumentId, input.prices[].evidenceChainId, input.prices[].currency, input.prices[].priceBasis, input.prices[].corporateActionVersion, input.prices[].session, input.prices[].priceE8, input.prices[].observedAt, input.prices[].retrievedAt, input.market, input.evidence, input.evidence[].kind, input.evidence[].instrumentId, input.evidence[].subject, input.evidence[].source, input.evidence[].status, input.evidence[].observedAt, input.evidence[].validUntil, policy, policy.schema, policy.name, policy.instrumentId, policy.environment, policy.minProviders, policy.minIndependentGroups, policy.maxPriceAgeSeconds, policy.maxStateAgeSeconds, policy.maxSpreadBps, policy.reportTtlSeconds, policy.feeds, policy.stateSources, policy.evidenceSources, policy.evidenceSources.reserve, policy.evidenceSources.eligibility, policy.evidenceSources.redemption, policy.actions, policy.actions.buy, policy.actions.buy.priceRequired, policy.actions.buy.allowedSessions, policy.actions.buy.requiredEvidence, policy.actions.sell, policy.actions.sell.priceRequired, policy.actions.sell.allowedSessions, policy.actions.sell.requiredEvidence, policy.actions.borrow, policy.actions.borrow.priceRequired, policy.actions.borrow.allowedSessions, policy.actions.borrow.requiredEvidence, policy.actions.collateralize, policy.actions.collateralize.priceRequired, policy.actions.collateralize.allowedSessions, policy.actions.collateralize.requiredEvidence, policy.actions.liquidate, policy.actions.liquidate.priceRequired, policy.actions.liquidate.allowedSessions, policy.actions.liquidate.requiredEvidence, policy.actions.redeem, policy.actions.redeem.priceRequired, policy.actions.redeem.allowedSessions, policy.actions.redeem.requiredEvidence, policy.actions.repay, policy.actions.repay.priceRequired, policy.actions.repay.allowedSessions, policy.actions.repay.requiredEvidence.
  - Minor: String arguments with no constraint or example: input.instrument.schema, policy.schema.
  - Minor: The meaning of the boolean argument policy.actions.buy.priceRequired is unclear.
  - Minor: The meaning of the boolean argument policy.actions.sell.priceRequired is unclear.
  - Minor: The meaning of the boolean argument policy.actions.borrow.priceRequired is unclear.
  - Minor: The meaning of the boolean argument policy.actions.collateralize.priceRequired is unclear.
  - Minor: The meaning of the boolean argument policy.actions.liquidate.priceRequired is unclear.
  - Minor: The meaning of the boolean argument policy.actions.redeem.priceRequired is unclear.
  - Minor: The meaning of the boolean argument policy.actions.repay.priceRequired is unclear.
  - Minor: Says nothing about what it returns.
- `verify_hyperliquid_perp_execution`: 33 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: user, orderId, submittedAt, expectedOrder, expectedOrder.market, expectedOrder.side, expectedOrder.size, expectedOrder.limitPrice, expectedOrder.reduceOnly, expectedOrder.clientOrderId, expectedOrder.builderFee, expectedOrder.builderFee.builder, expectedOrder.builderFee.feeTenthsOfBasisPoint, expectedOrder.builderFee.maximumFeeTenthsOfBasisPoint.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: The meaning of the boolean argument expectedOrder.reduceOnly is unclear.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: orderId. Name the tool or the place that returns it, or models look it up first.
- `get_protocols`: 34 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `get_reputation_rankings`: 35 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `get_feeds`: 37 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `prepare_base_agent_swap_guard`: 37 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: profileId, amountIn, recipient, deadlineUnixSeconds, sourceDecisionPriceUsd, destinationDecisionPriceUsd, policy, policy.maxSlippageBps, policy.maxPriceImpactBps, policy.maxTwapDeviationBps, policy.maxReferenceDeviationBps, policy.maxQuoteAgeSeconds.
  - Minor: Required identifiers whose description does not say where the value comes from: profileId. Name the tool or the place that returns it, or models look it up first.
- `verify_execution_pair`: 37 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: preTradeAttestation.uid, preTradeAttestation.schemaVersion, preTradeAttestation.attester, preTradeAttestation.data, preTradeAttestation.signature, preTradeAttestation.type, preTradeAttestation.eip712, executionReceipt.uid, executionReceipt.schemaVersion, executionReceipt.attester, executionReceipt.signature, executionReceipt.data.
  - Minor: String arguments with no constraint or example: preTradeAttestation.uid, preTradeAttestation.attester, preTradeAttestation.signature, preTradeAttestation.type, executionReceipt.uid, executionReceipt.attester, executionReceipt.signature.
  - Minor: The description mentions none of its 3 or more arguments.
- `get_latency`: 38 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
- `solana_lending_guard`: 38 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: guard, guard.protocolId, guard.action, guard.collateralSymbol, guard.loanSymbol, guard.collateralValueUsd, guard.debtValueUsd, guard.assetMint, transaction, transaction.network, transaction.messageVersion, transaction.feePayer, transaction.recentBlockhash, transaction.header, transaction.header.numRequiredSignatures, transaction.header.numReadonlySignedAccounts, transaction.header.numReadonlyUnsignedAccounts, transaction.accountKeys, transaction.addressTableLookups, transaction.addressTableLookups[].accountKey, transaction.addressTableLookups[].writableIndexes, transaction.addressTableLookups[].readonlyIndexes, transaction.loadedAddresses, transaction.loadedAddresses.writable, transaction.loadedAddresses.readonly, transaction.instructions, transaction.instructions[].programIdIndex, transaction.instructions[].accountIndexes, transaction.instructions[].data.
  - Minor: String arguments with no constraint or example: guard.assetMint, transaction.network, transaction.feePayer, transaction.recentBlockhash, transaction.addressTableLookups[].accountKey.
- `get_anomalies`: 39 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `get_daily_report`: 39 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `get_stablecoin_peg`: 39 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `check_position_safety`: 40 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: String arguments with no constraint or example: collateralSymbol, borrowSymbol.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
  - Minor: Required identifiers whose description does not say where the value comes from: protocolId. Name the tool or the place that returns it, or models look it up first.
- `get_cross_chain_spreads`: 40 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: String arguments with no constraint or example: symbol.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `get_oracle_prices_batch`: 40 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: String arguments with no constraint or example: queries[].symbol.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `get_price_history`: 40 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: String arguments with no constraint or example: symbol.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `get_aerodrome_slipstream_market`: 42 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `get_incidents`: 42 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
- `get_pancakeswap_v3_market`: 42 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `get_provider_reputation`: 42 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `get_quickswap_v2_market`: 42 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `get_risk_summary`: 42 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `get_feed_uptime`: 43 / 100
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `loopscale_vault_deposit`: 43 / 100
  - Major: Arguments without a description: wallet, vault, assetMint, collateralSymbol, loanSymbol, collateralValueUsd, principalAmount, minLpAmount.
  - Minor: String arguments with no constraint or example: wallet, vault, assetMint.
- `multichain_evm_lending_guard_exact_call`: 43 / 100
  - Major: Arguments without a description: guard, guard.chainId, guard.protocolId, guard.action, guard.collateralSymbol, guard.loanSymbol, guard.collateralValueUsd, guard.debtValueUsd, guard.marketId, guard.marketAddress, guard.collateralVaultAddress, guard.collateralMarketId, guard.loanMarketId, guard.accountNumber, transaction, transaction.chainId, transaction.from, transaction.to, transaction.data, transaction.nonce, transaction.value.
  - Minor: Says nothing about what it returns.
- `get_protocol_oracle_exposure`: 44 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `get_symbols`: 44 / 100
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `base_lending_guard`: 45 / 100
  - Major: Arguments without a description: protocolId, action, collateralSymbol, loanSymbol, collateralValueUsd, debtValueUsd, marketId.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Required identifiers whose description does not say where the value comes from: protocolId. Name the tool or the place that returns it, or models look it up first.
- `get_base_dex_market`: 45 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `get_correlation`: 45 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `get_feed_freshness`: 45 / 100
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `get_feed_health`: 45 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `get_hyperliquid_perp_market`: 45 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
- `get_monad_dex_market`: 45 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `get_oracle_price`: 45 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `get_solana_dex_route`: 45 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `monad_lending_guard`: 45 / 100
  - Major: Arguments without a description: protocolId, action, collateralSymbol, loanSymbol, collateralValueUsd, debtValueUsd, marketId.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Required identifiers whose description does not say where the value comes from: protocolId. Name the tool or the place that returns it, or models look it up first.
- `multichain_evm_lending_guard`: 45 / 100
  - Major: Arguments without a description: chainId, protocolId, action, collateralSymbol, loanSymbol, collateralValueUsd, debtValueUsd, marketId, marketAddress, collateralVaultAddress, collateralMarketId, loanMarketId, accountNumber.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Required identifiers whose description does not say where the value comes from: chainId, protocolId. Name the tool or the place that returns it, or models look it up first.
- `check_liquidation_risk`: 46 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: No `required` list, so every argument is optional.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `compare_oracle_deviation`: 46 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `get_oracle_health`: 47 / 100
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `get_protocol_risk_params`: 47 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `get_wrapped_asset_peg`: 47 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `prepare_pancakeswap_v3_swap`: 47 / 100
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `recommend_oracle_setup`: 47 / 100
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `get_hanji_monad_market`: 48 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Says nothing about what it returns.
- `prepare_hyperliquid_perp_order`: 49 / 100
  - Major: Arguments without a description: market, side, size, limitPrice, reduceOnly, clientOrderId, maxNotionalUsd, maxPriceImpactBps, maxMarkOracleDeviationBps, requireFullFill, expiresAfterSeconds, builderFee, builderFee.builder, builderFee.feeTenthsOfBasisPoint, builderFee.maximumFeeTenthsOfBasisPoint.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: The meaning of the boolean argument reduceOnly is unclear.
  - Minor: The meaning of the boolean argument requireFullFill is unclear.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
  - Minor: Required identifiers whose description does not say where the value comes from: clientOrderId. Name the tool or the place that returns it, or models look it up first.
- `base_lending_guard_exact_call`: 50 / 100
  - Major: Arguments without a description: guard, guard.protocolId, guard.action, guard.collateralSymbol, guard.loanSymbol, guard.collateralValueUsd, guard.debtValueUsd, guard.marketId, transaction, transaction.chainId, transaction.from, transaction.to, transaction.data, transaction.nonce, transaction.value.
- `get_consensus_price`: 50 / 100
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `monad_lending_guard_exact_call`: 50 / 100
  - Major: Arguments without a description: guard, guard.protocolId, guard.action, guard.collateralSymbol, guard.loanSymbol, guard.collateralValueUsd, guard.debtValueUsd, guard.marketId, transaction, transaction.chainId, transaction.from, transaction.to, transaction.data, transaction.nonce, transaction.value.
- `execution_receipt`: 52 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: String arguments with no constraint or example: txHash.
  - Minor: Required identifiers whose description does not say where the value comes from: sourceAssetId, destinationAssetId, subjectChainId, settlementChainId. Name the tool or the place that returns it, or models look it up first.
- `get_base_dex_venue_integrations`: 52 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: No `required` list, so every argument is optional.
- `agent_begin_trade`: 54 / 100
  - Major: Arguments without a description: action, decisionInput.source, decisionInput.source.decisionPriceUsd, decisionInput.source.quotePriceUsd, decisionInput.source.quoteObservedAt, decisionInput.source.maxReferenceDeviationBps, decisionInput.source.maxSlippageBps, decisionInput.source.maxQuoteAgeSeconds, decisionInput.source.quoteProvenance, decisionInput.source.quoteProvenance.schemaVersion, decisionInput.source.quoteProvenance.sourceId, decisionInput.source.quoteProvenance.rightsScope, decisionInput.source.quoteProvenance.captureMethod, decisionInput.source.quoteProvenance.asset, decisionInput.source.quoteProvenance.chainId, decisionInput.source.quoteProvenance.quotePriceUsd, decisionInput.source.quoteProvenance.observedAt, decisionInput.source.quoteProvenance.requestHash, decisionInput.source.quoteProvenance.responseHash, decisionInput.destination, decisionInput.destination.decisionPriceUsd, decisionInput.destination.quotePriceUsd, decisionInput.destination.quoteObservedAt, decisionInput.destination.maxReferenceDeviationBps, decisionInput.destination.maxSlippageBps, decisionInput.destination.maxQuoteAgeSeconds, decisionInput.destination.quoteProvenance, decisionInput.destination.quoteProvenance.schemaVersion, decisionInput.destination.quoteProvenance.sourceId, decisionInput.destination.quoteProvenance.rightsScope, decisionInput.destination.quoteProvenance.captureMethod, decisionInput.destination.quoteProvenance.asset, decisionInput.destination.quoteProvenance.chainId, decisionInput.destination.quoteProvenance.quotePriceUsd, decisionInput.destination.quoteProvenance.observedAt, decisionInput.destination.quoteProvenance.requestHash, decisionInput.destination.quoteProvenance.responseHash.
- `prepare_aerodrome_slipstream_swap`: 54 / 100
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `get_robinhood_rwa_context`: 56 / 100
  - Minor: Says nothing about what it returns.
- `get_robinhood_rwa_instrument`: 56 / 100
  - Minor: Says nothing about what it returns.
- `oracle_watch`: 56 / 100
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `oracle_watch_history`: 57 / 100
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `execution_preflight`: 58 / 100
  - Major: Arguments without a description: action, decisionInput.decisionPriceUsd, decisionInput.quotePriceUsd, decisionInput.quoteObservedAt, decisionInput.maxReferenceDeviationBps, decisionInput.maxSlippageBps, decisionInput.maxQuoteAgeSeconds, decisionInput.quoteProvenance, decisionInput.quoteProvenance.schemaVersion, decisionInput.quoteProvenance.sourceId, decisionInput.quoteProvenance.rightsScope, decisionInput.quoteProvenance.captureMethod, decisionInput.quoteProvenance.asset, decisionInput.quoteProvenance.chainId, decisionInput.quoteProvenance.quotePriceUsd, decisionInput.quoteProvenance.observedAt, decisionInput.quoteProvenance.requestHash, decisionInput.quoteProvenance.responseHash, decisionInput.requireQuoteProvenance, decisionInput.reviewedUniswapV3.maxQuoteDeviationBps, decisionInput.reviewedUniswapV3.maxTwapDeviationBps, decisionInput.reviewedAerodromeSlipstream.maxQuoteDeviationBps, decisionInput.reviewedAerodromeSlipstream.maxTwapDeviationBps.
  - Minor: The meaning of the boolean argument decisionInput.requireQuoteProvenance is unclear.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
  - Minor: Required identifiers whose description does not say where the value comes from: chainId. Name the tool or the place that returns it, or models look it up first.
- `get_metrics`: 60 / 100
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `pre_trade_safety_check`: 66 / 100
  - Minor: Arguments without a description: action.
  - Minor: Required identifiers whose description does not say where the value comes from: chainId. Name the tool or the place that returns it, or models look it up first.
- `get_coverage`: 69 / 100
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.

Is your server listed here and you would rather it were not? Email support@forecall.dev, and we will take it off within 7 days.

[All scored servers](https://forecall.dev/en/servers)
