This page shows how DatoQA (dev.workers.bhazarstudio.datoqa/datoqa)'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/dev.workers.bhazarstudio.datoqa/datoqa
Average score
61.2/ 100Cloudy
Tools
28
Near-identical descriptions
0
Across the server
Minor
28 tools. Above 25, models start to tell tools apart less well.many_tools
Tools
search_recalls
47/ 100Cloudy
Purpose
20 / 20
When to use
5 / 20
Arguments
4 / 25
Return value
8 / 15
Constraints and side effects
10 / 10
Examples
0 / 10
Major
Arguments without a description: query, limit, scope, gtin, from, to, offset.param_no_description
Minor
String arguments with no constraint or example: gtin.loose_string_param
Minor
No `required` list, so every argument is optional.no_required
get_exchange_rates
54/ 100Cloudy
Purpose
14 / 20
When to use
0 / 20
Arguments
20 / 25
Return value
8 / 15
Constraints and side effects
7 / 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
get_evidence
55/ 100Cloudy
Purpose
17 / 20
When to use
0 / 20
Arguments
23 / 25
Return value
8 / 15
Constraints and side effects
7 / 10
Examples
0 / 10
Major
Says nothing about when to use it, or when not to.no_usage_context
get_record
55/ 100Cloudy
Purpose
17 / 20
When to use
0 / 20
Arguments
23 / 25
Return value
8 / 15
Constraints and side effects
7 / 10
Examples
0 / 10
Major
Says nothing about when to use it, or when not to.no_usage_context
get_weather
55/ 100Cloudy
Purpose
17 / 20
When to use
0 / 20
Arguments
23 / 25
Return value
8 / 15
Constraints and side effects
7 / 10
Examples
0 / 10
Major
Says nothing about when to use it, or when not to.no_usage_context
list_interest_rate_series
55/ 100Cloudy
Purpose
17 / 20
When to use
0 / 20
Arguments
20 / 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
Minor
No `required` list, so every argument is optional.no_required
list_countries
57/ 100Cloudy
Purpose
17 / 20
When to use
0 / 20
Arguments
25 / 25
Return value
8 / 15
Constraints and side effects
7 / 10
Examples
0 / 10
Major
Says nothing about when to use it, or when not to.no_usage_context
list_economic_indicators
57/ 100Cloudy
Purpose
17 / 20
When to use
0 / 20
Arguments
25 / 25
Return value
8 / 15
Constraints and side effects
7 / 10
Examples
0 / 10
Major
Says nothing about when to use it, or when not to.no_usage_context
list_historical_indicators
57/ 100Cloudy
Purpose
17 / 20
When to use
0 / 20
Arguments
25 / 25
Return value
8 / 15
Constraints and side effects
7 / 10
Examples
0 / 10
Major
Says nothing about when to use it, or when not to.no_usage_context
list_us_economic_indicators
57/ 100Cloudy
Purpose
17 / 20
When to use
0 / 20
Arguments
25 / 25
Return value
8 / 15
Constraints and side effects
7 / 10
Examples
0 / 10
Major
Says nothing about when to use it, or when not to.no_usage_context
list_weather_locations
57/ 100Cloudy
Purpose
17 / 20
When to use
0 / 20
Arguments
25 / 25
Return value
8 / 15
Constraints and side effects
7 / 10
Examples
0 / 10
Major
Says nothing about when to use it, or when not to.no_usage_context
convert_currency_batch
58/ 100Cloudy
Purpose
20 / 20
When to use
5 / 20
Arguments
11 / 25
Return value
15 / 15
Constraints and side effects
7 / 10
Examples
0 / 10
Major
Arguments without a description: rows, rows[].id, rows[].date, rows[].currency, rows[].amount, rounding, target_currency.param_no_description
Minor
String arguments with no constraint or example: rows[].date.loose_string_param
get_economic_indicators
58/ 100Cloudy
Purpose
17 / 20
When to use
0 / 20
Arguments
21 / 25
Return value
8 / 15
Constraints and side effects
7 / 10
Examples
5 / 10
Major
Says nothing about when to use it, or when not to.no_usage_context
Minor
The description mentions none of its 3 or more arguments.params_not_in_description
String arguments with no constraint or example: options.document_mode, options.table_mode.loose_string_param
Minor
The meaning of the boolean argument options.ocr is unclear.vague_boolean
Minor
Required identifiers whose description does not say where the value comes from: purchase_id. Name the tool or the place that returns it, or models look it up first.id_source_missing
get_historical_indicators
60/ 100Cloudy
Purpose
17 / 20
When to use
0 / 20
Arguments
23 / 25
Return value
8 / 15
Constraints and side effects
7 / 10
Examples
5 / 10
Major
Says nothing about when to use it, or when not to.no_usage_context
get_us_economic_indicators
60/ 100Cloudy
Purpose
17 / 20
When to use
0 / 20
Arguments
20 / 25
Return value
8 / 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
list_exchange_rate_history
60/ 100Cloudy
Purpose
20 / 20
When to use
0 / 20
Arguments
25 / 25
Return value
8 / 15
Constraints and side effects
7 / 10
Examples
0 / 10
Major
Says nothing about when to use it, or when not to.no_usage_context
validate_table
61/ 100Cloudy
Purpose
20 / 20
When to use
15 / 20
Arguments
11 / 25
Return value
8 / 15
Constraints and side effects
7 / 10
Examples
0 / 10
Major
Arguments without a description: format, columns, columns[].name, columns[].type, columns[].required, columns[].nullable, columns[].trim, columns[].uppercase, columns[].decimal_separator, columns[].date_format, columns[].allowed_values, csv, rows, delimiter, null_token, unique_by.param_no_description
Minor
The meaning of the boolean argument columns[].required is unclear.vague_boolean
Minor
The meaning of the boolean argument columns[].nullable is unclear.vague_boolean
Minor
The meaning of the boolean argument columns[].trim is unclear.vague_boolean
Minor
The meaning of the boolean argument columns[].uppercase is unclear.vague_boolean
get_interest_rates
62/ 100Cloudy
Purpose
20 / 20
When to use
0 / 20
Arguments
22 / 25
Return value
8 / 15
Constraints and side effects
7 / 10
Examples
5 / 10
Major
Says nothing about when to use it, or when not to.no_usage_context
get_earthquakes
64/ 100Cloudy
Purpose
17 / 20
When to use
5 / 20
Arguments
20 / 25
Return value
15 / 15
Constraints and side effects
7 / 10
Examples
0 / 10
Minor
No `required` list, so every argument is optional.no_required
get_exchange_rate_history
65/ 100Cloudy
Purpose
17 / 20
When to use
0 / 20
Arguments
21 / 25
Return value
15 / 15
Constraints and side effects
7 / 10
Examples
5 / 10
Major
Says nothing about when to use it, or when not to.no_usage_context
The meaning of the boolean argument left.table.columns[].required is unclear.vague_boolean
Minor
The meaning of the boolean argument left.table.columns[].nullable is unclear.vague_boolean
Minor
The meaning of the boolean argument left.table.columns[].trim is unclear.vague_boolean
Minor
The meaning of the boolean argument left.table.columns[].uppercase is unclear.vague_boolean
Minor
The meaning of the boolean argument right.table.columns[].required is unclear.vague_boolean
Minor
The meaning of the boolean argument right.table.columns[].nullable is unclear.vague_boolean
Minor
The meaning of the boolean argument right.table.columns[].trim is unclear.vague_boolean
Minor
The meaning of the boolean argument right.table.columns[].uppercase is unclear.vague_boolean
list_holiday_regions
67/ 100Cloudy
Purpose
17 / 20
When to use
10 / 20
Arguments
25 / 25
Return value
8 / 15
Constraints and side effects
7 / 10
Examples
0 / 10
No issues.
get_public_holidays
70/ 100Clear
Purpose
20 / 20
When to use
10 / 20
Arguments
20 / 25
Return value
8 / 15
Constraints and side effects
7 / 10
Examples
5 / 10
No issues.
list_sources
70/ 100Clear
Purpose
20 / 20
When to use
5 / 20
Arguments
20 / 25
Return value
15 / 15
Constraints and side effects
10 / 10
Examples
0 / 10
Minor
No `required` list, so every argument is optional.no_required
get_indicators
72/ 100Clear
Purpose
17 / 20
When to use
5 / 20
Arguments
23 / 25
Return value
15 / 15
Constraints and side effects
7 / 10
Examples
5 / 10
Minor
The description mentions none of its 3 or more arguments.params_not_in_description
list_topics
77/ 100Clear
Purpose
20 / 20
When to use
5 / 20
Arguments
25 / 25
Return value
15 / 15
Constraints and side effects
7 / 10
Examples
5 / 10
No issues.
catalog
80/ 100Clear
Purpose
20 / 20
When to use
10 / 20
Arguments
20 / 25
Return value
15 / 15
Constraints and side effects
10 / 10
Examples
5 / 10
Minor
No `required` list, so every argument is optional.no_required
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.