This page shows how Spoolis (com.spoolis/mcp)'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/com.spoolis/mcp
Average score
47.6/ 100Cloudy
Tools
32
Near-identical descriptions
10
Across the server
Minor
32 tools. Above 25, models start to tell tools apart less well.many_tools
Tools whose descriptions are nearly the same
10 of 10 pairs shown, highest description similarity first.
Tool
Tool
Description similarity
Name similarity
list_facts
list_matches
0.71
0.33
list_discrepancies
list_sources
0.70
0.33
list_discrepancies
list_matches
0.70
0.33
get_review
list_discrepancies
0.67
0.00
list_discrepancies
list_facts
0.67
0.33
list_sources
list_matches
0.67
0.33
get_review
list_sources
0.64
0.00
get_review
list_matches
0.64
0.00
list_sources
list_facts
0.64
0.33
get_review
list_facts
0.62
0.00
Tools
open_dispute
35/ 100Rain
Purpose
20 / 20
When to use
0 / 20
Arguments
8 / 25
Return value
0 / 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
Major
Arguments without a description: receipt_id, scope, scope.kind, scope.units, scope.kind, reason, counter_evidence, counter_evidence[].type, counter_evidence[].value.param_no_description
Minor
String arguments with no constraint or example: scope.kind, scope.kind.loose_string_param
Minor
The description mentions none of its 3 or more arguments.params_not_in_description
Minor
Says nothing about what it returns.no_return_info
Minor
Required identifiers whose description does not say where the value comes from: receipt_id. Name the tool or the place that returns it, or models look it up first.id_source_missing
add_source
36/ 100Rain
Purpose
20 / 20
When to use
0 / 20
Arguments
9 / 25
Return value
0 / 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
Major
Arguments without a description: kind, name, config, auth, auth.kind, auth.secret_ref, deletion_semantics, correction_semantics, schema_version, spool_id.param_no_description
Minor
String arguments with no constraint or example: auth.secret_ref.loose_string_param
Minor
The description mentions none of its 3 or more arguments.params_not_in_description
String arguments with no constraint or example: add_conditions[].evidence_requirements[].source.description.loose_string_param
Minor
The description mentions none of its 3 or more arguments.params_not_in_description
Minor
The meaning of the boolean argument add_conditions[].required is unclear.vague_boolean
Minor
Says nothing about what it returns.no_return_info
Minor
Required identifiers whose description does not say where the value comes from: id. Name the tool or the place that returns it, or models look it up first.id_source_missing
decide_review
42/ 100Cloudy
Purpose
20 / 20
When to use
5 / 20
Arguments
10 / 25
Return value
0 / 15
Constraints and side effects
7 / 10
Examples
0 / 10
Major
Arguments without a description: review_id, verdict, reason, counter_evidence, counter_evidence[].type, counter_evidence[].value.param_no_description
Minor
The description mentions none of its 3 or more arguments.params_not_in_description
Minor
Says nothing about what it returns.no_return_info
Minor
Required identifiers whose description does not say where the value comes from: review_id. Name the tool or the place that returns it, or models look it up first.id_source_missing
propose_spool
42/ 100Cloudy
Purpose
20 / 20
When to use
5 / 20
Arguments
10 / 25
Return value
0 / 15
Constraints and side effects
7 / 10
Examples
0 / 10
Major
Arguments without a description: id.param_no_description
Minor
Says nothing about what it returns.no_return_info
Minor
Required identifiers whose description does not say where the value comes from: id. Name the tool or the place that returns it, or models look it up first.id_source_missing
run_matching
42/ 100Cloudy
Purpose
20 / 20
When to use
5 / 20
Arguments
10 / 25
Return value
0 / 15
Constraints and side effects
7 / 10
Examples
0 / 10
Major
Arguments without a description: id.param_no_description
Minor
Says nothing about what it returns.no_return_info
Minor
Required identifiers whose description does not say where the value comes from: id. Name the tool or the place that returns it, or models look it up first.id_source_missing
submit_evidence
42/ 100Cloudy
Purpose
20 / 20
When to use
5 / 20
Arguments
10 / 25
Return value
0 / 15
Constraints and side effects
7 / 10
Examples
0 / 10
Major
Arguments without a description: id, condition_id, type, source, on_behalf_of, provenance, claim_class, metadata.param_no_description
Minor
The description mentions none of its 3 or more arguments.params_not_in_description
Minor
Says nothing about what it returns.no_return_info
Minor
Required identifiers whose description does not say where the value comes from: id, condition_id. Name the tool or the place that returns it, or models look it up first.id_source_missing
abandon_spool
44/ 100Cloudy
Purpose
17 / 20
When to use
10 / 20
Arguments
10 / 25
Return value
0 / 15
Constraints and side effects
7 / 10
Examples
0 / 10
Major
Arguments without a description: id.param_no_description
Minor
Says nothing about what it returns.no_return_info
Minor
Required identifiers whose description does not say where the value comes from: id. Name the tool or the place that returns it, or models look it up first.id_source_missing
get_receipt_status
44/ 100Cloudy
Purpose
20 / 20
When to use
0 / 20
Arguments
10 / 25
Return value
7 / 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
Major
Arguments without a description: receipt_id.param_no_description
Minor
Required identifiers whose description does not say where the value comes from: receipt_id. Name the tool or the place that returns it, or models look it up first.id_source_missing
run_sandbox_scenario
44/ 100Cloudy
Purpose
17 / 20
When to use
10 / 20
Arguments
10 / 25
Return value
0 / 15
Constraints and side effects
7 / 10
Examples
0 / 10
Major
Arguments without a description: scenario, seed, record_count, defect_rate, adversarial_case_count, modeled_cost_per_unit.param_no_description
Minor
Says nothing about what it returns.no_return_info
get_dispute
45/ 100Cloudy
Purpose
20 / 20
When to use
5 / 20
Arguments
10 / 25
Return value
0 / 15
Constraints and side effects
10 / 10
Examples
0 / 10
Major
Arguments without a description: dispute_id.param_no_description
Minor
Says nothing about what it returns.no_return_info
Minor
Required identifiers whose description does not say where the value comes from: dispute_id. Name the tool or the place that returns it, or models look it up first.id_source_missing
get_review
45/ 100Cloudy
Purpose
20 / 20
When to use
5 / 20
Arguments
10 / 25
Return value
0 / 15
Constraints and side effects
10 / 10
Examples
0 / 10
Major
Arguments without a description: review_id.param_no_description
Minor
Its description is nearly the same as list_discrepancies's (similarity 0.67); only the names and schemas tell them apart. Say in this description when to use list_discrepancies instead.confusable_pair
Minor
Its description is nearly the same as list_sources's (similarity 0.64); only the names and schemas tell them apart. Say in this description when to use list_sources instead.confusable_pair
Minor
Its description is nearly the same as list_matches's (similarity 0.64); only the names and schemas tell them apart. Say in this description when to use list_matches instead.confusable_pair
Minor
Its description is nearly the same as list_facts's (similarity 0.62); only the names and schemas tell them apart. Say in this description when to use list_facts instead.confusable_pair
Minor
Says nothing about what it returns.no_return_info
Minor
Required identifiers whose description does not say where the value comes from: review_id. Name the tool or the place that returns it, or models look it up first.id_source_missing
get_spool
45/ 100Cloudy
Purpose
20 / 20
When to use
5 / 20
Arguments
10 / 25
Return value
0 / 15
Constraints and side effects
10 / 10
Examples
0 / 10
Major
Arguments without a description: id.param_no_description
Minor
Says nothing about what it returns.no_return_info
Minor
Required identifiers whose description does not say where the value comes from: id. Name the tool or the place that returns it, or models look it up first.id_source_missing
get_spool_events
45/ 100Cloudy
Purpose
20 / 20
When to use
5 / 20
Arguments
10 / 25
Return value
0 / 15
Constraints and side effects
10 / 10
Examples
0 / 10
Major
Arguments without a description: id.param_no_description
Minor
Says nothing about what it returns.no_return_info
Minor
Required identifiers whose description does not say where the value comes from: id. Name the tool or the place that returns it, or models look it up first.id_source_missing
list_discrepancies
45/ 100Cloudy
Purpose
20 / 20
When to use
5 / 20
Arguments
10 / 25
Return value
0 / 15
Constraints and side effects
10 / 10
Examples
0 / 10
Major
Arguments without a description: id.param_no_description
Minor
Its description is nearly the same as list_sources's (similarity 0.70); only the names and schemas tell them apart. Say in this description when to use list_sources instead.confusable_pair
Minor
Its description is nearly the same as list_matches's (similarity 0.70); only the names and schemas tell them apart. Say in this description when to use list_matches instead.confusable_pair
Minor
Its description is nearly the same as get_review's (similarity 0.67); only the names and schemas tell them apart. Say in this description when to use get_review instead.confusable_pair
Minor
Its description is nearly the same as list_facts's (similarity 0.67); only the names and schemas tell them apart. Say in this description when to use list_facts instead.confusable_pair
Minor
Says nothing about what it returns.no_return_info
Minor
Required identifiers whose description does not say where the value comes from: id. Name the tool or the place that returns it, or models look it up first.id_source_missing
list_facts
45/ 100Cloudy
Purpose
20 / 20
When to use
5 / 20
Arguments
10 / 25
Return value
0 / 15
Constraints and side effects
10 / 10
Examples
0 / 10
Major
Arguments without a description: id.param_no_description
Minor
Its description is nearly the same as list_matches's (similarity 0.71); only the names and schemas tell them apart. Say in this description when to use list_matches instead.confusable_pair
Minor
Its description is nearly the same as list_discrepancies's (similarity 0.67); only the names and schemas tell them apart. Say in this description when to use list_discrepancies instead.confusable_pair
Minor
Its description is nearly the same as list_sources's (similarity 0.64); only the names and schemas tell them apart. Say in this description when to use list_sources instead.confusable_pair
Minor
Its description is nearly the same as get_review's (similarity 0.62); only the names and schemas tell them apart. Say in this description when to use get_review instead.confusable_pair
Minor
Says nothing about what it returns.no_return_info
Minor
Required identifiers whose description does not say where the value comes from: id. Name the tool or the place that returns it, or models look it up first.id_source_missing
list_matches
45/ 100Cloudy
Purpose
20 / 20
When to use
5 / 20
Arguments
10 / 25
Return value
0 / 15
Constraints and side effects
10 / 10
Examples
0 / 10
Major
Arguments without a description: id.param_no_description
Minor
Its description is nearly the same as list_facts's (similarity 0.71); only the names and schemas tell them apart. Say in this description when to use list_facts instead.confusable_pair
Minor
Its description is nearly the same as list_discrepancies's (similarity 0.70); only the names and schemas tell them apart. Say in this description when to use list_discrepancies instead.confusable_pair
Minor
Its description is nearly the same as list_sources's (similarity 0.67); only the names and schemas tell them apart. Say in this description when to use list_sources instead.confusable_pair
Minor
Its description is nearly the same as get_review's (similarity 0.64); only the names and schemas tell them apart. Say in this description when to use get_review instead.confusable_pair
Minor
Says nothing about what it returns.no_return_info
Minor
Required identifiers whose description does not say where the value comes from: id. Name the tool or the place that returns it, or models look it up first.id_source_missing
resolve_discrepancy
45/ 100Cloudy
Purpose
20 / 20
When to use
5 / 20
Arguments
10 / 25
Return value
0 / 15
Constraints and side effects
10 / 10
Examples
0 / 10
Major
Arguments without a description: discrepancy_id, outcome, resolved_by, superseding_receipt_id.param_no_description
Minor
Says nothing about what it returns.no_return_info
Minor
Required identifiers whose description does not say where the value comes from: discrepancy_id. Name the tool or the place that returns it, or models look it up first.id_source_missing
sync_source
45/ 100Cloudy
Purpose
20 / 20
When to use
5 / 20
Arguments
10 / 25
Return value
0 / 15
Constraints and side effects
10 / 10
Examples
0 / 10
Major
Arguments without a description: id.param_no_description
Minor
Says nothing about what it returns.no_return_info
Minor
Required identifiers whose description does not say where the value comes from: id. Name the tool or the place that returns it, or models look it up first.id_source_missing
request_review
46/ 100Cloudy
Purpose
20 / 20
When to use
10 / 20
Arguments
9 / 25
Return value
0 / 15
Constraints and side effects
7 / 10
Examples
0 / 10
Major
Arguments without a description: receipt_id, scope, scope.kind, scope.units, scope.kind, reviewer, reviewer.subject, reviewer.role, reviewer.display_name, reviewer.email, deadline_at, on_timeout.param_no_description
Minor
String arguments with no constraint or example: scope.kind, scope.kind.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: receipt_id. Name the tool or the place that returns it, or models look it up first.id_source_missing
accept_spool
47/ 100Cloudy
Purpose
20 / 20
When to use
10 / 20
Arguments
10 / 25
Return value
0 / 15
Constraints and side effects
7 / 10
Examples
0 / 10
Major
Arguments without a description: id, quote_digest.param_no_description
Minor
Says nothing about what it returns.no_return_info
Minor
Required identifiers whose description does not say where the value comes from: id. Name the tool or the place that returns it, or models look it up first.id_source_missing
decline_spool
47/ 100Cloudy
Purpose
20 / 20
When to use
10 / 20
Arguments
10 / 25
Return value
0 / 15
Constraints and side effects
7 / 10
Examples
0 / 10
Major
Arguments without a description: id.param_no_description
Minor
Says nothing about what it returns.no_return_info
Minor
Required identifiers whose description does not say where the value comes from: id. Name the tool or the place that returns it, or models look it up first.id_source_missing
open_discrepancy
51/ 100Cloudy
Purpose
20 / 20
When to use
15 / 20
Arguments
9 / 25
Return value
0 / 15
Constraints and side effects
7 / 10
Examples
0 / 10
Major
Arguments without a description: id, receipt_id, unit, kind, expected, observed, explanation, links, links.review_request_id, links.dispute_id, links.match_ids, sandbox_session_id.param_no_description
Minor
String arguments with no constraint or example: sandbox_session_id.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: id. Name the tool or the place that returns it, or models look it up first.id_source_missing
cancel_spool
52/ 100Cloudy
Purpose
20 / 20
When to use
15 / 20
Arguments
10 / 25
Return value
0 / 15
Constraints and side effects
7 / 10
Examples
0 / 10
Major
Arguments without a description: id.param_no_description
Minor
Says nothing about what it returns.no_return_info
Minor
Required identifiers whose description does not say where the value comes from: id. Name the tool or the place that returns it, or models look it up first.id_source_missing
commit_payment
55/ 100Cloudy
Purpose
20 / 20
When to use
15 / 20
Arguments
10 / 25
Return value
0 / 15
Constraints and side effects
10 / 10
Examples
0 / 10
Major
Arguments without a description: id.param_no_description
Minor
Says nothing about what it returns.no_return_info
Minor
Required identifiers whose description does not say where the value comes from: id. Name the tool or the place that returns it, or models look it up first.id_source_missing
compile_spool
56/ 100Cloudy
Purpose
17 / 20
When to use
15 / 20
Arguments
10 / 25
Return value
7 / 15
Constraints and side effects
7 / 10
Examples
0 / 10
Major
Arguments without a description: source.param_no_description
verify_spool
56/ 100Cloudy
Purpose
17 / 20
When to use
15 / 20
Arguments
10 / 25
Return value
7 / 15
Constraints and side effects
7 / 10
Examples
0 / 10
Major
Arguments without a description: id, confirmations, confirmations[].condition_id, confirmations[].method, confirmations[].outcome, confirmations[].evidence_refs, confirmations[].detail.param_no_description
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: id. Name the tool or the place that returns it, or models look it up first.id_source_missing
complete_spool
57/ 100Cloudy
Purpose
20 / 20
When to use
10 / 20
Arguments
10 / 25
Return value
7 / 15
Constraints and side effects
10 / 10
Examples
0 / 10
Major
Arguments without a description: id.param_no_description
Minor
Required identifiers whose description does not say where the value comes from: id. Name the tool or the place that returns it, or models look it up first.id_source_missing
verify_result
57/ 100Cloudy
Purpose
20 / 20
When to use
10 / 20
Arguments
10 / 25
Return value
7 / 15
Constraints and side effects
10 / 10
Examples
0 / 10
Major
Arguments without a description: gated_action, gated_action_note, conditions, recipe, recipe.slug, recipe.hash, max_amount_cents, unit, unit.total_units, unit.unit_amount_cents, unit.identity, unit.identity.key, unit.identity.visibility, evidence, evidence.type, evidence.rows, evidence.payload, evidence.provenance, settlement, idempotency_key.param_no_description
create_counterparty_invite
60/ 100Cloudy
Purpose
20 / 20
When to use
20 / 20
Arguments
10 / 25
Return value
0 / 15
Constraints and side effects
10 / 10
Examples
0 / 10
Major
Arguments without a description: id.param_no_description
Minor
Says nothing about what it returns.no_return_info
Minor
Required identifiers whose description does not say where the value comes from: id. Name the tool or the place that returns it, or models look it up first.id_source_missing
list_sources
60/ 100Cloudy
Purpose
20 / 20
When to use
5 / 20
Arguments
25 / 25
Return value
0 / 15
Constraints and side effects
10 / 10
Examples
0 / 10
Minor
Its description is nearly the same as list_discrepancies's (similarity 0.70); only the names and schemas tell them apart. Say in this description when to use list_discrepancies instead.confusable_pair
Minor
Its description is nearly the same as list_matches's (similarity 0.67); only the names and schemas tell them apart. Say in this description when to use list_matches instead.confusable_pair
Minor
Its description is nearly the same as get_review's (similarity 0.64); only the names and schemas tell them apart. Say in this description when to use get_review instead.confusable_pair
Minor
Its description is nearly the same as list_facts's (similarity 0.64); only the names and schemas tell them apart. Say in this description when to use list_facts instead.confusable_pair
String arguments with no constraint or example: value.currency, deliverable.description, conditions[].evidence_requirements[].source.description.loose_string_param
Minor
The meaning of the boolean argument conditions[].required is unclear.vague_boolean
Minor
The meaning of the boolean argument finality.reopen.allowed is unclear.vague_boolean
Minor
The meaning of the boolean argument finality.correction.allowed is unclear.vague_boolean
Minor
The meaning of the boolean argument finality.correction.requires_authority is unclear.vague_boolean
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.