This page shows how fnlowl (com.fnlowl/fnlowl)'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/com.fnlowl/fnlowl
Average score
46.1/ 100Cloudy
Tools
40
Near-identical descriptions
1
Across the server
Minor
40 tools. Above 25, models start to tell tools apart less well.many_tools
Tools whose descriptions are nearly the same
1 of 1 pairs shown, highest description similarity first.
Tool
Tool
Description similarity
Name similarity
create_widget
update_widget
0.84
0.33
Tools
update_ai_context
27/ 100Rain
Purpose
17 / 20
When to use
0 / 20
Arguments
3 / 25
Return value
0 / 15
Constraints and side effects
7 / 10
Examples
0 / 10
Major
Says nothing about when to use it, or when not to.no_usage_context
Major
Arguments without a description: about, designDirection, valueProps, pricingTiers, pricingTiers[].id, pricingTiers[].name, pricingTiers[].price, pricingTiers[].description, testimonials, testimonials[].id, testimonials[].quote, testimonials[].author.param_no_description
Minor
String arguments with no constraint or example: about, designDirection, pricingTiers[].id, pricingTiers[].name, pricingTiers[].price, pricingTiers[].description, testimonials[].id, testimonials[].quote, testimonials[].author.loose_string_param
Minor
No `required` list, so every argument is optional.no_required
Minor
Says nothing about what it returns.no_return_info
update_sequence
31/ 100Rain
Purpose
17 / 20
When to use
0 / 20
Arguments
7 / 25
Return value
0 / 15
Constraints and side effects
7 / 10
Examples
0 / 10
Major
Says nothing about when to use it, or when not to.no_usage_context
Major
Arguments without a description: sequenceId, name, widgetId, steps, steps[].type, steps[].subject, steps[].body, steps[].type, steps[].delayDays, branch.param_no_description
Minor
String arguments with no constraint or example: steps[].type, steps[].subject, steps[].body, steps[].type.loose_string_param
Minor
Says nothing about what it returns.no_return_info
Minor
Required identifiers whose description does not say where the value comes from: sequenceId. Name the tool or the place that returns it, or models look it up first.id_source_missing
update_campaign
32/ 100Rain
Purpose
17 / 20
When to use
0 / 20
Arguments
8 / 25
Return value
0 / 15
Constraints and side effects
7 / 10
Examples
0 / 10
Major
Says nothing about when to use it, or when not to.no_usage_context
Major
Arguments without a description: campaignId, name, subject, body, recipientScope.param_no_description
Minor
String arguments with no constraint or example: name, subject, body, recipientScope.loose_string_param
Minor
The description mentions none of its 3 or more arguments.params_not_in_description
Minor
Says nothing about what it returns.no_return_info
Minor
Required identifiers whose description does not say where the value comes from: campaignId. Name the tool or the place that returns it, or models look it up first.id_source_missing
read_integration_delivery_status
34/ 100Rain
Purpose
17 / 20
When to use
0 / 20
Arguments
10 / 25
Return value
0 / 15
Constraints and side effects
7 / 10
Examples
0 / 10
Major
Says nothing about when to use it, or when not to.no_usage_context
Minor
Arguments without a description: limit.param_no_description
Minor
No `required` list, so every argument is optional.no_required
Minor
Says nothing about what it returns.no_return_info
update_brand
34/ 100Rain
Purpose
17 / 20
When to use
5 / 20
Arguments
5 / 25
Return value
0 / 15
Constraints and side effects
7 / 10
Examples
0 / 10
Major
Arguments without a description: siteName, accentColor, senderName, logoUrl, mailingAddress, legalName, termsUrl, privacyUrl.param_no_description
Minor
String arguments with no constraint or example: siteName, senderName, logoUrl, mailingAddress, legalName, termsUrl, privacyUrl.loose_string_param
Minor
No `required` list, so every argument is optional.no_required
Minor
Says nothing about what it returns.no_return_info
update_template
35/ 100Rain
Purpose
17 / 20
When to use
0 / 20
Arguments
11 / 25
Return value
0 / 15
Constraints and side effects
7 / 10
Examples
0 / 10
Major
Says nothing about when to use it, or when not to.no_usage_context
Major
Arguments without a description: templateId, name, category, subject, body.param_no_description
Minor
Says nothing about what it returns.no_return_info
Minor
Required identifiers whose description does not say where the value comes from: templateId. Name the tool or the place that returns it, or models look it up first.id_source_missing
list_templates
38/ 100Rain
Purpose
14 / 20
When to use
0 / 20
Arguments
17 / 25
Return value
0 / 15
Constraints and side effects
7 / 10
Examples
0 / 10
Major
Says nothing about when to use it, or when not to.no_usage_context
Minor
No `required` list, so every argument is optional.no_required
Minor
Says nothing about what it returns.no_return_info
read_lead
39/ 100Rain
Purpose
17 / 20
When to use
0 / 20
Arguments
15 / 25
Return value
0 / 15
Constraints and side effects
7 / 10
Examples
0 / 10
Major
Says nothing about when to use it, or when not to.no_usage_context
Minor
Arguments without a description: leadId.param_no_description
Minor
Says nothing about what it returns.no_return_info
Minor
Required identifiers whose description does not say where the value comes from: leadId. Name the tool or the place that returns it, or models look it up first.id_source_missing
stop_experiment
39/ 100Rain
Purpose
17 / 20
When to use
0 / 20
Arguments
15 / 25
Return value
0 / 15
Constraints and side effects
7 / 10
Examples
0 / 10
Major
Says nothing about when to use it, or when not to.no_usage_context
Minor
Arguments without a description: widgetId.param_no_description
Minor
Says nothing about what it returns.no_return_info
Minor
Required identifiers whose description does not say where the value comes from: widgetId. Name the tool or the place that returns it, or models look it up first.id_source_missing
draft_sequence
40/ 100Cloudy
Purpose
20 / 20
When to use
5 / 20
Arguments
8 / 25
Return value
0 / 15
Constraints and side effects
7 / 10
Examples
0 / 10
Major
Arguments without a description: name, widgetId, steps, steps[].type, steps[].subject, steps[].body, steps[].type, steps[].delayDays, branch.param_no_description
Minor
String arguments with no constraint or example: steps[].type, steps[].subject, steps[].body, steps[].type.loose_string_param
Minor
Says nothing about what it returns.no_return_info
Minor
Required identifiers whose description does not say where the value comes from: widgetId. Name the tool or the place that returns it, or models look it up first.id_source_missing
create_project
41/ 100Cloudy
Purpose
17 / 20
When to use
0 / 20
Arguments
10 / 25
Return value
7 / 15
Constraints and side effects
7 / 10
Examples
0 / 10
Major
Says nothing about when to use it, or when not to.no_usage_context
Major
Arguments without a description: name, emoji.param_no_description
list_campaigns
41/ 100Cloudy
Purpose
17 / 20
When to use
0 / 20
Arguments
17 / 25
Return value
0 / 15
Constraints and side effects
7 / 10
Examples
0 / 10
Major
Says nothing about when to use it, or when not to.no_usage_context
Minor
No `required` list, so every argument is optional.no_required
Minor
Says nothing about what it returns.no_return_info
list_sequences
41/ 100Cloudy
Purpose
17 / 20
When to use
0 / 20
Arguments
17 / 25
Return value
0 / 15
Constraints and side effects
7 / 10
Examples
0 / 10
Major
Says nothing about when to use it, or when not to.no_usage_context
Minor
No `required` list, so every argument is optional.no_required
Minor
Says nothing about what it returns.no_return_info
read_ai_context
41/ 100Cloudy
Purpose
17 / 20
When to use
0 / 20
Arguments
17 / 25
Return value
0 / 15
Constraints and side effects
7 / 10
Examples
0 / 10
Major
Says nothing about when to use it, or when not to.no_usage_context
Minor
No `required` list, so every argument is optional.no_required
Minor
Says nothing about what it returns.no_return_info
read_ai_generation_status
41/ 100Cloudy
Purpose
17 / 20
When to use
0 / 20
Arguments
17 / 25
Return value
0 / 15
Constraints and side effects
7 / 10
Examples
0 / 10
Major
Says nothing about when to use it, or when not to.no_usage_context
Minor
No `required` list, so every argument is optional.no_required
Minor
Says nothing about what it returns.no_return_info
list_integrations
42/ 100Cloudy
Purpose
13 / 20
When to use
5 / 20
Arguments
17 / 25
Return value
0 / 15
Constraints and side effects
7 / 10
Examples
0 / 10
Minor
No `required` list, so every argument is optional.no_required
Minor
Says nothing about what it returns.no_return_info
offer_choice
42/ 100Cloudy
Purpose
17 / 20
When to use
0 / 20
Arguments
11 / 25
Return value
7 / 15
Constraints and side effects
7 / 10
Examples
0 / 10
Major
Says nothing about when to use it, or when not to.no_usage_context
Major
Arguments without a description: question, options, options[].label, options[].description, options[].recommended.param_no_description
Minor
The meaning of the boolean argument options[].recommended is unclear.vague_boolean
read_analytics
43/ 100Cloudy
Purpose
17 / 20
When to use
5 / 20
Arguments
7 / 25
Return value
7 / 15
Constraints and side effects
7 / 10
Examples
0 / 10
Major
Arguments without a description: from, to.param_no_description
Minor
No `required` list, so every argument is optional.no_required
read_widget
44/ 100Cloudy
Purpose
17 / 20
When to use
0 / 20
Arguments
15 / 25
Return value
0 / 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
Arguments without a description: widgetId.param_no_description
Minor
Says nothing about what it returns.no_return_info
Minor
Required identifiers whose description does not say where the value comes from: widgetId. Name the tool or the place that returns it, or models look it up first.id_source_missing
draft_campaign
46/ 100Cloudy
Purpose
20 / 20
When to use
0 / 20
Arguments
11 / 25
Return value
0 / 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
Major
Arguments without a description: name, subject, body, recipientScope.param_no_description
Minor
String arguments with no constraint or example: recipientScope.loose_string_param
Minor
Says nothing about what it returns.no_return_info
list_widget_analytics
46/ 100Cloudy
Purpose
17 / 20
When to use
5 / 20
Arguments
17 / 25
Return value
0 / 15
Constraints and side effects
7 / 10
Examples
0 / 10
Minor
No `required` list, so every argument is optional.no_required
Minor
Says nothing about what it returns.no_return_info
read_brand
46/ 100Cloudy
Purpose
17 / 20
When to use
0 / 20
Arguments
17 / 25
Return value
0 / 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
No `required` list, so every argument is optional.no_required
Minor
Says nothing about what it returns.no_return_info
create_template
47/ 100Cloudy
Purpose
20 / 20
When to use
5 / 20
Arguments
12 / 25
Return value
0 / 15
Constraints and side effects
10 / 10
Examples
0 / 10
Major
Arguments without a description: name, category, subject, body.param_no_description
Minor
Says nothing about what it returns.no_return_info
list_email_deliveries
47/ 100Cloudy
Purpose
20 / 20
When to use
5 / 20
Arguments
10 / 25
Return value
0 / 15
Constraints and side effects
7 / 10
Examples
5 / 10
Minor
Arguments without a description: limit.param_no_description
Minor
No `required` list, so every argument is optional.no_required
Minor
Says nothing about what it returns.no_return_info
list_leads
47/ 100Cloudy
Purpose
17 / 20
When to use
5 / 20
Arguments
8 / 25
Return value
7 / 15
Constraints and side effects
10 / 10
Examples
0 / 10
Major
Arguments without a description: limit, quality, offset.param_no_description
Minor
No `required` list, so every argument is optional.no_required
pause_sequence
47/ 100Cloudy
Purpose
20 / 20
When to use
5 / 20
Arguments
15 / 25
Return value
0 / 15
Constraints and side effects
7 / 10
Examples
0 / 10
Minor
Arguments without a description: sequenceId.param_no_description
Minor
Says nothing about what it returns.no_return_info
Minor
Required identifiers whose description does not say where the value comes from: sequenceId. Name the tool or the place that returns it, or models look it up first.id_source_missing
read_widget_results
47/ 100Cloudy
Purpose
17 / 20
When to use
5 / 20
Arguments
11 / 25
Return value
7 / 15
Constraints and side effects
7 / 10
Examples
0 / 10
Major
Arguments without a description: widgetId, from, to.param_no_description
Minor
Required identifiers whose description does not say where the value comes from: widgetId. Name the tool or the place that returns it, or models look it up first.id_source_missing
list_widgets
48/ 100Cloudy
Purpose
17 / 20
When to use
0 / 20
Arguments
17 / 25
Return value
7 / 15
Constraints and side effects
7 / 10
Examples
0 / 10
Major
Says nothing about when to use it, or when not to.no_usage_context
Minor
No `required` list, so every argument is optional.no_required
start_experiment
50/ 100Cloudy
Purpose
20 / 20
When to use
10 / 20
Arguments
10 / 25
Return value
0 / 15
Constraints and side effects
10 / 10
Examples
0 / 10
Major
Arguments without a description: widgetId, variantWidgetIds, holdoutPct, trafficPcts.param_no_description
Minor
Says nothing about what it returns.no_return_info
Minor
Required identifiers whose description does not say where the value comes from: widgetId, variantWidgetIds. Name the tool or the place that returns it, or models look it up first.id_source_missing
plan_site_strategy
51/ 100Cloudy
Purpose
17 / 20
When to use
5 / 20
Arguments
17 / 25
Return value
0 / 15
Constraints and side effects
7 / 10
Examples
5 / 10
Minor
No `required` list, so every argument is optional.no_required
Minor
Says nothing about what it returns.no_return_info
list_sequence_enrollments
52/ 100Cloudy
Purpose
20 / 20
When to use
10 / 20
Arguments
10 / 25
Return value
0 / 15
Constraints and side effects
7 / 10
Examples
5 / 10
Major
Arguments without a description: leadId, sequenceId.param_no_description
Minor
No `required` list, so every argument is optional.no_required
Minor
Says nothing about what it returns.no_return_info
list_projects
54/ 100Cloudy
Purpose
17 / 20
When to use
5 / 20
Arguments
25 / 25
Return value
0 / 15
Constraints and side effects
7 / 10
Examples
0 / 10
Minor
Says nothing about what it returns.no_return_info
read_experiment_results
56/ 100Cloudy
Purpose
17 / 20
When to use
5 / 20
Arguments
15 / 25
Return value
7 / 15
Constraints and side effects
7 / 10
Examples
5 / 10
Minor
Arguments without a description: widgetId.param_no_description
Minor
Required identifiers whose description does not say where the value comes from: widgetId. Name the tool or the place that returns it, or models look it up first.id_source_missing
read_sending_status
56/ 100Cloudy
Purpose
20 / 20
When to use
0 / 20
Arguments
17 / 25
Return value
7 / 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
No `required` list, so every argument is optional.no_required
ask_question
60/ 100Cloudy
Purpose
20 / 20
When to use
10 / 20
Arguments
15 / 25
Return value
0 / 15
Constraints and side effects
10 / 10
Examples
5 / 10
Minor
Arguments without a description: question.param_no_description
Its description is nearly the same as create_widget's (similarity 0.84); only the names and schemas tell them apart. Say in this description when to use create_widget instead.confusable_pair
Minor
The description is long (409 words). It helps selection but costs steps and tokens.too_long
The meaning of the boolean argument requireEmail is unclear.vague_boolean
Minor
Required identifiers whose description does not say where the value comes from: widgetId. Name the tool or the place that returns it, or models look it up first.id_source_missing
Its description is nearly the same as update_widget's (similarity 0.84); only the names and schemas tell them apart. Say in this description when to use update_widget instead.confusable_pair
The meaning of the boolean argument requireEmail is unclear.vague_boolean
activate_sequence
64/ 100Cloudy
Purpose
20 / 20
When to use
15 / 20
Arguments
15 / 25
Return value
7 / 15
Constraints and side effects
7 / 10
Examples
0 / 10
Minor
Arguments without a description: sequenceId.param_no_description
Minor
Required identifiers whose description does not say where the value comes from: sequenceId. Name the tool or the place that returns it, or models look it up first.id_source_missing
request_widget_publish
69/ 100Cloudy
Purpose
20 / 20
When to use
15 / 20
Arguments
15 / 25
Return value
7 / 15
Constraints and side effects
7 / 10
Examples
5 / 10
Minor
Arguments without a description: widgetId.param_no_description
Minor
Required identifiers whose description does not say where the value comes from: widgetId. 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.