
TaScan
Connects Claude to TaScan's universal task protocol platform for managing physical-world work without app downloads. Exposes 22 tools across projects, events, tasks, workers, QR code generation, and completion reports. You can create construction safety checklists, set up hotel room turnovers, deploy warehouse receiving templates, or analyze worker performance across events. Tasks support multiple types including photo verification, checkpoints, and safety flags. Useful when you need AI-assisted coordination of real-world operations like live events, construction sites, or FEMA disaster response where workers scan QR codes to complete verified tasks. Requires a TaScan API key from the admin portal.
- GitHub stars
- 1
- tools
- 80
- auth
- Secret needed
- transport
- STDIO, HTTP
- env vars
- 2
- last updated
- Aug 18, 2026
Install
From registry metadata$ npx add-mcp https://app.tascan.io/mcp --name tascan-mcpRun in your terminal. add-mcp asks which agents to add it to (Claude Code, Codex, Cursor and more). Add -g to install it for every project.
Review the command, arguments and environment values before installing. MCP servers run with your local permissions.
Other ways
Claude Code
$ claude mcp add --transport http tascan-mcp https://app.tascan.io/mcpRun in your terminal. Add --scope user to make it available in every project.
Tools
Verified live · 80 toolsVerified live against the running server on Nov 6, 2026.
tascan_list_projectsList TaScan projects in the organization (each with its number, e.g. P-00001, external_refs, report_options and its calendar_url, webcal_url, map_url and wallet_pass_url). Optional filters: status (exact, comma list), number (exact), ref (matches any external_refs[].ref exactl...7 params
List TaScan projects in the organization (each with its number, e.g. P-00001, external_refs, report_options and its calendar_url, webcal_url, map_url and wallet_pass_url). Optional filters: status (exact, comma list), number (exact), ref (matches any external_refs[].ref exactl...
ends_beforestringnumberstringrefstringstarts_afterstringstatusstringwindowstringweek · monthzonestringtascan_create_projectCreate a new TaScan project (top-level container for events). number is optional (the next P-number is assigned when omitted; a number already used in the org is refused 409). external_refs links customer job numbers.4 params
Create a new TaScan project (top-level container for events). number is optional (the next P-number is assigned when omitted; a number already used in the org is refused 409). external_refs links customer job numbers.
external_refsarraylocationstringname*stringnumberstringtascan_get_projectGet details of a specific project1 params
Get details of a specific project
project_id*stringtascan_update_projectUpdate a project (name, location, status, dates, number, external_refs, labor_rules, report_options). A number already used in the org is refused 409; external_refs replaces the whole list. report_options is merged into the stored object (other keys kept, a key set to null rem...10 params
Update a project (name, location, status, dates, number, external_refs, labor_rules, report_options). A number already used in the org is refused 409; external_refs replaces the whole list. report_options is merged into the stored object (other keys kept, a key set to null rem...
end_datestringexternal_refsarraylabor_rulesobjectlocationstringnamestringnumberstringproject_id*stringreport_optionsobjectstart_datestringstatusstringactive · archivedtascan_delete_projectDelete a project that has NO history, after typing its name. Refused 409 project_has_history (with the counts) when it has any task or subtask completion, action receipt, issue, invoice or coordination task: archive it instead (tascan_update_project status archived). confirm_n...3 params
Delete a project that has NO history, after typing its name. Refused 409 project_has_history (with the counts) when it has any task or subtask completion, action receipt, issue, invoice or coordination task: archive it instead (tascan_update_project status archived). confirm_n...
auditobjectconfirm_name*stringproject_id*stringtascan_create_eventCreate a new event (task list) within a project. Supports team_mode (shared completions) and multi_instance (each worker gets isolated copy — great for surveys, onboarding, info collection). team_mode and multi_instance cannot both be true.8 params
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, onboarding, info collection). team_mode and multi_instance cannot both be true.
access_levelstringopen · assigned · securedagent_assigneestringassigned_worker_idsarraydescriptionstringmulti_instancebooleanname*stringproject_id*stringteam_modebooleantascan_list_eventsList all events (task lists) within a project1 params
List all events (task lists) within a project
project_id*stringtascan_get_eventGet details of a specific event (task list) including its tasks1 params
Get details of a specific event (task list) including its tasks
list_id*stringtascan_update_eventUpdate an event / task list (name, description, team_mode, multi_instance, timer_mode). team_mode and multi_instance cannot both be true.9 params
Update an event / task list (name, description, team_mode, multi_instance, timer_mode). team_mode and multi_instance cannot both be true.
access_levelstringopen · assigned · securedagent_assigneestringassigned_worker_idsarraydescriptionstringlist_id*stringmulti_instancebooleannamestringteam_modebooleantimer_modestringtascan_delete_eventDelete an event (task list) and all its tasks and completions. This action is irreversible.1 params
Delete an event (task list) and all its tasks and completions. This action is irreversible.
list_id*stringtascan_add_tasksAdd one or more tasks to an event (task list). Supports bulk creation. IMPORTANT: Set response_type correctly — use "text" for info collection (names, phones, emails, notes), "photo" for visual verification (inspections, serial numbers, damage checks), "checkbox" only for simp...3 params
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, emails, notes), "photo" for visual verification (inspections, serial numbers, damage checks), "checkbox" only for simp...
idempotency_keystringlist_id*stringtasks*arraytascan_get_signature_bundleFetch the signature bundle for one signed document by signature assertion id (the signature_assertion_id inside the response value of a completed signature task). Returns the self-contained JSON an auditor can verify offline without trusting TaScan: the signed challenge preima...1 params
Fetch the signature bundle for one signed document by signature assertion id (the signature_assertion_id inside the response value of a completed signature task). Returns the self-contained JSON an auditor can verify offline without trusting TaScan: the signed challenge preima...
signature_assertion_id*stringtascan_dispatch_to_agentPREFERRED 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. REQUIRES the agent:dispatch permission on this connection (CODE:/SHELL: tasks also require agent:dispatch:code) — reconnect and tic...3 params
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. REQUIRES the agent:dispatch permission on this connection (CODE:/SHELL: tasks also require agent:dispatch:code) — reconnect and tic...
agentstringprioritystringnormal · urgenttask*stringtascan_list_agentsList all registered AI agents with their capabilities, inbox IDs, and status. Like reading input labels on a video matrix — discover which agents are available and what they can do before dispatching work.
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 and what they can do before dispatching work.
No parameters. Call it with no arguments.
tascan_register_agentRegister 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 joining the TaScan network. REQUIRES the agent:dispatch permission (defining a dispatch target is a dispatch permission)...9 params
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 joining the TaScan network. REQUIRES the agent:dispatch permission (defining a dispatch target is a dispatch permission)...
capabilities*arraydescriptionstringid*stringinbox_id*stringlocationstringmodelstringname*stringtype*stringlocal · cloud · hybridworker_idstringtascan_list_tasksList the tasks in an event (task list). status "open" returns only tasks with no completion yet: use it when checking for work to do, so a long list is not re-read in full. "done" returns only completed tasks; "all" (default) returns every task.2 params
List the tasks in an event (task list). status "open" returns only tasks with no completion yet: use it when checking for work to do, so a long list is not re-read in full. "done" returns only completed tasks; "all" (default) returns every task.
list_id*stringstatusstringopen · done · alltascan_get_taskGet details of a specific task including completions and subtasks. Each completion carries photo_url (raw storage path, stable) and photo_signed_url (short-lived fetchable URL, ~1h; null when no photo) so you can actually view the photo evidence. Tasks dispatched to an AI agen...1 params
Get details of a specific task including completions and subtasks. Each completion carries photo_url (raw storage path, stable) and photo_signed_url (short-lived fetchable URL, ~1h; null when no photo) so you can actually view the photo evidence. Tasks dispatched to an AI agen...
task_id*stringtascan_get_receiptFetch the signed Action Receipt (Ed25519 JWS) for one completed task by completion_id (tascan_get_task -> completions[].id). Returns a readable summary (what, who, verification, evidence hashes, outcome, ledger chain) plus receipt_id/serial/kid, the compact JWS and the public...2 params
Fetch the signed Action Receipt (Ed25519 JWS) for one completed task by completion_id (tascan_get_task -> completions[].id). Returns a readable summary (what, who, verification, evidence hashes, outcome, ledger chain) plus receipt_id/serial/kid, the compact JWS and the public...
completion_id*stringprofilestringfull · publictascan_update_taskUpdate a task (title, description, response_type, flags, sort_order). A task that sits in an AI agent inbox is agent input (the runner executes title + description), so ANY edit to it needs the agent:dispatch permission — agent:dispatch:code when the task is or becomes CODE:/S...11 params
Update a task (title, description, response_type, flags, sort_order). A task that sits in an AI agent inbox is agent input (the runner executes title + description), so ANY edit to it needs the agent:dispatch permission — agent:dispatch:code when the task is or becomes CODE:/S...
access_levelstringopen · assigned · securedassigned_tostringdescriptionstringis_safety_checkpointbooleanrequired_equipmentstringrequires_photobooleanresponse_configobjectresponse_typestringcheckbox · photo · text · number · date · choicesort_ordernumbertask_id*stringtitlestringtascan_reply_with_listReply 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 original (e.g. "Grant access — pick a window" with response_type date, or an info request with response_type text). The org...4 params
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 original (e.g. "Grant access — pick a window" with response_type date, or an info request with response_type text). The org...
author_namestringparent_list_id*stringtasks*arraytitle*stringtascan_add_subtasksAdd 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 options, "checkbox" for simple steps. Set-logging example: task "Bench Press" with subtasks Set 1/Set 2/Set 3 each re...2 params
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 options, "checkbox" for simple steps. Set-logging example: task "Bench Press" with subtasks Set 1/Set 2/Set 3 each re...
subtasks*arraytask_id*stringtascan_list_subtasksList the subtasks of a task, including completion state, stored response values, and completion timestamps (per-set timing).1 params
List the subtasks of a task, including completion state, stored response values, and completion timestamps (per-set timing).
task_id*stringtascan_update_subtaskUpdate a subtask (title, description, response_type, response_config, requires_photo, sort_order).7 params
Update a subtask (title, description, response_type, response_config, requires_photo, sort_order).
descriptionstringrequires_photobooleanresponse_configobjectresponse_typestringcheckbox · number · text · choice · link · urlsort_ordernumbersubtask_id*stringtitlestringtascan_complete_subtaskComplete a subtask, optionally recording a typed response_value (e.g. the weight or reps for that set). Each completion is timestamped, so consecutive set completions yield per-set durations. Returns progress including all_subtasks_complete — when true, complete the parent tas...4 params
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 completions yield per-set durations. Returns progress including all_subtasks_complete — when true, complete the parent tas...
notesstringresponse_valuestringsubtask_id*stringworker_idstringtascan_delete_subtaskDelete a subtask and its completions. This action is irreversible.1 params
Delete a subtask and its completions. This action is irreversible.
subtask_id*stringtascan_delete_taskDelete a specific task and its completions. This action is irreversible.1 params
Delete a specific task and its completions. This action is irreversible.
task_id*stringtascan_complete_taskComplete an ORDINARY task on behalf of a worker. Inserts a completion record and timer event. Coordination-cycle tasks (a CODE:/REVIEW: build or review, a Decision / Question / Integrate / Parked card on a project Decisions list — tasks that carry `coord`) are refused with 403...5 params
Complete an ORDINARY task on behalf of a worker. Inserts a completion record and timer event. Coordination-cycle tasks (a CODE:/REVIEW: build or review, a Decision / Question / Integrate / Parked card on a project Decisions list — tasks that carry `coord`) are refused with 403...
notesstringon_behalf_ofstringresponse_valuestringtask_id*stringworker_idstringtascan_list_workersList workers (taskees) in the organization. Supports filtering by name/email/phone substring, contact-info presence, and last-activity date. Each row includes completion_count (total task completions).6 params
List workers (taskees) in the organization. Supports filtering by name/email/phone substring, contact-info presence, and last-activity date. Each row includes completion_count (total task completions).
active_sincestringactor_kindstringhas_emailbooleanhas_phonebooleaninclude_inactivebooleanquerystringtascan_create_workerCreate a new worker (taskee) in the organization3 params
Create a new worker (taskee) in the organization
emailstringname*stringphonestringtascan_update_workerUpdate a worker profile (name, phone, email, actor_kind), or deactivate / reactivate the worker (active false / true with an optional reason: receipted as a ledger event first, never a delete; a merged record is never reactivated). Changing actor_kind to or from agent or admin...7 params
Update a worker profile (name, phone, email, actor_kind), or deactivate / reactivate the worker (active false / true with an optional reason: receipted as a ledger event first, never a delete; a merged record is never reactivated). Changing actor_kind to or from agent or admin...
activebooleanactor_kindstringperson · agent · admin · deviceemailstringnamestringphonestringreasonstringworker_id*stringtascan_generate_qrGenerate a QR code for a task list (event) that workers can scan to access tasks. TaScan draws the QR itself (an SVG, also returned as a data: URI in qr_image_url); no third-party QR service ever sees the link.2 params
Generate a QR code for a task list (event) that workers can scan to access tasks. TaScan draws the QR itself (an SVG, also returned as a data: URI in qr_image_url); no third-party QR service ever sees the link.
list_id*stringstylestringtascan_share_listGet a task list's share link and its QR code (an SVG drawn by TaScan; no third-party QR service), and optionally send the link to one person: send.phone or send.worker_id texts it through TaScan's guarded SMS lane (recipient must be known to your org, STOP opt-outs and limits...3 params
Get a task list's share link and its QR code (an SVG drawn by TaScan; no third-party QR service), and optionally send the link to one person: send.phone or send.worker_id texts it through TaScan's guarded SMS lane (recipient must be known to your org, STOP opt-outs and limits...
list_id*stringsendobjectstylestringtascan_apply_templateApply a pre-built template to a task list, adding all template tasks2 params
Apply a pre-built template to a task list, adding all template tasks
list_id*stringtemplate_slug*stringtascan_list_templatesList available task templates (built-in and saved)1 params
List available task templates (built-in and saved)
categorystringtascan_get_reportGet completion report for a task list (event) including task status, completions, workers, and photos. Set include_responses to also return the actual submitted response data (numbers, text, choices) for each completed task plus a per-task photos list with fetchable signed URL...2 params
Get completion report for a task list (event) including task status, completions, workers, and photos. Set include_responses to also return the actual submitted response data (numbers, text, choices) for each completed task plus a per-task photos list with fetchable signed URL...
include_responsesbooleanlist_id*stringtascan_query_responsesQuery one task's submitted responses across every list in a project — e.g. the same exercise repeated across many workout lists returns one chronological progression series instead of N report lookups. Match by task title pattern or exact task ID. Subtask completions interleav...3 params
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 progression series instead of N report lookups. Match by task title pattern or exact task ID. Subtask completions interleav...
limitnumberproject_id*stringtask*stringtascan_list_issuesList all issues for a task list (event). Returns open, acknowledged, and resolved issues with severity, type, and category. Use this to discover issues that need AI analysis via tascan_analyze_issue.1 params
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 need AI analysis via tascan_analyze_issue.
list_id*stringtascan_analyze_issueStep 1 of the Closed-Loop Autonomous Operations Protocol. Retrieves full issue context including worker info, message thread, project history, and recent similar issues. Use this data to reason about the root cause and generate a remediation plan. Also supports server-side AI...2 params
Step 1 of the Closed-Loop Autonomous Operations Protocol. Retrieves full issue context including worker info, message thread, project history, and recent similar issues. Use this data to reason about the root cause and generate a remediation plan. Also supports server-side AI...
issue_id*stringserver_side_aibooleantascan_recommend_fixStep 2 of the Closed-Loop Autonomous Operations Protocol. Post an AI-generated recommendation to an issue thread. Accepts both a text recommendation and an optional structured_recommendation object with task definitions for auto-dispatch. The recommendation is persisted in the...4 params
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 optional structured_recommendation object with task definitions for auto-dispatch. The recommendation is persisted in the...
ai_agentstringissue_id*stringrecommendation*stringstructured_recommendationobjecttascan_dispatch_instructionStep 3 of the Closed-Loop Autonomous Operations Protocol. Dispatches remediation to the worker via MULTI-CHANNEL delivery: (1) issue thread message, (2) in-app notification, (3) progress feed update, (4) SMS if phone on file, (5) optional remediation task list creation. Closes...7 params
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 notification, (3) progress feed update, (4) SMS if phone on file, (5) optional remediation task list creation. Closes...
ai_agentstringinstruction*stringissue_id*stringrecommendation_summarystringremediation_tasksarraysend_smsbooleanworker_idstringtascan_auto_resolveFULL Closed-Loop Autonomous Operations Protocol in one call. Server-side AI analyzes the issue, generates remediation tasks, creates a task list, and dispatches to the worker — all without human intervention. This executes Patent Claim 7: autonomous operations from issue detec...1 params
FULL Closed-Loop Autonomous Operations Protocol in one call. Server-side AI analyzes the issue, generates remediation tasks, creates a task list, and dispatches to the worker — all without human intervention. This executes Patent Claim 7: autonomous operations from issue detec...
issue_id*stringtascan_send_smsSend 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 recipient gets a tap-to-open checklist link. Attach images (MMS) with media_url (public https image URL) or media_base64 + m...9 params
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 recipient gets a tap-to-open checklist link. Attach images (MMS) with media_url (public https image URL) or media_base64 + m...
idempotency_keystringinclude_linkbooleanlist_idstringmedia_base64stringmedia_typestringimage/jpeg · image/png · image/gifmedia_urlstringmessagestringphonestringworker_idstringtascan_schedule_smsSchedule a transactional TaScan SMS for a future time (up to 90 days out): the text is sent by TaScan's own scheduler (every 5 minutes) through the same guarded lane as tascan_send_sms — recipient must be a worker of your org or a phone the org already knows, STOP opt-outs hon...7 params
Schedule a transactional TaScan SMS for a future time (up to 90 days out): the text is sent by TaScan's own scheduler (every 5 minutes) through the same guarded lane as tascan_send_sms — recipient must be a worker of your org or a phone the org already knows, STOP opt-outs hon...
idempotency_keystringinclude_linkbooleanlist_idstringmessage*stringphonestringsend_at*stringworker_idstringtascan_list_scheduled_smsList your org's scheduled texts (default: pending + sending, soonest first; status=sent|failed|cancelled to see history). Each row shows send_at, status, attempts, the Twilio sid once sent, and the last error for a failed row.1 params
List your org's scheduled texts (default: pending + sending, soonest first; status=sent|failed|cancelled to see history). Each row shows send_at, status, attempts, the Twilio sid once sent, and the last error for a failed row.
statusstringpending · sending · sent · failed · cancelledtascan_cancel_scheduled_smsCancel a scheduled text that has not been sent yet (status pending). A row already sending, sent, failed or cancelled is refused (409) — a sent text cannot be recalled.1 params
Cancel a scheduled text that has not been sent yet (status pending). A row already sending, sent, failed or cancelled is refused (409) — a sent text cannot be recalled.
id*stringtascan_get_sms_statusCheck delivery status of a previously sent TaScan SMS by its Twilio SID (returned by tascan_send_sms). Shows queued/sent/delivered/undelivered/failed plus carrier error codes.1 params
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 carrier error codes.
twilio_sid*stringtascan_send_task_emailSend 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 TaScan" button.7 params
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 TaScan" button.
include_qrbooleanlist_id*stringmessagestringsubjectstringtask_idstringto_email*stringto_namestringtascan_register_tagRegister 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 chips and are programmed with NFC Tools Pro.7 params
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 chips and are programmed with NFC Tools Pro.
location_descriptionstringproject_idstringtag_hardware_id*stringtag_name*stringtarget_type*stringproject · task_list · tasktask_idstringtask_list_idstringtascan_list_tagsList all registered NFC tags in the organization with their linked projects/task lists and scan counts
List all registered NFC tags in the organization with their linked projects/task lists and scan counts
No parameters. Call it with no arguments.
tascan_get_scan_historyScan 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 was scanned, GPS + IP + channel (qr/nfc/sms/email/link), who the scanner turned out to be, and the scan→start delta (h...6 params
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 was scanned, GPS + IP + channel (qr/nfc/sms/email/link), who the scanner turned out to be, and the scan→start delta (h...
limitnumberproject_idstringsincestringsourcestringtag_idstringtask_list_idstringtascan_search_marketplaceSearch the cross-org Worker Marketplace: workers who opted in (discoverable=true on their passport), ranked by passkey trust tier + verified completion volume. Skills are AI-inferred from REAL completed work, not resumes — each carries a verified_task_count and a civilian_equi...5 params
Search the cross-org Worker Marketplace: workers who opted in (discoverable=true on their passport), ranked by passkey trust tier + verified completion volume. Skills are AI-inferred from REAL completed work, not resumes — each carries a verified_task_count and a civilian_equi...
availablebooleancitystringlimitnumbermin_completionsnumberqstringtascan_invite_workerInvite 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 share your contact and get the list, or NO to pass."). On YES the worker appears in your org with their name + phone, r...3 params
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 share your contact and get the list, or NO to pass."). On YES the worker appears in your org with their name + phone, r...
list_id*stringmessagestringworker_id*stringtascan_list_invitesList marketplace invites you have sent and their status (pending / accepted / declined / expired / failed). Accepted invites include the worker's name and phone — that is the consent boundary; pending and declined never do.1 params
List marketplace invites you have sent and their status (pending / accepted / declined / expired / failed). Accepted invites include the worker's name and phone — that is the consent boundary; pending and declined never do.
statusstringpending · accepted · declined · expired · failedtascan_create_zoneCreate 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 inside the radius. Set enforce_on_list=true to zone-lock the task list — workers cannot start it from outside the zone.22 params
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 inside the radius. Set enforce_on_list=true to zone-lock the task list — workers cannot start it from outside the zone.
alert_on_breachbooleanauto_clock_inbooleanauto_clock_outbooleandescriptionstringenforce_on_listbooleanenter_messagestringkindstringwork_site · hazard · containment · restrictedlat*numberlng*numbername*stringnotify_emailstringnotify_on_enterbooleannotify_on_exitbooleanpolygonarrayppe_photo_requiredbooleanproject_idstringradius_mnumberrequired_ppearraysms_worker_on_enterbooleansms_worker_on_exitboolean+2 more parameters. See the server's own documentation for the full schema.
tascan_list_zonesList geofenced work zones, optionally filtered by project. Shows center, radius, routing target, and zone-lock status.1 params
List geofenced work zones, optionally filtered by project. Shows center, radius, routing target, and zone-lock status.
project_idstringtascan_update_zoneUpdate a geofenced zone — move the center, resize the radius, change the routing target, toggle zone-lock, or deactivate it (is_active=false).22 params
Update a geofenced zone — move the center, resize the radius, change the routing target, toggle zone-lock, or deactivate it (is_active=false).
alert_on_breachbooleanauto_clock_inbooleanauto_clock_outbooleanenforce_on_listbooleanenter_messagestringis_activebooleankindstringwork_site · hazard · containment · restrictedlatnumberlngnumbernamestringnotify_emailstringnotify_on_enterbooleannotify_on_exitbooleanpolygonarrayppe_photo_requiredbooleanradius_mnumberrequired_ppearraysms_worker_on_enterbooleansms_worker_on_exitbooleantask_list_idstring+2 more parameters. See the server's own documentation for the full schema.
tascan_zone_complianceHazard-zone compliance audit (OSHA / insurance): every zone crossing, PPE checkpoint verdict (complied / failed with what was missing / skipped), and breach, plus injury reports cross-referenced with the worker's last PPE checkpoint before the injury. Scope by project or zone,...5 params
Hazard-zone compliance audit (OSHA / insurance): every zone crossing, PPE checkpoint verdict (complied / failed with what was missing / skipped), and breach, plus injury reports cross-referenced with the worker's last PPE checkpoint before the injury. Scope by project or zone,...
project_idstringsincestringuntilstringworker_idstringzone_idstringtascan_register_assetRegister a physical asset (equipment, structure, vehicle, machine) in the condition ledger so it can be assessed over time. Each asset gets a longitudinal condition history with AI scoring and degradation trajectory.6 params
Register a physical asset (equipment, structure, vehicle, machine) in the condition ledger so it can be assessed over time. Each asset gets a longitudinal condition history with AI scoring and degradation trajectory.
asset_typestringdescriptionstringlocation_descriptionstringname*stringproject_idstringserial_numberstringtascan_assess_conditionRun 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 over time — returning the Condition Delta Score vs the previous assessment, defects, wear indicators, maintenance recomm...3 params
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 over time — returning the Condition Delta Score vs the previous assessment, defects, wear indicators, maintenance recomm...
asset_id*stringphoto_url*stringworker_namestringtascan_condition_historyGet an asset's longitudinal condition history — score trend over time, every assessment with grade, delta, findings, and who assessed it. The per-serial-number condition ledger.1 params
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 condition ledger.
asset_id*stringtascan_list_assetsList registered condition-ledger assets with their latest condition scores. Use to recover an asset_id for tascan_assess_condition or tascan_condition_history.1 params
List registered condition-ledger assets with their latest condition scores. Use to recover an asset_id for tascan_assess_condition or tascan_condition_history.
project_idstringtascan_generate_reportMint 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 pair), service (client-facing version of a list with YOUR company branding and a Client Acknowledgment button — the a...9 params
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 pair), service (client-facing version of a list with YOUR company branding and a Client Acknowledgment button — the a...
company_namestringlist_idstringmessagestringproject_idstringsend_notestringsend_to_phonestringshow_issuesbooleanshow_workersbooleantype*stringcompletion · service · project · evidencetascan_list_reportsList existing report links for a list or project (completion / service / project / evidence), newest first, with client acknowledgment status for service reports.2 params
List existing report links for a list or project (completion / service / project / evidence), newest first, with client acknowledgment status for service reports.
list_idstringproject_idstringtascan_create_invoiceCreate 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 (quarter-hour billing from first→last verified completion per list) or flat_rate_per_list, and TaScan builds one line pe...17 params
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 (quarter-hour billing from first→last verified completion per list) or flat_rate_per_list, and TaScan builds one line pe...
attach_service_reportbooleanbillingobjectclient_emailstringclient_name*stringclient_phonestringcompany_namestringdue_datestringflat_rate_per_listnumberhourly_ratenumberline_itemsarraymin_hoursnumbernotesstringpayment_optionsobjectproject_idstringstatusstringdraft · senttask_list_idsarraytax_ratenumbertascan_list_invoicesList 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.2 params
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.
project_idstringstatusstringdraft · sent · paid · overdue · cancelledtascan_update_invoiceUpdate an invoice: mark it paid (records paid_at; a receipted ledger event with the actor, invoice id, number, amount and the before/after status is written first, and nothing changes if it cannot be), overdue, cancelled, or edit client details / notes / due date. A paid invoi...8 params
Update an invoice: mark it paid (records paid_at; a receipted ledger event with the actor, invoice id, number, amount and the before/after status is written first, and nothing changes if it cannot be), overdue, cancelled, or edit client details / notes / due date. A paid invoi...
client_emailstringclient_namestringclient_phonestringdue_datestringinvoice_id*stringnotesstringpaid_atstringstatusstringdraft · sent · paid · overdue · cancelledtascan_request_paymentPledge 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 a Stripe pay link that routes the money DIRECTLY to the worker (0% TaScan fee). No money moves and no card is stored...7 params
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 a Stripe pay link that routes the money DIRECTLY to the worker (0% TaScan fee). No money moves and no card is stored...
amount_cents*numberidempotency_keystringmemostringpayer_email*stringpayer_namestringtask_list_id*stringworker_id*stringtascan_list_paymentsList gig payments and their lifecycle status: awaiting_completion (pledged, work not verified yet), ready_to_pay (verified — pay link sent to payer), paid, canceled. Filter by task list or status.2 params
List gig payments and their lifecycle status: awaiting_completion (pledged, work not verified yet), ready_to_pay (verified — pay link sent to payer), paid, canceled. Filter by task list or status.
statusstringawaiting_completion · ready_to_pay · paid · canceledtask_list_idstringtascan_get_worker_passportGet a worker's verified work passport — task counts, lists worked, photos submitted, GPS-verified hours, points, streaks, and earned merit badges, all computed from real completion data (not self-reported). Includes the shareable profile URL.1 params
Get a worker's verified work passport — task counts, lists worked, photos submitted, GPS-verified hours, points, streaks, and earned merit badges, all computed from real completion data (not self-reported). Includes the shareable profile URL.
worker_id*stringtascan_server_infoIdentify exactly which TaScan server and schema this MCP session is talking to. Call this FIRST when diagnosing anything — it makes "dev server masquerading as production" and "is my fix deployed yet" one tool call instead of an inference.
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 production" and "is my fix deployed yet" one tool call instead of an inference.
No parameters. Call it with no arguments.
tascan_findCross-entity search: find projects (by name, project number or customer job number in external_refs; each with its status), task lists, tasks, workers, condition assets, sites (by name, address or client company) or work orders (by number or description) in one call — with ids...2 params
Cross-entity search: find projects (by name, project number or customer job number in external_refs; each with its status), task lists, tasks, workers, condition assets, sites (by name, address or client company) or work orders (by number or description) in one call — with ids...
query*stringtypestringproject · list · task · worker · asset · sitetascan_get_workerUngated, 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 lookup.)1 params
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 lookup.)
worker_id*stringtascan_find_duplicate_workersFind candidate same-person worker records with per-signal match detail (Patent 4 §6.25(b) signals: phone reuse, name similarity, GPS pattern correlation). Turns identity fragmentation from an accidental discovery into a monitorable metric, and feeds the merge workflow its cand...4 params
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 identity fragmentation from an accidental discovery into a monitorable metric, and feeds the merge workflow its cand...
include_orphansbooleannamestringthresholdnumberworker_idstringtascan_merge_workersMerge duplicate worker records into one canonical identity (Patent 4 identity consolidation). Reassigns every reference (completions, timer events, points, payments, rosters — 31 columns across 31 tables), backfills missing phone/email on the primary, sums points, and tombston...3 params
Merge duplicate worker records into one canonical identity (Patent 4 identity consolidation). Reassigns every reference (completions, timer events, points, payments, rosters — 31 columns across 31 tables), backfills missing phone/email on the primary, sums points, and tombston...
dry_runbooleanduplicate_worker_ids*arrayprimary_worker_id*stringtascan_delete_workerTombstone 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_merge_workers instead. Never hard-deletes.1 params
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_merge_workers instead. Never hard-deletes.
worker_id*stringtascan_create_cycleStart an unattended build-review-decide cycle (protocol v0.2). Queues T1 CODE: (or SHELL:) with your build_brief on the AI Inbox and T2 REVIEW: with your review_brief, born blocked on T1. T1 (2026-09-24 throughput): kind=review_only mints T1 as CAPTURE: instead — the executor...21 params
Start an unattended build-review-decide cycle (protocol v0.2). Queues T1 CODE: (or SHELL:) with your build_brief on the AI Inbox and T2 REVIEW: with your review_brief, born blocked on T1. T1 (2026-09-24 throughput): kind=review_only mints T1 as CAPTURE: instead — the executor...
artifact_bytesobjectartifact_paths*arraybuild_brief*stringcheckpoint_descriptionstringcheckpoint_titlestringdry_runbooleanidempotency_keystringintegrate_descriptionstringintegrate_titlestringkindstringbuild · review_onlymax_cost_micro_usdintegermax_questionsintegermax_revisionsintegerpreview_urlstringproject_id*stringrepostringreview_brief*stringreviewsarrayrevisable_bystringdispatcher · executortask_typestringCODE · SHELL · RESEARCH+1 more parameters. See the server's own documentation for the full schema.
tascan_post_messagePost a message on a task trail (protocol v0.2 trail_messages): kind question, answer, handoff or discussion. A message never completes a task, never satisfies a gate and never pages anyone. The actor is stamped from your credential (key:<id>, actor_type "key" — a credential, n...7 params
Post a message on a task trail (protocol v0.2 trail_messages): kind question, answer, handoff or discussion. A message never completes a task, never satisfies a gate and never pages anyone. The actor is stamped from your credential (key:<id>, actor_type "key" — a credential, n...
addresseestringhuman · dispatcherbody*stringbuild_refstringidempotency_keystringkind*stringquestion · answer · handoff · discussionreply_tostringtask_id*stringtascan_record_integrationD4: the dispatcher records the Netlify deploy id for an authorized cycle — Integrate cards stop landing on Mike for something a key can prove instead (protocol v0.2, migration 181, coord_record_integration). Requires agent:dispatch. The root must be `authorized` (its checkpoin...3 params
D4: the dispatcher records the Netlify deploy id for an authorized cycle — Integrate cards stop landing on Mike for something a key can prove instead (protocol v0.2, migration 181, coord_record_integration). Requires agent:dispatch. The root must be `authorized` (its checkpoin...
deploy_id*stringnotestringroot_id*stringtascan_get_buildManifest of a stored build bundle by build_ref (protocol v0.2 build_artifacts): the exact files the executor produced for the cycle's artifact_paths, each with sha256, byte length and whether text content is stored (binary or over-cap files keep the sha only). build_ref = sha2...1 params
Manifest of a stored build bundle by build_ref (protocol v0.2 build_artifacts): the exact files the executor produced for the cycle's artifact_paths, each with sha256, byte length and whether text content is stored (binary or over-cap files keep the sha only). build_ref = sha2...
build_ref*stringtascan_get_build_fileRead one file from a stored build bundle by build_ref and path (protocol v0.2 build_artifacts) — the exact bytes the executor produced, not a working-tree read. Returns up to 12000 chars per call with offset/limit paging (next_offset when truncated), plus the file's sha256 and...4 params
Read one file from a stored build bundle by build_ref and path (protocol v0.2 build_artifacts) — the exact bytes the executor produced, not a working-tree read. Returns up to 12000 chars per call with offset/limit paging (next_offset when truncated), plus the file's sha256 and...
build_ref*stringlimitintegeroffsetintegerpath*stringSponsors
Configuration
TASCAN_API_KEY*secretYour TaScan API key (generate in Admin Portal > Team > API Keys)
TASCAN_API_URLTaScan API base URL (default: https://app.tascan.io/api/v1)
Readme
TaScan MCP Server
AI agent integration for TaScan — the closed-loop autonomous operations protocol. Manage projects, events, tasks, workers, QR codes, templates, completion reports, and AI-powered issue resolution through Claude, GitHub Copilot, or any MCP-compatible AI client.
Task. Scan. Done.
What is TaScan?
TaScan is a zero-download task assignment and verification platform for physical-world work. Workers scan a QR code, complete tasks with photo verification, and managers get real-time completion reports — no app download, no login, no training required.
When something breaks, AI analyzes the issue, generates fix instructions, and dispatches them to the right worker — closing the loop autonomously in under 10 seconds.
Industries: live events, construction, hospitality, warehousing, property management, healthcare, aviation, FEMA disaster response, and more.
10 Provisional Patents Filed — 265 claims, ~1000+ pages of specification. USPTO Applications #63/995,189 through #64/001,286.
Quickest Start: Claude.ai / Claude Mobile
No install required. Add TaScan as a custom connector in Claude:
Details
- Repository
- github.com/snowbikemike/tascan-mcp
- Website
- tascan.io
- Category
- Productivity & Office
- Package
tascan-mcp- Transport
- STDIO, HTTP
- Auth
- Required
- Registry
- MCP registry, active
- Tools verified
- Nov 6, 2026