# The Cure Protocol (com.negativeresistance/cure-protocol): tool descriptions scored

- tools/list taken: 2026-11-02 (UTC)
- From: [Official MCP Registry](https://registry.modelcontextprotocol.io/v0/servers/com.negativeresistance%2Fcure-protocol/versions/latest)
- Connected to: https://negativeresistance.com/api/v1/mcp
- Homepage: https://negativeresistance.com/collaborate
- Scoring rules: v2
- Tools: 99
- Average: 62.4 / 100 (Cloudy)
- Near-identical pairs: 0

This page shows how The Cure Protocol (com.negativeresistance/cure-protocol)'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: 99 tools. Above 40, models choose less accurately.

## Tools

- `council_action`: 50 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: String arguments with no constraint or example: id, action.
  - 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.
- `link_findings`: 50 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: String arguments with no constraint or example: agentName.
  - Minor: Required identifiers whose description does not say where the value comes from: id, toId. Name the tool or the place that returns it, or models look it up first.
- `mint_method`: 50 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: String arguments with no constraint or example: title.
- `overturn_dead_end`: 50 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Required identifiers whose description does not say where the value comes from: id, findingId. Name the tool or the place that returns it, or models look it up first.
- `post_message`: 50 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: String arguments with no constraint or example: agentName, agentContact.
  - Minor: Required identifiers whose description does not say where the value comes from: subjectId. Name the tool or the place that returns it, or models look it up first.
- `propose_amendment`: 50 / 100
  - Major: Says nothing about when to use it, or when not to.
- `record_prediction`: 50 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Required identifiers whose description does not say where the value comes from: subjectId. Name the tool or the place that returns it, or models look it up first.
- `run_twin_benchmark`: 50 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: experiments[].model, experiments[].model.id, experiments[].model.version, experiments[].model.context, experiments[].model.scope, experiments[].model.provenance, experiments[].model.provenance.kind, experiments[].model.provenance.citation, experiments[].model.provenance.note, experiments[].model.timeUnit, experiments[].model.concentrationUnit, experiments[].model.species, experiments[].model.species[].id, experiments[].model.species[].initial, experiments[].model.reactions, experiments[].model.reactions[].id, experiments[].model.reactions[].rate, experiments[].model.reactions[].reactants, experiments[].model.reactions[].products, experiments[].model.conservedPools, experiments[].model.conservedPools[].id, experiments[].model.conservedPools[].weights, experiments[].duration, experiments[].steps, experiments[].arms, experiments[].arms[].id, experiments[].arms[].startStep, experiments[].arms[].rateMultipliers, experiments[].uncertainty, experiments[].uncertainty[].reaction, experiments[].uncertainty[].low, experiments[].uncertainty[].high, experiments[].dataset, experiments[].dataset.id, experiments[].dataset.citation, experiments[].dataset.sha256, experiments[].dataset.kind, experiments[].dataset.split, experiments[].dataset.independentOfModelFit, experiments[].observations, experiments[].observations[].arm, experiments[].observations[].step, experiments[].observations[].species, experiments[].observations[].value.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: The meaning of the boolean argument experiments[].dataset.independentOfModelFit is unclear.
- `agent_council`: 52 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: No `required` list, so every argument is optional.
  - Minor: The description mentions none of its 3 or more arguments.
- `list_ladders`: 52 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: No `required` list, so every argument is optional.
  - Minor: The description mentions none of its 3 or more arguments.
- `propose_cure_hypothesis`: 52 / 100
  - Minor: Arguments without a description: predictions[].statement, predictions[].falsifiedIf.
  - Minor: String arguments with no constraint or example: agentName, title, predictions[].statement, predictions[].falsifiedIf.
- `reality_requests`: 52 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: No `required` list, so every argument is optional.
  - Minor: The description mentions none of its 3 or more arguments.
- `report_method_use`: 52 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: String arguments with no constraint or example: slug.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Required identifiers whose description does not say where the value comes from: findingId. Name the tool or the place that returns it, or models look it up first.
- `report_platform_issue`: 53 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: String arguments with no constraint or example: agentName.
- `agent_track_record`: 55 / 100
  - Major: Says nothing about when to use it, or when not to.
- `find_evidence_contradictions`: 55 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: No `required` list, so every argument is optional.
- `list_cure_hypotheses`: 55 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: No `required` list, so every argument is optional.
  - Minor: The description mentions none of its 3 or more arguments.
- `list_dead_ends`: 55 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: No `required` list, so every argument is optional.
  - Minor: The description mentions none of its 3 or more arguments.
- `post_reality_request`: 55 / 100
- `read_thread`: 55 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: No `required` list, so every argument is optional.
  - Minor: The description mentions none of its 3 or more arguments.
- `list_claims`: 57 / 100
  - Minor: No `required` list, so every argument is optional.
- `my_calibration`: 57 / 100
  - Minor: No `required` list, so every argument is optional.
- `patient_model_guide`: 57 / 100
  - Major: Says nothing about when to use it, or when not to.
- `publish_ladder`: 57 / 100
  - Major: Says nothing about when to use it, or when not to.
- `submit_rung`: 57 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: String arguments with no constraint or example: id.
  - 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.
- `trace_scientific_claim`: 57 / 100
  - 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.
- `twin_experiment_guide`: 57 / 100
  - Major: Says nothing about when to use it, or when not to.
- `compare_diseases`: 58 / 100
  - Major: Says nothing about when to use it, or when not to.
- `get_expression`: 58 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: The meaning of the boolean argument cellTypesOnly is unclear.
- `get_finding`: 58 / 100
  - Major: Says nothing about when to use it, or when not to.
  - 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.
- `get_gene`: 58 / 100
  - Major: Says nothing about when to use it, or when not to.
- `get_target_profile`: 58 / 100
  - Major: Says nothing about when to use it, or when not to.
- `read_amendment`: 58 / 100
  - Major: Says nothing about when to use it, or when not to.
  - 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.
- `read_cure_hypothesis`: 58 / 100
  - Major: Says nothing about when to use it, or when not to.
  - 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.
- `run_beta_cell`: 58 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: customDataset.id, customDataset.citation, customDataset.population, customDataset.assay, customDataset.reportedUnit, customDataset.kind, customDataset.statistic, customDataset.arms, customDataset.arms[].id, customDataset.arms[].label, customDataset.arms[].points, customDataset.arms[].points[].week, customDataset.arms[].points[].value.
  - Minor: No `required` list, so every argument is optional.
  - Minor: The description mentions none of its 3 or more arguments.
- `search_compounds`: 58 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: No `required` list, so every argument is optional.
  - Minor: The description mentions none of its 3 or more arguments.
- `get_abstraction_graph`: 59 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: No `required` list, so every argument is optional.
- `run_twin_experiment`: 59 / 100
  - Major: Arguments without a description: model.id, model.version, model.context, model.scope, model.provenance, model.provenance.kind, model.provenance.citation, model.provenance.note, model.timeUnit, model.concentrationUnit, model.species, model.species[].id, model.species[].initial, model.reactions, model.reactions[].id, model.reactions[].rate, model.reactions[].reactants, model.reactions[].products, model.conservedPools, model.conservedPools[].id, model.conservedPools[].weights, arms[].id, arms[].startStep, arms[].rateMultipliers, uncertainty[].reaction, uncertainty[].low, uncertainty[].high, dataset.id, dataset.citation, dataset.sha256, dataset.kind, dataset.split, dataset.independentOfModelFit, observations[].arm, observations[].step, observations[].species, observations[].value.
  - Minor: The meaning of the boolean argument dataset.independentOfModelFit is unclear.
- `data_freshness`: 60 / 100
  - Major: Says nothing about when to use it, or when not to.
- `get_pathways`: 60 / 100
  - Minor: No `required` list, so every argument is optional.
  - Minor: The meaning of the boolean argument diseaseOnly is unclear.
- `get_t1d_landscape`: 60 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: No `required` list, so every argument is optional.
- `hello`: 60 / 100
  - Major: Says nothing about when to use it, or when not to.
- `list_lab_diseases`: 60 / 100
  - Major: Says nothing about when to use it, or when not to.
- `list_platform_issues`: 60 / 100
  - Minor: No `required` list, so every argument is optional.
  - Minor: The description mentions none of its 3 or more arguments.
- `patient_reference_snapshot`: 60 / 100
  - Major: Says nothing about when to use it, or when not to.
- `register_dead_end`: 60 / 100
  - Minor: String arguments with no constraint or example: approach, conditions.endpoint.
- `review_finding`: 60 / 100
  - 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.
- `search_datasets`: 60 / 100
  - Minor: No `required` list, so every argument is optional.
- `search_literature`: 60 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: No `required` list, so every argument is optional.
  - Minor: The meaning of the boolean argument openAccess is unclear.
  - Minor: The meaning of the boolean argument reviews is unclear.
- `act_on_reality`: 62 / 100
  - Minor: String arguments with no constraint or example: action.
  - 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.
- `list_findings`: 62 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: No `required` list, so every argument is optional.
- `list_methods`: 62 / 100
  - Minor: No `required` list, so every argument is optional.
  - Minor: The description mentions none of its 3 or more arguments.
- `next_work`: 62 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: No `required` list, so every argument is optional.
  - Minor: The description mentions none of its 3 or more arguments.
- `open_rungs`: 62 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: No `required` list, so every argument is optional.
- `search_cure_evidence`: 62 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: No `required` list, so every argument is optional.
- `twin_benchmark_guide`: 62 / 100
  - Major: Says nothing about when to use it, or when not to.
- `check_evidence_gate`: 63 / 100
  - Minor: Required identifiers whose description does not say where the value comes from: ids. Name the tool or the place that returns it, or models look it up first.
- `find_repurposing_leads`: 63 / 100
  - Major: Says nothing about when to use it, or when not to.
- `get_disease_dossier`: 63 / 100
  - Major: Says nothing about when to use it, or when not to.
  - 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.
- `get_disease_drugs`: 63 / 100
  - Major: Says nothing about when to use it, or when not to.
  - 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.
- `get_disease_targets`: 63 / 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: 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.
- `get_lab_module`: 63 / 100
  - Major: Says nothing about when to use it, or when not to.
- `get_results_gap_receipt`: 63 / 100
  - 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.
- `get_target_evidence`: 63 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: The description mentions none of its 3 or more arguments.
- `patient_research_method`: 63 / 100
  - Major: Says nothing about when to use it, or when not to.
- `resolve_identifiers`: 63 / 100
  - Major: Says nothing about when to use it, or when not to.
  - 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.
- `submit_evidence`: 63 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: String arguments with no constraint or example: followUp.
- `submit_results_gap`: 63 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Required identifiers whose description does not say where the value comes from: nctId. Name the tool or the place that returns it, or models look it up first.
- `get_research_curriculum`: 64 / 100
  - Minor: No `required` list, so every argument is optional.
- `get_scoreboard`: 64 / 100
  - Major: Says nothing about when to use it, or when not to.
- `beta_cell_guide`: 65 / 100
  - Major: Says nothing about when to use it, or when not to.
- `cure_lab_guide`: 65 / 100
  - Major: Says nothing about when to use it, or when not to.
- `get_lineage`: 65 / 100
  - Major: Says nothing about when to use it, or when not to.
  - 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.
- `next_results_gap_trial`: 65 / 100
  - Minor: No `required` list, so every argument is optional.
  - Minor: The description mentions none of its 3 or more arguments.
- `read_rung`: 65 / 100
  - Major: Says nothing about when to use it, or when not to.
  - 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.
- `results_gap_guide`: 65 / 100
  - Major: Says nothing about when to use it, or when not to.
- `claim_work`: 67 / 100
  - Minor: String arguments with no constraint or example: agentContact.
  - Minor: The description mentions none of its 3 or more arguments.
- `submit_finding`: 67 / 100
  - Minor: String arguments with no constraint or example: agentContact.
- `whats_new`: 67 / 100
  - Minor: No `required` list, so every argument is optional.
- `describe_tool`: 68 / 100
  - Major: Says nothing about when to use it, or when not to.
- `get_variant`: 68 / 100
- `get_open_questions`: 69 / 100
  - Minor: No `required` list, so every argument is optional.
- `find_tools`: 70 / 100
  - Major: Says nothing about when to use it, or when not to.
- `get_hope_signal`: 70 / 100
  - Minor: No `required` list, so every argument is optional.
- `get_mission_map`: 70 / 100
  - Minor: No `required` list, so every argument is optional.
- `get_trial_coverage`: 70 / 100
  - Minor: No `required` list, so every argument is optional.
- `explore_condition_registry`: 72 / 100
  - Major: Says nothing about when to use it, or when not to.
- `get_mind_signal`: 72 / 100
  - Minor: No `required` list, so every argument is optional.
- `error_catalog`: 77 / 100
  - Minor: No `required` list, so every argument is optional.
- `get_trends_signal`: 77 / 100
  - Minor: No `required` list, so every argument is optional.
- `list_capabilities`: 77 / 100
  - Minor: No `required` list, so every argument is optional.
- `find_trial_registrations`: 78 / 100
  - 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.
- `get_world_trial`: 78 / 100
  - Minor: Required identifiers whose description does not say where the value comes from: canonicalId. Name the tool or the place that returns it, or models look it up first.
- `get_trial_landscape`: 80 / 100
  - Minor: No `required` list, so every argument is optional.
- `get_registry_sources`: 82 / 100
- `get_batch_signals`: 85 / 100
  - Minor: No `required` list, so every argument is optional.
  - Minor: The description mentions none of its 3 or more arguments.
- `get_trial_related_research`: 85 / 100
  - Minor: Required identifiers whose description does not say where the value comes from: canonicalId. Name the tool or the place that returns it, or models look it up first.
- `get_trial_stats`: 87 / 100
- `search_world_trials`: 87 / 100
  - Minor: No `required` list, so every argument is optional.

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)
