All scored servers

Magic Hour: tool descriptions scored io.github.magichourhq/magic-hour

tools/list taken
(UTC)
Connected to
https://mcp.magichour.ai/
Scoring rules
v2
Score this URL as it is today

Scores, issues and names only

This page shows how Magic Hour (io.github.magichourhq/magic-hour)'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.

servers/io.github.magichourhq/magic-hour
Average score
65.9 / 100Cloudy
Tools
48
Near-identical descriptions
17

Across the server

  • Major
    48 tools. Above 40, models choose less accurately.too_many_tools
  • Minor
    17 pairs with nearly the same description in all; the top 12 are shown.confusable_pair_total

Tools whose descriptions are nearly the same

12 of 17 pairs shown, highest description similarity first.
ToolToolDescription similarityName similarity
wait_for_image_projectwait_for_audio_project0.940.60
fetch_image_downloadfetch_audio_download0.940.50
get_video_projectget_image_project0.880.50
get_video_projectget_audio_project0.880.50
get_image_projectget_audio_project0.880.50
delete_video_projectdelete_image_project0.860.50
delete_video_projectdelete_audio_project0.860.50
delete_image_projectdelete_audio_project0.860.50
fetch_image_downloadfetch_video_download0.810.50
fetch_audio_downloadfetch_video_download0.810.50
wait_for_video_projectwait_for_image_project0.680.60
wait_for_video_projectwait_for_audio_project0.680.60

Tools

fetch_audio_download

40 / 100Cloudy

Purpose
20 / 20
When to use
5 / 20
Arguments
5 / 25
Return value
0 / 15
Constraints and side effects
10 / 10
Examples
0 / 10
  • Major
    Arguments without a description: download_url, max_bytes.param_no_description
  • Minor
    Its description is nearly the same as fetch_image_download's (similarity 0.94); only the names and schemas tell them apart. Say in this description when to use fetch_image_download instead.confusable_pair
  • Minor
    Its description is nearly the same as fetch_video_download's (similarity 0.81); only the names and schemas tell them apart. Say in this description when to use fetch_video_download instead.confusable_pair
  • Minor
    String arguments with no constraint or example: download_url.loose_string_param
  • Minor
    Says nothing about what it returns.no_return_info

fetch_image_download

40 / 100Cloudy

Purpose
20 / 20
When to use
5 / 20
Arguments
5 / 25
Return value
0 / 15
Constraints and side effects
10 / 10
Examples
0 / 10
  • Major
    Arguments without a description: download_url, max_bytes.param_no_description
  • Minor
    Its description is nearly the same as fetch_audio_download's (similarity 0.94); only the names and schemas tell them apart. Say in this description when to use fetch_audio_download instead.confusable_pair
  • Minor
    Its description is nearly the same as fetch_video_download's (similarity 0.81); only the names and schemas tell them apart. Say in this description when to use fetch_video_download instead.confusable_pair
  • Minor
    String arguments with no constraint or example: download_url.loose_string_param
  • Minor
    Says nothing about what it returns.no_return_info

fetch_video_download

40 / 100Cloudy

Purpose
20 / 20
When to use
5 / 20
Arguments
5 / 25
Return value
0 / 15
Constraints and side effects
10 / 10
Examples
0 / 10
  • Major
    Arguments without a description: download_url, max_bytes.param_no_description
  • Minor
    Its description is nearly the same as fetch_image_download's (similarity 0.81); only the names and schemas tell them apart. Say in this description when to use fetch_image_download instead.confusable_pair
  • Minor
    Its description is nearly the same as fetch_audio_download's (similarity 0.81); only the names and schemas tell them apart. Say in this description when to use fetch_audio_download instead.confusable_pair
  • Minor
    String arguments with no constraint or example: download_url.loose_string_param
  • Minor
    Says nothing about what it returns.no_return_info

delete_audio_project

49 / 100Cloudy

Purpose
14 / 20
When to use
0 / 20
Arguments
18 / 25
Return value
7 / 15
Constraints and side effects
10 / 10
Examples
0 / 10
  • Major
    Says nothing about when to use it, or when not to.no_usage_context
  • Minor
    Its description is nearly the same as delete_video_project's (similarity 0.86); only the names and schemas tell them apart. Say in this description when to use delete_video_project instead.confusable_pair
  • Minor
    Its description is nearly the same as delete_image_project's (similarity 0.86); only the names and schemas tell them apart. Say in this description when to use delete_image_project instead.confusable_pair

delete_image_project

49 / 100Cloudy

