TaScan MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| TASCAN_API_KEY | Yes | Your TaScan API key (generate in Admin Portal > Team > API Keys) | |
| TASCAN_API_URL | No | API base URL (default: https://app.tascan.io/api/v1) | https://app.tascan.io/api/v1 |
| TASCAN_PHOTO_URL_TTL | No | Photo signed URL TTL in seconds (default: 3600) | 3600 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| tascan_list_projectsA | List all TaScan projects in the organization |
| tascan_create_projectA | Create a new TaScan project (top-level container for events) |
| tascan_get_projectA | Get details of a specific project |
| tascan_update_projectC | Update a project (name, location, status, dates) |
| tascan_delete_projectA | Delete a project and all its events, tasks, and completions. This action is irreversible. |
| tascan_create_eventA | 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. |
| tascan_list_eventsA | List all events (task lists) within a project |
| tascan_get_eventA | Get details of a specific event (task list) including its tasks |
| tascan_update_eventB | Update an event / task list (name, description, team_mode, multi_instance, timer_mode). team_mode and multi_instance cannot both be true. |
| tascan_delete_eventA | Delete an event (task list) and all its tasks and completions. This action is irreversible. |
| tascan_add_tasksA | 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 simple confirmations. NOTE: To dispatch tasks to the Claude Code agent running on Mike's PC, use tascan_dispatch_to_agent instead — it routes directly to the agent's inbox with zero configuration needed. |
| tascan_dispatch_to_agentA | 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 prefixes: CODE: SHELL: RESEARCH: WRITE: PLAN: for routing. Use "agent" param to target a specific agent (default: claude-code-local). Use tascan_list_agents to discover available agents. |
| tascan_list_agentsA | 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. |
| tascan_register_agentA | 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. |
| tascan_list_tasksA | List all tasks in an event (task list) |
| tascan_get_taskA | 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. |
| tascan_update_taskB | Update a task (title, description, response_type, flags, sort_order) |
| tascan_reply_with_listA | 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 gets pinged; the thread shows in both the worker portal and Simple Mode. Use tascan_get_thread-style follow-up via tascan_list_projects/tascan_get_report to read answers. |
| tascan_add_subtasksA | 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 response_type "number" — each completed set stores its value and timestamp, giving per-set timing for progression tracking. |
| tascan_list_subtasksA | List the subtasks of a task, including completion state, stored response values, and completion timestamps (per-set timing). |
| tascan_update_subtaskB | Update a subtask (title, description, response_type, response_config, requires_photo, sort_order). |
| tascan_complete_subtaskA | 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 task with tascan_complete_task. |
| tascan_delete_subtaskA | Delete a subtask and its completions. This action is irreversible. |
| tascan_delete_taskA | Delete a specific task and its completions. This action is irreversible. |
| tascan_complete_taskA | 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. |
| tascan_list_workersA | 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). |
| tascan_create_workerA | Create a new worker (taskee) in the organization |
| tascan_update_workerA | Update a worker profile (name, phone, email) |
| tascan_generate_qrA | Generate a QR code for a task list (event) that workers can scan to access tasks |
| tascan_apply_templateA | Apply a pre-built template to a task list, adding all template tasks |
| tascan_list_templatesA | List available task templates (built-in and saved) |
| tascan_get_reportA | 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 URLs (short-lived, ~1h) for the photo evidence. |
| tascan_query_responsesA | 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 interleave into the same series labeled 'Task › Subtask' (e.g. per-set values Set 1/2/3 with their own timestamps), so set-level progression chains across lists automatically. |
| tascan_list_issuesA | 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. |
| tascan_analyze_issueA | 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 analysis via POST (calls Anthropic API directly). |
| tascan_recommend_fixA | 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 audit trail. |
| tascan_dispatch_instructionA | 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 the loop from digital AI analysis to physical worker execution. |
| tascan_auto_resolveB | 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 detection through physical-world instruction delivery. |
| tascan_send_smsA | 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. Sends from TaScan's carrier-registered A2P number (or the org's own Twilio if BYOK). Counts against the org's monthly SMS quota unless BYOK. Messages are auto-prefixed with "TaScan:" per carrier registration; transactional/work-related content only, no marketing. |
| tascan_get_sms_statusA | 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. |
| tascan_send_task_emailA | 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. |
| tascan_register_tagB | 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. |
| tascan_list_tagsA | List all registered NFC tags in the organization with their linked projects/task lists and scan counts |
| tascan_get_scan_historyA | 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 (how long between scanning and actually identifying + starting work — the sign-in-and-vanish metric). |
| tascan_search_marketplaceA | 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_equivalent job title. Returns sanitized public cards only (first name + last initial, skills, stats, passport URL) — never phone, email, or org membership. |
| tascan_invite_workerA | Invite a marketplace worker to a task list — the consented intro. TaScan texts the worker from its own number (" wants you for . 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, receives the list link, and you get a text + a thread message. On NO or silence (7 days) you never learn who they were. Use the worker_id from tascan_search_marketplace. |
| tascan_list_invitesA | 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. |
| tascan_create_zoneA | 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. |
| tascan_list_zonesA | List geofenced work zones, optionally filtered by project. Shows center, radius, routing target, and zone-lock status. |
| tascan_update_zoneB | Update a geofenced zone — move the center, resize the radius, change the routing target, toggle zone-lock, or deactivate it (is_active=false). |
| tascan_zone_complianceA | 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, optionally by worker and date range. Same rows the printable Evidence Pack shows. |
| tascan_register_assetA | 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. |
| tascan_assess_conditionA | 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 recommendations, and a degradation trajectory. Sensor-free predictive maintenance. |
| tascan_condition_historyA | 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. |
| tascan_list_assetsA | List registered condition-ledger assets with their latest condition scores. Use to recover an asset_id for tascan_assess_condition or tascan_condition_history. |
| tascan_generate_reportA | 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 ack files into the list thread), project (every list in a project rolled up), evidence (compliance Evidence Pack; admin sign-in required to view). Links are stable — the same list/project returns the same link. Optionally text the link to a phone through the TaScan SMS lane. |
| tascan_list_reportsA | List existing report links for a list or project (completion / service / project / evidence), newest first, with client acknowledgment status for service reports. |
| tascan_create_invoiceA | 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 per list from VERIFIED work (" — 7/7 tasks verified · Sep 1 · 1.25h"); lists with no completions are skipped. A single-list invoice also mints a client-facing Service Report (acknowledge → pay) and links it. Returns invoice number, totals, url, and the work it billed. |
| tascan_list_invoicesA | 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. |
| tascan_update_invoiceB | Update an invoice: mark it paid (records paid_at), overdue, cancelled, or edit client details / notes / due date. |
| tascan_request_paymentA | 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 at pledge time. The worker must have completed payout onboarding (Get Paid on their profile). |
| tascan_list_paymentsA | 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. |
| tascan_get_worker_passportA | 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. |
| tascan_server_infoA | 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. |
| tascan_findA | 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 instead of walking projects→lists→tasks or guessing ids from display names. |
| tascan_get_workerA | 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.) |
| tascan_find_duplicate_workersA | 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 candidate list. |
| tascan_merge_workersA | 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 tombstones the duplicates (merged_into + is_active=false — NEVER hard-deletes). ALWAYS run with dry_run=true first and show Mike the counts; pass dry_run=false only after explicit confirmation. |
| tascan_delete_workerA | 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. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 69 tools
Most tools map to distinct resource/action pairs, and descriptions explicitly differentiate similar names (e.g., get_worker vs. get_worker_passport, get_report vs. generate_report). However, with 69 tools across overlapping workflows like dispatch, reporting, and payments, a few boundaries require careful reading.
All tools share the tascan_ prefix and snake_case, and most follow a verb_noun pattern. A few exceptions are noun-only or verb-only (server_info, zone_compliance, find), so it is mostly consistent rather than perfect.
69 tools is far beyond the practical 3-15 range and even beyond the 25+ threshold. Although the platform is broad, this monolithic surface imposes heavy selection and context load and likely should be split or grouped.
Core lifecycle coverage is strong across projects/events/tasks/subtasks, workers, reports, invoices/payments, tags/zones/assets, and marketplace/agents. Minor gaps exist (e.g., template creation, asset update/delete, explicit issue resolution), but no major dead end for the described domain.