All scored servers

Text Request MCP by usefulapi: tool descriptions scored io.usefulapi/text-request

tools/list taken
(UTC)
Connected to
https://text-request.usefulapi.io/mcp
Scoring rules
v2
Score this URL as it is today

Scores, issues and names only

This page shows how Text Request MCP by usefulapi (io.usefulapi/text-request)'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.usefulapi/text-request
Average score
44.1 / 100Cloudy
Tools
19
Near-identical descriptions
16

Across the server

  • Minor
    16 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 16 pairs shown, highest description similarity first.
ToolToolDescription similarityName similarity
textrequest_list_groupstextrequest_get_group0.920.20
textrequest_list_keywordstextrequest_get_keyword0.920.20
textrequest_list_tagstextrequest_get_tag0.910.20
textrequest_get_dashboardtextrequest_list_tags0.700.20
textrequest_get_dashboardtextrequest_get_field_definition0.700.40
textrequest_list_groupstextrequest_list_tags0.690.50
textrequest_get_grouptextrequest_get_tag0.660.50
textrequest_get_dashboardtextrequest_get_scheduled_message0.650.40
textrequest_get_dashboardtextrequest_list_groups0.640.20
textrequest_get_dashboardtextrequest_get_tag0.640.50
textrequest_list_groupstextrequest_get_tag0.640.20
textrequest_get_grouptextrequest_list_tags0.640.20

Tools

textrequest_list_users

39 / 100Rain

Purpose
17 / 20
When to use
0 / 20
Arguments
5 / 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
  • Major
    Arguments without a description: page, page_size, external_user_id, email.param_no_description
  • Minor
    No `required` list, so every argument is optional.no_required

textrequest_get_dashboard

42 / 100Cloudy

Purpose
17 / 20
When to use
0 / 20
Arguments
8 / 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
  • Major
    Arguments without a description: dashboard_id.param_no_description
  • Minor
    Its description is nearly the same as textrequest_list_tags's (similarity 0.70); only the names and schemas tell them apart. Say in this description when to use textrequest_list_tags instead.confusable_pair
  • Minor
    Its description is nearly the same as textrequest_get_field_definition's (similarity 0.70); only the names and schemas tell them apart. Say in this description when to use textrequest_get_field_definition instead.confusable_pair
  • Minor
    Its description is nearly the same as textrequest_get_scheduled_message's (similarity 0.65); only the names and schemas tell them apart. Say in this description when to use textrequest_get_scheduled_message instead.confusable_pair
  • Minor
    Its description is nearly the same as textrequest_list_groups's (similarity 0.64); only the names and schemas tell them apart. Say in this description when to use textrequest_list_groups instead.confusable_pair
  • Minor
    Its description is nearly the same as textrequest_get_tag's (similarity 0.64); only the names and schemas tell them apart. Say in this description when to use textrequest_get_tag instead.confusable_pair
  • Minor
    Required identifiers whose description does not say where the value comes from: dashboard_id. Name the tool or the place that returns it, or models look it up first.id_source_missing

textrequest_get_scheduled_message

42 / 100Cloudy

Purpose
17 / 20
When to use
0 / 20
Arguments
8 / 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
  • Major
    Arguments without a description: dashboard_id, message_id.param_no_description
  • Minor
    Its description is nearly the same as textrequest_get_dashboard's (similarity 0.65); only the names and schemas tell them apart. Say in this description when to use textrequest_get_dashboard instead.confusable_pair
  • Minor
    Required identifiers whose description does not say where the value comes from: dashboard_id, message_id. Name the tool or the place that returns it, or models look it up first.id_source_missing

textrequest_list_dashboards

42 / 100Cloudy

Purpose
20 / 20
When to use
0 / 20
Arguments
5 / 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
  • Major
    Arguments without a description: page, page_size.param_no_description
  • Minor
    No `required` list, so every argument is optional.no_required

textrequest_list_tags

42 / 100Cloudy

Purpose
17 / 20
When to use
0 / 20
Arguments
8 / 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
  • Major
    Arguments without a description: dashboard_id, page, page_size.param_no_description
  • Minor
    Its description is nearly the same as textrequest_get_tag's (similarity 0.91); only the names and schemas tell them apart. Say in this description when to use textrequest_get_tag instead.confusable_pair
  • Minor
    Its description is nearly the same as textrequest_get_dashboard's (similarity 0.70); only the names and schemas tell them apart. Say in this description when to use textrequest_get_dashboard instead.confusable_pair
  • Minor
    Its description is nearly the same as textrequest_list_groups's (similarity 0.69); only the names and schemas tell them apart. Say in this description when to use textrequest_list_groups instead.confusable_pair
  • Minor
    Its description is nearly the same as textrequest_get_group's (similarity 0.64); only the names and schemas tell them apart. Say in this description when to use textrequest_get_group instead.confusable_pair
  • Minor
    Required identifiers whose description does not say where the value comes from: dashboard_id. Name the tool or the place that returns it, or models look it up first.id_source_missing

