# xyz.pflow.sim/whatif: tool descriptions scored

- tools/list taken: 2026-11-02 (UTC)
- From: [Official MCP Registry](https://registry.modelcontextprotocol.io/v0/servers/xyz.pflow.sim%2Fwhatif/versions/latest)
- Connected to: https://sim.pflow.xyz/mcp
- Homepage: https://sim.pflow.xyz/
- Scoring rules: v2
- Tools: 59
- Average: 62.4 / 100 (Cloudy)
- Near-identical pairs: 3

This page shows how xyz.pflow.sim/whatif'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: 59 tools. Above 40, models choose less accurately.

## Tools

- `sim_map_get`: 38 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: String arguments with no constraint or example: id.
  - Minor: Says nothing about what it returns.
  - 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.
- `sim_map_list`: 38 / 100
  - Major: The description only restates the name (8 words).
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Says nothing about what it returns.
- `sim_diff`: 42 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: String arguments with no constraint or example: a, b.
  - Minor: Says nothing about what it returns.
- `sim_license_model`: 42 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Says nothing about what it returns.
  - 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.
- `sim_crosscheck`: 45 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: String arguments with no constraint or example: id.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Says nothing about what it returns.
  - 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.
- `sim_get_binding`: 45 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: String arguments with no constraint or example: id.
  - Minor: Says nothing about what it returns.
  - 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.
- `sim_list_bindings`: 45 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Says nothing about what it returns.
- `sim_my_sheets`: 45 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Says nothing about what it returns.
- `sim_invariants`: 47 / 100
  - Minor: String arguments with no constraint or example: id.
  - Minor: Says nothing about what it returns.
  - 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.
- `sim_neighbors`: 47 / 100
  - Minor: Says nothing about what it returns.
  - 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.
- `sim_classify`: 49 / 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.
- `sim_dataset`: 49 / 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.
- `sim_delete_model`: 50 / 100
  - Minor: Says nothing about what it returns.
  - 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.
- `sim_edges`: 50 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Says nothing about what it returns.
- `sim_components`: 52 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Says nothing about what it returns.
- `sim_get_artifact`: 55 / 100
  - Minor: Says nothing about what it returns.
  - 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.
- `sim_extend`: 57 / 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.
- `sim_get_model`: 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.
- `sim_map_put`: 57 / 100
- `sim_param_heatmap`: 57 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: String arguments with no constraint or example: id, param_x, param_y.
  - 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.
- `sim_propose_types`: 57 / 100
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
- `sim_diagnose`: 59 / 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.
- `sim_list_models`: 59 / 100
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
- `sim_distill`: 60 / 100
  - Minor: Says nothing about what it returns.
  - 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.
- `sim_publish`: 60 / 100
  - 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.
- `sim_publish_app`: 60 / 100
  - Minor: Says nothing about what it returns.
  - 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.
- `sim_evaluate`: 62 / 100
  - 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.
- `sim_migration_offers`: 63 / 100
  - Minor: Says nothing about what it returns.
- `sim_check_witness`: 64 / 100
  - Minor: The description is long (496 words). It helps selection but costs steps and tokens.
  - Minor: No `required` list, so every argument is optional.
- `sim_compose`: 64 / 100
- `sim_accept_migration`: 65 / 100
  - Minor: Says nothing about what it returns.
- `sim_conformance`: 65 / 100
  - 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.
- `sim_calibrate`: 67 / 100
- `sim_canonical`: 67 / 100
  - Minor: String arguments with no constraint or example: id.
- `sim_create_collection`: 67 / 100
  - Minor: String arguments with no constraint or example: name.
- `sim_optimize`: 67 / 100
  - Minor: String arguments with no constraint or example: id.
- `sim_refine`: 67 / 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.
- `sim_supersede_model`: 67 / 100
- `sim_code_to_flow`: 69 / 100
- `sim_bind`: 70 / 100
  - Minor: The description is long (401 words). It helps selection but costs steps and tokens.
- `sim_conformance_stream`: 70 / 100
  - Minor: The description is long (583 words). It helps selection but costs steps and tokens.
  - Minor: String arguments with no constraint or example: id.
  - Minor: Says nothing about what it returns.
- `sim_publish_compare`: 70 / 100
  - 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.
- `sim_distinguish`: 72 / 100
  - Minor: The description is long (451 words). It helps selection but costs steps and tokens.
  - Minor: No `required` list, so every argument is optional.
- `sim_reroll`: 72 / 100
- `sim_sequences`: 72 / 100
  - Minor: The description is long (532 words). It helps selection but costs steps and tokens.
  - 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.
- `sim_verify`: 73 / 100
  - Minor: The description is long (543 words). It helps selection but costs steps and tokens.
  - Minor: String arguments with no constraint or example: id.
  - Minor: Says nothing about what it returns.
  - 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.
- `sim_create_system`: 74 / 100
  - Minor: The description is long (558 words). It helps selection but costs steps and tokens.
  - Minor: No `required` list, so every argument is optional.
- `sim_system`: 74 / 100
  - Minor: The description is long (1116 words). It helps selection but costs steps and tokens.
  - Minor: No `required` list, so every argument is optional.
- `sim_generate`: 75 / 100
- `sim_link`: 75 / 100
- `sim_prompt`: 75 / 100
  - Minor: The description is long (437 words). It helps selection but costs steps and tokens.
- `sim_prove`: 75 / 100
  - Minor: The description is long (724 words). It helps selection but costs steps and tokens.
  - Minor: Says nothing about what it returns.
- `sim_reach`: 77 / 100
  - Minor: The description is long (664 words). It helps selection but costs steps and tokens.
- `sim_run_pipeline`: 77 / 100
  - Minor: The description is long (772 words). It helps selection but costs steps and tokens.
- `sim_compare`: 80 / 100
  - Minor: String arguments with no constraint or example: id.
- `sim_query`: 80 / 100
  - Minor: The description is long (481 words). It helps selection but costs steps and tokens.
- `sim_receipt`: 80 / 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.
- `sim_scenario`: 82 / 100
  - Minor: The description is long (619 words). It helps selection but costs steps and tokens.
  - 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.
- `sim_create_model`: 85 / 100
  - Minor: The description is long (529 words). It helps selection but costs steps and tokens.

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)
