All scored servers

Otto Intel: tool descriptions scored services.ottoai/otto

tools/list taken
(UTC)
Connected to
https://mcp.ottoai.services/mcp
Scoring rules
v2
Score this URL as it is today

Scores, issues and names only

This page shows how Otto Intel (services.ottoai/otto)'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.

servers/services.ottoai/otto
Average score
67.7 / 100Cloudy
Tools
48
Near-identical descriptions
14

Across the server

  • Major
    48 tools. Above 40, models choose less accurately.too_many_tools
  • Minor
    14 pairs with nearly the same description in all; the top 12 are shown.confusable_pair_total
  • Critical
    These tools share the same description: otto_muse_autopay_availability, otto_muse_autopay_prepare, otto_muse_autopay_enroll, otto_muse_autopay_status, otto_muse_autopay_revoke.identical_description

Tools whose descriptions are nearly the same

12 of 14 pairs shown, highest description similarity first.
ToolToolDescription similarityName similarity
otto_muse_autopay_availabilityotto_muse_autopay_prepare1.000.60
otto_muse_autopay_availabilityotto_muse_autopay_enroll1.000.60
otto_muse_autopay_availabilityotto_muse_autopay_status1.000.60
otto_muse_autopay_availabilityotto_muse_autopay_revoke1.000.60
otto_muse_autopay_prepareotto_muse_autopay_enroll1.000.60
otto_muse_autopay_prepareotto_muse_autopay_status1.000.60
otto_muse_autopay_prepareotto_muse_autopay_revoke1.000.60
otto_muse_autopay_enrollotto_muse_autopay_status1.000.60
otto_muse_autopay_enrollotto_muse_autopay_revoke1.000.60
otto_muse_autopay_statusotto_muse_autopay_revoke1.000.60
otto_prepare_swapotto_prepare_bridge0.670.50
otto_pm_marketsotto_pm_crypto0.620.50

Tools

otto_muse_autopay_status

46 / 100Cloudy

Purpose
14 / 20
When to use
5 / 20
Arguments
10 / 25
Return value
7 / 15
Constraints and side effects
10 / 10
Examples
0 / 10
  • Minor
    Its description is nearly the same as otto_muse_autopay_availability's (similarity 1.00); only the names and schemas tell them apart. Say in this description when to use otto_muse_autopay_availability instead.confusable_pair
  • Minor
    Its description is nearly the same as otto_muse_autopay_prepare's (similarity 1.00); only the names and schemas tell them apart. Say in this description when to use otto_muse_autopay_prepare instead.confusable_pair
  • Minor
    Its description is nearly the same as otto_muse_autopay_enroll's (similarity 1.00); only the names and schemas tell them apart. Say in this description when to use otto_muse_autopay_enroll instead.confusable_pair
  • Minor
    Its description is nearly the same as otto_muse_autopay_revoke's (similarity 1.00); only the names and schemas tell them apart. Say in this description when to use otto_muse_autopay_revoke instead.confusable_pair
  • Minor
    Arguments without a description: wallet, operationId.param_no_description
  • Minor
    String arguments with no constraint or example: wallet, operationId.loose_string_param
  • Minor
    No `required` list, so every argument is optional.no_required

otto_muse_autopay_sign

48 / 100Cloudy

Purpose
20 / 20
When to use
5 / 20
Arguments
16 / 25
Return value
0 / 15
Constraints and side effects
7 / 10
Examples
0 / 10
  • Minor
    Arguments without a description: arguments.param_no_description
  • Minor
    String arguments with no constraint or example: validAfter.loose_string_param
  • Minor
    Says nothing about what it returns.no_return_info
  • Minor
    Required identifiers whose description does not say where the value comes from: operationId. Name the tool or the place that returns it, or models look it up first.id_source_missing

otto_token_security

50 / 100Cloudy

Purpose
17 / 20
When to use
0 / 20
Arguments
23 / 25
Return value
0 / 15
Constraints and side effects
10 / 10
Examples
0 / 10
  • Major
    Says nothing about when to use it, or when not to.no_usage_context
  • Minor
    Says nothing about what it returns.no_return_info

otto_muse_autopay_revoke

51 / 100Cloudy