Purpose
14 / 20
When to use
0 / 20
Arguments
18 / 25
Return value
7 / 15
Constraints and side effects
10 / 10
Examples
0 / 10
  • Major
    Says nothing about when to use it, or when not to.no_usage_context
  • Minor
    Its description is nearly the same as delete_video_project's (similarity 0.86); only the names and schemas tell them apart. Say in this description when to use delete_video_project instead.confusable_pair
  • Minor
    Its description is nearly the same as delete_audio_project's (similarity 0.86); only the names and schemas tell them apart. Say in this description when to use delete_audio_project instead.confusable_pair

delete_video_project

49 / 100Cloudy

Purpose
14 / 20
When to use
0 / 20
Arguments
18 / 25
Return value
7 / 15
Constraints and side effects
10 / 10
Examples
0 / 10
  • Major
    Says nothing about when to use it, or when not to.no_usage_context
  • Minor
    Its description is nearly the same as delete_image_project's (similarity 0.86); only the names and schemas tell them apart. Say in this description when to use delete_image_project instead.confusable_pair
  • Minor
    Its description is nearly the same as delete_audio_project's (similarity 0.86); only the names and schemas tell them apart. Say in this description when to use delete_audio_project instead.confusable_pair

wait_for_audio_project

49 / 100Cloudy

Purpose
17 / 20
When to use
10 / 20
Arguments
5 / 25
Return value
7 / 15
Constraints and side effects
10 / 10
Examples
0 / 10
  • Major
    Arguments without a description: id, poll_interval_seconds, timeout_seconds, include_inline_downloads, max_inline_downloads, max_bytes_per_download.param_no_description
  • Minor
    Its description is nearly the same as wait_for_image_project's (similarity 0.94); only the names and schemas tell them apart. Say in this description when to use wait_for_image_project instead.confusable_pair
  • Minor
    Its description is nearly the same as wait_for_video_project's (similarity 0.68); only the names and schemas tell them apart. Say in this description when to use wait_for_video_project instead.confusable_pair
  • Minor
    String arguments with no constraint or example: id.loose_string_param
  • Minor
    The meaning of the boolean argument include_inline_downloads is unclear.vague_boolean

wait_for_image_project

49 / 100Cloudy

Purpose
17 / 20
When to use
10 / 20
Arguments
5 / 25
Return value
7 / 15
Constraints and side effects
10 / 10
Examples
0 / 10
  • Major
    Arguments without a description: id, poll_interval_seconds, timeout_seconds, include_inline_downloads, max_inline_downloads, max_bytes_per_download.param_no_description
  • Minor
    Its description is nearly the same as wait_for_audio_project's (similarity 0.94); only the names and schemas tell them apart. Say in this description when to use wait_for_audio_project instead.confusable_pair
  • Minor
    Its description is nearly the same as wait_for_video_project's (similarity 0.68); only the names and schemas tell them apart. Say in this description when to use wait_for_video_project instead.confusable_pair
  • Minor
    String arguments with no constraint or example: id.loose_string_param
  • Minor
    The meaning of the boolean argument include_inline_downloads is unclear.vague_boolean

wait_for_video_project

54 / 100Cloudy

Purpose
17 / 20
When to use
15 / 20
Arguments
5 / 25
Return value
7 / 15
Constraints and side effects
10 / 10
Examples
0 / 10
  • Major
    Arguments without a description: id, poll_interval_seconds, timeout_seconds, include_inline_downloads, max_inline_downloads.param_no_description
  • Minor
    Its description is nearly the same as wait_for_image_project's (similarity 0.68); only the names and schemas tell them apart. Say in this description when to use wait_for_image_project instead.confusable_pair
  • Minor
    Its description is nearly the same as wait_for_audio_project's (similarity 0.68); only the names and schemas tell them apart. Say in this description when to use wait_for_audio_project instead.confusable_pair
  • Minor
    String arguments with no constraint or example: id.loose_string_param
  • Minor
    The meaning of the boolean argument include_inline_downloads is unclear.vague_boolean

create_meme

57 / 100Cloudy

Purpose
14 / 20
When to use
0 / 20
Arguments
18 / 25
Return value
15 / 15
Constraints and side effects
10 / 10
Examples
0 / 10
  • Major
    Says nothing about when to use it, or when not to.no_usage_context
  • Minor
    Arguments without a description: style.param_no_description
  • Minor
    The description mentions none of its 3 or more arguments.params_not_in_description

generate_music

57 / 100Cloudy

