{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_273qjb4f6axz","handle":"tascan-mcp","url":"https://wellknown.network/agents/tascan-mcp","links":{"self":"https://wellknown.network/agents/tascan-mcp/record.json","html":"https://wellknown.network/agents/tascan-mcp","markdown":"https://wellknown.network/agents/tascan-mcp/record.md","api":"https://wellknown.network/api/v1/agents/tascan-mcp","status":"https://wellknown.network/api/v1/agents/tascan-mcp/status","claim":"https://wellknown.network/agents/tascan-mcp/claim","claimApi":"https://wellknown.network/api/v1/claims","claimDescriptor":"https://wellknown.network/agents/tascan-mcp/claim.json","badge":"https://wellknown.network/agents/tascan-mcp/badge.svg","openapi":"https://wellknown.network/openapi.json"},"ard":{"identifier":"urn:air:app.tascan.io:server:tascan-mcp","type":"application/mcp-server-card+json"},"kind":"mcp_server","declared":{"name":"TaScan","summary":"36 MCP tools for projects, tasks, workers, QR/NFC tags, and AI remediation. Task. Scan. Done.","description":"36 MCP tools for projects, tasks, workers, QR/NFC tags, and AI remediation. Task. Scan. Done.","publisher":{"name":"snowbikemike","url":null},"homepage":"https://tascan.io","repository":"https://github.com/snowbikemike/tascan-mcp","version":"3.0.0","license":"MIT","protocols":["mcp"],"tags":["tascan","mcp","model-context-protocol","ai","task-management","qr-code","field-operations","workforce","pwa","claude"],"pricing":null,"endpoints":[{"url":"https://app.tascan.io/mcp","type":"mcp_streamable_http","auth":null,"probeable":true},{"url":"npm:tascan-mcp","type":"package_npm","auth":null,"probeable":false}],"skills":null,"tools":null,"extra":{"updatedAt":"2026-08-18T16:08:08.551025Z","npmKeywords":["tascan","mcp","model-context-protocol","ai","task-management","qr-code","field-operations","workforce","pwa","claude"],"publishedAt":"2026-08-18T16:08:08.551025Z","registryName":"io.github.snowbikemike/tascan-mcp"},"attribution":{"kind":"mcp_registry","name":"mcp_registry","license":"npm","repoUrl":"mcp_registry","summary":"mcp_registry","version":"mcp_registry","description":"mcp_registry","homepageUrl":"mcp_registry","publisherName":"mcp_registry"}},"derived":{"capabilities":[{"slug":"documents.invoice-processing","name":"Invoice Processing","confidence":1,"provenance":"derived"},{"slug":"commerce.payments","name":"Payments","confidence":1,"provenance":"derived"},{"slug":"communication.sms-voice","name":"SMS & Voice","confidence":1,"provenance":"derived"},{"slug":"geo.maps","name":"Maps & Places","confidence":0.992,"provenance":"derived"},{"slug":"productivity.email","name":"Email","confidence":0.962,"provenance":"derived"},{"slug":"productivity.tasks","name":"Tasks & To-do","confidence":0.859,"provenance":"derived"},{"slug":"documents.ocr","name":"OCR","confidence":0.833,"provenance":"derived"},{"slug":"communication.notifications","name":"Notifications","confidence":0.583,"provenance":"derived"}],"categories":["commerce","communication","documents","geo","productivity"]},"observed":{"status":"live","statusReason":"Responded 54m ago.","lastOkAt":"2026-09-08T10:24:41.725Z","lastProbedAt":"2026-09-08T10:24:41.725Z","statusComputedAt":"2026-09-08T10:40:27.518Z","reliability30d":{"probes":5,"successRate":1,"p50Ms":446},"latestObservations":[{"at":"2026-09-08T10:24:41.725Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":518,"error":null,"detail":{"tools":[{"name":"tascan_list_projects","description":"List all TaScan projects in the organization"},{"name":"tascan_create_project","description":"Create a new TaScan project (top-level container for events)"},{"name":"tascan_get_project","description":"Get details of a specific project"},{"name":"tascan_update_project","description":"Update a project (name, location, status, dates)"},{"name":"tascan_delete_project","description":"Delete a project and all its events, tasks, and completions. This action is irreversible."},{"name":"tascan_create_event","description":"Create a new event (task list) within a project. Supports team_mode (shared completions) and multi_instance (each worker gets isolated copy — great for surveys,"},{"name":"tascan_list_events","description":"List all events (task lists) within a project"},{"name":"tascan_get_event","description":"Get details of a specific event (task list) including its tasks"},{"name":"tascan_update_event","description":"Update an event / task list (name, description, team_mode, multi_instance, timer_mode). team_mode and multi_instance cannot both be true."},{"name":"tascan_delete_event","description":"Delete an event (task list) and all its tasks and completions. This action is irreversible."},{"name":"tascan_add_tasks","description":"Add one or more tasks to an event (task list). Supports bulk creation. IMPORTANT: Set response_type correctly — use \"text\" for info collection (names, phones, e"},{"name":"tascan_dispatch_to_agent","description":"PREFERRED tool for sending work to an AI agent. Dispatches a task to the agent's inbox — picked up and executed automatically. No list ID needed. Supports prefi"},{"name":"tascan_list_agents","description":"List all registered AI agents with their capabilities, inbox IDs, and status. Like reading input labels on a video matrix — discover which agents are available "},{"name":"tascan_register_agent","description":"Register a new AI agent in the agent registry. The agent will appear in tascan_list_agents and can receive dispatched tasks. Self-registration for AI agents joi"},{"name":"tascan_list_tasks","description":"List all tasks in an event (task list)"},{"name":"tascan_get_task","description":"Get details of a specific task including completions"},{"name":"tascan_update_task","description":"Update a task (title, description, response_type, flags, sort_order)"},{"name":"tascan_reply_with_list","description":"Reply to a task list WITH a task list — the two-way tasking primitive. Creates a new list linked into the parent's thread, aimed back at whoever sent the origin"},{"name":"tascan_add_subtasks","description":"Add one or more subtasks to a task (bulk). Subtasks support typed responses: \"number\" for per-set data (reps, weight, distance), \"text\" for notes, \"choice\" for "},{"name":"tascan_list_subtasks","description":"List the subtasks of a task, including completion state, stored response values, and completion timestamps (per-set timing)."},{"name":"tascan_update_subtask","description":"Update a subtask (title, description, response_type, response_config, requires_photo, sort_order)."},{"name":"tascan_complete_subtask","description":"Complete a subtask, optionally recording a typed response_value (e.g. the weight or reps for that set). Each completion is timestamped, so consecutive set compl"},{"name":"tascan_delete_subtask","description":"Delete a subtask and its completions. This action is irreversible."},{"name":"tascan_delete_task","description":"Delete a specific task and its completions. This action is irreversible."},{"name":"tascan_complete_task","description":"Complete a task on behalf of a worker. Inserts a completion record and timer event. Use this to simulate or record task completions via the API."},{"name":"tascan_list_workers","description":"List workers (taskees) in the organization. Supports filtering by name/email/phone substring, contact-info presence, and last-activity date. Each row includes c"},{"name":"tascan_create_worker","description":"Create a new worker (taskee) in the organization"},{"name":"tascan_update_worker","description":"Update a worker profile (name, phone, email)"},{"name":"tascan_generate_qr","description":"Generate a QR code for a task list (event) that workers can scan to access tasks"},{"name":"tascan_apply_template","description":"Apply a pre-built template to a task list, adding all template tasks"},{"name":"tascan_list_templates","description":"List available task templates (built-in and saved)"},{"name":"tascan_get_report","description":"Get completion report for a task list (event) including task status, completions, workers, and photos. Set include_responses to also return the actual submitted"},{"name":"tascan_query_responses","description":"Query one task's submitted responses across every list in a project — e.g. the same exercise repeated across many workout lists returns one chronological progre"},{"name":"tascan_list_issues","description":"List all issues for a task list (event). Returns open, acknowledged, and resolved issues with severity, type, and category. Use this to discover issues that nee"},{"name":"tascan_analyze_issue","description":"Step 1 of the Closed-Loop Autonomous Operations Protocol. Retrieves full issue context including worker info, message thread, project history, and recent simila"},{"name":"tascan_recommend_fix","description":"Step 2 of the Closed-Loop Autonomous Operations Protocol. Post an AI-generated recommendation to an issue thread. Accepts both a text recommendation and an opti"},{"name":"tascan_dispatch_instruction","description":"Step 3 of the Closed-Loop Autonomous Operations Protocol. Dispatches remediation to the worker via MULTI-CHANNEL delivery: (1) issue thread message, (2) in-app "},{"name":"tascan_auto_resolve","description":"FULL Closed-Loop Autonomous Operations Protocol in one call. Server-side AI analyzes the issue, generates remediation tasks, creates a task list, and dispatches"},{"name":"tascan_send_sms","description":"Send a transactional TaScan SMS text to a worker (by worker_id, using their phone on file) or to a raw phone number. Optionally attach a task list — the recipie"},{"name":"tascan_get_sms_status","description":"Check delivery status of a previously sent TaScan SMS by its Twilio SID (returned by tascan_send_sms). Shows queued/sent/delivered/undelivered/failed plus carri"},{"name":"tascan_send_task_email","description":"Send a branded TaScan task notification email via SendGrid. Can notify anyone about a specific task list or task. Includes QR code, task summary, and \"Open in T"},{"name":"tascan_register_tag","description":"Register a physical NFC tag to a project, task list, or specific task. When someone taps the tag, TaScan routes them to the linked resource. Tags use NTAG215 ch"},{"name":"tascan_list_tags","description":"List all registered NFC tags in the organization with their linked projects/task lists and scan counts"},{"name":"tascan_get_scan_history","description":"Scan accountability data. Two modes: (1) tag_id — scans of a registered NFC tag; (2) task_list_id or project_id — every QR/link page-open stamp: when the code w"},{"name":"tascan_search_marketplace","description":"Search the cross-org Worker Marketplace: workers who opted in (discoverable=true on their passport), ranked by passkey trust tier + verified completion volume. "},{"name":"tascan_invite_worker","description":"Invite a marketplace worker to a task list — the consented intro. TaScan texts the worker from its own number (\"<Your org> wants you for <list>. Reply YES to sh"},{"name":"tascan_list_invites","description":"List marketplace invites you have sent and their status (pending / accepted / declined / expired / failed). Accepted invites include the worker's name and phone"},{"name":"tascan_create_zone","description":"Create a geofenced work zone. Delivery zones route workers who open the project Site Gate (geo.html?project=...) to this zone's task list when GPS places them i"},{"name":"tascan_list_zones","description":"List geofenced work zones, optionally filtered by project. Shows center, radius, routing target, and zone-lock status."},{"name":"tascan_update_zone","description":"Update a geofenced zone — move the center, resize the radius, change the routing target, toggle zone-lock, or deactivate it (is_active=false)."},{"name":"tascan_zone_compliance","description":"Hazard-zone compliance audit (OSHA / insurance): every zone crossing, PPE checkpoint verdict (complied / failed with what was missing / skipped), and breach, pl"},{"name":"tascan_register_asset","description":"Register a physical asset (equipment, structure, vehicle, machine) in the condition ledger so it can be assessed over time. Each asset gets a longitudinal condi"},{"name":"tascan_assess_condition","description":"Run an AI condition assessment of an asset from a photo. The model scores 0-100 with the asset's full assessment history in context, so it reads degradation ove"},{"name":"tascan_condition_history","description":"Get an asset's longitudinal condition history — score trend over time, every assessment with grade, delta, findings, and who assessed it. The per-serial-number "},{"name":"tascan_list_assets","description":"List registered condition-ledger assets with their latest condition scores. Use to recover an asset_id for tascan_assess_condition or tascan_condition_history."},{"name":"tascan_generate_report","description":"Mint a shareable report and get its link. Types: completion (full proof-of-work for one list: tasks, responses, subtasks, photos, GPS + place names, timing, QR "},{"name":"tascan_list_reports","description":"List existing report links for a list or project (completion / service / project / evidence), newest first, with client acknowledgment status for service report"},{"name":"tascan_create_invoice","description":"Create a client invoice and get its shareable link. Two ways to bill: (a) pass explicit line_items, or (b) pass project_id or task_list_ids plus hourly_rate (qu"},{"name":"tascan_list_invoices","description":"List invoices for the org (newest first) with status, client, total, due date and share link. Filter by status (draft/sent/paid/overdue/cancelled) or project."},{"name":"tascan_update_invoice","description":"Update an invoice: mark it paid (records paid_at), overdue, cancelled, or edit client details / notes / due date."},{"name":"tascan_request_payment","description":"Pledge a payment on a task list: when the list is verified complete (every task done + photo evidence on photo-required tasks), the payer automatically receives"},{"name":"tascan_list_payments","description":"List gig payments and their lifecycle status: awaiting_completion (pledged, work not verified yet), ready_to_pay (verified — pay link sent to payer), paid, canc"},{"name":"tascan_get_worker_passport","description":"Get a worker's verified work passport — task counts, lists worked, photos submitted, GPS-verified hours, points, streaks, and earned merit badges, all computed "},{"name":"tascan_server_info","description":"Identify exactly which TaScan server and schema this MCP session is talking to. Call this FIRST when diagnosing anything — it makes \"dev server masquerading as "},{"name":"tascan_find","description":"Cross-entity search: find projects, task lists, tasks, workers, or condition assets by name in one call — with ids and parent context to disambiguate. Use this "},{"name":"tascan_get_worker","description":"Ungated, plain read of one worker row: name, contact, org, points, streaks, timestamps. (tascan_get_worker_passport is the rich stats view; this is the boring l"},{"name":"tascan_find_duplicate_workers","description":"Find candidate same-person worker records with per-signal match detail (Patent 4 §6.25(b) signals: phone reuse, name similarity, GPS pattern correlation). Turns"},{"name":"tascan_merge_workers","description":"Merge duplicate worker records into one canonical identity (Patent 4 identity consolidation). Reassigns every reference (completions, timer events, points, paym"},{"name":"tascan_delete_worker","description":"Tombstone a worker record (is_active=false). REFUSES if the worker has any task/subtask completions or payments — merge those into the real worker with tascan_m"}],"toolCount":69,"serverName":"tascan","capabilities":["tools"],"serverVersion":"3.9.0","protocolVersion":"2025-03-26"}},{"at":"2026-09-08T03:22:42.791Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":449,"error":null,"detail":{"tools":[{"name":"tascan_list_projects","description":"List all TaScan projects in the organization"},{"name":"tascan_create_project","description":"Create a new TaScan project (top-level container for events)"},{"name":"tascan_get_project","description":"Get details of a specific project"},{"name":"tascan_update_project","description":"Update a project (name, location, status, dates)"},{"name":"tascan_delete_project","description":"Delete a project and all its events, tasks, and completions. This action is irreversible."},{"name":"tascan_create_event","description":"Create a new event (task list) within a project. Supports team_mode (shared completions) and multi_instance (each worker gets isolated copy — great for surveys,"},{"name":"tascan_list_events","description":"List all events (task lists) within a project"},{"name":"tascan_get_event","description":"Get details of a specific event (task list) including its tasks"},{"name":"tascan_update_event","description":"Update an event / task list (name, description, team_mode, multi_instance, timer_mode). team_mode and multi_instance cannot both be true."},{"name":"tascan_delete_event","description":"Delete an event (task list) and all its tasks and completions. This action is irreversible."},{"name":"tascan_add_tasks","description":"Add one or more tasks to an event (task list). Supports bulk creation. IMPORTANT: Set response_type correctly — use \"text\" for info collection (names, phones, e"},{"name":"tascan_dispatch_to_agent","description":"PREFERRED tool for sending work to an AI agent. Dispatches a task to the agent's inbox — picked up and executed automatically. No list ID needed. Supports prefi"},{"name":"tascan_list_agents","description":"List all registered AI agents with their capabilities, inbox IDs, and status. Like reading input labels on a video matrix — discover which agents are available "},{"name":"tascan_register_agent","description":"Register a new AI agent in the agent registry. The agent will appear in tascan_list_agents and can receive dispatched tasks. Self-registration for AI agents joi"},{"name":"tascan_list_tasks","description":"List all tasks in an event (task list)"},{"name":"tascan_get_task","description":"Get details of a specific task including completions"},{"name":"tascan_update_task","description":"Update a task (title, description, response_type, flags, sort_order)"},{"name":"tascan_reply_with_list","description":"Reply to a task list WITH a task list — the two-way tasking primitive. Creates a new list linked into the parent's thread, aimed back at whoever sent the origin"},{"name":"tascan_add_subtasks","description":"Add one or more subtasks to a task (bulk). Subtasks support typed responses: \"number\" for per-set data (reps, weight, distance), \"text\" for notes, \"choice\" for "},{"name":"tascan_list_subtasks","description":"List the subtasks of a task, including completion state, stored response values, and completion timestamps (per-set timing)."},{"name":"tascan_update_subtask","description":"Update a subtask (title, description, response_type, response_config, requires_photo, sort_order)."},{"name":"tascan_complete_subtask","description":"Complete a subtask, optionally recording a typed response_value (e.g. the weight or reps for that set). Each completion is timestamped, so consecutive set compl"},{"name":"tascan_delete_subtask","description":"Delete a subtask and its completions. This action is irreversible."},{"name":"tascan_delete_task","description":"Delete a specific task and its completions. This action is irreversible."},{"name":"tascan_complete_task","description":"Complete a task on behalf of a worker. Inserts a completion record and timer event. Use this to simulate or record task completions via the API."},{"name":"tascan_list_workers","description":"List workers (taskees) in the organization. Supports filtering by name/email/phone substring, contact-info presence, and last-activity date. Each row includes c"},{"name":"tascan_create_worker","description":"Create a new worker (taskee) in the organization"},{"name":"tascan_update_worker","description":"Update a worker profile (name, phone, email)"},{"name":"tascan_generate_qr","description":"Generate a QR code for a task list (event) that workers can scan to access tasks"},{"name":"tascan_apply_template","description":"Apply a pre-built template to a task list, adding all template tasks"},{"name":"tascan_list_templates","description":"List available task templates (built-in and saved)"},{"name":"tascan_get_report","description":"Get completion report for a task list (event) including task status, completions, workers, and photos. Set include_responses to also return the actual submitted"},{"name":"tascan_query_responses","description":"Query one task's submitted responses across every list in a project — e.g. the same exercise repeated across many workout lists returns one chronological progre"},{"name":"tascan_list_issues","description":"List all issues for a task list (event). Returns open, acknowledged, and resolved issues with severity, type, and category. Use this to discover issues that nee"},{"name":"tascan_analyze_issue","description":"Step 1 of the Closed-Loop Autonomous Operations Protocol. Retrieves full issue context including worker info, message thread, project history, and recent simila"},{"name":"tascan_recommend_fix","description":"Step 2 of the Closed-Loop Autonomous Operations Protocol. Post an AI-generated recommendation to an issue thread. Accepts both a text recommendation and an opti"},{"name":"tascan_dispatch_instruction","description":"Step 3 of the Closed-Loop Autonomous Operations Protocol. Dispatches remediation to the worker via MULTI-CHANNEL delivery: (1) issue thread message, (2) in-app "},{"name":"tascan_auto_resolve","description":"FULL Closed-Loop Autonomous Operations Protocol in one call. Server-side AI analyzes the issue, generates remediation tasks, creates a task list, and dispatches"},{"name":"tascan_send_sms","description":"Send a transactional TaScan SMS text to a worker (by worker_id, using their phone on file) or to a raw phone number. Optionally attach a task list — the recipie"},{"name":"tascan_get_sms_status","description":"Check delivery status of a previously sent TaScan SMS by its Twilio SID (returned by tascan_send_sms). Shows queued/sent/delivered/undelivered/failed plus carri"},{"name":"tascan_send_task_email","description":"Send a branded TaScan task notification email via SendGrid. Can notify anyone about a specific task list or task. Includes QR code, task summary, and \"Open in T"},{"name":"tascan_register_tag","description":"Register a physical NFC tag to a project, task list, or specific task. When someone taps the tag, TaScan routes them to the linked resource. Tags use NTAG215 ch"},{"name":"tascan_list_tags","description":"List all registered NFC tags in the organization with their linked projects/task lists and scan counts"},{"name":"tascan_get_scan_history","description":"Scan accountability data. Two modes: (1) tag_id — scans of a registered NFC tag; (2) task_list_id or project_id — every QR/link page-open stamp: when the code w"},{"name":"tascan_search_marketplace","description":"Search the cross-org Worker Marketplace: workers who opted in (discoverable=true on their passport), ranked by passkey trust tier + verified completion volume. "},{"name":"tascan_invite_worker","description":"Invite a marketplace worker to a task list — the consented intro. TaScan texts the worker from its own number (\"<Your org> wants you for <list>. Reply YES to sh"},{"name":"tascan_list_invites","description":"List marketplace invites you have sent and their status (pending / accepted / declined / expired / failed). Accepted invites include the worker's name and phone"},{"name":"tascan_create_zone","description":"Create a geofenced work zone. Delivery zones route workers who open the project Site Gate (geo.html?project=...) to this zone's task list when GPS places them i"},{"name":"tascan_list_zones","description":"List geofenced work zones, optionally filtered by project. Shows center, radius, routing target, and zone-lock status."},{"name":"tascan_update_zone","description":"Update a geofenced zone — move the center, resize the radius, change the routing target, toggle zone-lock, or deactivate it (is_active=false)."},{"name":"tascan_zone_compliance","description":"Hazard-zone compliance audit (OSHA / insurance): every zone crossing, PPE checkpoint verdict (complied / failed with what was missing / skipped), and breach, pl"},{"name":"tascan_register_asset","description":"Register a physical asset (equipment, structure, vehicle, machine) in the condition ledger so it can be assessed over time. Each asset gets a longitudinal condi"},{"name":"tascan_assess_condition","description":"Run an AI condition assessment of an asset from a photo. The model scores 0-100 with the asset's full assessment history in context, so it reads degradation ove"},{"name":"tascan_condition_history","description":"Get an asset's longitudinal condition history — score trend over time, every assessment with grade, delta, findings, and who assessed it. The per-serial-number "},{"name":"tascan_list_assets","description":"List registered condition-ledger assets with their latest condition scores. Use to recover an asset_id for tascan_assess_condition or tascan_condition_history."},{"name":"tascan_generate_report","description":"Mint a shareable report and get its link. Types: completion (full proof-of-work for one list: tasks, responses, subtasks, photos, GPS + place names, timing, QR "},{"name":"tascan_list_reports","description":"List existing report links for a list or project (completion / service / project / evidence), newest first, with client acknowledgment status for service report"},{"name":"tascan_create_invoice","description":"Create a client invoice and get its shareable link. Two ways to bill: (a) pass explicit line_items, or (b) pass project_id or task_list_ids plus hourly_rate (qu"},{"name":"tascan_list_invoices","description":"List invoices for the org (newest first) with status, client, total, due date and share link. Filter by status (draft/sent/paid/overdue/cancelled) or project."},{"name":"tascan_update_invoice","description":"Update an invoice: mark it paid (records paid_at), overdue, cancelled, or edit client details / notes / due date."},{"name":"tascan_request_payment","description":"Pledge a payment on a task list: when the list is verified complete (every task done + photo evidence on photo-required tasks), the payer automatically receives"},{"name":"tascan_list_payments","description":"List gig payments and their lifecycle status: awaiting_completion (pledged, work not verified yet), ready_to_pay (verified — pay link sent to payer), paid, canc"},{"name":"tascan_get_worker_passport","description":"Get a worker's verified work passport — task counts, lists worked, photos submitted, GPS-verified hours, points, streaks, and earned merit badges, all computed "},{"name":"tascan_server_info","description":"Identify exactly which TaScan server and schema this MCP session is talking to. Call this FIRST when diagnosing anything — it makes \"dev server masquerading as "},{"name":"tascan_find","description":"Cross-entity search: find projects, task lists, tasks, workers, or condition assets by name in one call — with ids and parent context to disambiguate. Use this "},{"name":"tascan_get_worker","description":"Ungated, plain read of one worker row: name, contact, org, points, streaks, timestamps. (tascan_get_worker_passport is the rich stats view; this is the boring l"},{"name":"tascan_find_duplicate_workers","description":"Find candidate same-person worker records with per-signal match detail (Patent 4 §6.25(b) signals: phone reuse, name similarity, GPS pattern correlation). Turns"},{"name":"tascan_merge_workers","description":"Merge duplicate worker records into one canonical identity (Patent 4 identity consolidation). Reassigns every reference (completions, timer events, points, paym"},{"name":"tascan_delete_worker","description":"Tombstone a worker record (is_active=false). REFUSES if the worker has any task/subtask completions or payments — merge those into the real worker with tascan_m"}],"toolCount":69,"serverName":"tascan","capabilities":["tools"],"serverVersion":"3.9.0","protocolVersion":"2025-03-26"}},{"at":"2026-09-07T19:22:14.058Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":407,"error":null,"detail":{"tools":[{"name":"tascan_list_projects","description":"List all TaScan projects in the organization"},{"name":"tascan_create_project","description":"Create a new TaScan project (top-level container for events)"},{"name":"tascan_get_project","description":"Get details of a specific project"},{"name":"tascan_update_project","description":"Update a project (name, location, status, dates)"},{"name":"tascan_delete_project","description":"Delete a project and all its events, tasks, and completions. This action is irreversible."},{"name":"tascan_create_event","description":"Create a new event (task list) within a project. Supports team_mode (shared completions) and multi_instance (each worker gets isolated copy — great for surveys,"},{"name":"tascan_list_events","description":"List all events (task lists) within a project"},{"name":"tascan_get_event","description":"Get details of a specific event (task list) including its tasks"},{"name":"tascan_update_event","description":"Update an event / task list (name, description, team_mode, multi_instance, timer_mode). team_mode and multi_instance cannot both be true."},{"name":"tascan_delete_event","description":"Delete an event (task list) and all its tasks and completions. This action is irreversible."},{"name":"tascan_add_tasks","description":"Add one or more tasks to an event (task list). Supports bulk creation. IMPORTANT: Set response_type correctly — use \"text\" for info collection (names, phones, e"},{"name":"tascan_dispatch_to_agent","description":"PREFERRED tool for sending work to an AI agent. Dispatches a task to the agent's inbox — picked up and executed automatically. No list ID needed. Supports prefi"},{"name":"tascan_list_agents","description":"List all registered AI agents with their capabilities, inbox IDs, and status. Like reading input labels on a video matrix — discover which agents are available "},{"name":"tascan_register_agent","description":"Register a new AI agent in the agent registry. The agent will appear in tascan_list_agents and can receive dispatched tasks. Self-registration for AI agents joi"},{"name":"tascan_list_tasks","description":"List all tasks in an event (task list)"},{"name":"tascan_get_task","description":"Get details of a specific task including completions"},{"name":"tascan_update_task","description":"Update a task (title, description, response_type, flags, sort_order)"},{"name":"tascan_reply_with_list","description":"Reply to a task list WITH a task list — the two-way tasking primitive. Creates a new list linked into the parent's thread, aimed back at whoever sent the origin"},{"name":"tascan_add_subtasks","description":"Add one or more subtasks to a task (bulk). Subtasks support typed responses: \"number\" for per-set data (reps, weight, distance), \"text\" for notes, \"choice\" for "},{"name":"tascan_list_subtasks","description":"List the subtasks of a task, including completion state, stored response values, and completion timestamps (per-set timing)."},{"name":"tascan_update_subtask","description":"Update a subtask (title, description, response_type, response_config, requires_photo, sort_order)."},{"name":"tascan_complete_subtask","description":"Complete a subtask, optionally recording a typed response_value (e.g. the weight or reps for that set). Each completion is timestamped, so consecutive set compl"},{"name":"tascan_delete_subtask","description":"Delete a subtask and its completions. This action is irreversible."},{"name":"tascan_delete_task","description":"Delete a specific task and its completions. This action is irreversible."},{"name":"tascan_complete_task","description":"Complete a task on behalf of a worker. Inserts a completion record and timer event. Use this to simulate or record task completions via the API."},{"name":"tascan_list_workers","description":"List workers (taskees) in the organization. Supports filtering by name/email/phone substring, contact-info presence, and last-activity date. Each row includes c"},{"name":"tascan_create_worker","description":"Create a new worker (taskee) in the organization"},{"name":"tascan_update_worker","description":"Update a worker profile (name, phone, email)"},{"name":"tascan_generate_qr","description":"Generate a QR code for a task list (event) that workers can scan to access tasks"},{"name":"tascan_apply_template","description":"Apply a pre-built template to a task list, adding all template tasks"},{"name":"tascan_list_templates","description":"List available task templates (built-in and saved)"},{"name":"tascan_get_report","description":"Get completion report for a task list (event) including task status, completions, workers, and photos. Set include_responses to also return the actual submitted"},{"name":"tascan_query_responses","description":"Query one task's submitted responses across every list in a project — e.g. the same exercise repeated across many workout lists returns one chronological progre"},{"name":"tascan_list_issues","description":"List all issues for a task list (event). Returns open, acknowledged, and resolved issues with severity, type, and category. Use this to discover issues that nee"},{"name":"tascan_analyze_issue","description":"Step 1 of the Closed-Loop Autonomous Operations Protocol. Retrieves full issue context including worker info, message thread, project history, and recent simila"},{"name":"tascan_recommend_fix","description":"Step 2 of the Closed-Loop Autonomous Operations Protocol. Post an AI-generated recommendation to an issue thread. Accepts both a text recommendation and an opti"},{"name":"tascan_dispatch_instruction","description":"Step 3 of the Closed-Loop Autonomous Operations Protocol. Dispatches remediation to the worker via MULTI-CHANNEL delivery: (1) issue thread message, (2) in-app "},{"name":"tascan_auto_resolve","description":"FULL Closed-Loop Autonomous Operations Protocol in one call. Server-side AI analyzes the issue, generates remediation tasks, creates a task list, and dispatches"},{"name":"tascan_send_sms","description":"Send a transactional TaScan SMS text to a worker (by worker_id, using their phone on file) or to a raw phone number. Optionally attach a task list — the recipie"},{"name":"tascan_get_sms_status","description":"Check delivery status of a previously sent TaScan SMS by its Twilio SID (returned by tascan_send_sms). Shows queued/sent/delivered/undelivered/failed plus carri"},{"name":"tascan_send_task_email","description":"Send a branded TaScan task notification email via SendGrid. Can notify anyone about a specific task list or task. Includes QR code, task summary, and \"Open in T"},{"name":"tascan_register_tag","description":"Register a physical NFC tag to a project, task list, or specific task. When someone taps the tag, TaScan routes them to the linked resource. Tags use NTAG215 ch"},{"name":"tascan_list_tags","description":"List all registered NFC tags in the organization with their linked projects/task lists and scan counts"},{"name":"tascan_get_scan_history","description":"Scan accountability data. Two modes: (1) tag_id — scans of a registered NFC tag; (2) task_list_id or project_id — every QR/link page-open stamp: when the code w"},{"name":"tascan_search_marketplace","description":"Search the cross-org Worker Marketplace: workers who opted in (discoverable=true on their passport), ranked by passkey trust tier + verified completion volume. "},{"name":"tascan_invite_worker","description":"Invite a marketplace worker to a task list — the consented intro. TaScan texts the worker from its own number (\"<Your org> wants you for <list>. Reply YES to sh"},{"name":"tascan_list_invites","description":"List marketplace invites you have sent and their status (pending / accepted / declined / expired / failed). Accepted invites include the worker's name and phone"},{"name":"tascan_create_zone","description":"Create a geofenced work zone. Delivery zones route workers who open the project Site Gate (geo.html?project=...) to this zone's task list when GPS places them i"},{"name":"tascan_list_zones","description":"List geofenced work zones, optionally filtered by project. Shows center, radius, routing target, and zone-lock status."},{"name":"tascan_update_zone","description":"Update a geofenced zone — move the center, resize the radius, change the routing target, toggle zone-lock, or deactivate it (is_active=false)."},{"name":"tascan_zone_compliance","description":"Hazard-zone compliance audit (OSHA / insurance): every zone crossing, PPE checkpoint verdict (complied / failed with what was missing / skipped), and breach, pl"},{"name":"tascan_register_asset","description":"Register a physical asset (equipment, structure, vehicle, machine) in the condition ledger so it can be assessed over time. Each asset gets a longitudinal condi"},{"name":"tascan_assess_condition","description":"Run an AI condition assessment of an asset from a photo. The model scores 0-100 with the asset's full assessment history in context, so it reads degradation ove"},{"name":"tascan_condition_history","description":"Get an asset's longitudinal condition history — score trend over time, every assessment with grade, delta, findings, and who assessed it. The per-serial-number "},{"name":"tascan_list_assets","description":"List registered condition-ledger assets with their latest condition scores. Use to recover an asset_id for tascan_assess_condition or tascan_condition_history."},{"name":"tascan_generate_report","description":"Mint a shareable report and get its link. Types: completion (full proof-of-work for one list: tasks, responses, subtasks, photos, GPS + place names, timing, QR "},{"name":"tascan_list_reports","description":"List existing report links for a list or project (completion / service / project / evidence), newest first, with client acknowledgment status for service report"},{"name":"tascan_create_invoice","description":"Create a client invoice and get its shareable link. Two ways to bill: (a) pass explicit line_items, or (b) pass project_id or task_list_ids plus hourly_rate (qu"},{"name":"tascan_list_invoices","description":"List invoices for the org (newest first) with status, client, total, due date and share link. Filter by status (draft/sent/paid/overdue/cancelled) or project."},{"name":"tascan_update_invoice","description":"Update an invoice: mark it paid (records paid_at), overdue, cancelled, or edit client details / notes / due date."},{"name":"tascan_request_payment","description":"Pledge a payment on a task list: when the list is verified complete (every task done + photo evidence on photo-required tasks), the payer automatically receives"},{"name":"tascan_list_payments","description":"List gig payments and their lifecycle status: awaiting_completion (pledged, work not verified yet), ready_to_pay (verified — pay link sent to payer), paid, canc"},{"name":"tascan_get_worker_passport","description":"Get a worker's verified work passport — task counts, lists worked, photos submitted, GPS-verified hours, points, streaks, and earned merit badges, all computed "},{"name":"tascan_server_info","description":"Identify exactly which TaScan server and schema this MCP session is talking to. Call this FIRST when diagnosing anything — it makes \"dev server masquerading as "},{"name":"tascan_find","description":"Cross-entity search: find projects, task lists, tasks, workers, or condition assets by name in one call — with ids and parent context to disambiguate. Use this "},{"name":"tascan_get_worker","description":"Ungated, plain read of one worker row: name, contact, org, points, streaks, timestamps. (tascan_get_worker_passport is the rich stats view; this is the boring l"},{"name":"tascan_find_duplicate_workers","description":"Find candidate same-person worker records with per-signal match detail (Patent 4 §6.25(b) signals: phone reuse, name similarity, GPS pattern correlation). Turns"},{"name":"tascan_merge_workers","description":"Merge duplicate worker records into one canonical identity (Patent 4 identity consolidation). Reassigns every reference (completions, timer events, points, paym"},{"name":"tascan_delete_worker","description":"Tombstone a worker record (is_active=false). REFUSES if the worker has any task/subtask completions or payments — merge those into the real worker with tascan_m"}],"toolCount":69,"serverName":"tascan","capabilities":["tools"],"serverVersion":"3.9.0","protocolVersion":"2025-03-26"}},{"at":"2026-09-07T12:23:42.843Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":405,"error":null,"detail":{"tools":[{"name":"tascan_list_projects","description":"List all TaScan projects in the organization"},{"name":"tascan_create_project","description":"Create a new TaScan project (top-level container for events)"},{"name":"tascan_get_project","description":"Get details of a specific project"},{"name":"tascan_update_project","description":"Update a project (name, location, status, dates)"},{"name":"tascan_delete_project","description":"Delete a project and all its events, tasks, and completions. This action is irreversible."},{"name":"tascan_create_event","description":"Create a new event (task list) within a project. Supports team_mode (shared completions) and multi_instance (each worker gets isolated copy — great for surveys,"},{"name":"tascan_list_events","description":"List all events (task lists) within a project"},{"name":"tascan_get_event","description":"Get details of a specific event (task list) including its tasks"},{"name":"tascan_update_event","description":"Update an event / task list (name, description, team_mode, multi_instance, timer_mode). team_mode and multi_instance cannot both be true."},{"name":"tascan_delete_event","description":"Delete an event (task list) and all its tasks and completions. This action is irreversible."},{"name":"tascan_add_tasks","description":"Add one or more tasks to an event (task list). Supports bulk creation. IMPORTANT: Set response_type correctly — use \"text\" for info collection (names, phones, e"},{"name":"tascan_dispatch_to_agent","description":"PREFERRED tool for sending work to an AI agent. Dispatches a task to the agent's inbox — picked up and executed automatically. No list ID needed. Supports prefi"},{"name":"tascan_list_agents","description":"List all registered AI agents with their capabilities, inbox IDs, and status. Like reading input labels on a video matrix — discover which agents are available "},{"name":"tascan_register_agent","description":"Register a new AI agent in the agent registry. The agent will appear in tascan_list_agents and can receive dispatched tasks. Self-registration for AI agents joi"},{"name":"tascan_list_tasks","description":"List all tasks in an event (task list)"},{"name":"tascan_get_task","description":"Get details of a specific task including completions"},{"name":"tascan_update_task","description":"Update a task (title, description, response_type, flags, sort_order)"},{"name":"tascan_reply_with_list","description":"Reply to a task list WITH a task list — the two-way tasking primitive. Creates a new list linked into the parent's thread, aimed back at whoever sent the origin"},{"name":"tascan_add_subtasks","description":"Add one or more subtasks to a task (bulk). Subtasks support typed responses: \"number\" for per-set data (reps, weight, distance), \"text\" for notes, \"choice\" for "},{"name":"tascan_list_subtasks","description":"List the subtasks of a task, including completion state, stored response values, and completion timestamps (per-set timing)."},{"name":"tascan_update_subtask","description":"Update a subtask (title, description, response_type, response_config, requires_photo, sort_order)."},{"name":"tascan_complete_subtask","description":"Complete a subtask, optionally recording a typed response_value (e.g. the weight or reps for that set). Each completion is timestamped, so consecutive set compl"},{"name":"tascan_delete_subtask","description":"Delete a subtask and its completions. This action is irreversible."},{"name":"tascan_delete_task","description":"Delete a specific task and its completions. This action is irreversible."},{"name":"tascan_complete_task","description":"Complete a task on behalf of a worker. Inserts a completion record and timer event. Use this to simulate or record task completions via the API."},{"name":"tascan_list_workers","description":"List workers (taskees) in the organization. Supports filtering by name/email/phone substring, contact-info presence, and last-activity date. Each row includes c"},{"name":"tascan_create_worker","description":"Create a new worker (taskee) in the organization"},{"name":"tascan_update_worker","description":"Update a worker profile (name, phone, email)"},{"name":"tascan_generate_qr","description":"Generate a QR code for a task list (event) that workers can scan to access tasks"},{"name":"tascan_apply_template","description":"Apply a pre-built template to a task list, adding all template tasks"},{"name":"tascan_list_templates","description":"List available task templates (built-in and saved)"},{"name":"tascan_get_report","description":"Get completion report for a task list (event) including task status, completions, workers, and photos. Set include_responses to also return the actual submitted"},{"name":"tascan_query_responses","description":"Query one task's submitted responses across every list in a project — e.g. the same exercise repeated across many workout lists returns one chronological progre"},{"name":"tascan_list_issues","description":"List all issues for a task list (event). Returns open, acknowledged, and resolved issues with severity, type, and category. Use this to discover issues that nee"},{"name":"tascan_analyze_issue","description":"Step 1 of the Closed-Loop Autonomous Operations Protocol. Retrieves full issue context including worker info, message thread, project history, and recent simila"},{"name":"tascan_recommend_fix","description":"Step 2 of the Closed-Loop Autonomous Operations Protocol. Post an AI-generated recommendation to an issue thread. Accepts both a text recommendation and an opti"},{"name":"tascan_dispatch_instruction","description":"Step 3 of the Closed-Loop Autonomous Operations Protocol. Dispatches remediation to the worker via MULTI-CHANNEL delivery: (1) issue thread message, (2) in-app "},{"name":"tascan_auto_resolve","description":"FULL Closed-Loop Autonomous Operations Protocol in one call. Server-side AI analyzes the issue, generates remediation tasks, creates a task list, and dispatches"},{"name":"tascan_send_sms","description":"Send a transactional TaScan SMS text to a worker (by worker_id, using their phone on file) or to a raw phone number. Optionally attach a task list — the recipie"},{"name":"tascan_get_sms_status","description":"Check delivery status of a previously sent TaScan SMS by its Twilio SID (returned by tascan_send_sms). Shows queued/sent/delivered/undelivered/failed plus carri"},{"name":"tascan_send_task_email","description":"Send a branded TaScan task notification email via SendGrid. Can notify anyone about a specific task list or task. Includes QR code, task summary, and \"Open in T"},{"name":"tascan_register_tag","description":"Register a physical NFC tag to a project, task list, or specific task. When someone taps the tag, TaScan routes them to the linked resource. Tags use NTAG215 ch"},{"name":"tascan_list_tags","description":"List all registered NFC tags in the organization with their linked projects/task lists and scan counts"},{"name":"tascan_get_scan_history","description":"Scan accountability data. Two modes: (1) tag_id — scans of a registered NFC tag; (2) task_list_id or project_id — every QR/link page-open stamp: when the code w"},{"name":"tascan_search_marketplace","description":"Search the cross-org Worker Marketplace: workers who opted in (discoverable=true on their passport), ranked by passkey trust tier + verified completion volume. "},{"name":"tascan_invite_worker","description":"Invite a marketplace worker to a task list — the consented intro. TaScan texts the worker from its own number (\"<Your org> wants you for <list>. Reply YES to sh"},{"name":"tascan_list_invites","description":"List marketplace invites you have sent and their status (pending / accepted / declined / expired / failed). Accepted invites include the worker's name and phone"},{"name":"tascan_create_zone","description":"Create a geofenced work zone. Delivery zones route workers who open the project Site Gate (geo.html?project=...) to this zone's task list when GPS places them i"},{"name":"tascan_list_zones","description":"List geofenced work zones, optionally filtered by project. Shows center, radius, routing target, and zone-lock status."},{"name":"tascan_update_zone","description":"Update a geofenced zone — move the center, resize the radius, change the routing target, toggle zone-lock, or deactivate it (is_active=false)."},{"name":"tascan_zone_compliance","description":"Hazard-zone compliance audit (OSHA / insurance): every zone crossing, PPE checkpoint verdict (complied / failed with what was missing / skipped), and breach, pl"},{"name":"tascan_register_asset","description":"Register a physical asset (equipment, structure, vehicle, machine) in the condition ledger so it can be assessed over time. Each asset gets a longitudinal condi"},{"name":"tascan_assess_condition","description":"Run an AI condition assessment of an asset from a photo. The model scores 0-100 with the asset's full assessment history in context, so it reads degradation ove"},{"name":"tascan_condition_history","description":"Get an asset's longitudinal condition history — score trend over time, every assessment with grade, delta, findings, and who assessed it. The per-serial-number "},{"name":"tascan_list_assets","description":"List registered condition-ledger assets with their latest condition scores. Use to recover an asset_id for tascan_assess_condition or tascan_condition_history."},{"name":"tascan_generate_report","description":"Mint a shareable report and get its link. Types: completion (full proof-of-work for one list: tasks, responses, subtasks, photos, GPS + place names, timing, QR "},{"name":"tascan_list_reports","description":"List existing report links for a list or project (completion / service / project / evidence), newest first, with client acknowledgment status for service report"},{"name":"tascan_create_invoice","description":"Create a client invoice and get its shareable link. Two ways to bill: (a) pass explicit line_items, or (b) pass project_id or task_list_ids plus hourly_rate (qu"},{"name":"tascan_list_invoices","description":"List invoices for the org (newest first) with status, client, total, due date and share link. Filter by status (draft/sent/paid/overdue/cancelled) or project."},{"name":"tascan_update_invoice","description":"Update an invoice: mark it paid (records paid_at), overdue, cancelled, or edit client details / notes / due date."},{"name":"tascan_request_payment","description":"Pledge a payment on a task list: when the list is verified complete (every task done + photo evidence on photo-required tasks), the payer automatically receives"},{"name":"tascan_list_payments","description":"List gig payments and their lifecycle status: awaiting_completion (pledged, work not verified yet), ready_to_pay (verified — pay link sent to payer), paid, canc"},{"name":"tascan_get_worker_passport","description":"Get a worker's verified work passport — task counts, lists worked, photos submitted, GPS-verified hours, points, streaks, and earned merit badges, all computed "},{"name":"tascan_server_info","description":"Identify exactly which TaScan server and schema this MCP session is talking to. Call this FIRST when diagnosing anything — it makes \"dev server masquerading as "},{"name":"tascan_find","description":"Cross-entity search: find projects, task lists, tasks, workers, or condition assets by name in one call — with ids and parent context to disambiguate. Use this "},{"name":"tascan_get_worker","description":"Ungated, plain read of one worker row: name, contact, org, points, streaks, timestamps. (tascan_get_worker_passport is the rich stats view; this is the boring l"},{"name":"tascan_find_duplicate_workers","description":"Find candidate same-person worker records with per-signal match detail (Patent 4 §6.25(b) signals: phone reuse, name similarity, GPS pattern correlation). Turns"},{"name":"tascan_merge_workers","description":"Merge duplicate worker records into one canonical identity (Patent 4 identity consolidation). Reassigns every reference (completions, timer events, points, paym"},{"name":"tascan_delete_worker","description":"Tombstone a worker record (is_active=false). REFUSES if the worker has any task/subtask completions or payments — merge those into the real worker with tascan_m"}],"toolCount":69,"serverName":"tascan","capabilities":["tools"],"serverVersion":"3.9.0","protocolVersion":"2025-03-26"}},{"at":"2026-09-07T04:26:49.367Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":413,"error":null,"detail":{"tools":[{"name":"tascan_list_projects","description":"List all TaScan projects in the organization"},{"name":"tascan_create_project","description":"Create a new TaScan project (top-level container for events)"},{"name":"tascan_get_project","description":"Get details of a specific project"},{"name":"tascan_update_project","description":"Update a project (name, location, status, dates)"},{"name":"tascan_delete_project","description":"Delete a project and all its events, tasks, and completions. This action is irreversible."},{"name":"tascan_create_event","description":"Create a new event (task list) within a project. Supports team_mode (shared completions) and multi_instance (each worker gets isolated copy — great for surveys,"},{"name":"tascan_list_events","description":"List all events (task lists) within a project"},{"name":"tascan_get_event","description":"Get details of a specific event (task list) including its tasks"},{"name":"tascan_update_event","description":"Update an event / task list (name, description, team_mode, multi_instance, timer_mode). team_mode and multi_instance cannot both be true."},{"name":"tascan_delete_event","description":"Delete an event (task list) and all its tasks and completions. This action is irreversible."},{"name":"tascan_add_tasks","description":"Add one or more tasks to an event (task list). Supports bulk creation. IMPORTANT: Set response_type correctly — use \"text\" for info collection (names, phones, e"},{"name":"tascan_dispatch_to_agent","description":"PREFERRED tool for sending work to an AI agent. Dispatches a task to the agent's inbox — picked up and executed automatically. No list ID needed. Supports prefi"},{"name":"tascan_list_agents","description":"List all registered AI agents with their capabilities, inbox IDs, and status. Like reading input labels on a video matrix — discover which agents are available "},{"name":"tascan_register_agent","description":"Register a new AI agent in the agent registry. The agent will appear in tascan_list_agents and can receive dispatched tasks. Self-registration for AI agents joi"},{"name":"tascan_list_tasks","description":"List all tasks in an event (task list)"},{"name":"tascan_get_task","description":"Get details of a specific task including completions"},{"name":"tascan_update_task","description":"Update a task (title, description, response_type, flags, sort_order)"},{"name":"tascan_reply_with_list","description":"Reply to a task list WITH a task list — the two-way tasking primitive. Creates a new list linked into the parent's thread, aimed back at whoever sent the origin"},{"name":"tascan_add_subtasks","description":"Add one or more subtasks to a task (bulk). Subtasks support typed responses: \"number\" for per-set data (reps, weight, distance), \"text\" for notes, \"choice\" for "},{"name":"tascan_list_subtasks","description":"List the subtasks of a task, including completion state, stored response values, and completion timestamps (per-set timing)."},{"name":"tascan_update_subtask","description":"Update a subtask (title, description, response_type, response_config, requires_photo, sort_order)."},{"name":"tascan_complete_subtask","description":"Complete a subtask, optionally recording a typed response_value (e.g. the weight or reps for that set). Each completion is timestamped, so consecutive set compl"},{"name":"tascan_delete_subtask","description":"Delete a subtask and its completions. This action is irreversible."},{"name":"tascan_delete_task","description":"Delete a specific task and its completions. This action is irreversible."},{"name":"tascan_complete_task","description":"Complete a task on behalf of a worker. Inserts a completion record and timer event. Use this to simulate or record task completions via the API."},{"name":"tascan_list_workers","description":"List workers (taskees) in the organization. Supports filtering by name/email/phone substring, contact-info presence, and last-activity date. Each row includes c"},{"name":"tascan_create_worker","description":"Create a new worker (taskee) in the organization"},{"name":"tascan_update_worker","description":"Update a worker profile (name, phone, email)"},{"name":"tascan_generate_qr","description":"Generate a QR code for a task list (event) that workers can scan to access tasks"},{"name":"tascan_apply_template","description":"Apply a pre-built template to a task list, adding all template tasks"},{"name":"tascan_list_templates","description":"List available task templates (built-in and saved)"},{"name":"tascan_get_report","description":"Get completion report for a task list (event) including task status, completions, workers, and photos. Set include_responses to also return the actual submitted"},{"name":"tascan_query_responses","description":"Query one task's submitted responses across every list in a project — e.g. the same exercise repeated across many workout lists returns one chronological progre"},{"name":"tascan_list_issues","description":"List all issues for a task list (event). Returns open, acknowledged, and resolved issues with severity, type, and category. Use this to discover issues that nee"},{"name":"tascan_analyze_issue","description":"Step 1 of the Closed-Loop Autonomous Operations Protocol. Retrieves full issue context including worker info, message thread, project history, and recent simila"},{"name":"tascan_recommend_fix","description":"Step 2 of the Closed-Loop Autonomous Operations Protocol. Post an AI-generated recommendation to an issue thread. Accepts both a text recommendation and an opti"},{"name":"tascan_dispatch_instruction","description":"Step 3 of the Closed-Loop Autonomous Operations Protocol. Dispatches remediation to the worker via MULTI-CHANNEL delivery: (1) issue thread message, (2) in-app "},{"name":"tascan_auto_resolve","description":"FULL Closed-Loop Autonomous Operations Protocol in one call. Server-side AI analyzes the issue, generates remediation tasks, creates a task list, and dispatches"},{"name":"tascan_send_sms","description":"Send a transactional TaScan SMS text to a worker (by worker_id, using their phone on file) or to a raw phone number. Optionally attach a task list — the recipie"},{"name":"tascan_get_sms_status","description":"Check delivery status of a previously sent TaScan SMS by its Twilio SID (returned by tascan_send_sms). Shows queued/sent/delivered/undelivered/failed plus carri"},{"name":"tascan_send_task_email","description":"Send a branded TaScan task notification email via SendGrid. Can notify anyone about a specific task list or task. Includes QR code, task summary, and \"Open in T"},{"name":"tascan_register_tag","description":"Register a physical NFC tag to a project, task list, or specific task. When someone taps the tag, TaScan routes them to the linked resource. Tags use NTAG215 ch"},{"name":"tascan_list_tags","description":"List all registered NFC tags in the organization with their linked projects/task lists and scan counts"},{"name":"tascan_get_scan_history","description":"Scan accountability data. Two modes: (1) tag_id — scans of a registered NFC tag; (2) task_list_id or project_id — every QR/link page-open stamp: when the code w"},{"name":"tascan_search_marketplace","description":"Search the cross-org Worker Marketplace: workers who opted in (discoverable=true on their passport), ranked by passkey trust tier + verified completion volume. "},{"name":"tascan_invite_worker","description":"Invite a marketplace worker to a task list — the consented intro. TaScan texts the worker from its own number (\"<Your org> wants you for <list>. Reply YES to sh"},{"name":"tascan_list_invites","description":"List marketplace invites you have sent and their status (pending / accepted / declined / expired / failed). Accepted invites include the worker's name and phone"},{"name":"tascan_create_zone","description":"Create a geofenced work zone. Delivery zones route workers who open the project Site Gate (geo.html?project=...) to this zone's task list when GPS places them i"},{"name":"tascan_list_zones","description":"List geofenced work zones, optionally filtered by project. Shows center, radius, routing target, and zone-lock status."},{"name":"tascan_update_zone","description":"Update a geofenced zone — move the center, resize the radius, change the routing target, toggle zone-lock, or deactivate it (is_active=false)."},{"name":"tascan_zone_compliance","description":"Hazard-zone compliance audit (OSHA / insurance): every zone crossing, PPE checkpoint verdict (complied / failed with what was missing / skipped), and breach, pl"},{"name":"tascan_register_asset","description":"Register a physical asset (equipment, structure, vehicle, machine) in the condition ledger so it can be assessed over time. Each asset gets a longitudinal condi"},{"name":"tascan_assess_condition","description":"Run an AI condition assessment of an asset from a photo. The model scores 0-100 with the asset's full assessment history in context, so it reads degradation ove"},{"name":"tascan_condition_history","description":"Get an asset's longitudinal condition history — score trend over time, every assessment with grade, delta, findings, and who assessed it. The per-serial-number "},{"name":"tascan_list_assets","description":"List registered condition-ledger assets with their latest condition scores. Use to recover an asset_id for tascan_assess_condition or tascan_condition_history."},{"name":"tascan_generate_report","description":"Mint a shareable report and get its link. Types: completion (full proof-of-work for one list: tasks, responses, subtasks, photos, GPS + place names, timing, QR "},{"name":"tascan_list_reports","description":"List existing report links for a list or project (completion / service / project / evidence), newest first, with client acknowledgment status for service report"},{"name":"tascan_create_invoice","description":"Create a client invoice and get its shareable link. Two ways to bill: (a) pass explicit line_items, or (b) pass project_id or task_list_ids plus hourly_rate (qu"},{"name":"tascan_list_invoices","description":"List invoices for the org (newest first) with status, client, total, due date and share link. Filter by status (draft/sent/paid/overdue/cancelled) or project."},{"name":"tascan_update_invoice","description":"Update an invoice: mark it paid (records paid_at), overdue, cancelled, or edit client details / notes / due date."},{"name":"tascan_request_payment","description":"Pledge a payment on a task list: when the list is verified complete (every task done + photo evidence on photo-required tasks), the payer automatically receives"},{"name":"tascan_list_payments","description":"List gig payments and their lifecycle status: awaiting_completion (pledged, work not verified yet), ready_to_pay (verified — pay link sent to payer), paid, canc"},{"name":"tascan_get_worker_passport","description":"Get a worker's verified work passport — task counts, lists worked, photos submitted, GPS-verified hours, points, streaks, and earned merit badges, all computed "},{"name":"tascan_server_info","description":"Identify exactly which TaScan server and schema this MCP session is talking to. Call this FIRST when diagnosing anything — it makes \"dev server masquerading as "},{"name":"tascan_find","description":"Cross-entity search: find projects, task lists, tasks, workers, or condition assets by name in one call — with ids and parent context to disambiguate. Use this "},{"name":"tascan_get_worker","description":"Ungated, plain read of one worker row: name, contact, org, points, streaks, timestamps. (tascan_get_worker_passport is the rich stats view; this is the boring l"},{"name":"tascan_find_duplicate_workers","description":"Find candidate same-person worker records with per-signal match detail (Patent 4 §6.25(b) signals: phone reuse, name similarity, GPS pattern correlation). Turns"},{"name":"tascan_merge_workers","description":"Merge duplicate worker records into one canonical identity (Patent 4 identity consolidation). Reassigns every reference (completions, timer events, points, paym"},{"name":"tascan_delete_worker","description":"Tombstone a worker record (is_active=false). REFUSES if the worker has any task/subtask completions or payments — merge those into the real worker with tascan_m"}],"toolCount":69,"serverName":"tascan","capabilities":["tools"],"serverVersion":"3.9.0","protocolVersion":"2025-03-26"}}],"tools":[{"name":"tascan_list_projects","description":"List all TaScan projects in the organization"},{"name":"tascan_create_project","description":"Create a new TaScan project (top-level container for events)"},{"name":"tascan_get_project","description":"Get details of a specific project"},{"name":"tascan_update_project","description":"Update a project (name, location, status, dates)"},{"name":"tascan_delete_project","description":"Delete a project and all its events, tasks, and completions. This action is irreversible."},{"name":"tascan_create_event","description":"Create a new event (task list) within a project. Supports team_mode (shared completions) and multi_instance (each worker gets isolated copy — great for surveys,"},{"name":"tascan_list_events","description":"List all events (task lists) within a project"},{"name":"tascan_get_event","description":"Get details of a specific event (task list) including its tasks"},{"name":"tascan_update_event","description":"Update an event / task list (name, description, team_mode, multi_instance, timer_mode). team_mode and multi_instance cannot both be true."},{"name":"tascan_delete_event","description":"Delete an event (task list) and all its tasks and completions. This action is irreversible."},{"name":"tascan_add_tasks","description":"Add one or more tasks to an event (task list). Supports bulk creation. IMPORTANT: Set response_type correctly — use \"text\" for info collection (names, phones, e"},{"name":"tascan_dispatch_to_agent","description":"PREFERRED tool for sending work to an AI agent. Dispatches a task to the agent's inbox — picked up and executed automatically. No list ID needed. Supports prefi"},{"name":"tascan_list_agents","description":"List all registered AI agents with their capabilities, inbox IDs, and status. Like reading input labels on a video matrix — discover which agents are available "},{"name":"tascan_register_agent","description":"Register a new AI agent in the agent registry. The agent will appear in tascan_list_agents and can receive dispatched tasks. Self-registration for AI agents joi"},{"name":"tascan_list_tasks","description":"List all tasks in an event (task list)"},{"name":"tascan_get_task","description":"Get details of a specific task including completions"},{"name":"tascan_update_task","description":"Update a task (title, description, response_type, flags, sort_order)"},{"name":"tascan_reply_with_list","description":"Reply to a task list WITH a task list — the two-way tasking primitive. Creates a new list linked into the parent's thread, aimed back at whoever sent the origin"},{"name":"tascan_add_subtasks","description":"Add one or more subtasks to a task (bulk). Subtasks support typed responses: \"number\" for per-set data (reps, weight, distance), \"text\" for notes, \"choice\" for "},{"name":"tascan_list_subtasks","description":"List the subtasks of a task, including completion state, stored response values, and completion timestamps (per-set timing)."},{"name":"tascan_update_subtask","description":"Update a subtask (title, description, response_type, response_config, requires_photo, sort_order)."},{"name":"tascan_complete_subtask","description":"Complete a subtask, optionally recording a typed response_value (e.g. the weight or reps for that set). Each completion is timestamped, so consecutive set compl"},{"name":"tascan_delete_subtask","description":"Delete a subtask and its completions. This action is irreversible."},{"name":"tascan_delete_task","description":"Delete a specific task and its completions. This action is irreversible."},{"name":"tascan_complete_task","description":"Complete a task on behalf of a worker. Inserts a completion record and timer event. Use this to simulate or record task completions via the API."},{"name":"tascan_list_workers","description":"List workers (taskees) in the organization. Supports filtering by name/email/phone substring, contact-info presence, and last-activity date. Each row includes c"},{"name":"tascan_create_worker","description":"Create a new worker (taskee) in the organization"},{"name":"tascan_update_worker","description":"Update a worker profile (name, phone, email)"},{"name":"tascan_generate_qr","description":"Generate a QR code for a task list (event) that workers can scan to access tasks"},{"name":"tascan_apply_template","description":"Apply a pre-built template to a task list, adding all template tasks"},{"name":"tascan_list_templates","description":"List available task templates (built-in and saved)"},{"name":"tascan_get_report","description":"Get completion report for a task list (event) including task status, completions, workers, and photos. Set include_responses to also return the actual submitted"},{"name":"tascan_query_responses","description":"Query one task's submitted responses across every list in a project — e.g. the same exercise repeated across many workout lists returns one chronological progre"},{"name":"tascan_list_issues","description":"List all issues for a task list (event). Returns open, acknowledged, and resolved issues with severity, type, and category. Use this to discover issues that nee"},{"name":"tascan_analyze_issue","description":"Step 1 of the Closed-Loop Autonomous Operations Protocol. Retrieves full issue context including worker info, message thread, project history, and recent simila"},{"name":"tascan_recommend_fix","description":"Step 2 of the Closed-Loop Autonomous Operations Protocol. Post an AI-generated recommendation to an issue thread. Accepts both a text recommendation and an opti"},{"name":"tascan_dispatch_instruction","description":"Step 3 of the Closed-Loop Autonomous Operations Protocol. Dispatches remediation to the worker via MULTI-CHANNEL delivery: (1) issue thread message, (2) in-app "},{"name":"tascan_auto_resolve","description":"FULL Closed-Loop Autonomous Operations Protocol in one call. Server-side AI analyzes the issue, generates remediation tasks, creates a task list, and dispatches"},{"name":"tascan_send_sms","description":"Send a transactional TaScan SMS text to a worker (by worker_id, using their phone on file) or to a raw phone number. Optionally attach a task list — the recipie"},{"name":"tascan_get_sms_status","description":"Check delivery status of a previously sent TaScan SMS by its Twilio SID (returned by tascan_send_sms). Shows queued/sent/delivered/undelivered/failed plus carri"},{"name":"tascan_send_task_email","description":"Send a branded TaScan task notification email via SendGrid. Can notify anyone about a specific task list or task. Includes QR code, task summary, and \"Open in T"},{"name":"tascan_register_tag","description":"Register a physical NFC tag to a project, task list, or specific task. When someone taps the tag, TaScan routes them to the linked resource. Tags use NTAG215 ch"},{"name":"tascan_list_tags","description":"List all registered NFC tags in the organization with their linked projects/task lists and scan counts"},{"name":"tascan_get_scan_history","description":"Scan accountability data. Two modes: (1) tag_id — scans of a registered NFC tag; (2) task_list_id or project_id — every QR/link page-open stamp: when the code w"},{"name":"tascan_search_marketplace","description":"Search the cross-org Worker Marketplace: workers who opted in (discoverable=true on their passport), ranked by passkey trust tier + verified completion volume. "},{"name":"tascan_invite_worker","description":"Invite a marketplace worker to a task list — the consented intro. TaScan texts the worker from its own number (\"<Your org> wants you for <list>. Reply YES to sh"},{"name":"tascan_list_invites","description":"List marketplace invites you have sent and their status (pending / accepted / declined / expired / failed). Accepted invites include the worker's name and phone"},{"name":"tascan_create_zone","description":"Create a geofenced work zone. Delivery zones route workers who open the project Site Gate (geo.html?project=...) to this zone's task list when GPS places them i"},{"name":"tascan_list_zones","description":"List geofenced work zones, optionally filtered by project. Shows center, radius, routing target, and zone-lock status."},{"name":"tascan_update_zone","description":"Update a geofenced zone — move the center, resize the radius, change the routing target, toggle zone-lock, or deactivate it (is_active=false)."},{"name":"tascan_zone_compliance","description":"Hazard-zone compliance audit (OSHA / insurance): every zone crossing, PPE checkpoint verdict (complied / failed with what was missing / skipped), and breach, pl"},{"name":"tascan_register_asset","description":"Register a physical asset (equipment, structure, vehicle, machine) in the condition ledger so it can be assessed over time. Each asset gets a longitudinal condi"},{"name":"tascan_assess_condition","description":"Run an AI condition assessment of an asset from a photo. The model scores 0-100 with the asset's full assessment history in context, so it reads degradation ove"},{"name":"tascan_condition_history","description":"Get an asset's longitudinal condition history — score trend over time, every assessment with grade, delta, findings, and who assessed it. The per-serial-number "},{"name":"tascan_list_assets","description":"List registered condition-ledger assets with their latest condition scores. Use to recover an asset_id for tascan_assess_condition or tascan_condition_history."},{"name":"tascan_generate_report","description":"Mint a shareable report and get its link. Types: completion (full proof-of-work for one list: tasks, responses, subtasks, photos, GPS + place names, timing, QR "},{"name":"tascan_list_reports","description":"List existing report links for a list or project (completion / service / project / evidence), newest first, with client acknowledgment status for service report"},{"name":"tascan_create_invoice","description":"Create a client invoice and get its shareable link. Two ways to bill: (a) pass explicit line_items, or (b) pass project_id or task_list_ids plus hourly_rate (qu"},{"name":"tascan_list_invoices","description":"List invoices for the org (newest first) with status, client, total, due date and share link. Filter by status (draft/sent/paid/overdue/cancelled) or project."},{"name":"tascan_update_invoice","description":"Update an invoice: mark it paid (records paid_at), overdue, cancelled, or edit client details / notes / due date."},{"name":"tascan_request_payment","description":"Pledge a payment on a task list: when the list is verified complete (every task done + photo evidence on photo-required tasks), the payer automatically receives"},{"name":"tascan_list_payments","description":"List gig payments and their lifecycle status: awaiting_completion (pledged, work not verified yet), ready_to_pay (verified — pay link sent to payer), paid, canc"},{"name":"tascan_get_worker_passport","description":"Get a worker's verified work passport — task counts, lists worked, photos submitted, GPS-verified hours, points, streaks, and earned merit badges, all computed "},{"name":"tascan_server_info","description":"Identify exactly which TaScan server and schema this MCP session is talking to. Call this FIRST when diagnosing anything — it makes \"dev server masquerading as "},{"name":"tascan_find","description":"Cross-entity search: find projects, task lists, tasks, workers, or condition assets by name in one call — with ids and parent context to disambiguate. Use this "},{"name":"tascan_get_worker","description":"Ungated, plain read of one worker row: name, contact, org, points, streaks, timestamps. (tascan_get_worker_passport is the rich stats view; this is the boring l"},{"name":"tascan_find_duplicate_workers","description":"Find candidate same-person worker records with per-signal match detail (Patent 4 §6.25(b) signals: phone reuse, name similarity, GPS pattern correlation). Turns"},{"name":"tascan_merge_workers","description":"Merge duplicate worker records into one canonical identity (Patent 4 identity consolidation). Reassigns every reference (completions, timer events, points, paym"},{"name":"tascan_delete_worker","description":"Tombstone a worker record (is_active=false). REFUSES if the worker has any task/subtask completions or payments — merge those into the real worker with tascan_m"}],"package":{"name":"tascan-mcp","registry":"npm","observedAt":"2026-09-08T10:40:53.832Z","publishedAt":"2026-09-03T06:14:39.991Z","latestVersion":"3.10.0","weeklyDownloads":587}},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"npm","key":"tascan-mcp","url":"https://www.npmjs.com/package/tascan-mcp","firstSeenAt":"2026-09-05T22:17:47.676Z","fetchedAt":"2026-09-08T00:17:06.621Z","normalizedAt":"2026-09-08T00:17:06.621Z"},{"source":"mcp_registry","key":"io.github.snowbikemike/tascan-mcp","url":"https://registry.modelcontextprotocol.io/v0/servers/io.github.snowbikemike%2Ftascan-mcp","firstSeenAt":"2026-09-07T03:22:04.485Z","fetchedAt":"2026-09-07T03:22:04.485Z","normalizedAt":"2026-09-07T03:22:04.485Z"}]},"firstSeenAt":"2026-09-05T22:17:47.676Z","updatedAt":"2026-09-08T10:40:53.832Z"}