Purpose
14 / 20
When to use
5 / 20
Arguments
15 / 25
Return value
7 / 15
Constraints and side effects
10 / 10
Examples
0 / 10
  • Minor
    Its description is nearly the same as otto_muse_autopay_availability's (similarity 1.00); only the names and schemas tell them apart. Say in this description when to use otto_muse_autopay_availability instead.confusable_pair
  • Minor
    Its description is nearly the same as otto_muse_autopay_prepare's (similarity 1.00); only the names and schemas tell them apart. Say in this description when to use otto_muse_autopay_prepare instead.confusable_pair
  • Minor
    Its description is nearly the same as otto_muse_autopay_enroll's (similarity 1.00); only the names and schemas tell them apart. Say in this description when to use otto_muse_autopay_enroll instead.confusable_pair
  • Minor
    Its description is nearly the same as otto_muse_autopay_status's (similarity 1.00); only the names and schemas tell them apart. Say in this description when to use otto_muse_autopay_status instead.confusable_pair
  • Minor
    No `required` list, so every argument is optional.no_required

otto_crypto_news

52 / 100Cloudy

Purpose
20 / 20
When to use
0 / 20
Arguments
22 / 25
Return value
0 / 15
Constraints and side effects
10 / 10
Examples
0 / 10
  • Major
    Says nothing about when to use it, or when not to.no_usage_context
  • Minor
    No `required` list, so every argument is optional.no_required
  • Minor
    Says nothing about what it returns.no_return_info

otto_muse_autopay_enroll

54 / 100Cloudy

Purpose
14 / 20
When to use
5 / 20
Arguments
18 / 25
Return value
7 / 15
Constraints and side effects
10 / 10
Examples
0 / 10
  • Minor
    Its description is nearly the same as otto_muse_autopay_availability's (similarity 1.00); only the names and schemas tell them apart. Say in this description when to use otto_muse_autopay_availability instead.confusable_pair
  • Minor
    Its description is nearly the same as otto_muse_autopay_prepare's (similarity 1.00); only the names and schemas tell them apart. Say in this description when to use otto_muse_autopay_prepare instead.confusable_pair
  • Minor
    Its description is nearly the same as otto_muse_autopay_status's (similarity 1.00); only the names and schemas tell them apart. Say in this description when to use otto_muse_autopay_status instead.confusable_pair
  • Minor
    Its description is nearly the same as otto_muse_autopay_revoke's (similarity 1.00); only the names and schemas tell them apart. Say in this description when to use otto_muse_autopay_revoke instead.confusable_pair
  • Minor
    Required identifiers whose description does not say where the value comes from: enrollmentId. Name the tool or the place that returns it, or models look it up first.id_source_missing

otto_muse_autopay_prepare

54 / 100Cloudy

Purpose
14 / 20
When to use
5 / 20
Arguments
18 / 25
Return value
7 / 15
Constraints and side effects
10 / 10
Examples
0 / 10
  • Minor
    Its description is nearly the same as otto_muse_autopay_availability's (similarity 1.00); only the names and schemas tell them apart. Say in this description when to use otto_muse_autopay_availability instead.confusable_pair
  • Minor
    Its description is nearly the same as otto_muse_autopay_enroll's (similarity 1.00); only the names and schemas tell them apart. Say in this description when to use otto_muse_autopay_enroll instead.confusable_pair
  • Minor
    Its description is nearly the same as otto_muse_autopay_status's (similarity 1.00); only the names and schemas tell them apart. Say in this description when to use otto_muse_autopay_status instead.confusable_pair
  • Minor
    Its description is nearly the same as otto_muse_autopay_revoke's (similarity 1.00); only the names and schemas tell them apart. Say in this description when to use otto_muse_autopay_revoke instead.confusable_pair
  • Minor
    The description mentions none of its 3 or more arguments.params_not_in_description

otto_tokenized_stock_movers

57 / 100Cloudy

Purpose
20 / 20
When to use
0 / 20
Arguments
22 / 25
Return value
0 / 15
Constraints and side effects
10 / 10
Examples
5 / 10
  • Major
    Says nothing about when to use it, or when not to.no_usage_context
  • Minor
    No `required` list, so every argument is optional.no_required
  • Minor
    Says nothing about what it returns.no_return_info

otto_prepare_bridge

58 / 100Cloudy

Purpose
17 / 20
When to use
5 / 20
Arguments
14 / 25
Return value
15 / 15
Constraints and side effects
7 / 10
Examples
0 / 10
  • Major
    Arguments without a description: accountProfile, accountProfile.kind, accountProfile.address, accountProfile.chainId, fromChainId, toChainId, slippage, slippage.maxBps, slippage.minAmountOut, client_ref.param_no_description
  • Minor
    Its description is nearly the same as otto_prepare_swap's (similarity 0.67); only the names and schemas tell them apart. Say in this description when to use otto_prepare_swap instead.confusable_pair
  • Minor
    The description mentions none of its 3 or more arguments.params_not_in_description
  • Minor
    Required identifiers whose description does not say where the value comes from: fromChainId, toChainId. Name the tool or the place that returns it, or models look it up first.id_source_missing