Purpose
14 / 20
When to use
0 / 20
Arguments
18 / 25
Return value
15 / 15
Constraints and side effects
10 / 10
Examples
0 / 10
  • Major
    Says nothing about when to use it, or when not to.no_usage_context
  • Minor
    Arguments without a description: style.param_no_description
  • Minor
    The description mentions none of its 3 or more arguments.params_not_in_description

create_qr_code

58 / 100Cloudy

Purpose
17 / 20
When to use
0 / 20
Arguments
16 / 25
Return value
15 / 15
Constraints and side effects
10 / 10
Examples
0 / 10
  • Major
    Says nothing about when to use it, or when not to.no_usage_context
  • Minor
    Arguments without a description: style.param_no_description
  • Minor
    The description mentions none of its 3 or more arguments.params_not_in_description

list_saved_items

58 / 100Cloudy

Purpose
17 / 20
When to use
0 / 20
Arguments
23 / 25
Return value
8 / 15
Constraints and side effects
10 / 10
Examples
0 / 10
  • Major
    Says nothing about when to use it, or when not to.no_usage_context

get_face_detection_results

60 / 100Cloudy

Purpose
17 / 20
When to use
0 / 20
Arguments
18 / 25
Return value
15 / 15
Constraints and side effects
10 / 10
Examples
0 / 10
  • Major
    Says nothing about when to use it, or when not to.no_usage_context

create_gif_or_short_video

61 / 100Cloudy

Purpose
17 / 20
When to use
0 / 20
Arguments
19 / 25
Return value
15 / 15
Constraints and side effects
10 / 10
Examples
0 / 10
  • Major
    Says nothing about when to use it, or when not to.no_usage_context
  • Minor
    Arguments without a description: style.param_no_description
  • Minor
    The description mentions none of its 3 or more arguments.params_not_in_description

detect_faces

62 / 100Cloudy

Purpose
17 / 20
When to use
0 / 20
Arguments
18 / 25
Return value
15 / 15
Constraints and side effects
7 / 10
Examples
5 / 10
  • Major
    Says nothing about when to use it, or when not to.no_usage_context
  • Minor
    The description mentions none of its 3 or more arguments.params_not_in_description

ping

62 / 100Cloudy

Purpose
17 / 20
When to use
5 / 20
Arguments
25 / 25
Return value
8 / 15
Constraints and side effects
7 / 10
Examples
0 / 10

No issues.

remove_image_background

64 / 100Cloudy

Purpose
14 / 20
When to use
0 / 20
Arguments
20 / 25
Return value
15 / 15
Constraints and side effects
10 / 10
Examples
5 / 10
  • Major
    Says nothing about when to use it, or when not to.no_usage_context
  • Minor
    The description mentions none of its 3 or more arguments.params_not_in_description

generate_headshot

65 / 100Cloudy

Purpose
17 / 20
When to use
0 / 20
Arguments
18 / 25
Return value
15 / 15
Constraints and side effects
10 / 10
Examples
5 / 10
  • Major
    Says nothing about when to use it, or when not to.no_usage_context
  • Minor
    Arguments without a description: style.param_no_description
  • Minor
    The description mentions none of its 3 or more arguments.params_not_in_description

get_audio_project

65 / 100Cloudy

Purpose
17 / 20
When to use
5 / 20
Arguments
18 / 25
Return value
15 / 15
Constraints and side effects
10 / 10
Examples
0 / 10
  • Minor
    Its description is nearly the same as get_video_project's (similarity 0.88); only the names and schemas tell them apart. Say in this description when to use get_video_project instead.confusable_pair
  • Minor
    Its description is nearly the same as get_image_project's (similarity 0.88); only the names and schemas tell them apart. Say in this description when to use get_image_project instead.confusable_pair

get_image_project

65 / 100Cloudy

Purpose
17 / 20
When to use
5 / 20
Arguments
18 / 25
Return value
15 / 15
Constraints and side effects
10 / 10
Examples
0 / 10
  • Minor
    Its description is nearly the same as get_video_project's (similarity 0.88); only the names and schemas tell them apart. Say in this description when to use get_video_project instead.confusable_pair
  • Minor
    Its description is nearly the same as get_audio_project's (similarity 0.88); only the names and schemas tell them apart. Say in this description when to use get_audio_project instead.confusable_pair

get_upload_urls

65 / 100Cloudy

Purpose
17 / 20
When to use
10 / 20
Arguments
23 / 25
Return value
8 / 15
Constraints and side effects
7 / 10
Examples
0 / 10
  • Minor
    The description mentions none of its 3 or more arguments.params_not_in_description

get_video_project