textrequest_get_contact

45 / 100Cloudy

Purpose
20 / 20
When to use
0 / 20
Arguments
8 / 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
  • Major
    Arguments without a description: dashboard_id, phone_number.param_no_description
  • Minor
    Required identifiers whose description does not say where the value comes from: dashboard_id. Name the tool or the place that returns it, or models look it up first.id_source_missing

textrequest_get_field_definition

45 / 100Cloudy

Purpose
20 / 20
When to use
0 / 20
Arguments
8 / 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
  • Major
    Arguments without a description: dashboard_id, field_id.param_no_description
  • Minor
    Its description is nearly the same as textrequest_get_dashboard's (similarity 0.70); only the names and schemas tell them apart. Say in this description when to use textrequest_get_dashboard instead.confusable_pair
  • Minor
    Required identifiers whose description does not say where the value comes from: dashboard_id, field_id. Name the tool or the place that returns it, or models look it up first.id_source_missing

textrequest_get_group

45 / 100Cloudy

Purpose
20 / 20
When to use
0 / 20
Arguments
8 / 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
  • Major
    Arguments without a description: dashboard_id, group_id.param_no_description
  • Minor
    Its description is nearly the same as textrequest_list_groups's (similarity 0.92); only the names and schemas tell them apart. Say in this description when to use textrequest_list_groups instead.confusable_pair
  • Minor
    Its description is nearly the same as textrequest_get_tag's (similarity 0.66); only the names and schemas tell them apart. Say in this description when to use textrequest_get_tag instead.confusable_pair
  • Minor
    Its description is nearly the same as textrequest_list_tags's (similarity 0.64); only the names and schemas tell them apart. Say in this description when to use textrequest_list_tags instead.confusable_pair
  • Minor
    Required identifiers whose description does not say where the value comes from: dashboard_id, group_id. Name the tool or the place that returns it, or models look it up first.id_source_missing

textrequest_get_keyword

45 / 100Cloudy

Purpose
20 / 20
When to use
0 / 20
Arguments
8 / 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
  • Major
    Arguments without a description: dashboard_id, keyword_id.param_no_description
  • Minor
    Its description is nearly the same as textrequest_list_keywords's (similarity 0.92); only the names and schemas tell them apart. Say in this description when to use textrequest_list_keywords instead.confusable_pair
  • Minor
    Required identifiers whose description does not say where the value comes from: dashboard_id, keyword_id. Name the tool or the place that returns it, or models look it up first.id_source_missing

textrequest_get_tag

45 / 100Cloudy

Purpose
20 / 20
When to use
0 / 20
Arguments
8 / 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
  • Major
    Arguments without a description: dashboard_id, tag_id.param_no_description
  • Minor
    Its description is nearly the same as textrequest_list_tags's (similarity 0.91); only the names and schemas tell them apart. Say in this description when to use textrequest_list_tags instead.confusable_pair
  • Minor
    Its description is nearly the same as textrequest_get_group's (similarity 0.66); only the names and schemas tell them apart. Say in this description when to use textrequest_get_group instead.confusable_pair
  • Minor
    Its description is nearly the same as textrequest_get_dashboard's (similarity 0.64); only the names and schemas tell them apart. Say in this description when to use textrequest_get_dashboard instead.confusable_pair
  • Minor
    Its description is nearly the same as textrequest_list_groups's (similarity 0.64); only the names and schemas tell them apart. Say in this description when to use textrequest_list_groups instead.confusable_pair
  • Minor
    Required identifiers whose description does not say where the value comes from: dashboard_id, tag_id. Name the tool or the place that returns it, or models look it up first.id_source_missing

textrequest_get_user

45 / 100Cloudy

Purpose
20 / 20
When to use
0 / 20
Arguments
8 / 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
  • Major
    Arguments without a description: user_id.param_no_description
  • Minor
    Required identifiers whose description does not say where the value comes from: user_id. Name the tool or the place that returns it, or models look it up first.id_source_missing

textrequest_list_contact_messages

45 / 100Cloudy

Purpose
20 / 20
When to use
0 / 20
Arguments
8 / 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
  • Major
    Arguments without a description: dashboard_id, phone_number, page, page_size.param_no_description
  • Minor
    Required identifiers whose description does not say where the value comes from: dashboard_id. Name the tool or the place that returns it, or models look it up first.id_source_missing

textrequest_list_contacts

