# Fine Structure (ai.finestructure/fine-structure): tool descriptions scored

- tools/list taken: 2026-11-02 (UTC)
- From: [Official MCP Registry](https://registry.modelcontextprotocol.io/v0/servers/ai.finestructure%2Ffine-structure/versions/latest)
- Connected to: https://finestructure.ai/api/mcp
- Homepage: https://finestructure.ai/
- Scoring rules: v2
- Tools: 99
- Average: 46.2 / 100 (Cloudy)
- Near-identical pairs: 2

This page shows how Fine Structure (ai.finestructure/fine-structure)'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: 99 tools. Above 40, models choose less accurately.
- Minor: The server's instructions are 4163 characters. Claude Code reads only the first 2,048 by default (Codex 0.154.0 reads them whole). Put what the server is for first.

## Tools

- `get_app_security_audit`: 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: limit.
  - Minor: String arguments with no constraint or example: app_id.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: app_id. Name the tool or the place that returns it, or models look it up first.
- `get_app_metadata`: 29 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: app_id.
  - Minor: String arguments with no constraint or example: app_id.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: app_id. Name the tool or the place that returns it, or models look it up first.
- `delete_secret`: 31 / 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.
  - Minor: String arguments with no constraint or example: app_id, key.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: app_id. Name the tool or the place that returns it, or models look it up first.
- `get_app_status`: 31 / 100
  - Major: The description only restates the name (9 words).
  - Major: Says nothing about when to use it, or when not to.
  - Minor: String arguments with no constraint or example: app_id.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: app_id. Name the tool or the place that returns it, or models look it up first.
- `remove_app_member`: 31 / 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.
  - Minor: String arguments with no constraint or example: app_id.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: app_id, user_id. Name the tool or the place that returns it, or models look it up first.
- `update_platform_request`: 32 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: request_id, status, reply.
  - Minor: String arguments with no constraint or example: request_id, reply.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: request_id. Name the tool or the place that returns it, or models look it up first.
- `create_entity_schema`: 33 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: relationships, indexes, metadata, overwrite.
  - Minor: String arguments with no constraint or example: app_id, entity.
  - Minor: The meaning of the boolean argument overwrite is unclear.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: app_id. Name the tool or the place that returns it, or models look it up first.
- `update_entity_schema`: 33 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: relationships, indexes, metadata, merge.
  - Minor: String arguments with no constraint or example: app_id, entity.
  - Minor: The meaning of the boolean argument merge is unclear.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: app_id. Name the tool or the place that returns it, or models look it up first.
- `validate_change_set`: 33 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Arguments without a description: include_runtime_errors.
  - Minor: String arguments with no constraint or example: app_id, change_set_id.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: The meaning of the boolean argument include_runtime_errors is unclear.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: app_id, change_set_id. Name the tool or the place that returns it, or models look it up first.
- `discard_change_set`: 35 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: String arguments with no constraint or example: app_id, change_set_id.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: app_id, change_set_id. Name the tool or the place that returns it, or models look it up first.
- `validate_app`: 35 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Arguments without a description: include_runtime_errors.
  - Minor: String arguments with no constraint or example: app_id.
  - Minor: The meaning of the boolean argument include_runtime_errors is unclear.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: app_id. Name the tool or the place that returns it, or models look it up first.
- `update_entity_metadata`: 36 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: relationships, indexes, metadata.
  - Minor: String arguments with no constraint or example: app_id, entity.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: app_id. Name the tool or the place that returns it, or models look it up first.
- `set_agent_owner_relay`: 37 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: receiving_agent_id, enabled, source_agent_id.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: The meaning of the boolean argument enabled is unclear.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: receiving_agent_id. Name the tool or the place that returns it, or models look it up first.
- `list_ab_tests`: 38 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: String arguments with no constraint or example: app_id.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: app_id. Name the tool or the place that returns it, or models look it up first.
- `validate_entity_relationships`: 38 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: String arguments with no constraint or example: app_id.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: app_id. Name the tool or the place that returns it, or models look it up first.
- `agency_get_claim_status`: 39 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Says nothing about what it returns.
- `list_agent_tasks`: 39 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
- `list_agents`: 39 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
- `get_platform_request`: 40 / 100
  - Minor: Arguments without a description: request_id.
  - Minor: String arguments with no constraint or example: request_id.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: request_id. Name the tool or the place that returns it, or models look it up first.
- `list_platform_requests`: 40 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Arguments without a description: status, limit.
  - Minor: String arguments with no constraint or example: app_id.
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
- `add_file_change`: 41 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Arguments without a description: operation.
  - Minor: String arguments with no constraint or example: app_id, change_set_id, path.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: app_id, change_set_id. Name the tool or the place that returns it, or models look it up first.
- `set_entity_policy`: 41 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: rules.version, rules.rules, rules.rules[].id, rules.rules[].name, rules.rules[].description, rules.rules[].actions, rules.rules[].subject, rules.rules[].subject.roles.
  - Minor: String arguments with no constraint or example: app_id, rules.rules[].id, rules.rules[].name, rules.rules[].description.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: app_id. Name the tool or the place that returns it, or models look it up first.
- `apply_change_set`: 42 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: String arguments with no constraint or example: app_id, change_set_id.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: app_id, change_set_id. Name the tool or the place that returns it, or models look it up first.
- `check_domain_verification`: 42 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: String arguments with no constraint or example: app_id.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: app_id. Name the tool or the place that returns it, or models look it up first.
- `create_change_set`: 42 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: String arguments with no constraint or example: app_id, label.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: app_id. Name the tool or the place that returns it, or models look it up first.
- `delete_ab_test`: 42 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: String arguments with no constraint or example: app_id.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: app_id, test_id. Name the tool or the place that returns it, or models look it up first.
- `detach_agent_whatsapp`: 42 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: phone_number_id. Name the tool or the place that returns it, or models look it up first.
- `get_ab_test_stats`: 42 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: String arguments with no constraint or example: app_id.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: app_id, test_id. Name the tool or the place that returns it, or models look it up first.
- `get_agent_whatsapp`: 42 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
- `get_app_analytics`: 42 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: String arguments with no constraint or example: app_id.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: app_id. Name the tool or the place that returns it, or models look it up first.
- `get_app_files`: 42 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: String arguments with no constraint or example: app_id.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: app_id. Name the tool or the place that returns it, or models look it up first.
- `get_entities`: 42 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: String arguments with no constraint or example: app_id.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: app_id. Name the tool or the place that returns it, or models look it up first.
- `get_errors`: 42 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: String arguments with no constraint or example: app_id.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: app_id. Name the tool or the place that returns it, or models look it up first.
- `get_pages`: 42 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: String arguments with no constraint or example: app_id.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: app_id. Name the tool or the place that returns it, or models look it up first.
- `list_agent_conversations`: 42 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Arguments without a description: limit.
  - Minor: Says nothing about what it returns.
- `list_app_domains`: 42 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: String arguments with no constraint or example: app_id.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: app_id. Name the tool or the place that returns it, or models look it up first.
- `list_app_members`: 42 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: String arguments with no constraint or example: app_id.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: app_id. Name the tool or the place that returns it, or models look it up first.
- `list_saved_versions`: 42 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: String arguments with no constraint or example: app_id.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: app_id. Name the tool or the place that returns it, or models look it up first.
- `update_ab_test`: 42 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: String arguments with no constraint or example: app_id, name.
  - Minor: The meaning of the boolean argument is_active is unclear.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: app_id, test_id. Name the tool or the place that returns it, or models look it up first.
- `update_app_member_role`: 42 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: String arguments with no constraint or example: app_id, role.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: app_id, user_id. Name the tool or the place that returns it, or models look it up first.
- `set_route_policy`: 43 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Arguments without a description: require_auth, redirect_to.
  - Minor: String arguments with no constraint or example: app_id.
  - Minor: The meaning of the boolean argument require_auth is unclear.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: app_id. Name the tool or the place that returns it, or models look it up first.
- `update_entity_record`: 43 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: String arguments with no constraint or example: app_id, entity, record_id.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: app_id, record_id. Name the tool or the place that returns it, or models look it up first.
- `agency_list_clients`: 44 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
- `compare_current_to_version`: 44 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Arguments without a description: max_diff_chars.
  - Minor: String arguments with no constraint or example: app_id.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Required identifiers whose description does not say where the value comes from: app_id, snapshot_id. Name the tool or the place that returns it, or models look it up first.
- `seed_entity`: 44 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: String arguments with no constraint or example: app_id, entity.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: app_id. Name the tool or the place that returns it, or models look it up first.
- `agency_create_client`: 45 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Says nothing about what it returns.
- `compare_saved_versions`: 45 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Arguments without a description: max_diff_chars.
  - Minor: String arguments with no constraint or example: app_id.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Required identifiers whose description does not say where the value comes from: app_id, base_snapshot_id, target_snapshot_id. Name the tool or the place that returns it, or models look it up first.
- `confirm_owner_phone_verification`: 45 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Says nothing about what it returns.
- `get_app_security_context`: 45 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Arguments without a description: audit_limit.
  - Minor: String arguments with no constraint or example: app_id.
  - Minor: Required identifiers whose description does not say where the value comes from: app_id. Name the tool or the place that returns it, or models look it up first.
- `get_preview_url`: 45 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: String arguments with no constraint or example: app_id.
  - Minor: Required identifiers whose description does not say where the value comes from: app_id. Name the tool or the place that returns it, or models look it up first.
- `patch_app_file`: 45 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: String arguments with no constraint or example: app_id, path, new_text.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: app_id. Name the tool or the place that returns it, or models look it up first.
- `query_entity`: 45 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: String arguments with no constraint or example: app_id.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: app_id. Name the tool or the place that returns it, or models look it up first.
- `read_app_files`: 45 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: String arguments with no constraint or example: app_id.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: app_id. Name the tool or the place that returns it, or models look it up first.
- `rename_app_file`: 45 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: String arguments with no constraint or example: app_id.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: app_id. Name the tool or the place that returns it, or models look it up first.
- `reply_platform_request`: 45 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Arguments without a description: request_id.
  - Minor: String arguments with no constraint or example: request_id.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: request_id. Name the tool or the place that returns it, or models look it up first.
- `write_app_file`: 45 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: String arguments with no constraint or example: app_id, path, content.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: app_id. Name the tool or the place that returns it, or models look it up first.
- `set_app_metadata`: 46 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: app_id, name, description, social_image, icon.
  - Minor: String arguments with no constraint or example: app_id.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: app_id. Name the tool or the place that returns it, or models look it up first.
- `update_entity_records`: 46 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Arguments without a description: updates[].record_id, updates[].changes.
  - Minor: String arguments with no constraint or example: app_id, entity, updates[].record_id.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: app_id. Name the tool or the place that returns it, or models look it up first.
- `configure_domain_redirects`: 47 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: String arguments with no constraint or example: app_id.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: app_id. Name the tool or the place that returns it, or models look it up first.
- `configure_integration`: 47 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: String arguments with no constraint or example: app_id, provider.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Says nothing about what it returns.
- `get_app_detail`: 47 / 100
  - Minor: String arguments with no constraint or example: app_id.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: app_id. Name the tool or the place that returns it, or models look it up first.
- `list_integrations`: 47 / 100
  - Minor: String arguments with no constraint or example: app_id.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: app_id. Name the tool or the place that returns it, or models look it up first.
- `list_secret_keys`: 47 / 100
  - Minor: String arguments with no constraint or example: app_id.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: app_id. Name the tool or the place that returns it, or models look it up first.
- `publish_app`: 47 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: app_id. Name the tool or the place that returns it, or models look it up first.
- `remove_custom_domain`: 47 / 100
  - Minor: String arguments with no constraint or example: app_id.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: app_id. Name the tool or the place that returns it, or models look it up first.
- `set_secret`: 47 / 100
  - Minor: String arguments with no constraint or example: app_id, key.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: app_id. Name the tool or the place that returns it, or models look it up first.
- `agency_create_claim_link`: 49 / 100
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: app_id. Name the tool or the place that returns it, or models look it up first.
- `get_domain_ssl_status`: 49 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: String arguments with no constraint or example: app_id.
  - Minor: Required identifiers whose description does not say where the value comes from: app_id. Name the tool or the place that returns it, or models look it up first.
- `get_domain_verification`: 49 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: String arguments with no constraint or example: app_id.
  - Minor: Required identifiers whose description does not say where the value comes from: app_id. Name the tool or the place that returns it, or models look it up first.
- `attach_agent_whatsapp`: 50 / 100
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: agent_id, phone_number_id. Name the tool or the place that returns it, or models look it up first.
- `create_ab_test`: 50 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: String arguments with no constraint or example: app_id, name.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Says nothing about what it returns.
- `delete_entity_records`: 50 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: String arguments with no constraint or example: app_id, entity.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: app_id. Name the tool or the place that returns it, or models look it up first.
- `get_agent_conversation`: 50 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Arguments without a description: limit, before_id.
  - Minor: String arguments with no constraint or example: before_id.
  - Minor: Required identifiers whose description does not say where the value comes from: agent_id. Name the tool or the place that returns it, or models look it up first.
- `get_agent_task`: 50 / 100
  - Minor: Arguments without a description: task_id.
  - Minor: Says nothing about what it returns.
- `read_app_file`: 50 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: String arguments with no constraint or example: app_id.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: app_id. Name the tool or the place that returns it, or models look it up first.
- `start_owner_phone_verification`: 50 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Says nothing about what it returns.
- `restore_file_from_version`: 51 / 100
  - Minor: Arguments without a description: confirm.
  - Minor: String arguments with no constraint or example: app_id.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: The meaning of the boolean argument confirm is unclear.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: app_id, snapshot_id. Name the tool or the place that returns it, or models look it up first.
- `get_recommended_workflow`: 52 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: No `required` list, so every argument is optional.
  - Minor: The description mentions none of its 3 or more arguments.
- `set_primary_domain`: 52 / 100
  - Minor: String arguments with no constraint or example: app_id.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: app_id. Name the tool or the place that returns it, or models look it up first.
- `update_app`: 52 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Required identifiers whose description does not say where the value comes from: app_id. Name the tool or the place that returns it, or models look it up first.
- `agency_create_client_app`: 54 / 100
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Says nothing about what it returns.
- `create_entity_records`: 54 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: String arguments with no constraint or example: app_id, entity.
  - Minor: Required identifiers whose description does not say where the value comes from: app_id. Name the tool or the place that returns it, or models look it up first.
- `get_platform_guide`: 54 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: No `required` list, so every argument is optional.
  - Minor: The description mentions none of its 3 or more arguments.
- `preview_saved_version`: 54 / 100
  - Major: Arguments without a description: app_id, snapshot_id.
  - Minor: Required identifiers whose description does not say where the value comes from: app_id, snapshot_id. Name the tool or the place that returns it, or models look it up first.
- `get_app_links`: 55 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: String arguments with no constraint or example: app_id.
  - Minor: Required identifiers whose description does not say where the value comes from: app_id. Name the tool or the place that returns it, or models look it up first.
- `add_custom_domain`: 57 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: String arguments with no constraint or example: app_id.
  - Minor: Required identifiers whose description does not say where the value comes from: app_id. Name the tool or the place that returns it, or models look it up first.
- `schedule_agent_task`: 57 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: String arguments with no constraint or example: title.
  - Minor: Required identifiers whose description does not say where the value comes from: agent_id. Name the tool or the place that returns it, or models look it up first.
- `inspect_preview`: 58 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: String arguments with no constraint or example: app_id.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Required identifiers whose description does not say where the value comes from: app_id. Name the tool or the place that returns it, or models look it up first.
- `create_app`: 59 / 100
- `create_agent`: 60 / 100
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Says nothing about what it returns.
- `set_app_subdomain`: 60 / 100
  - Minor: String arguments with no constraint or example: app_id.
  - Minor: Says nothing about what it returns.
- `set_function_policy`: 61 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: String arguments with no constraint or example: app_id.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: app_id. Name the tool or the place that returns it, or models look it up first.
- `invite_app_member`: 62 / 100
  - Minor: Arguments without a description: full_name.
  - Minor: String arguments with no constraint or example: app_id, email.
  - Minor: Required identifiers whose description does not say where the value comes from: app_id. Name the tool or the place that returns it, or models look it up first.
- `send_agent_message`: 62 / 100
  - Minor: Arguments without a description: message.
  - Minor: Required identifiers whose description does not say where the value comes from: agent_id. Name the tool or the place that returns it, or models look it up first.
- `get_job_status`: 64 / 100
- `list_apps`: 67 / 100
  - Minor: No `required` list, so every argument is optional.
- `create_platform_request`: 70 / 100
  - Minor: Arguments without a description: type, severity.
- `invoke_function`: 71 / 100
  - Minor: Arguments without a description: caller.
  - Minor: String arguments with no constraint or example: app_id.
  - Minor: Required identifiers whose description does not say where the value comes from: app_id. Name the tool or the place that returns it, or models look it up first.
- `check_subdomain_available`: 77 / 100

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)