65 / 100Cloudy

Purpose
17 / 20
When to use
5 / 20
Arguments
18 / 25
Return value
15 / 15
Constraints and side effects
10 / 10
Examples
0 / 10
  • Minor
    Its description is nearly the same as get_image_project's (similarity 0.88); only the names and schemas tell them apart. Say in this description when to use get_image_project instead.confusable_pair
  • Minor
    Its description is nearly the same as get_audio_project's (similarity 0.88); only the names and schemas tell them apart. Say in this description when to use get_audio_project instead.confusable_pair

upscale_image

66 / 100Cloudy

Purpose
14 / 20
When to use
0 / 20
Arguments
22 / 25
Return value
15 / 15
Constraints and side effects
10 / 10
Examples
5 / 10
  • Major
    Says nothing about when to use it, or when not to.no_usage_context
  • Minor
    The description mentions none of its 3 or more arguments.params_not_in_description

add_subtitles_to_video

67 / 100Cloudy

Purpose
17 / 20
When to use
0 / 20
Arguments
20 / 25
Return value
15 / 15
Constraints and side effects
10 / 10
Examples
5 / 10
  • Major
    Says nothing about when to use it, or when not to.no_usage_context
  • Minor
    The description mentions none of its 3 or more arguments.params_not_in_description

colorize_photo

67 / 100Cloudy

Purpose
14 / 20
When to use
0 / 20
Arguments
23 / 25
Return value
15 / 15
Constraints and side effects
10 / 10
Examples
5 / 10
  • Major
    Says nothing about when to use it, or when not to.no_usage_context
  • Minor
    The description mentions none of its 3 or more arguments.params_not_in_description

create_video_from_text

67 / 100Cloudy

Purpose
17 / 20
When to use
0 / 20
Arguments
20 / 25
Return value
15 / 15
Constraints and side effects
10 / 10
Examples
5 / 10
  • Major
    Says nothing about when to use it, or when not to.no_usage_context
  • Minor
    Arguments without a description: style, references[].name.param_no_description

restyle_video

67 / 100Cloudy

Purpose
17 / 20
When to use
0 / 20
Arguments
20 / 25
Return value
15 / 15
Constraints and side effects
10 / 10
Examples
5 / 10
  • Major
    Says nothing about when to use it, or when not to.no_usage_context
  • Minor
    Arguments without a description: style, style.art_style.param_no_description
  • Minor
    The description mentions none of its 3 or more arguments.params_not_in_description

edit_image

68 / 100Cloudy

Purpose
17 / 20
When to use
0 / 20
Arguments
21 / 25
Return value
15 / 15
Constraints and side effects
10 / 10
Examples
5 / 10
  • Major
    Says nothing about when to use it, or when not to.no_usage_context
  • Minor
    Arguments without a description: style.param_no_description

edit_video

68 / 100Cloudy

Purpose
17 / 20
When to use
0 / 20
Arguments
21 / 25
Return value
15 / 15
Constraints and side effects
10 / 10
Examples
5 / 10
  • Major
    Says nothing about when to use it, or when not to.no_usage_context
  • Minor
    Arguments without a description: style.param_no_description
  • Minor
    The description mentions none of its 3 or more arguments.params_not_in_description

create_animation

69 / 100Cloudy

Purpose
17 / 20
When to use
0 / 20
Arguments
22 / 25
Return value
15 / 15
Constraints and side effects
10 / 10
Examples
5 / 10
  • Major
    Says nothing about when to use it, or when not to.no_usage_context
  • Minor
    The description mentions none of its 3 or more arguments.params_not_in_description

create_video_from_audio

69 / 100Cloudy

Purpose
17 / 20
When to use
0 / 20
Arguments
22 / 25
Return value
15 / 15
Constraints and side effects
10 / 10
Examples
5 / 10
  • Major
    Says nothing about when to use it, or when not to.no_usage_context
  • Minor
    The description mentions none of its 3 or more arguments.params_not_in_description

create_video_from_image

69 / 100Cloudy

Purpose
17 / 20
When to use
0 / 20
Arguments
22 / 25
Return value
15 / 15
Constraints and side effects
10 / 10
Examples
5 / 10
  • Major
    Says nothing about when to use it, or when not to.no_usage_context

edit_face_in_photo

70 / 100Clear

Purpose
17 / 20
When to use
0 / 20
Arguments
23 / 25
Return value
15 / 15
Constraints and side effects
10 / 10
Examples
5 / 10
  • Major
    Says nothing about when to use it, or when not to.no_usage_context
  • Minor
    The description mentions none of its 3 or more arguments.params_not_in_description
  • Minor
    The meaning of the boolean argument style.enhance_face is unclear.vague_boolean