otto_prepare_swap

58 / 100Cloudy

Purpose
17 / 20
When to use
5 / 20
Arguments
14 / 25
Return value
15 / 15
Constraints and side effects
7 / 10
Examples
0 / 10
  • Major
    Arguments without a description: accountProfile, accountProfile.kind, accountProfile.address, accountProfile.chainId, chainId, slippage, slippage.maxBps, slippage.minAmountOut, client_ref.param_no_description
  • Minor
    Its description is nearly the same as otto_prepare_bridge's (similarity 0.67); only the names and schemas tell them apart. Say in this description when to use otto_prepare_bridge instead.confusable_pair
  • Minor
    The description mentions none of its 3 or more arguments.params_not_in_description
  • 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.id_source_missing

otto_base_season

59 / 100Cloudy

Purpose
20 / 20
When to use
0 / 20
Arguments
22 / 25
Return value
7 / 15
Constraints and side effects
10 / 10
Examples
0 / 10
  • Major
    Says nothing about when to use it, or when not to.no_usage_context
  • Minor
    No `required` list, so every argument is optional.no_required

otto_news_recaps

59 / 100Cloudy

Purpose
20 / 20
When to use
0 / 20
Arguments
22 / 25
Return value
7 / 15
Constraints and side effects
10 / 10
Examples
0 / 10
  • Major
    Says nothing about when to use it, or when not to.no_usage_context
  • Minor
    No `required` list, so every argument is optional.no_required

otto_pm_crypto

59 / 100Cloudy

Purpose
20 / 20
When to use
0 / 20
Arguments
22 / 25
Return value
7 / 15
Constraints and side effects
10 / 10
Examples
0 / 10
  • Major
    Says nothing about when to use it, or when not to.no_usage_context
  • Minor
    Its description is nearly the same as otto_pm_markets's (similarity 0.62); only the names and schemas tell them apart. Say in this description when to use otto_pm_markets instead.confusable_pair
  • Minor
    No `required` list, so every argument is optional.no_required

otto_pm_markets

59 / 100Cloudy

Purpose
20 / 20
When to use
0 / 20
Arguments
22 / 25
Return value
7 / 15
Constraints and side effects
10 / 10
Examples
0 / 10
  • Major
    Says nothing about when to use it, or when not to.no_usage_context
  • Minor
    Its description is nearly the same as otto_pm_crypto's (similarity 0.62); only the names and schemas tell them apart. Say in this description when to use otto_pm_crypto instead.confusable_pair
  • Minor
    No `required` list, so every argument is optional.no_required

otto_rh_season

59 / 100Cloudy

Purpose
20 / 20
When to use
0 / 20
Arguments
22 / 25
Return value
7 / 15
Constraints and side effects
10 / 10
Examples
0 / 10
  • Major
    Says nothing about when to use it, or when not to.no_usage_context
  • Minor
    No `required` list, so every argument is optional.no_required

otto_delegation_fence_status

60 / 100Cloudy

Purpose
17 / 20
When to use
0 / 20
Arguments
25 / 25
Return value
8 / 15
Constraints and side effects
10 / 10
Examples
0 / 10
  • Major
    Says nothing about when to use it, or when not to.no_usage_context

otto_lp_collect_userop

60 / 100Cloudy

Purpose
17 / 20
When to use
0 / 20
Arguments
25 / 25
Return value
8 / 15
Constraints and side effects
10 / 10
Examples
0 / 10
  • Major
    Says nothing about when to use it, or when not to.no_usage_context

otto_native_yield_userop

60 / 100Cloudy

Purpose
17 / 20
When to use
0 / 20
Arguments
25 / 25
Return value
8 / 15
Constraints and side effects
10 / 10
Examples
0 / 10
  • Major
    Says nothing about when to use it, or when not to.no_usage_context

otto_muse_autopay_availability

61 / 100Cloudy