45 / 100Cloudy

Purpose
20 / 20
When to use
0 / 20
Arguments
8 / 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
  • Major
    Arguments without a description: dashboard_id, page, page_size, contact_phone_number, display_name, tags, groups, is_resolved, has_message_history, is_blocked, is_archived, is_suppressed, has_opted_out, contact_created_before, contact_created_after, last_message_timestamp_before_utc, last_message_timestamp_after_utc.param_no_description
  • Minor
    The meaning of the boolean argument is_resolved is unclear.vague_boolean
  • Minor
    The meaning of the boolean argument has_message_history is unclear.vague_boolean
  • Minor
    The meaning of the boolean argument is_blocked is unclear.vague_boolean
  • Minor
    The meaning of the boolean argument is_archived is unclear.vague_boolean
  • Minor
    The meaning of the boolean argument is_suppressed is unclear.vague_boolean
  • Minor
    The meaning of the boolean argument has_opted_out is unclear.vague_boolean
  • Minor
    Required identifiers whose description does not say where the value comes from: dashboard_id. Name the tool or the place that returns it, or models look it up first.id_source_missing

textrequest_list_conversations

45 / 100Cloudy

Purpose
20 / 20
When to use
0 / 20
Arguments
8 / 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
  • Major
    Arguments without a description: dashboard_id, page, page_size, tags, show_unresolved_only, include_archived, search.param_no_description
  • Minor
    The meaning of the boolean argument show_unresolved_only is unclear.vague_boolean
  • Minor
    The meaning of the boolean argument include_archived is unclear.vague_boolean
  • Minor
    Required identifiers whose description does not say where the value comes from: dashboard_id. Name the tool or the place that returns it, or models look it up first.id_source_missing

textrequest_list_field_definitions

45 / 100Cloudy

Purpose
20 / 20
When to use
0 / 20
Arguments
8 / 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
  • Major
    Arguments without a description: dashboard_id.param_no_description
  • Minor
    Required identifiers whose description does not say where the value comes from: dashboard_id. Name the tool or the place that returns it, or models look it up first.id_source_missing

textrequest_list_groups

45 / 100Cloudy

Purpose
20 / 20
When to use
0 / 20
Arguments
8 / 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
  • Major
    Arguments without a description: dashboard_id, page, page_size.param_no_description
  • Minor
    Its description is nearly the same as textrequest_get_group's (similarity 0.92); only the names and schemas tell them apart. Say in this description when to use textrequest_get_group instead.confusable_pair
  • Minor
    Its description is nearly the same as textrequest_list_tags's (similarity 0.69); only the names and schemas tell them apart. Say in this description when to use textrequest_list_tags instead.confusable_pair
  • Minor
    Its description is nearly the same as textrequest_get_dashboard's (similarity 0.64); only the names and schemas tell them apart. Say in this description when to use textrequest_get_dashboard instead.confusable_pair
  • Minor
    Its description is nearly the same as textrequest_get_tag's (similarity 0.64); only the names and schemas tell them apart. Say in this description when to use textrequest_get_tag instead.confusable_pair
  • Minor
    Required identifiers whose description does not say where the value comes from: dashboard_id. Name the tool or the place that returns it, or models look it up first.id_source_missing

textrequest_list_keywords

45 / 100Cloudy

Purpose
20 / 20
When to use
0 / 20
Arguments
8 / 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
  • Major
    Arguments without a description: dashboard_id, page, page_size.param_no_description
  • Minor
    Its description is nearly the same as textrequest_get_keyword's (similarity 0.92); only the names and schemas tell them apart. Say in this description when to use textrequest_get_keyword instead.confusable_pair
  • Minor
    Required identifiers whose description does not say where the value comes from: dashboard_id. Name the tool or the place that returns it, or models look it up first.id_source_missing

textrequest_list_messages

45 / 100Cloudy

Purpose
20 / 20
When to use
0 / 20
Arguments
8 / 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
  • Major
    Arguments without a description: dashboard_id, page, page_size, start_date, end_date.param_no_description
  • Minor
    Required identifiers whose description does not say where the value comes from: dashboard_id. Name the tool or the place that returns it, or models look it up first.id_source_missing

textrequest_list_scheduled_messages

45 / 100Cloudy

Purpose
20 / 20
When to use
0 / 20
Arguments
8 / 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
  • Major
    Arguments without a description: dashboard_id, page, page_size, schedule_date_after, schedule_date_before, recurring_only.param_no_description
  • Minor
    The meaning of the boolean argument recurring_only is unclear.vague_boolean
  • Minor
    Required identifiers whose description does not say where the value comes from: dashboard_id. Name the tool or the place that returns it, or models look it up first.id_source_missing

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