# One Million Tools (io.github.lucas-project/one-million-tools): tool descriptions scored

- tools/list taken: 2026-11-02 (UTC)
- From: [Official MCP Registry](https://registry.modelcontextprotocol.io/v0/servers/io.github.lucas-project%2Fone-million-tools/versions/latest)
- Connected to: https://tools-empire-mcp.lucas-qin-au.workers.dev/mcp
- Homepage: https://onemilliontools.com/mcp
- Scoring rules: v2
- Tools: 42
- Average: 17.0 / 100 (Rain)
- Near-identical pairs: 4

This page shows how One Million Tools (io.github.lucas-project/one-million-tools)'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: 42 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

- `base64_decode`: 9 / 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: input.
  - Minor: String arguments with no constraint or example: input.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `base64_encode`: 9 / 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: input.
  - Minor: String arguments with no constraint or example: input.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `cron_explain`: 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: 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.
- `csv_to_json`: 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: input.
  - Minor: String arguments with no constraint or example: input.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `json_minify`: 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: input.
  - Minor: String arguments with no constraint or example: input.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `json_to_yaml`: 9 / 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: input.
  - Minor: String arguments with no constraint or example: input.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `markdown_to_html`: 9 / 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: input, gfm, breaks.
  - Minor: String arguments with no constraint or example: input.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: The meaning of the boolean argument gfm is unclear.
  - Minor: The meaning of the boolean argument breaks is unclear.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `yaml_to_json`: 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: input.
  - Minor: String arguments with no constraint or example: input.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `css_format`: 11 / 100
  - Major: The description only restates the name (2 words).
  - 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: input, indent, printWidth.
  - Minor: String arguments with no constraint or example: input.
  - 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.
- `csv_sort`: 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: input, column, mode, direction, delimiter.
  - Minor: String arguments with no constraint or example: input, column, delimiter.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `html_format`: 11 / 100
  - Major: The description only restates the name (2 words).
  - 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: input, indent, printWidth.
  - Minor: String arguments with no constraint or example: input.
  - 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.
- `markdown_format`: 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: input, listMarker, trimTrailing, collapseBlankLines.
  - Minor: String arguments with no constraint or example: input.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: The meaning of the boolean argument trimTrailing is unclear.
  - Minor: The meaning of the boolean argument collapseBlankLines is unclear.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `url_decode`: 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: input, mode.
  - Minor: String arguments with no constraint or example: input.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `uuid_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: count.
  - 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.
- `yaml_format`: 11 / 100
  - Major: The description only restates the name (2 words).
  - 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: input, indent, lineWidth, sortKeys.
  - Minor: String arguments with no constraint or example: input.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: The meaning of the boolean argument sortKeys is unclear.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `css_gradient_build`: 13 / 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: stops, stops[].color, stops[].position.
  - Minor: String arguments with no constraint or example: stops[].color.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `env_redact`: 13 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: input.
  - Minor: String arguments with no constraint or example: input.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `slug_generate`: 13 / 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: input, separator, lowercase, stripAccents, collapseRepeats.
  - Minor: String arguments with no constraint or example: input.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: The meaning of the boolean argument lowercase is unclear.
  - Minor: The meaning of the boolean argument stripAccents is unclear.
  - Minor: The meaning of the boolean argument collapseRepeats is unclear.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `sql_format`: 13 / 100
  - Major: The description only restates the name (2 words).
  - 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: input, dialect, indent, keywordCase.
  - Minor: String arguments with no constraint or example: input.
  - 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.
- `url_encode`: 15 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: input, mode.
  - Minor: String arguments with no constraint or example: input.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `js_format`: 16 / 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: input, indent, printWidth, semi, singleQuote, parser.
  - Minor: String arguments with no constraint or example: input.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: The meaning of the boolean argument semi is unclear.
  - Minor: The meaning of the boolean argument singleQuote is unclear.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `jwt_decode`: 16 / 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.
- `markdown_preview`: 16 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: input, gfm, breaks.
  - Minor: String arguments with no constraint or example: input.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: The meaning of the boolean argument gfm is unclear.
  - Minor: The meaning of the boolean argument breaks is unclear.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `sha256_hash`: 16 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: input.
  - Minor: String arguments with no constraint or example: input.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `css_border_radius_build`: 18 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: tl, tr, br, bl.
  - 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.
- `csv_parse`: 18 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: input, delimiter, previewRows.
  - Minor: String arguments with no constraint or example: input.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `hash_text`: 18 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: input, algorithm.
  - Minor: String arguments with no constraint or example: input.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `json_format`: 19 / 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: indent.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `og_preview_build`: 19 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: title, description, url, siteName, imageUrl.
  - Minor: String arguments with no constraint or example: title, description.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `css_contrast_check`: 20 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: foreground, background.
  - Minor: String arguments with no constraint or example: foreground, background.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `css_box_shadow_build`: 21 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: layers, layers[].offsetX, layers[].offsetY, layers[].blur, layers[].spread, layers[].color, layers[].opacity, layers[].inset.
  - Minor: The meaning of the boolean argument layers[].inset is unclear.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `csv_filter`: 22 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: input, column, mode, value, caseSensitive.
  - Minor: String arguments with no constraint or example: input, column.
  - Minor: The meaning of the boolean argument caseSensitive is unclear.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `csv_statistics`: 23 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: input.
  - Minor: String arguments with no constraint or example: input.
  - Minor: Says nothing about what it returns.
- `json_diff`: 23 / 100
  - 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: No constraints, side effects, auth or rate limits described, and no annotations.
- `json_to_csv`: 24 / 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.
- `meta_tags_generate`: 24 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: title, description, url, imageUrl, siteName, twitterHandle, locale, type, canonical, author.
  - Minor: String arguments with no constraint or example: title, description.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `text_diff`: 25 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: left, right, mode.
  - Minor: String arguments with no constraint or example: left, right.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `json_validate`: 27 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: input.
  - Minor: String arguments with no constraint or example: input.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `unix_timestamp_convert`: 28 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: unit, zone.
  - 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.
- `csv_split`: 30 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Arguments without a description: input, mode.
  - Minor: String arguments with no constraint or example: input.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `color_convert`: 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.
- `regex_test`: 44 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Arguments without a description: input.
  - Minor: String arguments with no constraint or example: input.
  - 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)