Purpose
14 / 20
When to use
5 / 20
Arguments
25 / 25
Return value
7 / 15
Constraints and side effects
10 / 10
Examples
0 / 10
  • Minor
    Its description is nearly the same as otto_muse_autopay_prepare's (similarity 1.00); only the names and schemas tell them apart. Say in this description when to use otto_muse_autopay_prepare instead.confusable_pair
  • Minor
    Its description is nearly the same as otto_muse_autopay_enroll's (similarity 1.00); only the names and schemas tell them apart. Say in this description when to use otto_muse_autopay_enroll instead.confusable_pair
  • Minor
    Its description is nearly the same as otto_muse_autopay_status's (similarity 1.00); only the names and schemas tell them apart. Say in this description when to use otto_muse_autopay_status instead.confusable_pair
  • Minor
    Its description is nearly the same as otto_muse_autopay_revoke's (similarity 1.00); only the names and schemas tell them apart. Say in this description when to use otto_muse_autopay_revoke instead.confusable_pair

otto_catalog

64 / 100Cloudy

Purpose
20 / 20
When to use
5 / 20
Arguments
25 / 25
Return value
7 / 15
Constraints and side effects
7 / 10
Examples
0 / 10

No issues.

otto_tokenized_equities

64 / 100Cloudy

Purpose
20 / 20
When to use
0 / 20
Arguments
22 / 25
Return value
7 / 15
Constraints and side effects
10 / 10
Examples
5 / 10
  • Major
    Says nothing about when to use it, or when not to.no_usage_context
  • Minor
    No `required` list, so every argument is optional.no_required

otto_equity_intel

67 / 100Cloudy

Purpose
20 / 20
When to use
0 / 20
Arguments
25 / 25
Return value
7 / 15
Constraints and side effects
10 / 10
Examples
5 / 10
  • Major
    Says nothing about when to use it, or when not to.no_usage_context

otto_equity_smart_money

67 / 100Cloudy

Purpose
20 / 20
When to use
0 / 20
Arguments
25 / 25
Return value
7 / 15
Constraints and side effects
10 / 10
Examples
5 / 10
  • Major
    Says nothing about when to use it, or when not to.no_usage_context

otto_equity_smart_money_brief

67 / 100Cloudy

Purpose
20 / 20
When to use
0 / 20
Arguments
25 / 25
Return value
7 / 15
Constraints and side effects
10 / 10
Examples
5 / 10
  • Major
    Says nothing about when to use it, or when not to.no_usage_context

otto_insider_trades

67 / 100Cloudy

Purpose
20 / 20
When to use
0 / 20
Arguments
25 / 25
Return value
7 / 15
Constraints and side effects
10 / 10
Examples
5 / 10
  • Major
    Says nothing about when to use it, or when not to.no_usage_context

otto_institutional_holdings

67 / 100Cloudy

Purpose
20 / 20
When to use
0 / 20
Arguments
25 / 25
Return value
7 / 15
Constraints and side effects
10 / 10
Examples
5 / 10
  • Major
    Says nothing about when to use it, or when not to.no_usage_context

otto_earnings_calendar

70 / 100Clear

Purpose
20 / 20
When to use
10 / 20
Arguments
25 / 25
Return value
0 / 15
Constraints and side effects
10 / 10
Examples
5 / 10
  • Minor
    Says nothing about what it returns.no_return_info

otto_equity_news

70 / 100Clear

Purpose
20 / 20
When to use
5 / 20
Arguments
25 / 25
Return value
0 / 15
Constraints and side effects
10 / 10
Examples
10 / 10
  • Minor
    Says nothing about what it returns.no_return_info

otto_pools_search

72 / 100Clear

Purpose
20 / 20
When to use
5 / 20
Arguments
25 / 25
Return value
7 / 15
Constraints and side effects
10 / 10
Examples
5 / 10

No issues.

otto_prepare_polymarket_order

72 / 100Clear

Purpose
17 / 20
When to use
10 / 20
Arguments
15 / 25
Return value
15 / 15
Constraints and side effects
10 / 10
Examples
5 / 10
  • Major
    Arguments without a description: accountProfile, accountProfile.kind, accountProfile.address, accountProfile.chainId, side, client_ref.param_no_description
  • Minor
    Required identifiers whose description does not say where the value comes from: tokenId. Name the tool or the place that returns it, or models look it up first.id_source_missing

otto_prepare_yield_withdraw

72 / 100Clear

Purpose
17 / 20
When to use
15 / 20
Arguments
10 / 25
Return value
15 / 15
Constraints and side effects
10 / 10
Examples
5 / 10
  • Major
    Arguments without a description: accountProfile, accountProfile.kind, accountProfile.address, accountProfile.chainId, executableMarketId, registryCommitment, shares, slippage, slippage.maxBps, client_ref.param_no_description

otto_delegation_cap

75 / 100Clear

