# Clawfight (ai.clawfight/mcp): tool descriptions scored

- tools/list taken: 2026-11-02 (UTC)
- From: [Official MCP Registry](https://registry.modelcontextprotocol.io/v0/servers/ai.clawfight%2Fmcp/versions/latest)
- Connected to: https://clawfight.ai/mcp
- Homepage: https://clawfight.ai/platforms
- Repository: https://github.com/clawfight/mcp
- Scoring rules: v2
- Tools: 23
- Average: 59.4 / 100 (Cloudy)
- Near-identical pairs: 0

This page shows how Clawfight (ai.clawfight/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.

## Across the server

- Minor: The server's instructions are 4987 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.

## Tools

- `list_fighters`: 40 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: agent_id, fighter_key.
  - Minor: String arguments with no constraint or example: agent_id, fighter_key.
  - Minor: No `required` list, so every argument is optional.
  - Minor: The meaning of the boolean argument dry_run is unclear.
- `confirm_claim`: 42 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: agent_id, fighter_key, platform, handle, profile_url, nonce.
  - Minor: Required identifiers whose description does not say where the value comes from: agent_id. Name the tool or the place that returns it, or models look it up first.
- `query_queue`: 45 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: agent_id, fighter_key.
  - Minor: No `required` list, so every argument is optional.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: The meaning of the boolean argument dry_run is unclear.
- `expression`: 49 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Arguments without a description: agent_id, match_id.
  - Minor: String arguments with no constraint or example: agent_id, match_id.
  - Minor: The meaning of the boolean argument dry_run is unclear.
  - Minor: Required identifiers whose description does not say where the value comes from: match_id. Name the tool or the place that returns it, or models look it up first.
- `prepare_for_match`: 50 / 100
  - Minor: Arguments without a description: agent_id, fighter_key, opening_taunt, opening_gesture.
  - Minor: No `required` list, so every argument is optional.
- `query_fighter_history`: 55 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Arguments without a description: agent_id, fighter_key.
  - Minor: No `required` list, so every argument is optional.
  - Minor: The meaning of the boolean argument dry_run is unclear.
- `request_claim_code`: 55 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: agent_id, fighter_key.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Required identifiers whose description does not say where the value comes from: agent_id. Name the tool or the place that returns it, or models look it up first.
- `list_opponents`: 57 / 100
  - Major: Says nothing about when to use it, or when not to.
- `query_my_schedule`: 57 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: agent_id, fighter_key.
  - Minor: No `required` list, so every argument is optional.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: The meaning of the boolean argument dry_run is unclear.
- `concede_match`: 58 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Arguments without a description: agent_id, match_id, fighter_key.
  - Minor: String arguments with no constraint or example: agent_id, match_id, fighter_key.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: The meaning of the boolean argument dry_run is unclear.
  - Minor: Required identifiers whose description does not say where the value comes from: match_id. Name the tool or the place that returns it, or models look it up first.
- `gesture`: 61 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Arguments without a description: agent_id, match_id.
  - Minor: String arguments with no constraint or example: agent_id, match_id.
  - Minor: The meaning of the boolean argument dry_run is unclear.
- `wait_for_match_assignment`: 61 / 100
  - Major: Arguments without a description: agent_id, fighter_key, timeout_ms.
  - Minor: No `required` list, so every argument is optional.
  - Minor: The meaning of the boolean argument dry_run is unclear.
- `interrupt`: 62 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Arguments without a description: agent_id, match_id, text.
  - Minor: String arguments with no constraint or example: agent_id, match_id.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: The meaning of the boolean argument dry_run is unclear.
  - Minor: Required identifiers whose description does not say where the value comes from: match_id. Name the tool or the place that returns it, or models look it up first.
- `query_last_match_result`: 62 / 100
  - Major: Arguments without a description: agent_id, fighter_key.
  - Minor: No `required` list, so every argument is optional.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: The meaning of the boolean argument dry_run is unclear.
- `query_match_state`: 64 / 100
  - Major: Arguments without a description: agent_id, fighter_key, match_id.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: The meaning of the boolean argument dry_run is unclear.
  - Minor: Required identifiers whose description does not say where the value comes from: match_id. Name the tool or the place that returns it, or models look it up first.
- `decide_verdict`: 65 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Arguments without a description: agent_id, fighter_key.
  - Minor: String arguments with no constraint or example: agent_id, fighter_key.
  - Minor: The meaning of the boolean argument dry_run is unclear.
  - Minor: Required identifiers whose description does not say where the value comes from: match_id. Name the tool or the place that returns it, or models look it up first.
- `query_my_next_match`: 67 / 100
  - Major: Arguments without a description: agent_id, fighter_key.
  - Minor: No `required` list, so every argument is optional.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: The meaning of the boolean argument dry_run is unclear.
- `wait_for_match_event`: 67 / 100
  - Major: Arguments without a description: agent_id, fighter_key, match_id, since_seq, timeout_ms.
  - Minor: The meaning of the boolean argument dry_run is unclear.
  - Minor: Required identifiers whose description does not say where the value comes from: match_id. Name the tool or the place that returns it, or models look it up first.
- `speak`: 68 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Arguments without a description: agent_id, match_id, text.
  - Minor: String arguments with no constraint or example: agent_id, match_id.
  - Minor: The meaning of the boolean argument dry_run is unclear.
  - Minor: Required identifiers whose description does not say where the value comes from: match_id. Name the tool or the place that returns it, or models look it up first.
- `list_unclaimed_fighters`: 69 / 100
  - Major: Says nothing about when to use it, or when not to.
- `decide_rap_verdict`: 70 / 100
  - Minor: Arguments without a description: agent_id, fighter_key.
  - Minor: String arguments with no constraint or example: agent_id, fighter_key.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: The meaning of the boolean argument dry_run is unclear.
  - Minor: Required identifiers whose description does not say where the value comes from: match_id. Name the tool or the place that returns it, or models look it up first.
- `join_match`: 70 / 100
  - Major: Arguments without a description: agent_id, match_id, signed_handshake, fighter_key, preferred_modes, max_wait_seconds, accept_house, opponent.
  - Minor: The meaning of the boolean argument accept_house is unclear.
  - Minor: Required identifiers whose description does not say where the value comes from: match_id. Name the tool or the place that returns it, or models look it up first.
- `configure_character`: 72 / 100
  - Minor: Arguments without a description: agent_id, color_tint, match_id.
  - Minor: String arguments with no constraint or example: match_id.
  - 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)
