# ToolAPI (org.toolapi/hub): tool descriptions scored

- tools/list taken: 2026-11-02 (UTC)
- From: [Official MCP Registry](https://registry.modelcontextprotocol.io/v0/servers/org.toolapi%2Fhub/versions/latest)
- Connected to: https://toolapi.org/mcp
- Homepage: https://toolapi.org/
- Repository: https://github.com/baohuiwb/toolapi
- Scoring rules: v2
- Tools: 193
- Average: 17.9 / 100 (Rain)
- Near-identical pairs: 7

This page shows how ToolAPI (org.toolapi/hub)'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: 193 tools. Above 40, models choose less accurately.
- Minor: The server has no instructions. Say there, once, what the server is for and when to use it: Claude Code and Gemini CLI read the instructions before the tool descriptions.

## Tools

- `bcrypt_verify`: 9 / 100
  - Major: The description only restates the name (5 words).
  - Major: The description is too short (5 words).
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: password, hash.
  - Minor: String arguments with no constraint or example: password, hash.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `changelog_parse`: 9 / 100
  - Major: The description only restates the name (7 words).
  - Major: The description is too short (7 words).
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: text.
  - Minor: String arguments with no constraint or example: text.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `cidr_contains`: 9 / 100
  - Major: The description only restates the name (9 words).
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: cidr, ip.
  - Minor: String arguments with no constraint or example: cidr, ip.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `code_fence_extract`: 9 / 100
  - Major: The description only restates the name (8 words).
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: text.
  - Minor: String arguments with no constraint or example: text.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `conventional_commit_lint`: 9 / 100
  - Major: The description only restates the name (7 words).
  - Major: The description is too short (7 words).
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: message.
  - Minor: String arguments with no constraint or example: message.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `cors_check`: 9 / 100
  - Major: The description only restates the name (8 words).
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: origin, allow_origin, allow_credentials.
  - Minor: String arguments with no constraint or example: origin, allow_origin.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: The meaning of the boolean argument allow_credentials is unclear.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `cron_describe`: 9 / 100
  - Major: The description only restates the name (9 words).
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: expr.
  - Minor: String arguments with no constraint or example: expr.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `cron_validate`: 9 / 100
  - Major: The description only restates the name (7 words).
  - Major: The description is too short (7 words).
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: expr.
  - Minor: String arguments with no constraint or example: expr.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `csp_parse`: 9 / 100
  - Major: The description only restates the name (7 words).
  - Major: The description is too short (7 words).
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: header.
  - Minor: String arguments with no constraint or example: header.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `currency_convert`: 9 / 100
  - Major: The description only restates the name (8 words).
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: amount, from_currency, to_currency.
  - Minor: String arguments with no constraint or example: from_currency, to_currency.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `datetime_parse`: 9 / 100
  - Major: The description only restates the name (9 words).
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: value.
  - Minor: String arguments with no constraint or example: value.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `editorconfig_validate`: 9 / 100
  - Major: The description only restates the name (6 words).
  - Major: The description is too short (6 words).
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: text.
  - Minor: String arguments with no constraint or example: text.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `env_parse`: 9 / 100
  - Major: The description only restates the name (7 words).
  - Major: The description is too short (7 words).
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: text.
  - Minor: String arguments with no constraint or example: text.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `env_required_check`: 9 / 100
  - Major: The description only restates the name (9 words).
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: text, required.
  - Minor: String arguments with no constraint or example: text.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `extract_urls`: 9 / 100
  - Major: The description only restates the name (7 words).
  - Major: The description is too short (7 words).
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: text.
  - Minor: String arguments with no constraint or example: text.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `gitignore_check`: 9 / 100
  - Major: The description only restates the name (9 words).
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: text.
  - Minor: String arguments with no constraint or example: text.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `graphql_validate`: 9 / 100
  - Major: The description only restates the name (9 words).
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: text.
  - Minor: String arguments with no constraint or example: text.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `hash_compare`: 9 / 100
  - Major: The description only restates the name (5 words).
  - Major: The description is too short (5 words).
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: a, b.
  - Minor: String arguments with no constraint or example: a, b.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `hash_sha256`: 9 / 100
  - Major: The description only restates the name (3 words).
  - Major: The description is too short (3 words).
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: text.
  - Minor: String arguments with no constraint or example: text.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `hash_sha512`: 9 / 100
  - Major: The description only restates the name (3 words).
  - Major: The description is too short (3 words).
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: text.
  - Minor: String arguments with no constraint or example: text.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `hex_decode`: 9 / 100
  - Major: The description only restates the name (5 words).
  - Major: The description is too short (5 words).
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: text.
  - Minor: String arguments with no constraint or example: text.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `hex_encode`: 9 / 100
  - Major: The description only restates the name (5 words).
  - Major: The description is too short (5 words).
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: text.
  - Minor: String arguments with no constraint or example: text.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `html_decode`: 9 / 100
  - Major: The description only restates the name (3 words).
  - Major: The description is too short (3 words).
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: text.
  - Minor: String arguments with no constraint or example: text.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `html_encode`: 9 / 100
  - Major: The description only restates the name (3 words).
  - Major: The description is too short (3 words).
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: text.
  - Minor: String arguments with no constraint or example: text.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `json_equal`: 9 / 100
  - Major: The description only restates the name (8 words).
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: a, b.
  - Minor: String arguments with no constraint or example: a, b.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `json_merge`: 9 / 100
  - Major: The description only restates the name (7 words).
  - Major: The description is too short (7 words).
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: a, b.
  - Minor: String arguments with no constraint or example: a, b.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `json_pretty_diff`: 9 / 100
  - Major: The description only restates the name (7 words).
  - Major: The description is too short (7 words).
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: a, b.
  - Minor: String arguments with no constraint or example: a, b.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `json_to_csv`: 9 / 100
  - Major: The description only restates the name (8 words).
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: text.
  - Minor: String arguments with no constraint or example: text.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `json_to_toml`: 9 / 100
  - Major: The description only restates the name (7 words).
  - Major: The description is too short (7 words).
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: text.
  - Minor: String arguments with no constraint or example: text.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `json_type_summary`: 9 / 100
  - Major: The description only restates the name (9 words).
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: text.
  - Minor: String arguments with no constraint or example: text.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `jwt_decode`: 9 / 100
  - Major: The description only restates the name (8 words).
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: token.
  - Minor: String arguments with no constraint or example: token.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `mail_inbox_read`: 9 / 100
  - Major: The description only restates the name (7 words).
  - Major: The description is too short (7 words).
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: message_id, inbox_id, address, token.
  - Minor: String arguments with no constraint or example: message_id, inbox_id, address, token.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
  - Minor: Required identifiers whose description does not say where the value comes from: message_id. Name the tool or the place that returns it, or models look it up first.
- `markdown_link_extract`: 9 / 100
  - Major: The description only restates the name (8 words).
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: text.
  - Minor: String arguments with no constraint or example: text.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `nginx_config_lint`: 9 / 100
  - Major: The description only restates the name (9 words).
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: text.
  - Minor: String arguments with no constraint or example: text.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `openapi_validate`: 9 / 100
  - Major: The description only restates the name (8 words).
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: text.
  - Minor: String arguments with no constraint or example: text.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `path_safety_check`: 9 / 100
  - Major: The description only restates the name (9 words).
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: path, allow_absolute.
  - Minor: String arguments with no constraint or example: path.
  - Minor: The meaning of the boolean argument allow_absolute is unclear.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `port_check`: 9 / 100
  - Major: The description only restates the name (8 words).
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: host, port.
  - Minor: String arguments with no constraint or example: host.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `qr_generate`: 9 / 100
  - Major: The description only restates the name (9 words).
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: text, border.
  - Minor: String arguments with no constraint or example: text.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `reverse_dns`: 9 / 100
  - Major: The description only restates the name (7 words).
  - Major: The description is too short (7 words).
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: ip.
  - Minor: String arguments with no constraint or example: ip.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `robots_txt_validate`: 9 / 100
  - Major: The description only restates the name (7 words).
  - Major: The description is too short (7 words).
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: text.
  - Minor: String arguments with no constraint or example: text.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `semver_compare`: 9 / 100
  - Major: The description only restates the name (7 words).
  - Major: The description is too short (7 words).
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: a, b.
  - Minor: String arguments with no constraint or example: a, b.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `semver_parse`: 9 / 100
  - Major: The description only restates the name (8 words).
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: version.
  - Minor: String arguments with no constraint or example: version.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `semver_satisfies`: 9 / 100
  - Major: The description only restates the name (6 words).
  - Major: The description is too short (6 words).
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: version, range.
  - Minor: String arguments with no constraint or example: version, range.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `spdx_license_check`: 9 / 100
  - Major: The description only restates the name (8 words).
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: expression.
  - Minor: String arguments with no constraint or example: expression.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `template_fill`: 9 / 100
  - Major: The description only restates the name (7 words).
  - Major: The description is too short (7 words).
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: template, variables.
  - Minor: String arguments with no constraint or example: template.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `text_similarity`: 9 / 100
  - Major: The description only restates the name (6 words).
  - Major: The description is too short (6 words).
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: a, b.
  - Minor: String arguments with no constraint or example: a, b.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `time_convert`: 9 / 100
  - Major: The description only restates the name (8 words).
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: value.
  - Minor: String arguments with no constraint or example: value.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `todo_comment_extract`: 9 / 100
  - Major: The description only restates the name (9 words).
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: text.
  - Minor: String arguments with no constraint or example: text.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `tsconfig_lint`: 9 / 100
  - Major: The description only restates the name (7 words).
  - Major: The description is too short (7 words).
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: text.
  - Minor: String arguments with no constraint or example: text.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `unified_diff_parse`: 9 / 100
  - Major: The description only restates the name (8 words).
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: text.
  - Minor: String arguments with no constraint or example: text.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `url_decode`: 9 / 100
  - Major: The description only restates the name (3 words).
  - Major: The description is too short (3 words).
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: text.
  - Minor: String arguments with no constraint or example: text.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `url_encode`: 9 / 100
  - Major: The description only restates the name (3 words).
  - Major: The description is too short (3 words).
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: text.
  - Minor: String arguments with no constraint or example: text.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `url_normalize`: 9 / 100
  - Major: The description only restates the name (8 words).
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: url, sort_query, drop_fragment.
  - Minor: String arguments with no constraint or example: url.
  - Minor: The meaning of the boolean argument sort_query is unclear.
  - Minor: The meaning of the boolean argument drop_fragment is unclear.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
  - Major: It may be destructive, but destructiveHint is not set.
- `url_parse`: 9 / 100
  - Major: The description only restates the name (8 words).
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: url.
  - Minor: String arguments with no constraint or example: url.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `uuid_parse`: 9 / 100
  - Major: The description only restates the name (7 words).
  - Major: The description is too short (7 words).
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: uuid.
  - Minor: String arguments with no constraint or example: uuid.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `whois_lookup`: 9 / 100
  - Major: The description only restates the name (8 words).
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: domain.
  - Minor: String arguments with no constraint or example: domain.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `x509_parse`: 9 / 100
  - Major: The description only restates the name (9 words).
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: pem.
  - Minor: String arguments with no constraint or example: pem.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `xml_validate`: 9 / 100
  - Major: The description only restates the name (5 words).
  - Major: The description is too short (5 words).
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: text.
  - Minor: String arguments with no constraint or example: text.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `yaml_schema_validate`: 9 / 100
  - Major: The description only restates the name (8 words).
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: yaml, schema, max_errors.
  - Minor: String arguments with no constraint or example: yaml, schema.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `hmac_verify`: 10 / 100
  - Major: The description only restates the name (6 words).
  - Major: The description is too short (6 words).
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: message, secret, signature, algorithm.
  - Minor: String arguments with no constraint or example: message, secret, signature.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `identifier_validate`: 11 / 100
  - Major: The description only restates the name (8 words).
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: name, language.
  - Minor: String arguments with no constraint or example: name.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `password_generate`: 11 / 100
  - Major: The description only restates the name (4 words).
  - Major: The description is too short (4 words).
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: length, symbols.
  - Minor: No `required` list, so every argument is optional.
  - Minor: The meaning of the boolean argument symbols is unclear.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `random_string`: 11 / 100
  - Major: The description only restates the name (8 words).
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: length, charset, seed.
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `text_case_convert`: 11 / 100
  - Major: The description only restates the name (9 words).
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: text, mode.
  - Minor: String arguments with no constraint or example: text.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `text_lorem`: 11 / 100
  - Major: The description only restates the name (5 words).
  - Major: The description is too short (5 words).
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: paragraphs.
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `unicode_normalize`: 11 / 100
  - Major: The description only restates the name (6 words).
  - Major: The description is too short (6 words).
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: text, form.
  - Minor: String arguments with no constraint or example: text.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `requirements_audit`: 12 / 100
  - Major: The description only restates the name (9 words).
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: text.
  - Minor: String arguments with no constraint or example: text.
  - Minor: Says nothing about what it returns.
  - Minor: The description says the tool is deprecated. Name the replacement, and consider taking the tool out of tools/list: models avoid it when asked for what it does.
- `semver_satisfies_batch`: 12 / 100
  - Major: The description only restates the name (8 words).
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: checks, checks[].id, checks[].version, checks[].range.
  - Minor: String arguments with no constraint or example: checks[].id, checks[].version, checks[].range.
  - Minor: Says nothing about what it returns.
- `base64url_decode`: 13 / 100
  - Major: The description is too short (3 words).
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: text.
  - Minor: String arguments with no constraint or example: text.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `base64url_encode`: 13 / 100
  - Major: The description is too short (5 words).
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: text.
  - Minor: String arguments with no constraint or example: text.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `bcrypt_hash`: 13 / 100
  - Major: The description is too short (5 words).
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: password, rounds.
  - Minor: String arguments with no constraint or example: password.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `github_actions_lint`: 13 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: text.
  - Minor: String arguments with no constraint or example: text.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `json_assert_paths`: 13 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: data, assertions, assertions[].path, assertions[].exists, assertions[].equals, assertions[].type.
  - Minor: String arguments with no constraint or example: data, assertions[].path, assertions[].type.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: The meaning of the boolean argument assertions[].exists is unclear.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `unit_convert`: 13 / 100
  - Major: The description only restates the name (8 words).
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: value, from_unit, to_unit.
  - Minor: String arguments with no constraint or example: from_unit, to_unit.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `cron_validate_batch`: 14 / 100
  - Major: The description only restates the name (7 words).
  - Major: The description is too short (7 words).
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: expressions.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `glob_match_batch`: 14 / 100
  - Major: The description only restates the name (7 words).
  - Major: The description is too short (7 words).
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: paths, patterns.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `list_unique`: 14 / 100
  - Major: The description only restates the name (5 words).
  - Major: The description is too short (5 words).
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: items.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `radix_convert`: 14 / 100
  - Major: The description only restates the name (8 words).
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: value, to_base.
  - Minor: String arguments with no constraint or example: value, to_base.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `random_int`: 14 / 100
  - Major: The description only restates the name (7 words).
  - Major: The description is too short (7 words).
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: min_val, max_val, seed.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `regex_replace`: 14 / 100
  - Major: The description only restates the name (9 words).
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: pattern, replacement, text, global_replace.
  - Minor: String arguments with no constraint or example: pattern, replacement, text, flags.
  - Minor: The meaning of the boolean argument global_replace is unclear.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `text_diff`: 14 / 100
  - Major: The description only restates the name (9 words).
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: left, right.
  - Minor: String arguments with no constraint or example: left, right.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `dns_lookup`: 15 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: domain, record_type.
  - Minor: String arguments with no constraint or example: domain.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `base64_decode`: 16 / 100
  - Major: The description is too short (3 words).
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: text.
  - Minor: String arguments with no constraint or example: text.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `base64_encode`: 16 / 100
  - Major: The description is too short (2 words).
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: text.
  - Minor: String arguments with no constraint or example: text.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `compose_validate`: 16 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: text.
  - Minor: String arguments with no constraint or example: text.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `content_type_parse`: 16 / 100
  - Major: The description is too short (7 words).
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: header.
  - Minor: String arguments with no constraint or example: header.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `cron_parse`: 16 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: expr.
  - Minor: String arguments with no constraint or example: expr.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `cron_semantic_validate`: 16 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: expr.
  - Minor: String arguments with no constraint or example: expr.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `graphql_schema_diff`: 16 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: old, new.
  - Minor: String arguments with no constraint or example: old, new.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `ip_geolocation`: 16 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: ip.
  - Minor: String arguments with no constraint or example: ip.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `ipv4_private_check`: 16 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: ip.
  - Minor: String arguments with no constraint or example: ip.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `json_schema_validate_batch`: 16 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: items, items[].id, items[].data, items[].schema, max_errors.
  - Minor: String arguments with no constraint or example: items[].id, items[].data, items[].schema.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `json_validate`: 16 / 100
  - Major: The description only restates the name (8 words).
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: text.
  - Minor: String arguments with no constraint or example: text.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `nanoid_generate`: 16 / 100
  - Major: The description only restates the name (6 words).
  - Major: The description is too short (6 words).
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: size.
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `pem_decode`: 16 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: text.
  - Minor: String arguments with no constraint or example: text.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `semver_max_satisfying`: 16 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: versions, range.
  - Minor: String arguments with no constraint or example: range.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `sql_format`: 16 / 100
  - Major: The description only restates the name (8 words).
  - Major: Arguments without a description: text, keyword_case, reindent.
  - Minor: String arguments with no constraint or example: text.
  - Minor: The meaning of the boolean argument reindent is unclear.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `ssl_cert_fetch`: 16 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: host, port.
  - Minor: String arguments with no constraint or example: host.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `text_stats`: 16 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: text.
  - Minor: String arguments with no constraint or example: text.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `toml_validate`: 16 / 100
  - Major: The description only restates the name (8 words).
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: text.
  - Minor: String arguments with no constraint or example: text.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `url_ssrf_check`: 16 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: url.
  - Minor: String arguments with no constraint or example: url.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `user_agent_parse`: 16 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: user_agent.
  - Minor: String arguments with no constraint or example: user_agent.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `yaml_validate`: 16 / 100
  - Major: The description only restates the name (8 words).
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: text.
  - Minor: String arguments with no constraint or example: text.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `dockerfile_lint`: 17 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: text.
  - Minor: String arguments with no constraint or example: text.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `semver_range_intersects`: 17 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: range_a, range_b, samples.
  - Minor: String arguments with no constraint or example: range_a, range_b.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `http_headers_fetch`: 18 / 100
  - Major: The description only restates the name (8 words).
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: url, method, follow_redirects.
  - Minor: String arguments with no constraint or example: url.
  - Minor: The meaning of the boolean argument follow_redirects is unclear.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `color_convert`: 19 / 100
  - Major: The description only restates the name (7 words).
  - Major: The description is too short (7 words).
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Arguments without a description: to_format.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `cron_next_runs`: 19 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: expr, count, timezone.
  - Minor: String arguments with no constraint or example: expr.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `http_status_lookup`: 19 / 100
  - Major: The description only restates the name (6 words).
  - Major: The description is too short (6 words).
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: code.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `json_schema_infer`: 19 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: data, title.
  - Minor: String arguments with no constraint or example: data.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `json_schema_validate`: 19 / 100
  - Major: The description only restates the name (7 words).
  - Major: The description is too short (7 words).
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Arguments without a description: max_errors.
  - Minor: String arguments with no constraint or example: data, schema.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `html_security_scan`: 20 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: text.
  - Minor: String arguments with no constraint or example: text.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `jwt_claims_audit`: 20 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: token.
  - Minor: String arguments with no constraint or example: token.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `sql_danger_scan`: 20 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: text.
  - Minor: String arguments with no constraint or example: text.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
  - Major: It may be destructive, but destructiveHint is not set.
- `trailing_whitespace_scan`: 20 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: text.
  - Minor: String arguments with no constraint or example: text.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `email_validate`: 21 / 100
  - Major: Arguments without a description: email.
  - Minor: String arguments with no constraint or example: email.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `http_status_classify`: 21 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: codes.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `regex_test`: 21 / 100
  - Major: The description only restates the name (7 words).
  - Major: The description is too short (7 words).
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: pattern, text.
  - Minor: String arguments with no constraint or example: pattern, text, flags.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `color_contrast`: 22 / 100
  - Major: Arguments without a description: fg, bg.
  - Minor: String arguments with no constraint or example: fg, bg.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `gitignore_match`: 22 / 100
  - Major: Arguments without a description: paths, gitignore.
  - Minor: String arguments with no constraint or example: gitignore.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `hash_md5`: 22 / 100
  - Major: Arguments without a description: text.
  - Minor: String arguments with no constraint or example: text.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `hmac_sign`: 22 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: message, secret, algorithm, encoding.
  - Minor: String arguments with no constraint or example: message, secret.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `import_list_analyze`: 22 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: text, language.
  - Minor: String arguments with no constraint or example: text.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `ip_version_detect`: 22 / 100
  - Major: Arguments without a description: ip.
  - Minor: String arguments with no constraint or example: ip.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `json_minify`: 22 / 100
  - Major: Arguments without a description: text.
  - Minor: String arguments with no constraint or example: text.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
  - Major: It may be destructive, but destructiveHint is not set.
- `json_sort_keys`: 22 / 100
  - Major: Arguments without a description: text.
  - Minor: String arguments with no constraint or example: text.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `mime_lookup`: 22 / 100
  - Major: Arguments without a description: path_or_ext, mime.
  - Minor: String arguments with no constraint or example: path_or_ext, mime.
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `password_strength`: 22 / 100
  - Major: Arguments without a description: password.
  - Minor: String arguments with no constraint or example: password.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `text_slugify`: 22 / 100
  - Major: Arguments without a description: text.
  - Minor: String arguments with no constraint or example: text.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `cron_matches`: 23 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: expr, timezone.
  - Minor: String arguments with no constraint or example: expr, at_time.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `toml_to_json`: 23 / 100
  - Major: The description is too short (6 words).
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: text.
  - Minor: String arguments with no constraint or example: text.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `yaml_to_json`: 23 / 100
  - Major: The description is too short (6 words).
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: text.
  - Minor: String arguments with no constraint or example: text.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `currency_rates`: 24 / 100
  - Major: The description only restates the name (9 words).
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Arguments without a description: base.
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `json_flatten`: 24 / 100
  - Major: Arguments without a description: text, separator.
  - Minor: String arguments with no constraint or example: text.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `line_ending_normalize`: 24 / 100
  - Major: Arguments without a description: text, style.
  - Minor: String arguments with no constraint or example: text.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `mail_inbox_list`: 24 / 100
  - Major: Arguments without a description: inbox_id, address, token.
  - Minor: String arguments with no constraint or example: inbox_id, address, token.
  - Minor: Says nothing about what it returns.
- `path_normalize`: 24 / 100
  - Major: Arguments without a description: path, style.
  - Minor: String arguments with no constraint or example: path.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `shell_escape`: 24 / 100
  - Major: Arguments without a description: text, shell.
  - Minor: String arguments with no constraint or example: text.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `string_truncate`: 24 / 100
  - Major: Arguments without a description: text, max_length, ellipsis.
  - Minor: String arguments with no constraint or example: text.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `cookie_header_parse`: 25 / 100
  - Major: Arguments without a description: header.
  - Minor: String arguments with no constraint or example: header.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `csv_to_json`: 25 / 100
  - Major: Arguments without a description: text.
  - Minor: String arguments with no constraint or example: text.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `domain_parse`: 25 / 100
  - Major: Arguments without a description: domain.
  - Minor: String arguments with no constraint or example: domain.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `duration_parse`: 25 / 100
  - Major: Arguments without a description: value.
  - Minor: String arguments with no constraint or example: value.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `env_diff`: 25 / 100
  - Major: Arguments without a description: a, b.
  - Minor: String arguments with no constraint or example: a, b.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `extract_emails`: 25 / 100
  - Major: Arguments without a description: text.
  - Minor: String arguments with no constraint or example: text.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `frontmatter_parse`: 25 / 100
  - Major: Arguments without a description: text.
  - Minor: String arguments with no constraint or example: text.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `git_url_parse`: 25 / 100
  - Major: Arguments without a description: url.
  - Minor: String arguments with no constraint or example: url.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `graphql_operations_list`: 25 / 100
  - Major: Arguments without a description: text.
  - Minor: String arguments with no constraint or example: text.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `hosts_file_parse`: 25 / 100
  - Major: Arguments without a description: text.
  - Minor: String arguments with no constraint or example: text.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `html_to_markdown`: 25 / 100
  - Major: Arguments without a description: html.
  - Minor: String arguments with no constraint or example: html.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `ini_parse`: 25 / 100
  - Major: Arguments without a description: text.
  - Minor: String arguments with no constraint or example: text.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `json_patch_apply`: 25 / 100
  - Major: Arguments without a description: data, patch.
  - Minor: String arguments with no constraint or example: data, patch.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
  - Major: It may be destructive, but destructiveHint is not set.
- `json_to_yaml`: 25 / 100
  - Major: Arguments without a description: text.
  - Minor: String arguments with no constraint or example: text.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `jsonl_validate`: 25 / 100
  - Major: Arguments without a description: text, schema, max_lines.
  - Minor: String arguments with no constraint or example: text, schema.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `markdown_to_html`: 25 / 100
  - Major: Arguments without a description: text.
  - Minor: String arguments with no constraint or example: text.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `markdown_toc`: 25 / 100
  - Major: Arguments without a description: text, max_level.
  - Minor: String arguments with no constraint or example: text.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `openapi_operations_list`: 25 / 100
  - Major: Arguments without a description: text.
  - Minor: String arguments with no constraint or example: text.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `properties_parse`: 25 / 100
  - Major: Arguments without a description: text.
  - Minor: String arguments with no constraint or example: text.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `query_string_parse`: 25 / 100
  - Major: Arguments without a description: query.
  - Minor: String arguments with no constraint or example: query.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `shebang_parse`: 25 / 100
  - Major: Arguments without a description: text.
  - Minor: String arguments with no constraint or example: text.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `sql_tables_extract`: 25 / 100
  - Major: Arguments without a description: text.
  - Minor: String arguments with no constraint or example: text.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `url_join`: 25 / 100
  - Major: Arguments without a description: base, path.
  - Minor: String arguments with no constraint or example: base, path.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `uuid_generate`: 25 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: version, count, namespace_type.
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `toml_schema_validate`: 26 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Arguments without a description: max_errors.
  - Minor: String arguments with no constraint or example: toml, schema.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `csv_validate`: 27 / 100
  - Major: Arguments without a description: text, delimiter, has_header.
  - Minor: String arguments with no constraint or example: text.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: The meaning of the boolean argument has_header is unclear.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `dependency_versions_extract`: 27 / 100
  - Major: Arguments without a description: text, ecosystem.
  - Minor: String arguments with no constraint or example: text.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `human_bytes`: 27 / 100
  - Major: Arguments without a description: value, text, precision.
  - Minor: String arguments with no constraint or example: text.
  - Minor: No `required` list, so every argument is optional.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `jwt_sign`: 27 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Arguments without a description: secret, algorithm.
  - Minor: String arguments with no constraint or example: secret.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `package_scripts_list`: 27 / 100
  - Major: Arguments without a description: text, kind.
  - Minor: String arguments with no constraint or example: text.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `semver_inc`: 27 / 100
  - Major: Arguments without a description: version, release.
  - Minor: String arguments with no constraint or example: version.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `xml_format`: 27 / 100
  - Major: Arguments without a description: text.
  - Minor: String arguments with no constraint or example: text.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `text_wrap`: 28 / 100
  - Major: Arguments without a description: text, width.
  - Minor: String arguments with no constraint or example: text.
  - Minor: Says nothing about what it returns.
- `json_format`: 29 / 100
  - Major: Arguments without a description: text, indent.
  - Minor: String arguments with no constraint or example: text.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `pick_choice`: 29 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Arguments without a description: items.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `json_merge_patch`: 30 / 100
  - Major: Arguments without a description: target, patch.
  - Minor: String arguments with no constraint or example: target, patch.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `package_manifest_audit`: 30 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Arguments without a description: kind.
  - Minor: String arguments with no constraint or example: text.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `query_string_build`: 30 / 100
  - Major: Arguments without a description: params, doseq.
  - Minor: The meaning of the boolean argument doseq is unclear.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `semver_sort`: 30 / 100
  - Major: Arguments without a description: versions, reverse.
  - Minor: The meaning of the boolean argument reverse is unclear.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `currency_list`: 31 / 100
  - Major: The description only restates the name (9 words).
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `openapi_diff`: 31 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `remote_matrix`: 31 / 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.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `timezone_list`: 31 / 100
  - Major: The description only restates the name (7 words).
  - Major: The description is too short (7 words).
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `unit_list`: 31 / 100
  - Major: The description only restates the name (7 words).
  - Major: The description is too short (7 words).
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `http_headers_parse`: 32 / 100
  - Major: Arguments without a description: text.
  - Minor: String arguments with no constraint or example: text.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `json_pointer_get`: 32 / 100
  - Major: Arguments without a description: data, pointer.
  - Minor: String arguments with no constraint or example: data.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `jwt_verify`: 32 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Arguments without a description: token.
  - Minor: String arguments with no constraint or example: token, secret.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `secrets_scan`: 35 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Arguments without a description: text.
  - Minor: String arguments with no constraint or example: text.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `time_now`: 35 / 100
  - Major: The description is too short (6 words).
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `xml_to_json`: 35 / 100
  - Major: Arguments without a description: text.
  - Minor: String arguments with no constraint or example: text.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `cidr_calc`: 36 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: String arguments with no constraint or example: cidr.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `jsonpath_query`: 36 / 100
  - Major: The description only restates the name (8 words).
  - Major: Says nothing about when to use it, or when not to.
  - Minor: String arguments with no constraint or example: text.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `timezone_convert`: 38 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Arguments without a description: from_timezone.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `mail_inbox_create`: 39 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: No `required` list, so every argument is optional.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.

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)