Purpose
17 / 20
When to use
10 / 20
Arguments
25 / 25
Return value
8 / 15
Constraints and side effects
10 / 10
Examples
5 / 10

No issues.

otto_prepare_yield_deposit

76 / 100Clear

Purpose
17 / 20
When to use
15 / 20
Arguments
14 / 25
Return value
15 / 15
Constraints and side effects
10 / 10
Examples
5 / 10
  • Major
    Arguments without a description: accountProfile, accountProfile.kind, accountProfile.address, accountProfile.chainId, slippage, slippage.maxBps, client_ref.param_no_description

otto_delegation_reconcile

77 / 100Clear

Purpose
17 / 20
When to use
10 / 20
Arguments
25 / 25
Return value
15 / 15
Constraints and side effects
10 / 10
Examples
0 / 10

No issues.

otto_financial_statements

77 / 100Clear

Purpose
20 / 20
When to use
5 / 20
Arguments
25 / 25
Return value
7 / 15
Constraints and side effects
10 / 10
Examples
10 / 10

No issues.

otto_material_events

77 / 100Clear

Purpose
20 / 20
When to use
5 / 20
Arguments
25 / 25
Return value
7 / 15
Constraints and side effects
10 / 10
Examples
10 / 10

No issues.

otto_proposed_insider_sales

77 / 100Clear

Purpose
20 / 20
When to use
10 / 20
Arguments
25 / 25
Return value
7 / 15
Constraints and side effects
10 / 10
Examples
5 / 10

No issues.

otto_stock_pools

77 / 100Clear

Purpose
20 / 20
When to use
10 / 20
Arguments
25 / 25
Return value
7 / 15
Constraints and side effects
10 / 10
Examples
5 / 10

No issues.

otto_stock_token_quote

77 / 100Clear

Purpose
20 / 20
When to use
5 / 20
Arguments
25 / 25
Return value
7 / 15
Constraints and side effects
10 / 10
Examples
10 / 10

No issues.

otto_x_recipes

77 / 100Clear

Purpose
20 / 20
When to use
10 / 20
Arguments
25 / 25
Return value
7 / 15
Constraints and side effects
10 / 10
Examples
5 / 10

No issues.

otto_delegation_revoke

78 / 100Clear

Purpose
20 / 20
When to use
10 / 20
Arguments
25 / 25
Return value
8 / 15
Constraints and side effects
10 / 10
Examples
5 / 10

No issues.

otto_delegation_operations

80 / 100Clear

Purpose
20 / 20
When to use
10 / 20
Arguments
25 / 25
Return value
15 / 15
Constraints and side effects
10 / 10
Examples
0 / 10

No issues.

otto_prepare_stock_buy

81 / 100Clear

Purpose
17 / 20
When to use
15 / 20
Arguments
14 / 25
Return value
15 / 15
Constraints and side effects
10 / 10
Examples
10 / 10
  • Major
    Arguments without a description: accountProfile, accountProfile.kind, accountProfile.address, accountProfile.chainId, slippage, slippage.maxBps, client_ref.param_no_description

otto_sponsored_account

82 / 100Clear

Purpose
17 / 20
When to use
15 / 20
Arguments
25 / 25
Return value
15 / 15
Constraints and side effects
10 / 10
Examples
0 / 10

No issues.

otto_delegation_exit

85 / 100Clear

Purpose
20 / 20
When to use
15 / 20
Arguments
25 / 25
Return value
15 / 15
Constraints and side effects
10 / 10
Examples
0 / 10

No issues.

otto_delegation_fence

87 / 100Clear

Purpose
17 / 20
When to use
15 / 20
Arguments
25 / 25
Return value
15 / 15
Constraints and side effects
10 / 10
Examples
5 / 10

No issues.

otto_submit_under_delegation

87 / 100Clear

Purpose
17 / 20
When to use
15 / 20
Arguments
25 / 25
Return value
15 / 15
Constraints and side effects
10 / 10
Examples
5 / 10

No issues.

otto_delegation_status

95 / 100Clear

Purpose
20 / 20
When to use
20 / 20
Arguments
25 / 25
Return value
15 / 15
Constraints and side effects
10 / 10
Examples
5 / 10

No issues.

What static scoring cannot tell

This score reads only the text of each description and schema: it says what is written, not what a model will do. Short tools whose names already say what they do, such as browser_close, score low here even when models use them well, and in our measurements current models chose the right tool in one step even from one-line descriptions, as long as the names and schemas differed. What the text cannot show, such as what happens over several steps and whether an added sentence helps or misleads, is what an evaluation measures, on the Pro and Team plans.

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