This page shows how TestGraph (io.github.BBCBasic/testgraph)'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/io.github.BBCBasic/testgraph
Average score
51.9/ 100Cloudy
Tools
37
Near-identical descriptions
4
Across the server
Minor
37 tools. Above 25, models start to tell tools apart less well.many_tools
Minor
The server's instructions are 6673 characters. Claude Code reads only the first 2,048 by default (Codex 0.154.0 reads them whole). Put what the server is for first.instructions_long
Tools whose descriptions are nearly the same
4 of 4 pairs shown, highest description similarity first.
Tool
Tool
Description similarity
Name similarity
list_root_subject_types
list_child_subject_types
0.86
0.60
correct_subject_fact
assert_location
0.69
0.00
vocabulary_index
list_root_subject_types
0.66
0.00
vocabulary_index
list_child_subject_types
0.65
0.00
Tools
retire_type_relationship
31/ 100Rain
Purpose
17 / 20
When to use
0 / 20
Arguments
7 / 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: source_type, relationship, target_type, reason.param_no_description
Minor
String arguments with no constraint or example: source_type, target_type.loose_string_param
Minor
Says nothing about what it returns.no_return_info
resolve_subject_type
32/ 100Rain
Purpose
20 / 20
When to use
0 / 20
Arguments
5 / 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: term.param_no_description
Minor
String arguments with no constraint or example: term.loose_string_param
Minor
Says nothing about what it returns.no_return_info
fetch
34/ 100Rain
Purpose
17 / 20
When to use
0 / 20
Arguments
10 / 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: 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
resolve_location_assertion
34/ 100Rain
Purpose
17 / 20
When to use
0 / 20
Arguments
10 / 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: assertion_id, decision, rationale, user_approved, idempotency_key.param_no_description
Minor
The description mentions none of its 3 or more arguments.params_not_in_description
Minor
The meaning of the boolean argument user_approved 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: assertion_id. Name the tool or the place that returns it, or models look it up first.id_source_missing
reopen_subject_classification
36/ 100Rain
Purpose
14 / 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: subject_id, trigger, reason, evidence, user_approved.param_no_description
Minor
The meaning of the boolean argument user_approved 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: subject_id. Name the tool or the place that returns it, or models look it up first.id_source_missing
claim_deliberation
37/ 100Rain
Purpose
17 / 20
When to use
0 / 20
Arguments
10 / 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
Major
Arguments without a description: deliberation_id, source_model, idempotency_key.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: deliberation_id. Name the tool or the place that returns it, or models look it up first.id_source_missing
get_subject_classification
39/ 100Rain
Purpose
17 / 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: subject_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: subject_id. Name the tool or the place that returns it, or models look it up first.id_source_missing
list_my_workflows
39/ 100Rain
Purpose
17 / 20
When to use
5 / 20
Arguments
7 / 25
Return value
0 / 15
Constraints and side effects
10 / 10
Examples
0 / 10
Major
Arguments without a description: limit.param_no_description
Minor
No `required` list, so every argument is optional.no_required
Minor
Says nothing about what it returns.no_return_info
get_location_assertions
41/ 100Cloudy
Purpose
17 / 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: subject_id.param_no_description
Minor
Required identifiers whose description does not say where the value comes from: subject_id. Name the tool or the place that returns it, or models look it up first.id_source_missing
list_my_mcp_interactions
41/ 100Cloudy
Purpose
17 / 20
When to use
0 / 20
Arguments
7 / 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
Major
Arguments without a description: limit.param_no_description
Minor
No `required` list, so every argument is optional.no_required
get_deliberation
42/ 100Cloudy
Purpose
20 / 20
When to use
5 / 20
Arguments
7 / 25
Return value
0 / 15
Constraints and side effects
10 / 10
Examples
0 / 10
Major
Arguments without a description: id, canonical_key.param_no_description
Minor
No `required` list, so every argument is optional.no_required
Minor
Says nothing about what it returns.no_return_info
list_open_deliberations
42/ 100Cloudy
Purpose
20 / 20
When to use
0 / 20
Arguments
12 / 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
Major
Arguments without a description: unclaimed_only, limit.param_no_description
Minor
No `required` list, so every argument is optional.no_required
Minor
The meaning of the boolean argument unclaimed_only is unclear.vague_boolean
Minor
Says nothing about what it returns.no_return_info
record_resolution
44/ 100Cloudy
Purpose
20 / 20
When to use
5 / 20
Arguments
9 / 25
Return value
0 / 15
Constraints and side effects
10 / 10
Examples
0 / 10
Major
Arguments without a description: deliberation_id, resolution, rationale, accepted_contribution_ids, unresolved_points, user_approved, idempotency_key.param_no_description
Minor
String arguments with no constraint or example: rationale.loose_string_param
Minor
The meaning of the boolean argument user_approved is unclear.vague_boolean
Minor
Says nothing about what it returns.no_return_info
set_review_visibility
44/ 100Cloudy
Purpose
17 / 20
When to use
0 / 20
Arguments
10 / 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
Major
Arguments without a description: experience_id, visibility.param_no_description
Minor
Required identifiers whose description does not say where the value comes from: experience_id. Name the tool or the place that returns it, or models look it up first.id_source_missing
register_field
47/ 100Cloudy
Purpose
20 / 20
When to use
15 / 20
Arguments
5 / 25
Return value
0 / 15
Constraints and side effects
7 / 10
Examples
0 / 10
Major
Arguments without a description: canonical_name, json_schema, description, aliases, subject_types.param_no_description
Minor
String arguments with no constraint or example: canonical_name, description.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
submit_contribution
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: deliberation_id, contribution_type, content, evidence, confidence, unresolved_points, responds_to_contribution_ids, source_model, idempotency_key.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: deliberation_id. Name the tool or the place that returns it, or models look it up first.id_source_missing
resolve_subject
48/ 100Cloudy
Purpose
17 / 20
When to use
10 / 20
Arguments
6 / 25
Return value
0 / 15
Constraints and side effects
10 / 10
Examples
5 / 10
Major
Arguments without a description: subject_type, canonical_key, name, identifier_value, identifier_key, limit.param_no_description
Minor
String arguments with no constraint or example: subject_type.loose_string_param
Minor
No `required` list, so every argument is optional.no_required
Minor
Says nothing about what it returns.no_return_info
create_deliberation
52/ 100Cloudy
Purpose
20 / 20
When to use
5 / 20
Arguments
12 / 25
Return value
0 / 15
Constraints and side effects
10 / 10
Examples
5 / 10
Major
Arguments without a description: canonical_key, title, question, context, constraints, acceptance_criteria, idempotency_key.param_no_description
Minor
Says nothing about what it returns.no_return_info
delete_experience
52/ 100Cloudy
Purpose
17 / 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, delete_orphan_subject, confirm_deletion, idempotency_key.param_no_description
Minor
The description mentions none of its 3 or more arguments.params_not_in_description
Minor
The meaning of the boolean argument delete_orphan_subject is unclear.vague_boolean
Minor
The meaning of the boolean argument confirm_deletion 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
register_subject_type_alias
52/ 100Cloudy
Purpose
20 / 20
When to use
20 / 20
Arguments
5 / 25
Return value
0 / 15
Constraints and side effects
7 / 10
Examples
0 / 10
Major
Arguments without a description: subject_type, alias.param_no_description
Minor
String arguments with no constraint or example: subject_type, alias.loose_string_param
Minor
Says nothing about what it returns.no_return_info
affirm_subject_classification
53/ 100Cloudy
Purpose
20 / 20
When to use
10 / 20
Arguments
13 / 25
Return value
0 / 15
Constraints and side effects
10 / 10
Examples
0 / 10
Major
Arguments without a description: subject_id, reason, evidence, evidence_fingerprint.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: subject_id. Name the tool or the place that returns it, or models look it up first.id_source_missing
list_reviews_by_visibility
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: visibility.param_no_description
propose_subject_reclassification
57/ 100Cloudy
Purpose
20 / 20
When to use
15 / 20
Arguments
12 / 25
Return value
0 / 15
Constraints and side effects
10 / 10
Examples
0 / 10
Major
Arguments without a description: subject_id, target_subject_type, reason, evidence, evidence_fingerprint.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: subject_id. Name the tool or the place that returns it, or models look it up first.id_source_missing
list_root_subject_types
58/ 100Cloudy
Purpose
20 / 20
When to use
20 / 20
Arguments
4 / 25
Return value
7 / 15
Constraints and side effects
7 / 10
Examples
0 / 10
Major
Arguments without a description: limit, cursor, relationship.param_no_description
Minor
Its description is nearly the same as list_child_subject_types's (similarity 0.86); only the names and schemas tell them apart. Say in this description when to use list_child_subject_types instead.confusable_pair
Minor
Its description is nearly the same as vocabulary_index's (similarity 0.66); only the names and schemas tell them apart. Say in this description when to use vocabulary_index instead.confusable_pair
Minor
String arguments with no constraint or example: cursor.loose_string_param
Minor
No `required` list, so every argument is optional.no_required
list_child_subject_types
59/ 100Cloudy
Purpose
17 / 20
When to use
20 / 20
Arguments
8 / 25
Return value
7 / 15
Constraints and side effects
7 / 10
Examples
0 / 10
Major
Arguments without a description: parent, limit, cursor, relationship.param_no_description
Minor
Its description is nearly the same as list_root_subject_types's (similarity 0.86); only the names and schemas tell them apart. Say in this description when to use list_root_subject_types instead.confusable_pair
Minor
Its description is nearly the same as vocabulary_index's (similarity 0.65); only the names and schemas tell them apart. Say in this description when to use vocabulary_index instead.confusable_pair
Minor
String arguments with no constraint or example: cursor.loose_string_param
Minor
Required identifiers whose description does not say where the value comes from: parent. Name the tool or the place that returns it, or models look it up first.id_source_missing
set_type_relationship
59/ 100Cloudy
Purpose
20 / 20
When to use
20 / 20
Arguments
7 / 25
Return value
0 / 15
Constraints and side effects
7 / 10
Examples
5 / 10
Major
Arguments without a description: source_type, relationship, target_type, peer_decision, peer_decision.decision, peer_decision.reason.param_no_description
Minor
String arguments with no constraint or example: source_type, target_type.loose_string_param
Minor
Says nothing about what it returns.no_return_info
assert_location
61/ 100Cloudy
Purpose
20 / 20
When to use
15 / 20
Arguments
9 / 25
Return value
7 / 15
Constraints and side effects
10 / 10
Examples
0 / 10
Major
Arguments without a description: subject_id, predicate, object_place, object_place.subject_id, object_place.name, object_place.canonical_key, object_place.identifiers, object_place.place_kind, value, qualifiers, source, observed_at, valid_from, valid_to, visibility, idempotency_key.param_no_description
Minor
Its description is nearly the same as correct_subject_fact's (similarity 0.69); only the names and schemas tell them apart. Say in this description when to use correct_subject_fact instead.confusable_pair
Minor
String arguments with no constraint or example: object_place.name, object_place.canonical_key, object_place.place_kind.loose_string_param
Minor
Required identifiers whose description does not say where the value comes from: subject_id. Name the tool or the place that returns it, or models look it up first.id_source_missing
search
61/ 100Cloudy
Purpose
20 / 20
When to use
20 / 20
Arguments
7 / 25
Return value
7 / 15
Constraints and side effects
7 / 10
Examples
0 / 10
Major
Arguments without a description: query, subject_type, include_related, limit.param_no_description
Minor
String arguments with no constraint or example: subject_type.loose_string_param
Minor
No `required` list, so every argument is optional.no_required
Minor
The meaning of the boolean argument include_related is unclear.vague_boolean
resolve_subject_hierarchy
62/ 100Cloudy
Purpose
20 / 20
When to use
20 / 20
Arguments
10 / 25
Return value
0 / 15
Constraints and side effects
7 / 10
Examples
5 / 10
Major
Arguments without a description: terms, peer_decisions, peer_decisions[].term, peer_decisions[].decision, peer_decisions[].existing_type, peer_decisions[].reason, peer_decisions[].term, peer_decisions[].decision, peer_decisions[].reason.param_no_description
Minor
Says nothing about what it returns.no_return_info
correct_subject_fact
64/ 100Cloudy
Purpose
20 / 20
When to use
15 / 20
Arguments
12 / 25
Return value
7 / 15
Constraints and side effects
10 / 10
Examples
0 / 10
Major
Arguments without a description: subject_id, field_root, expected_value, corrected_value, evidence_sources, reason, idempotency_key.param_no_description
Minor
Its description is nearly the same as assert_location's (similarity 0.69); only the names and schemas tell them apart. Say in this description when to use assert_location instead.confusable_pair
get_subject_type_path
64/ 100Cloudy
Purpose
20 / 20
When to use
20 / 20
Arguments
10 / 25
Return value
7 / 15
Constraints and side effects
7 / 10
Examples
0 / 10
Major
Arguments without a description: subject_type, relationship.param_no_description
save_assessment
64/ 100Cloudy
Purpose
20 / 20
When to use
20 / 20
Arguments
7 / 25
Return value
7 / 15
Constraints and side effects
10 / 10
Examples
0 / 10
Major
Arguments without a description: experience_id, assessment_type, evidence, analysis, conclusion, confidence, source_model, idempotency_key.param_no_description
Minor
String arguments with no constraint or example: assessment_type, conclusion, source_model.loose_string_param
Minor
Required identifiers whose description does not say where the value comes from: experience_id. Name the tool or the place that returns it, or models look it up first.id_source_missing
get_induction
68/ 100Cloudy
Purpose
17 / 20
When to use
15 / 20
Arguments
22 / 25
Return value
7 / 15
Constraints and side effects
7 / 10
Examples
0 / 10
Minor
No `required` list, so every argument is optional.no_required
vocabulary_index
69/ 100Cloudy
Purpose
17 / 20
When to use
20 / 20
Arguments
25 / 25
Return value
0 / 15
Constraints and side effects
7 / 10
Examples
0 / 10
Minor
Its description is nearly the same as list_root_subject_types's (similarity 0.66); only the names and schemas tell them apart. Say in this description when to use list_root_subject_types instead.confusable_pair
Minor
Its description is nearly the same as list_child_subject_types's (similarity 0.65); only the names and schemas tell them apart. Say in this description when to use list_child_subject_types instead.confusable_pair
The description is long (536 words). It helps selection but costs steps and tokens.too_long
Minor
String arguments with no constraint or example: subject_type, canonical_key, subject_context.subjects[].subject_type, subject_context.subjects[].name, subject_context.subjects[].canonical_key, subject_context.relationships[].source_ref, subject_context.relationships[].relationship, subject_context.relationships[].target_ref.loose_string_param
Minor
The meaning of the boolean argument collection_assessment.refresh_manifest is unclear.vague_boolean
Minor
The meaning of the boolean argument collection_assessment.source_manifest.source_pages[].terminal 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.