# TaScan (io.github.snowbikemike/tascan-mcp): tool descriptions scored

- tools/list taken: 2026-11-02 (UTC)
- From: [Official MCP Registry](https://registry.modelcontextprotocol.io/v0/servers/io.github.snowbikemike%2Ftascan-mcp/versions/latest)
- Connected to: https://app.tascan.io/mcp
- Homepage: https://tascan.io/
- Repository: https://github.com/snowbikemike/tascan-mcp
- Scoring rules: v2
- Tools: 142
- Average: 49.0 / 100 (Cloudy)
- Near-identical pairs: 1

This page shows how TaScan (io.github.snowbikemike/tascan-mcp)'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: 142 tools. Above 40, models choose less accurately.

## Tools

- `tascan_list_qr_styles`: 26 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: task_id, list_id, project_id, site_id, purpose.
  - Minor: String arguments with no constraint or example: task_id, list_id, project_id, site_id, purpose.
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
- `tascan_update_subtask`: 26 / 100
  - Major: The description only restates the name (9 words).
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: title, description, response_config, requires_photo, sort_order.
  - Minor: String arguments with no constraint or example: subtask_id, title, description.
  - Minor: The meaning of the boolean argument requires_photo is unclear.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: subtask_id. Name the tool or the place that returns it, or models look it up first.
- `tascan_list_chat_threads`: 27 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: thread_id, admin_id, limit.
  - Minor: String arguments with no constraint or example: thread_id, admin_id.
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
- `tascan_list_insights`: 27 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: status, project_id, limit.
  - Minor: String arguments with no constraint or example: status, project_id.
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
- `tascan_list_reports`: 27 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: list_id, project_id.
  - Minor: String arguments with no constraint or example: list_id, project_id.
  - Minor: Says nothing about what it returns.
- `tascan_save_chat_thread`: 27 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: thread_id, admin_id, title, preview.
  - Minor: String arguments with no constraint or example: thread_id, admin_id, title, preview.
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
- `tascan_delete_chat_thread`: 30 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: thread_id.
  - Minor: String arguments with no constraint or example: thread_id.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: thread_id. Name the tool or the place that returns it, or models look it up first.
- `tascan_unlink_site`: 30 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: site_id, project_id, list_id.
  - Minor: String arguments with no constraint or example: site_id, project_id, list_id.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: site_id. Name the tool or the place that returns it, or models look it up first.
- `tascan_create_worker`: 31 / 100
  - Major: The description only restates the name (8 words).
  - Major: Says nothing about when to use it, or when not to.
  - Minor: String arguments with no constraint or example: name, phone, email.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Says nothing about what it returns.
- `tascan_get_project`: 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: project_id.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: project_id. Name the tool or the place that returns it, or models look it up first.
- `tascan_list_events`: 31 / 100
  - Major: The description only restates the name (8 words).
  - Major: Says nothing about when to use it, or when not to.
  - Minor: String arguments with no constraint or example: project_id.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: project_id. Name the tool or the place that returns it, or models look it up first.
- `tascan_update_zone`: 31 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: name, lat, lng, radius_m, task_list_id, enforce_on_list, is_active, notify_on_enter, notify_on_exit, notify_email, kind, required_ppe, ppe_photo_required, task_list_on_enter, sms_worker_on_enter, sms_worker_on_exit, enter_message, alert_on_breach.
  - Minor: String arguments with no constraint or example: zone_id, name, task_list_id, notify_email, task_list_on_enter, enter_message.
  - Minor: The meaning of the boolean argument enforce_on_list is unclear.
  - Minor: The meaning of the boolean argument is_active is unclear.
  - Minor: The meaning of the boolean argument notify_on_enter is unclear.
  - Minor: The meaning of the boolean argument notify_on_exit is unclear.
  - Minor: The meaning of the boolean argument ppe_photo_required is unclear.
  - Minor: The meaning of the boolean argument sms_worker_on_enter is unclear.
  - Minor: The meaning of the boolean argument sms_worker_on_exit is unclear.
  - Minor: The meaning of the boolean argument alert_on_breach is unclear.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: zone_id. Name the tool or the place that returns it, or models look it up first.
- `tascan_get_access`: 32 / 100
  - Major: Arguments without a description: list_id, task_id.
  - Minor: String arguments with no constraint or example: list_id, task_id.
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
- `tascan_list_invoices`: 32 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: status, project_id.
  - Minor: String arguments with no constraint or example: project_id.
  - Minor: Says nothing about what it returns.
- `tascan_save_qr_style`: 32 / 100
  - Major: Arguments without a description: qr_style_id, name, style, is_default, delete.
  - Minor: String arguments with no constraint or example: qr_style_id, name.
  - Minor: No `required` list, so every argument is optional.
  - Minor: The meaning of the boolean argument is_default is unclear.
  - Minor: The meaning of the boolean argument delete is unclear.
  - Minor: Says nothing about what it returns.
- `tascan_update_site`: 32 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: name, address, client_company, lat, lng, external_key, is_active.
  - Minor: String arguments with no constraint or example: site_id, name, address, client_company, external_key.
  - 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: site_id. Name the tool or the place that returns it, or models look it up first.
- `tascan_list_templates`: 33 / 100
  - Major: The description only restates the name (7 words).
  - Major: The description is too short (7 words).
  - Major: Says nothing about when to use it, or when not to.
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
- `tascan_raise_issue`: 33 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: task_id, description, category, severity.
  - Minor: String arguments with no constraint or example: task_id, description, category, severity.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: task_id. Name the tool or the place that returns it, or models look it up first.
- `tascan_zone_compliance`: 33 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: project_id, zone_id, worker_id.
  - Minor: String arguments with no constraint or example: project_id, zone_id, worker_id.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Says nothing about what it returns.
- `tascan_update_issue`: 34 / 100
  - Major: Arguments without a description: issue_id, status.
  - Minor: String arguments with no constraint or example: issue_id.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: issue_id. Name the tool or the place that returns it, or models look it up first.
- `tascan_issues_inbox`: 35 / 100
  - Major: Arguments without a description: status, project_id, site_id.
  - Minor: String arguments with no constraint or example: status, project_id, site_id.
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
- `tascan_link_site`: 35 / 100
  - Major: Arguments without a description: site_id, project_id, list_id.
  - Minor: String arguments with no constraint or example: site_id, project_id, list_id.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: site_id. Name the tool or the place that returns it, or models look it up first.
- `tascan_nudge_worker`: 35 / 100
  - Major: Arguments without a description: list_id, worker_id, phone, message.
  - Minor: String arguments with no constraint or example: list_id, worker_id, phone, message.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: list_id. Name the tool or the place that returns it, or models look it up first.
- `tascan_remove_worker_from_project`: 35 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: project_id, worker_id, reason.
  - Minor: String arguments with no constraint or example: project_id, worker_id, reason.
  - Minor: Says nothing about what it returns.
- `tascan_apply_qr_style`: 37 / 100
  - Major: Arguments without a description: target, id, purpose, qr_style_id.
  - Minor: String arguments with no constraint or example: id, purpose.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: qr_style_id. Name the tool or the place that returns it, or models look it up first.
- `tascan_set_template`: 37 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: list_id, shared.
  - Minor: String arguments with no constraint or example: list_id.
  - Minor: The meaning of the boolean argument shared is unclear.
  - Minor: Required identifiers whose description does not say where the value comes from: list_id. Name the tool or the place that returns it, or models look it up first.
- `tascan_get_event`: 38 / 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: list_id. Name the tool or the place that returns it, or models look it up first.
- `tascan_update_invoice`: 38 / 100
  - Major: Arguments without a description: invoice_id, status, client_name, client_email, client_phone, notes, due_date.
  - Minor: String arguments with no constraint or example: invoice_id, client_name, client_email, client_phone, notes, due_date.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: invoice_id. Name the tool or the place that returns it, or models look it up first.
- `tascan_get_worker`: 39 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: String arguments with no constraint or example: worker_id.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: worker_id. Name the tool or the place that returns it, or models look it up first.
- `tascan_mint_completion_report`: 39 / 100
  - Major: Arguments without a description: list_id.
  - Minor: String arguments with no constraint or example: list_id.
  - Minor: Required identifiers whose description does not say where the value comes from: list_id. Name the tool or the place that returns it, or models look it up first.
- `tascan_resolve_insight`: 39 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: insight_id, action, reason.
  - Minor: String arguments with no constraint or example: insight_id, reason.
  - Minor: Required identifiers whose description does not say where the value comes from: insight_id. Name the tool or the place that returns it, or models look it up first.
- `tascan_append_chat_messages`: 40 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Arguments without a description: messages[].role, messages[].content.
  - Minor: String arguments with no constraint or example: messages[].content.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: thread_id. Name the tool or the place that returns it, or models look it up first.
- `tascan_get_timesheet`: 40 / 100
  - Major: Arguments without a description: list_id, worker_id.
  - Minor: String arguments with no constraint or example: list_id, worker_id.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: list_id. Name the tool or the place that returns it, or models look it up first.
- `tascan_list_invites`: 40 / 100
  - Major: Arguments without a description: status.
  - Minor: Says nothing about what it returns.
- `tascan_reply_issue`: 40 / 100
  - Major: Arguments without a description: issue_id, media_path.
  - Minor: String arguments with no constraint or example: issue_id, body, media_path.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: issue_id. Name the tool or the place that returns it, or models look it up first.
- `tascan_void_completion`: 40 / 100
  - Minor: Arguments without a description: completion_id.
  - Minor: String arguments with no constraint or example: completion_id.
  - Minor: Says nothing about what it returns.
- `tascan_delete_subtask`: 41 / 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: subtask_id. Name the tool or the place that returns it, or models look it up first.
- `tascan_delete_task`: 41 / 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: task_id. Name the tool or the place that returns it, or models look it up first.
- `tascan_share_list`: 41 / 100
  - Major: Arguments without a description: send.phone, send.worker_id, send.email, send.message.
  - Minor: String arguments with no constraint or example: send.phone, send.worker_id, send.email, send.message.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: list_id. Name the tool or the place that returns it, or models look it up first.
- `tascan_analyze_issue`: 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: issue_id. Name the tool or the place that returns it, or models look it up first.
- `tascan_auto_resolve`: 42 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Says nothing about what it returns.
- `tascan_dispatch_instruction`: 42 / 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.
- `tascan_get_build`: 42 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Says nothing about what it returns.
- `tascan_get_site`: 42 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: String arguments with no constraint or example: site_id.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: site_id. Name the tool or the place that returns it, or models look it up first.
- `tascan_list_zones`: 42 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: String arguments with no constraint or example: project_id.
  - Minor: Says nothing about what it returns.
- `tascan_project_digest`: 42 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: String arguments with no constraint or example: project_id.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: project_id. Name the tool or the place that returns it, or models look it up first.
- `tascan_recommend_fix`: 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: issue_id. Name the tool or the place that returns it, or models look it up first.
- `tascan_report_engagement`: 42 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: String arguments with no constraint or example: token.
  - Minor: Says nothing about what it returns.
- `tascan_update_event`: 42 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: String arguments with no constraint or example: name, description.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: list_id. Name the tool or the place that returns it, or models look it up first.
- `tascan_set_access`: 43 / 100
  - Major: Arguments without a description: list_id, task_id, access_level.
  - Minor: String arguments with no constraint or example: list_id, task_id.
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
- `tascan_list_sites`: 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.
- `tascan_assess_condition`: 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.
  - Minor: Required identifiers whose description does not say where the value comes from: asset_id. Name the tool or the place that returns it, or models look it up first.
- `tascan_cancel_scheduled_sms`: 45 / 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: id. Name the tool or the place that returns it, or models look it up first.
- `tascan_condition_history`: 45 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: String arguments with no constraint or example: asset_id.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: asset_id. Name the tool or the place that returns it, or models look it up first.
- `tascan_create_event`: 45 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: String arguments with no constraint or example: project_id, name, description.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: project_id. Name the tool or the place that returns it, or models look it up first.
- `tascan_create_site`: 45 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Arguments without a description: address, client_company.
  - Minor: String arguments with no constraint or example: name, address, client_company.
  - Minor: Says nothing about what it returns.
- `tascan_delete_event`: 45 / 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: list_id. Name the tool or the place that returns it, or models look it up first.
- `tascan_find_duplicate_workers`: 45 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Says nothing about what it returns.
- `tascan_generate_qr`: 45 / 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: list_id. Name the tool or the place that returns it, or models look it up first.
- `tascan_get_sms_status`: 45 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Says nothing about what it returns.
- `tascan_get_worker_passport`: 45 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: String arguments with no constraint or example: worker_id.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: worker_id. Name the tool or the place that returns it, or models look it up first.
- `tascan_project_insights`: 45 / 100
  - Minor: Arguments without a description: project_id.
  - Minor: String arguments with no constraint or example: project_id.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: project_id. Name the tool or the place that returns it, or models look it up first.
- `tascan_register_asset`: 45 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Arguments without a description: location_description, project_id.
  - Minor: String arguments with no constraint or example: location_description, project_id.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Says nothing about what it returns.
- `tascan_apply_template`: 47 / 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: list_id. Name the tool or the place that returns it, or models look it up first.
- `tascan_list_assets`: 47 / 100
  - Minor: String arguments with no constraint or example: project_id.
  - Minor: Says nothing about what it returns.
- `tascan_list_payments`: 47 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Says nothing about what it returns.
- `tascan_list_scheduled_sms`: 47 / 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.
- `tascan_list_workers`: 47 / 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.
  - Minor: Says nothing about what it returns.
- `tascan_revoke_delegation`: 48 / 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: key_id. Name the tool or the place that returns it, or models look it up first.
- `tascan_update_project`: 48 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Arguments without a description: external_refs[].source, external_refs[].ref.
  - Minor: String arguments with no constraint or example: project_id, name, location, start_date, end_date, external_refs[].source, external_refs[].ref.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: project_id. Name the tool or the place that returns it, or models look it up first.
- `tascan_list_subtasks`: 49 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: String arguments with no constraint or example: task_id.
  - Minor: Required identifiers whose description does not say where the value comes from: task_id. Name the tool or the place that returns it, or models look it up first.
- `tascan_list_tags`: 49 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Says nothing about what it returns.
- `tascan_create_project`: 50 / 100
  - Minor: Arguments without a description: external_refs[].source, external_refs[].ref.
  - Minor: String arguments with no constraint or example: name, location, external_refs[].source, external_refs[].ref.
  - Minor: Says nothing about what it returns.
- `tascan_get_cycle_report`: 50 / 100
  - Minor: Says nothing about what it returns.
- `tascan_get_scan_history`: 50 / 100
  - Minor: Says nothing about what it returns.
- `tascan_get_usage`: 50 / 100
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
- `tascan_invite_worker`: 50 / 100
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: worker_id, list_id. Name the tool or the place that returns it, or models look it up first.
- `tascan_list_cycles`: 50 / 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.
- `tascan_org_analytics`: 50 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Says nothing about what it returns.
- `tascan_reply_with_list`: 50 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Arguments without a description: tasks[].title, tasks[].description, tasks[].response_config.
  - Minor: String arguments with no constraint or example: tasks[].title, tasks[].description.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Says nothing about what it returns.
- `tascan_request_payment`: 50 / 100
  - Minor: Arguments without a description: payer_name.
  - Minor: String arguments with no constraint or example: payer_name.
  - 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: task_list_id, worker_id. Name the tool or the place that returns it, or models look it up first.
- `tascan_request_verification`: 50 / 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: completion_id. Name the tool or the place that returns it, or models look it up first.
- `tascan_send_task_email`: 50 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: String arguments with no constraint or example: to_email, to_name.
  - 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: list_id. Name the tool or the place that returns it, or models look it up first.
- `tascan_text_report`: 50 / 100
  - Minor: String arguments with no constraint or example: token.
  - Minor: Says nothing about what it returns.
- `tascan_update_worker`: 51 / 100
  - Minor: String arguments with no constraint or example: worker_id, name, phone, email.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: worker_id. Name the tool or the place that returns it, or models look it up first.
- `tascan_delete_worker`: 52 / 100
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: worker_id. Name the tool or the place that returns it, or models look it up first.
- `tascan_get_org_plan`: 52 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Says nothing about what it returns.
- `tascan_get_report`: 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: list_id. Name the tool or the place that returns it, or models look it up first.
- `tascan_list_verifications`: 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: completion_id. Name the tool or the place that returns it, or models look it up first.
- `tascan_verify_receipt`: 52 / 100
  - Minor: Says nothing about what it returns.
- `tascan_generate_report`: 53 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Arguments without a description: type.
  - Minor: The description mentions none of its 3 or more arguments.
- `tascan_get_task_trail`: 53 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: String arguments with no constraint or example: task_id.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: task_id. Name the tool or the place that returns it, or models look it up first.
- `tascan_list_projects`: 53 / 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.
- `tascan_create_invoice`: 54 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: client_email, client_phone, billing.mode, billing.hourly_rate, billing.day_rate, billing.flat_rate_per_list, billing.min_hours, billing.overtime, billing.overtime_after_hours, billing.overtime_multiplier, billing.double_time_after_hours, billing.double_time_multiplier, billing.per_diem_days, billing.expenses, billing.expenses[].description, billing.expenses[].amount, billing.expenses[].quantity, line_items[].description, line_items[].quantity, line_items[].unit_price, payment_options.venmo, payment_options.cashapp, payment_options.paypal, payment_options.zelle, payment_options.applecash, payment_options.other.
  - Minor: String arguments with no constraint or example: client_email, client_phone, billing.expenses[].description, line_items[].description, payment_options.venmo, payment_options.cashapp, payment_options.paypal, payment_options.zelle, payment_options.applecash, payment_options.other.
  - Minor: The meaning of the boolean argument billing.overtime is unclear.
- `tascan_find`: 54 / 100
  - Minor: Says nothing about what it returns.
- `tascan_today`: 54 / 100
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
- `tascan_get_signature_bundle`: 55 / 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: signature_assertion_id. Name the tool or the place that returns it, or models look it up first.
- `tascan_add_subtasks`: 56 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: String arguments with no constraint or example: task_id, subtasks[].description.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: task_id. Name the tool or the place that returns it, or models look it up first.
- `tascan_create_zone`: 56 / 100
  - Minor: Says nothing about what it returns.
- `tascan_register_tag`: 56 / 100
  - Minor: String arguments with no constraint or example: project_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: tag_hardware_id. Name the tool or the place that returns it, or models look it up first.
- `tascan_dispatch_to_agent`: 57 / 100
  - Minor: Says nothing about what it returns.
- `tascan_get_device`: 57 / 100
  - Minor: String arguments with no constraint or example: device_id.
  - Minor: Required identifiers whose description does not say where the value comes from: device_id. Name the tool or the place that returns it, or models look it up first.
- `tascan_get_org`: 57 / 100
  - Minor: Says nothing about what it returns.
- `tascan_heartbeat_run`: 57 / 100
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: run_id. Name the tool or the place that returns it, or models look it up first.
- `tascan_list_agents`: 57 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Says nothing about what it returns.
- `tascan_list_delegations`: 57 / 100
  - Minor: Says nothing about what it returns.
- `tascan_list_issues`: 57 / 100
- `tascan_revoke_device`: 58 / 100
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: device_id. Name the tool or the place that returns it, or models look it up first.
- `tascan_get_receipt`: 59 / 100
  - Minor: Required identifiers whose description does not say where the value comes from: completion_id. Name the tool or the place that returns it, or models look it up first.
- `tascan_quickstart`: 59 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: No `required` list, so every argument is optional.
- `tascan_update_task`: 59 / 100
  - Minor: String arguments with no constraint or example: task_id, title, description.
  - Minor: The meaning of the boolean argument is_safety_checkpoint is unclear.
  - Minor: The meaning of the boolean argument requires_photo is unclear.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: task_id. Name the tool or the place that returns it, or models look it up first.
- `tascan_complete_task`: 60 / 100
  - Minor: String arguments with no constraint or example: notes.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: task_id. Name the tool or the place that returns it, or models look it up first.
- `tascan_dispatcher_action`: 60 / 100
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: root_id. Name the tool or the place that returns it, or models look it up first.
- `tascan_get_build_diff`: 60 / 100
  - Minor: Says nothing about what it returns.
- `tascan_get_build_file`: 60 / 100
  - Minor: Required identifiers whose description does not say where the value comes from: build_ref. Name the tool or the place that returns it, or models look it up first.
- `tascan_list_devices`: 60 / 100
  - Minor: No `required` list, so every argument is optional.
- `tascan_merge_workers`: 60 / 100
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: primary_worker_id, duplicate_worker_ids. Name the tool or the place that returns it, or models look it up first.
- `tascan_control_fanout`: 61 / 100
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: fanout_id. Name the tool or the place that returns it, or models look it up first.
- `tascan_finish_run`: 61 / 100
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: run_id. Name the tool or the place that returns it, or models look it up first.
- `tascan_get_task`: 62 / 100
  - Minor: String arguments with no constraint or example: task_id.
  - Minor: Required identifiers whose description does not say where the value comes from: task_id. Name the tool or the place that returns it, or models look it up first.
- `tascan_list_connectors`: 62 / 100
  - Minor: Says nothing about what it returns.
- `tascan_search_marketplace`: 62 / 100
  - Minor: The description mentions none of its 3 or more arguments.
- `tascan_clone_project`: 64 / 100
  - Minor: Required identifiers whose description does not say where the value comes from: project_id. Name the tool or the place that returns it, or models look it up first.
- `tascan_register_agent`: 64 / 100
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: id, inbox_id. Name the tool or the place that returns it, or models look it up first.
- `tascan_send_sms`: 64 / 100
  - Minor: Says nothing about what it returns.
- `tascan_get_budget`: 65 / 100
  - Minor: Says nothing about what it returns.
- `tascan_create_fanout`: 66 / 100
  - Minor: Required identifiers whose description does not say where the value comes from: project_id. Name the tool or the place that returns it, or models look it up first.
- `tascan_claim_run`: 67 / 100
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: task_id. Name the tool or the place that returns it, or models look it up first.
- `tascan_complete_subtask`: 67 / 100
  - Minor: String arguments with no constraint or example: notes.
  - Minor: Required identifiers whose description does not say where the value comes from: subtask_id. Name the tool or the place that returns it, or models look it up first.
- `tascan_get_fanout`: 67 / 100
  - Minor: Required identifiers whose description does not say where the value comes from: fanout_id. Name the tool or the place that returns it, or models look it up first.
- `tascan_query_responses`: 67 / 100
  - Minor: String arguments with no constraint or example: project_id.
  - Minor: Required identifiers whose description does not say where the value comes from: project_id. Name the tool or the place that returns it, or models look it up first.
- `tascan_delete_project`: 68 / 100
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: project_id. Name the tool or the place that returns it, or models look it up first.
- `tascan_list_tasks`: 69 / 100
  - Minor: Required identifiers whose description does not say where the value comes from: list_id. Name the tool or the place that returns it, or models look it up first.
- `tascan_post_evidence`: 69 / 100
  - Minor: Arguments without a description: location.lat, location.lng.
- `tascan_server_info`: 69 / 100
  - Minor: Says nothing about what it returns.
- `tascan_evidence_policy`: 70 / 100
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: task_id. Name the tool or the place that returns it, or models look it up first.
- `tascan_delegate_to_agent`: 71 / 100
  - Minor: Says nothing about what it returns.
- `tascan_add_tasks`: 73 / 100
  - Minor: Arguments without a description: tasks[].subtasks[].requires_photo.
  - Minor: String arguments with no constraint or example: tasks[].title, tasks[].description.
  - Minor: The meaning of the boolean argument tasks[].is_safety_checkpoint is unclear.
  - Minor: The meaning of the boolean argument tasks[].subtasks[].requires_photo is unclear.
  - Minor: Says nothing about what it returns.
- `tascan_create_cycle`: 73 / 100
  - Minor: Arguments without a description: reviews[].provider.
  - Minor: String arguments with no constraint or example: reviews[].model.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: project_id. Name the tool or the place that returns it, or models look it up first.
- `tascan_post_message`: 76 / 100
- `tascan_record_integration`: 77 / 100
  - Minor: Required identifiers whose description does not say where the value comes from: root_id, deploy_id. Name the tool or the place that returns it, or models look it up first.
- `tascan_schedule_sms`: 85 / 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)