generate_image

70 / 100Clear

Purpose
17 / 20
When to use
0 / 20
Arguments
23 / 25
Return value
15 / 15
Constraints and side effects
10 / 10
Examples
5 / 10
  • Major
    Says nothing about when to use it, or when not to.no_usage_context

translate_video

70 / 100Clear

Purpose
17 / 20
When to use
0 / 20
Arguments
23 / 25
Return value
15 / 15
Constraints and side effects
10 / 10
Examples
5 / 10
  • Major
    Says nothing about when to use it, or when not to.no_usage_context
  • Minor
    The description mentions none of its 3 or more arguments.params_not_in_description

upscale_video

70 / 100Clear

Purpose
17 / 20
When to use
0 / 20
Arguments
23 / 25
Return value
15 / 15
Constraints and side effects
10 / 10
Examples
5 / 10
  • Major
    Says nothing about when to use it, or when not to.no_usage_context

get_account_info

72 / 100Clear

Purpose
17 / 20
When to use
5 / 20
Arguments
25 / 25
Return value
15 / 15
Constraints and side effects
10 / 10
Examples
0 / 10

No issues.

get_workflow_guide

72 / 100Clear

Purpose
17 / 20
When to use
15 / 20
Arguments
10 / 25
Return value
15 / 15
Constraints and side effects
10 / 10
Examples
5 / 10
  • Major
    Arguments without a description: workflow.param_no_description

create_spoken_ad_video

82 / 100Clear

Purpose
17 / 20
When to use
15 / 20
Arguments
20 / 25
Return value
15 / 15
Constraints and side effects
10 / 10
Examples
5 / 10
  • Minor
    Arguments without a description: assets.param_no_description

swap_face_in_photo

86 / 100Clear

Purpose
20 / 20
When to use
15 / 20
Arguments
21 / 25
Return value
15 / 15
Constraints and side effects
10 / 10
Examples
5 / 10
  • Minor
    The description mentions none of its 3 or more arguments.params_not_in_description

swap_face_in_video

86 / 100Clear

Purpose
20 / 20
When to use
15 / 20
Arguments
21 / 25
Return value
15 / 15
Constraints and side effects
10 / 10
Examples
5 / 10
  • Minor
    The description mentions none of its 3 or more arguments.params_not_in_description

create_lip_sync_video

87 / 100Clear

Purpose
20 / 20
When to use
15 / 20
Arguments
22 / 25
Return value
15 / 15
Constraints and side effects
10 / 10
Examples
5 / 10
  • Minor
    The description mentions none of its 3 or more arguments.params_not_in_description

create_talking_photo

87 / 100Clear

Purpose
20 / 20
When to use
15 / 20
Arguments
22 / 25
Return value
15 / 15
Constraints and side effects
10 / 10
Examples
5 / 10
  • Minor
    The description mentions none of its 3 or more arguments.params_not_in_description

change_clothes_in_photo

88 / 100Clear

Purpose
20 / 20
When to use
15 / 20
Arguments
23 / 25
Return value
15 / 15
Constraints and side effects
10 / 10
Examples
5 / 10
  • Minor
    The description mentions none of its 3 or more arguments.params_not_in_description

place_person_in_scene

88 / 100Clear

Purpose
20 / 20
When to use
15 / 20
Arguments
23 / 25
Return value
15 / 15
Constraints and side effects
10 / 10
Examples
5 / 10

No issues.

replace_character_in_video

88 / 100Clear

Purpose
20 / 20
When to use
15 / 20
Arguments
23 / 25
Return value
15 / 15
Constraints and side effects
10 / 10
Examples
5 / 10
  • Minor
    The description mentions none of its 3 or more arguments.params_not_in_description

swap_head_in_photo

88 / 100Clear

Purpose
20 / 20
When to use
15 / 20
Arguments
23 / 25
Return value
15 / 15
Constraints and side effects
10 / 10
Examples
5 / 10
  • Minor
    The description mentions none of its 3 or more arguments.params_not_in_description

What static scoring cannot tell

This score reads only the text of each description and schema: it says what is written, not what a model will do. Short tools whose names already say what they do, such as browser_close, score low here even when models use them well, and in our measurements current models chose the right tool in one step even from one-line descriptions, as long as the names and schemas differed. What the text cannot show, such as what happens over several steps and whether an added sentence helps or misleads, is what an evaluation measures, on the Pro and Team plans.

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