TaScan
REMOTE · APP.TASCAN.IO · 2 COMPONENTS · SCANNED SEP 20
36 MCP tools for projects, tasks, workers, QR/NFC tags, and AI remediation. Task. Scan. Done.
Available components
How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →
Endpoint Security94
- The endpoint's TLS certificate is valid, in date, and uses a strong key. View diagnostics → Pass
- Authorisation is enforced on tool calls, advertised via RFC 9728 protected-resource metadata. Discovery is public, which costs nothing: no tool can be invoked without a token. View diagnostics → Pass
- HTTPS is enforced; there's no plaintext access path. View diagnostics → Pass
- The HSTS (Strict-Transport-Security) header is present. View diagnostics → Pass
- DNSSEC check failed: this domain isn't protected by DNSSEC. See how to fix → View diagnostics → Fail
- The authorisation server offers only Dynamic Client Registration (RFC 7591), which MCP 2026-07-28 deprecated in favour of Client ID Metadata Documents. View diagnostics → Partial
Transport & Reachability100
- Verified streamable-http transport via a live MCP handshake. View diagnostics → Pass
Schema Quality & AI Usability68
- AI-judged instruction clarity (excellent).Pass
- Context-footprint check failed: tool/resource definitions use about 12174 tokens (~154/item across 79 items; 79 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management100
- No destabilizing schema changes in the last 30 days.Pass
Tool Coverage95
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 85% of tool parameters carry a description.Partial
Tool Safety100
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- All 8 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.Pass
- An AI judge read all 79 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities60
- Spec-recency check failed: implements MCP spec 2025-06-18; the latest is 2026-07-28. See how to fix → Fail
How do I install the TaScan MCP server?
TaScan is a hosted endpoint at https://app.tascan.io/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
remote · app.tascan.io
claude mcp add --transport http snowbikemike-tascan-mcp 'https://app.tascan.io/mcp'
{
"mcpServers": {
"snowbikemike-tascan-mcp": {
"url": "https://app.tascan.io/mcp"
}
}
} {
"servers": {
"snowbikemike-tascan-mcp": {
"type": "http",
"url": "https://app.tascan.io/mcp"
}
}
} [mcp_servers.snowbikemike-tascan-mcp] url = "https://app.tascan.io/mcp"
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"snowbikemike-tascan-mcp": {
"type": "remote",
"url": "https://app.tascan.io/mcp",
"enabled": true
}
}
} openclaw mcp add snowbikemike-tascan-mcp --url 'https://app.tascan.io/mcp' --transport streamable-http
mcp_servers:
snowbikemike-tascan-mcp:
url: "https://app.tascan.io/mcp" {
"McpServers": {
"snowbikemike-tascan-mcp": {
"Transport": "http",
"Url": "https://app.tascan.io/mcp"
}
}
} assistant mcp add snowbikemike-tascan-mcp -t streamable-http -u 'https://app.tascan.io/mcp'
{
"mcpServers": {
"snowbikemike-tascan-mcp": {
"type": "http",
"url": "https://app.tascan.io/mcp"
}
}
} The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 20 Sept 26 0
- Tool “tascan_create_cycle” rewrote its description, which is the text the model reads security
- Server version: 3.14.1 → 3.15.0 functional
- “tascan_create_cycle” added an optional parameter “reviews” cosmetic
- “tascan_create_cycle” reworded the description of “review_brief” cosmetic
- 19 Sept 26 0
- New tool “tascan_cancel_scheduled_sms”, which the server declares destructive security
- Server version: 3.13.1 → 3.14.1 functional
- New tool “tascan_schedule_sms” functional
- New tool “tascan_list_scheduled_sms” functional
- New tool “tascan_project_digest” functional
- “tascan_create_cycle” added an optional parameter “repo” cosmetic
- 17 Sept 26 0
- Stability: 0.97 → pass security
- Tool “tascan_get_build” rewrote its description, which is the text the model reads security
- Tool “tascan_get_build_file” rewrote its description, which is the text the model reads security
- 16 Sept 26 +1
- Tool “tascan_complete_task” rewrote its description, which is the text the model reads security
- Tool “tascan_get_receipt” rewrote its description, which is the text the model reads security
- Schema quality: 131 → 148 ▼ functional
- New tool “tascan_get_build_file” functional
- New tool “tascan_get_cycle_report” functional
- New tool “tascan_post_message” functional
- New tool “tascan_create_cycle” functional
- New tool “tascan_get_build” functional
- “tascan_get_receipt” reworded the description of “profile” cosmetic
- 15 Sept 26 +1
- Tool “tascan_add_tasks” rewrote its description, which is the text the model reads security
- Tool “tascan_dispatch_to_agent” rewrote its description, which is the text the model reads security
- Tool “tascan_get_task” rewrote its description, which is the text the model reads security
- Tool “tascan_register_agent” rewrote its description, which is the text the model reads security
- Tool “tascan_update_task” rewrote its description, which is the text the model reads security
- MCP protocol version: 2025-03-26 → 2025-06-18 functional
- Server version: 3.12.0 → 3.13.1 functional
- New tool “tascan_get_receipt” functional
- “tascan_dispatch_to_agent” reworded the description of “agent” cosmetic
- “tascan_dispatch_to_agent” reworded the description of “priority” cosmetic
- “tascan_dispatch_to_agent” reworded the description of “task” cosmetic
- 13 Sept 26 +1
- Server version: 3.11.0 → 3.12.0 functional
- 12 Sept 26 0
- Tool “tascan_get_task” rewrote its description, which is the text the model reads security
- Tool “tascan_get_report” rewrote its description, which is the text the model reads security
- Schema quality: good → excellent functional
- Server version: 3.9.0 → 3.11.0 functional
- 11 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 77 to 80. That category is still filling its 30-day observation window: 23 days of observed history at the previous scan, 24 at this one. The score rises as the window fills, whether or not the server changes.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 20 Sept 2026 · Probed https://app.tascan.io/mcp
TLS valid
Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .
| Subject | Issuer | Valid from | Valid until | Key | Signature | Serial |
|---|---|---|---|---|---|---|
| CN=tascan.io | CN=YE1,O=Let's Encrypt,C=US | 7 Sept 2026 | 6 Dec 2026 | ECDSA 256 | ECDSA-SHA384 | 5b0592230696a03c49a5c4752173414f010 |
| SANs: *.tascan.io, tascan.io | ||||||
| CN=YE1,O=Let's Encrypt,C=US (CA) | CN=Root YE,O=ISRG,C=US | 3 Sept 2025 | 2 Sept 2028 | ECDSA 384 | ECDSA-SHA384 | 5ddd70dd31f801c85c186a7a04b80afe |
| CN=Root YE,O=ISRG,C=US (CA) | CN=ISRG Root X2,O=Internet Security Research Group,C=US | 13 May 2026 | 2 Sept 2032 | ECDSA 384 | ECDSA-SHA384 | 872165fc34b6e5fba8add5b3705fb53a |
| CN=ISRG Root X2,O=Internet Security Research Group,C=US (CA) | CN=ISRG Root X1,O=Internet Security Research Group,C=US | 13 May 2026 | 2 Sept 2032 | ECDSA 384 | SHA256-RSA | 6c8f1dc727c7117f7baf853ac980f9cd |
Background: What to check on a remote MCP endpoint →
DNSSEC insecure
Validation of app.tascan.io. — Not signed
| Zone | DS | Keys | Algorithms | Outcome |
|---|---|---|---|---|
| . | trust_anchor | 20326, 38696 | 8, 8 | Verified |
| io. | present | 57355 | 8 | Verified |
| tascan.io. | absent | Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation |
Authentication Enforced and verified
The endpoint asked for a token and published valid RFC 9728 metadata describing how to get one.
| Result | Enforced and verified |
|---|---|
| Enforced | On tool calls |
| HTTP status | 200 |
WWW-Authenticate challenge Bearer resource_metadata="https://app.tascan.io/.well-known/oauth-protected-resource"
Bearer resource_metadata="https://app.tascan.io/.well-known/oauth-protected-resource" | Header | Value |
|---|---|
| strict-transport-security | max-age=31536000 |
Protected resource metadata
| Document | https://app.tascan.io/.well-known/oauth-protected-resource |
|---|---|
| Retrieved | Yes |
| Resource | https://app.tascan.io/mcp |
| Authorisation server | https://app.tascan.io |
Background: How OAuth 2.1 works in the 2026 MCP spec →
Transports 2 probes
| Transport | URL | Outcome | Status | Location |
|---|---|---|---|---|
| streamable-http | https://app.tascan.io/mcp | Verified | 200 | |
| http (plaintext) | http://app.tascan.io/mcp | HTTPS enforced | 301 | https://app.tascan.io/mcp |
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
tascan_list_subtasks ~46
List the subtasks of a task, including completion state, stored response values, and completion timestamps (per-set timing).
| Name | Type | Req | Description |
|---|---|---|---|
| task_id | string | yes | Parent task ID |
No output schema declared.
No examples provided.
tascan_list_tags ~28
List all registered NFC tags in the organization with their linked projects/task lists and scan counts
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
tascan_list_tasks ~34
List all tasks in an event (task list)
| Name | Type | Req | Description |
|---|---|---|---|
| list_id | string | yes | Task list (event) ID |
No output schema declared.
No examples provided.
tascan_list_templates ~45
List available task templates (built-in and saved)
| Name | Type | Req | Description |
|---|---|---|---|
| category | string | – | Filter by category (e.g. "live-events", "hospitality", "logistics") |
No output schema declared.
No examples provided.
tascan_list_workers ~171
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).
| Name | Type | Req | Description |
|---|---|---|---|
| active_since | string | – | ISO date/datetime — only workers with last_active_at on/after this |
| has_email | boolean | – | true/false — same for email |
| has_phone | boolean | – | true = only workers with a phone on file; false = only without |
| include_inactive | boolean | – | true = also include inactive workers (e.g. tombstones left by a merge or delete) — useful for auditing right after tascan_merge_workers / tascan_delete_worker |
| query | string | – | Substring match on name, email, or phone |
No output schema declared.
No examples provided.
tascan_list_zones ~47
List geofenced work zones, optionally filtered by project. Shows center, radius, routing target, and zone-lock status.
| Name | Type | Req | Description |
|---|---|---|---|
| project_id | string | – | Filter by project |
No output schema declared.
No examples provided.
tascan_merge_workers ~173
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.
| Name | Type | Req | Description |
|---|---|---|---|
| dry_run | boolean | – | true (default) = report reassignment counts only, change nothing. false = execute atomically. |
| duplicate_worker_ids | array | yes | Worker IDs to fold into the primary (max 20) |
| primary_worker_id | string | yes | The canonical worker that survives (usually the one with a phone) |
No output schema declared.
No examples provided.
tascan_post_message ~460
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, never a human), never from the body; the executor and the reviewer consume a key's answers only when the key holds agent:dispatch. On an ordinary task this is write tier. On a CYCLE task (one with coord) it needs agent:dispatch (agent:dispatch:code when the task, or the asker a question task stands for, is CODE:/SHELL:) because the text can become executor prompt or reviewer input. kind=answer on a dispatcher-addressed question task answers it through coord_answer_question and releases the blocked asker; a human-addressed question is answered only on the worker page (403 here). finding (reviewer runner) and decision (human completion) cannot be posted. Body ≤ 8000 chars; idempotency_key makes a replay return the same message.
| Name | Type | Req | Description |
|---|---|---|---|
| addressee | string | – | Optional, kind=question only: who the question is for (recorded; nobody is paged). |
| body | string | yes | The message text (1-8000 chars). Treated as DATA by every reader; on a cycle task it may be prepended to the executor prompt as TRAIL INPUT. |
| build_ref | string | – | Optional sha256:<64 hex> the message is about (defaults to the cycle task's bound build). |
| idempotency_key | string | – | Optional replay key (≤ 200 chars): the same key on the same task returns the same message id. |
| kind | string | yes | question = a question for the record (does not block anything); answer = answers a dispatcher question task and releases the asker; handoff = hand work or context to the next agent; discussion = a no… |
| reply_to | string | – | Optional message id this replies to. |
| task_id | string | yes | Task ID (UUID). For an answer: the QUESTION task id (tascan_get_task on the asker shows coord.blocked_by). |
No output schema declared.
No examples provided.
tascan_project_digest ~111
One call that gives a chat client (ChatGPT, Claude) a whole TaScan project in about 2,000 words: the project, every task list with task counts, open decisions and questions, the last 5 coordination cycles with verdicts and spend, the latest 5 receipts, and total spend — returned as Markdown (capped at 12,000 chars). Read tier. Use it before asking a human to paste anything.
| Name | Type | Req | Description |
|---|---|---|---|
| project_id | string | yes | Project ID (UUID). |
No output schema declared.
No examples provided.
tascan_query_responses ~151
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.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | number | – | Max responses to return (default 200, max 500) |
| project_id | string | yes | Project ID |
| task | string | yes | Task title pattern (case-insensitive substring) or exact task ID |
No output schema declared.
No examples provided.
tascan_recommend_fix ~176
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.
| Name | Type | Req | Description |
|---|---|---|---|
| ai_agent | string | – | Name of the AI agent posting (default: TaScan AI) |
| issue_id | string | yes | Issue ID to recommend a fix for |
| recommendation | string | yes | The AI-generated recommendation text (clear, actionable instructions) |
| structured_recommendation | object | – | Optional structured recommendation with tasks for auto-dispatch. Format: { recommendation_summary, confidence_score, tasks: [{ title, description, response_type, requires_photo, is_safety_checkpoint,… |
No output schema declared.
No examples provided.
tascan_register_agent ~234
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); inbox_id must be a task list (event) in your organization.
| Name | Type | Req | Description |
|---|---|---|---|
| capabilities | array | yes | Task type prefixes this agent handles (e.g. ["RESEARCH", "WRITE"]) |
| description | string | – | What this agent does |
| id | string | yes | Unique agent ID (e.g. "my-agent-1") |
| inbox_id | string | yes | Task list ID this agent monitors for new tasks |
| location | string | – | Where the agent runs (e.g. "AWS us-east-1") |
| model | string | – | Model powering this agent (e.g. "claude-sonnet-4-6") |
| name | string | yes | Display name (e.g. "Research Bot") |
| type | string | yes | Agent type |
| worker_id | string | – | TaScan worker ID for this agent |
No output schema declared.
No examples provided.
tascan_register_asset ~138
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.
| Name | Type | Req | Description |
|---|---|---|---|
| asset_type | string | – | Type (e.g. "LED processor", "forklift", "scaffold") |
| description | string | – | Context the AI assessor should know |
| location_description | string | – | – |
| name | string | yes | Asset name (e.g. "LED Wall Processor #3") |
| project_id | string | – | – |
| serial_number | string | – | Serial number or asset tag (unique per org) |
No output schema declared.
No examples provided.
tascan_register_tag ~185
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.
| Name | Type | Req | Description |
|---|---|---|---|
| location_description | string | – | Physical location of the tag |
| project_id | string | – | Project ID |
| tag_hardware_id | string | yes | NFC tag hardware serial number (e.g., "04:CB:6C:51:CE:2A:81") |
| tag_name | string | yes | Friendly name (e.g., "Ballroom A Door", "Breaker Panel 3") |
| target_type | string | yes | What this tag points to |
| task_id | string | – | Task ID (required for task targets) |
| task_list_id | string | – | Task list ID (required for task_list/task targets) |
No output schema declared.
No examples provided.
tascan_reply_with_list ~177
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.
| Name | Type | Req | Description |
|---|---|---|---|
| author_name | string | – | Who is replying (shown in the thread) |
| parent_list_id | string | yes | The list being replied to |
| tasks | array | yes | Items the recipient answers — each becomes a typed task |
| title | string | yes | Reply list title (e.g. "Before I can start...") |
No output schema declared.
No examples provided.
tascan_request_payment ~178
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).
| Name | Type | Req | Description |
|---|---|---|---|
| amount_cents | number | yes | Amount in cents ($1 min, $10,000 max) |
| memo | string | – | What the payment is for (shown to the payer) |
| payer_email | string | yes | Who pays — receives the pay link on verification |
| payer_name | string | – | – |
| task_list_id | string | yes | Task list the payment is tied to |
| worker_id | string | yes | Worker who gets paid |
No output schema declared.
No examples provided.
tascan_schedule_sms ~379
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 honoured, burst limits and the SMS quota apply, the "TaScan:" prefix is added, and a list_id appends a tap-to-open checklist link. Use this for reminders (e.g. "log your out time" each show night) — nothing outside TaScan needs to stay awake. Returns the scheduled row id; cancel with tascan_cancel_scheduled_sms while it is still pending. The same idempotency_key within an org returns the existing row instead of a duplicate.
| Name | Type | Req | Description |
|---|---|---|---|
| idempotency_key | string | – | Optional caller key (≤ 200 chars) — replays return the existing scheduled row |
| include_link | boolean | – | Append the list link (default true when list_id is given) |
| list_id | string | – | Optional task list ID — appends the tap-to-open checklist link |
| message | string | yes | Message text (1-400 chars, links stripped). Transactional and work-related only. |
| phone | string | – | Raw phone (E.164) — must already belong to a worker or roster entry of your org |
| send_at | string | yes | When to send — ISO 8601 with a timezone offset, e.g. "2026-09-25T18:30:00-07:00" (Las Vegas is -07:00 in September). Delivery happens on the next 5-minute tick at or after this time. |
| worker_id | string | – | Worker ID — texts their phone on file (preferred over raw phone) |
No output schema declared.
No examples provided.
tascan_search_marketplace ~207
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.
| Name | Type | Req | Description |
|---|---|---|---|
| available | boolean | – | Only workers who marked themselves available on their passport |
| city | string | – | Filter by the worker's opt-in home city, e.g. "Las Vegas" |
| limit | number | – | Max cards (default 25, max 50) |
| min_completions | number | – | Only workers with at least this many verified completions |
| q | string | – | Skill, category, name, or civilian job title — e.g. "forklift", "LED wall", "AV technician" |
No output schema declared.
No examples provided.
tascan_send_sms ~250
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.
| Name | Type | Req | Description |
|---|---|---|---|
| include_link | boolean | – | When a list_id is given, append the tap-to-open link to the SMS body (default true). Set false to send the message text alone — the link is still returned for you to share another way. |
| list_id | string | – | Optional task list ID — appends a tap-to-open worker checklist link |
| message | string | yes | Message text. Transactional and work-related only. |
| phone | string | – | Raw phone number (e.g. "+17025551234") — used when no worker_id given |
| worker_id | string | – | Worker ID — sends to their phone on file (preferred over raw phone) |
No output schema declared.
No examples provided.
tascan_send_task_email ~154
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.
| Name | Type | Req | Description |
|---|---|---|---|
| include_qr | boolean | – | Include QR code for the task list in the email (default: true) |
| list_id | string | yes | Task list (event) ID |
| message | string | – | Optional custom message to include in the email body |
| subject | string | – | Custom email subject (defaults to auto-generated) |
| task_id | string | – | Optional specific task ID to highlight |
| to_email | string | yes | Recipient email address |
| to_name | string | – | Recipient display name |
No output schema declared.
No examples provided.
tascan_server_info ~58
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.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
tascan_update_event ~167
Update an event / task list (name, description, team_mode, multi_instance, timer_mode). team_mode and multi_instance cannot both be true.
| Name | Type | Req | Description |
|---|---|---|---|
| assigned_worker_ids | array | – | Worker UUIDs to assign to this event (additive — workers not named are left alone). Each gets a personal tap-to-open link. Note: a worker holds one event assignment per project — assigning moves them. |
| description | string | – | New description |
| list_id | string | yes | Task list (event) ID |
| multi_instance | boolean | – | Multi-instance — each worker gets isolated copy |
| name | string | – | New name |
| team_mode | boolean | – | Team mode — shared completions |
| timer_mode | string | – | Timer mode (auto or manual) |
No output schema declared.
No examples provided.
tascan_update_invoice ~108
Update an invoice: mark it paid (records paid_at), overdue, cancelled, or edit client details / notes / due date.
| Name | Type | Req | Description |
|---|---|---|---|
| client_email | string | – | – |
| client_name | string | – | – |
| client_phone | string | – | – |
| due_date | string | – | – |
| invoice_id | string | yes | – |
| notes | string | – | – |
| paid_at | string | – | ISO timestamp (default now) when status = paid |
| status | string | – | – |
No output schema declared.
No examples provided.
tascan_update_project ~82
Update a project (name, location, status, dates)
| Name | Type | Req | Description |
|---|---|---|---|
| end_date | string | – | End date (ISO) |
| location | string | – | New location |
| name | string | – | New name |
| project_id | string | yes | Project ID |
| start_date | string | – | Start date (ISO) |
| status | string | – | Status |
No output schema declared.
No examples provided.
tascan_update_subtask ~90
Update a subtask (title, description, response_type, response_config, requires_photo, sort_order).
| Name | Type | Req | Description |
|---|---|---|---|
| description | string | – | – |
| requires_photo | boolean | – | – |
| response_config | object | – | – |
| response_type | string | – | – |
| sort_order | number | – | – |
| subtask_id | string | yes | Subtask ID |
| title | string | – | – |
No output schema declared.
No examples provided.
tascan_update_task ~272
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:/SHELL:.
| Name | Type | Req | Description |
|---|---|---|---|
| assigned_to | string | – | Worker to assign this task to — pass the worker UUID (validated against your org and stored as the worker's name, which is how the worker portal matches "my tasks"). A plain name string is also accep… |
| description | string | – | New description |
| is_safety_checkpoint | boolean | – | Safety-critical flag |
| required_equipment | string | – | Equipment this task depends on (free text) |
| requires_photo | boolean | – | Require photo |
| response_config | object | – | Response configuration. For "choice": {options: [...]}. See tascan_add_tasks. |
| response_type | string | – | See tascan_add_tasks for guidance. "text" for info collection, "photo" for visual proof, "checkbox" for yes/no only. |
| sort_order | number | – | Sort position |
| task_id | string | yes | Task ID |
| title | string | – | New title |
No output schema declared.
No examples provided.
tascan_update_worker ~58
Update a worker profile (name, phone, email)
| Name | Type | Req | Description |
|---|---|---|---|
| string | – | New email | |
| name | string | – | New name |
| phone | string | – | New phone |
| worker_id | string | yes | Worker ID |
No output schema declared.
No examples provided.
tascan_update_zone ~255
Update a geofenced zone — move the center, resize the radius, change the routing target, toggle zone-lock, or deactivate it (is_active=false).
| Name | Type | Req | Description |
|---|---|---|---|
| alert_on_breach | boolean | – | – |
| auto_clock_in | boolean | – | – |
| auto_clock_out | boolean | – | – |
| enforce_on_list | boolean | – | – |
| enter_message | string | – | – |
| is_active | boolean | – | – |
| kind | string | – | – |
| lat | number | – | – |
| lng | number | – | – |
| name | string | – | – |
| notify_email | string | – | – |
| notify_on_enter | boolean | – | – |
| notify_on_exit | boolean | – | – |
| polygon | array | – | Replace geometry with a polygon ([[lat,lng],...], ≥3 vertices); pass null to revert to a circle |
| ppe_photo_required | boolean | – | – |
| radius_m | number | – | – |
| required_ppe | array | – | – |
| sms_worker_on_enter | boolean | – | – |
| sms_worker_on_exit | boolean | – | – |
| task_list_id | string | – | – |
| task_list_on_enter | string | – | – |
| zone_id | string | yes | Zone ID |
No output schema declared.
No examples provided.
tascan_zone_compliance ~129
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.
| Name | Type | Req | Description |
|---|---|---|---|
| project_id | string | – | – |
| since | string | – | ISO date/time lower bound |
| until | string | – | ISO date/time upper bound |
| worker_id | string | – | – |
| zone_id | string | – | – |
No output schema declared.
No examples provided.
What is the TaScan MCP server?
TaScan is an MCP server listed in the public MCP registry as io.github.snowbikemike/tascan-mcp. 36 MCP tools for projects, tasks, workers, QR/NFC tags, and AI remediation. Task. Scan. Done. This page covers its hosted endpoint (https://app.tascan.io/mcp).
Is the TaScan MCP server safe to use?
TaScan scores 90 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the TaScan MCP server expose?
TaScan exposes 79 tools: tascan_list_projects, tascan_create_project, tascan_get_project, tascan_update_project, tascan_delete_project, and 74 more. Their descriptions and schemas cost roughly 12,174 tokens of context every time the server is loaded.
Does the TaScan MCP server require authentication?
Yes. TaScan asked us for credentials when we connected, so you will need to authorise it in your MCP client before it can do anything.
Is the TaScan MCP server still maintained?
TaScan is still listed as active in the MCP registry. We last reached this channel on 20 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.