TaScan
REMOTE · APP.TASCAN.IO · 2 COMPONENTS
36 MCP tools for projects, tasks, workers, QR/NFC tags, and AI remediation. Task. Scan. Done.
Available components
Last scanned (5 hours ago)
Scores higher than 97% of remote servers
Reachable. Last reached 5 Nov 2026.
Category Project Management
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 Usability64
- AI-judged instruction clarity (good).Pass
- Context-footprint check failed: tool/resource definitions use about 25772 tokens (~181/item across 142 items; 142 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 Management99
- Stability check failed: schema churn in the 30 days we've observed: 0 tool removals, 1 breaking changes, 0 auth/transport breaks, 37 additions. See how to fix → Fail
Tool Coverage93
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 79% 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 13 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.Pass
- An AI judge read all 143 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
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.
- 27 Oct 26 0
- New tool “tascan_get_access” functional
- New tool “tascan_append_chat_messages” functional
- New tool “tascan_set_access” functional
- “tascan_update_event” added an optional parameter “access_level” cosmetic
- “tascan_create_event” added an optional parameter “access_level” cosmetic
- “tascan_create_event” added an optional parameter “agent_assignee” cosmetic
- “tascan_update_task” added an optional parameter “access_level” cosmetic
- “tascan_update_event” added an optional parameter “agent_assignee” cosmetic
- 26 Oct 26 0
- New tool “tascan_delete_chat_thread”, which the server declares destructive security
- New tool “tascan_remove_worker_from_project”, which the server declares destructive security
- New tool “tascan_save_qr_style”, which the server declares destructive security
- New tool “tascan_void_completion”, which the server declares destructive security
- Tool “tascan_complete_task” rewrote its description, which is the text the model reads security
- Tool “tascan_update_worker” rewrote its description, which is the text the model reads security
- Tool coverage: 87% → 79% ▼ functional
- Schema quality: excellent → good functional
- New tool “tascan_apply_qr_style” functional
- New tool “tascan_get_org_plan” functional
- New tool “tascan_get_timesheet” functional
- New tool “tascan_list_chat_threads” functional
- New tool “tascan_list_insights” functional
- New tool “tascan_list_qr_styles” functional
- New tool “tascan_nudge_worker” functional
- New tool “tascan_raise_issue” functional
- New tool “tascan_reply_issue” functional
- New tool “tascan_resolve_insight” functional
- New tool “tascan_save_chat_thread” functional
- New tool “tascan_set_template” functional
- New tool “tascan_update_issue” functional
- New tool “tascan_issues_inbox” functional
- “tascan_complete_task” added an optional parameter “on_behalf_of” cosmetic
- “tascan_update_worker” added an optional parameter “active” cosmetic
- “tascan_update_worker” added an optional parameter “reason” cosmetic
- “tascan_complete_task” reworded the description of “worker_id” cosmetic
- “tascan_complete_task” made “worker_id” optional cosmetic
- 25 Oct 26 0
- Stability: pass → fail ▼ security
- A breaking change shipped without a version bump: still 3.19.0 ▼ security
- Tool “tascan_delete_project” rewrote its description, which is the text the model reads security
- Tool “tascan_list_projects” rewrote its description, which is the text the model reads security
- Tool “tascan_update_invoice” rewrote its description, which is the text the model reads security
- Tool “tascan_update_project” rewrote its description, which is the text the model reads security
- “tascan_delete_project” added a required parameter “confirm_name”, so existing callers break ▼ functional
- New tool “tascan_project_insights” functional
- New tool “tascan_clone_project” functional
- New tool “tascan_mint_completion_report” functional
- New tool “tascan_text_report” functional
- New tool “tascan_report_engagement” functional
- “tascan_delete_project” added an optional parameter “audit” cosmetic
- “tascan_list_projects” added an optional parameter “ends_before” cosmetic
- “tascan_list_projects” added an optional parameter “starts_after” cosmetic
- “tascan_list_projects” added an optional parameter “window” cosmetic
- “tascan_list_projects” added an optional parameter “zone” cosmetic
- “tascan_update_project” added an optional parameter “labor_rules” cosmetic
- “tascan_update_project” added an optional parameter “report_options” cosmetic
- 24 Oct 26 −1
- New tool “tascan_unlink_site”, which the server declares destructive security
- Tool “tascan_find” rewrote its description, which is the text the model reads security
- Tool “tascan_generate_qr” rewrote its description, which is the text the model reads security
- Tool “tascan_update_worker” rewrote its description, which is the text the model reads security
- New tool “tascan_create_site” functional
- New tool “tascan_get_site” functional
- New tool “tascan_link_site” functional
- New tool “tascan_list_sites” functional
- New tool “tascan_share_list” functional
- New tool “tascan_today” functional
- New tool “tascan_update_site” functional
- “tascan_generate_qr” added an optional parameter “style” cosmetic
- “tascan_list_workers” added an optional parameter “actor_kind” cosmetic
- “tascan_update_worker” added an optional parameter “actor_kind” cosmetic
- “tascan_find” reworded the description of “query” cosmetic
- 21 Oct 26 0
- Tool “tascan_update_project” rewrote its description, which is the text the model reads security
- Tool “tascan_create_project” rewrote its description, which is the text the model reads security
- Tool “tascan_list_projects” rewrote its description, which is the text the model reads security
- New tool “tascan_get_org” functional
- New tool “tascan_list_connectors” functional
- “tascan_update_project” added an optional parameter “external_refs” cosmetic
- “tascan_update_project” added an optional parameter “number” cosmetic
- “tascan_create_project” added an optional parameter “external_refs” cosmetic
- “tascan_create_project” added an optional parameter “number” cosmetic
- “tascan_list_projects” added an optional parameter “number” cosmetic
- “tascan_list_projects” added an optional parameter “ref” cosmetic
- “tascan_list_projects” added an optional parameter “status” cosmetic
- 12 Oct 26 0
- “tascan_delegate_to_agent” added an optional parameter “model” cosmetic
- “tascan_delegate_to_agent” added an optional parameter “display_name” cosmetic
- “tascan_delegate_to_agent” added an optional parameter “vendor” cosmetic
- “tascan_delegate_to_agent” added an optional parameter “role” cosmetic
- “tascan_delegate_to_agent” added an optional parameter “agent_id” cosmetic
- “tascan_delegate_to_agent” reworded the description of “resource_constraints” cosmetic
6 cosmetic changes on this day. Switch on “Show cosmetic changes” to see them.
- 29 Sept 26 0
- The server rewrote its instructions, which are the text every model session reads security
- New tool “tascan_control_fanout”, which the server declares destructive security
- Schema quality: 16963 → 19576 ▼ functional
- Server version: 3.16.1 → 3.19.0 functional
- New tool “tascan_quickstart” functional
- New tool “tascan_heartbeat_run” functional
- New tool “tascan_claim_run” functional
- New tool “tascan_create_fanout” functional
- New tool “tascan_finish_run” functional
- New tool “tascan_get_fanout” functional
- 28 Sept 26 0
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
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 5 Nov 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=YE2,O=Let's Encrypt,C=US | 5 Nov 2026 | 3 Feb 2027 | ECDSA 256 | ECDSA-SHA384 | 6963312024d405e7636a83cd4c6f381807c |
| SANs: *.tascan.io, tascan.io | ||||||
| CN=YE2,O=Let's Encrypt,C=US (CA) | CN=Root YE,O=ISRG,C=US | 3 Sept 2025 | 2 Sept 2028 | ECDSA 384 | ECDSA-SHA384 | 4df3b15dd6c0784c507cd37b58e6f115 |
| 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 | 38690 | 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_get_project ~27
Get details of a specific project
| Name | Type | Req | Description |
|---|---|---|---|
| project_id | string | yes | Project ID |
No output schema declared.
No examples provided.
tascan_get_receipt ~347
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 verify URL. Verify offline against the JWKS or online by POSTing a JSON body whose jws field holds the compact receipt. Read outcome and verification separately: outcome completed = the executor returned and a result was recorded; verification.result = the verdict of a named policy; all-null verification with reason no_policy_run = no policy ran. Never treat outcome=completed as success without a policy verdict you trust (protocol 8.3 C11). Verifier: 6.8. profile=public returns the separately signed public export profile (protocol 6.10): it withholds the raw org, list, project, worker, run and trace ids (each a 16-hex id_hash) and storage locators, and binds to the full receipt - the form for anyone outside the org. Read tier.
| Name | Type | Req | Description |
|---|---|---|---|
| completion_id | string | yes | task_completions.id (UUID) - from tascan_get_task -> completions[].id |
| profile | string | – | full (default) = the org view with the unsigned private block; public = the separately signed public export profile: no raw org, list, project, worker, run or trace id (each is a 16-hex id_hash), no… |
No output schema declared.
No examples provided.
tascan_get_report ~120
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.
| Name | Type | Req | Description |
|---|---|---|---|
| include_responses | boolean | – | Include the actual submitted response values for each completed task (default false — keeps the payload light) |
| list_id | string | yes | Task list (event) ID |
No output schema declared.
No examples provided.
tascan_get_scan_history ~219
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).
| Name | Type | Req | Description |
|---|---|---|---|
| limit | number | – | Max results (default 50, max 200) |
| project_id | string | – | Project ID — page-scan mode, all lists in the project |
| since | string | – | ISO timestamp — only scans after this |
| source | string | – | Filter page scans by channel: qr | nfc | sms | email | link | unknown |
| tag_id | string | – | NFC tag registry ID (from tascan_list_tags) — tag mode |
| task_list_id | string | – | Task list ID — page-scan mode |
No output schema declared.
No examples provided.
tascan_get_signature_bundle ~176
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 preimage (v 2 also carries the typed name the signer entered, signer_typed_name), clientDataJSON, authenticatorData, signature, public key, the user-verification and backup flags, the document SHA-256, task id, completion id and time. Check it with: npx tascan-verify --signature bundle.json [--doc the-document.pdf]. Contains no signed URL, phone number or email. Read tier, organization-scoped.
| Name | Type | Req | Description |
|---|---|---|---|
| signature_assertion_id | string | yes | signature_assertion_id (UUID) from the completion response value of a signature task |
No output schema declared.
No examples provided.
tascan_get_site ~36
Read one site with the projects and task lists linked to it. Read tier.
| Name | Type | Req | Description |
|---|---|---|---|
| site_id | string | yes | Site ID |
No output schema declared.
No examples provided.
tascan_get_sms_status ~73
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.
| Name | Type | Req | Description |
|---|---|---|---|
| twilio_sid | string | yes | Twilio message SID (SM...) from tascan_send_sms |
No output schema declared.
No examples provided.
tascan_get_task ~236
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 agent also carry an "agent" block (state claimed|running|completed|failed|expired|released, attempts, current run with runner/trace_id/error) — the only place agent failures are reported. A completion with status "completed" means the executor returned and its result was recorded (a model refusal, a wrong answer or an administrative note all "complete"); it does NOT mean the requested result was accepted. Acceptance is the completion evidence_check / the receipt verification.result under a named policy, and in v0.1 no policy exists for agent tasks (exact-output and rubric policies are v0.2) — check the recorded response text yourself before treating an agent completion as success (protocol §2.6, §3.2, §8.3 C11).
| Name | Type | Req | Description |
|---|---|---|---|
| task_id | string | yes | Task ID |
No output schema declared.
No examples provided.
tascan_get_task_trail ~177
Read a task's trail messages (protocol v0.2 trail_messages, GET /tasks/:id/messages): question, answer, handoff and note/discussion entries, last 100, newest last (reading order). Optionally filter to a comma-separated set of kinds, and with since=<ISO time> read only messages newer than the last one you saw. Read tier. Post with tascan_post_message.
| Name | Type | Req | Description |
|---|---|---|---|
| kinds | string | – | Optional comma-separated kind filter, e.g. question,answer,handoff,note (discussion is stored as note; both names are accepted). |
| since | string | – | Optional ISO 8601 time: return only messages created after it (pass the created_at of the last message you saw to read only new ones). |
| task_id | string | yes | Task ID (UUID). |
No output schema declared.
No examples provided.
tascan_get_timesheet ~112
A task list's timesheet (GET /lists/:id/timesheet), read-only: each shift (who, clock in, clock out, breaks, hours; an open shift and a never-clocked-out one are flagged) and per worker per day the regular, overtime and double-time hours under the project's labor rules (overtime after 10 h by default), with totals. Optional worker_id. Read tier.
| Name | Type | Req | Description |
|---|---|---|---|
| list_id | string | yes | – |
| worker_id | string | – | – |
No output schema declared.
No examples provided.
tascan_get_usage ~174
Read your organization's usage and quota snapshot for a billing period (GET /usage): SMS, email and AI call counts against their plan limits, the 100-receipt-per-month hard stop (used, allowance, hard_stop), the rate-limit window (60 requests per minute), and coordination-cycle spend in micro-USD for build roots created in that period. period defaults to the current UTC month (YYYY-MM). by_key additionally breaks coordination spend down per dispatch-scoped API key, refused (403 owner_required) to anything but an owner admin session -- a tsk_ key never gets it. Read tier.
| Name | Type | Req | Description |
|---|---|---|---|
| by_key | boolean | – | Break coordination spend down per dispatch-scoped API key -- owner admin session only. |
| period | string | – | Billing period as YYYY-MM (default: current UTC month). |
No output schema declared.
No examples provided.
tascan_get_worker ~62
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.)
| Name | Type | Req | Description |
|---|---|---|---|
| worker_id | string | yes | Worker ID |
No output schema declared.
No examples provided.
tascan_get_worker_passport ~73
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.
| Name | Type | Req | Description |
|---|---|---|---|
| worker_id | string | yes | Worker ID |
No output schema declared.
No examples provided.
tascan_heartbeat_run ~177
Extend a claimed local run's lease and mark it running (POST /runs/:run_id/heartbeat -> heartbeat_agent_run). ok false with reason not_live means the run is no longer yours -- the sweep expired it, or it was never yours to begin with -- STOP, do not finish it. Never mints a completion or a receipt. Requires agent:dispatch:code. A run outside your org is 404, never 403.
| Name | Type | Req | Description |
|---|---|---|---|
| extend_seconds | integer | – | Optional: push expires_at out to now + this many seconds (60-86400) if that is later than the current lease -- never shortens it. |
| instance | string | yes | The SAME instance string you claimed with -- a mismatch answers not_live. |
| run_id | string | yes | The run ID from tascan_claim_run's response. |
No output schema declared.
No examples provided.
tascan_invite_worker ~165
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, 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.
| Name | Type | Req | Description |
|---|---|---|---|
| list_id | string | yes | Task list you want them on |
| message | string | – | Optional short intro prepended to the text (max 240 chars) |
| worker_id | string | yes | worker_id from a marketplace card |
No output schema declared.
No examples provided.
tascan_issues_inbox ~149
The org-wide issues inbox (GET /issues): every task issue across projects, newest first, filtered by status (OPEN, ACKNOWLEDGED, IN_PROGRESS, RESOLVED, CLOSED, or a comma list), project_id and site_id. Pass issue_id instead to read one issue's message thread (GET /issues/:id/messages). For one list use tascan_list_issues. Read tier.
| Name | Type | Req | Description |
|---|---|---|---|
| issue_id | string | – | Read this issue's thread instead of the inbox |
| limit | number | – | 1-200 (default 100) |
| project_id | string | – | – |
| site_id | string | – | – |
| status | string | – | – |
No output schema declared.
No examples provided.
tascan_link_site ~78
Link a site to a project (project_id) or to a task list shown at the site (list_id) — exactly one. Both must be in your organization. Linking twice is a no-op. Write tier.
| Name | Type | Req | Description |
|---|---|---|---|
| list_id | string | – | – |
| project_id | string | – | – |
| site_id | string | yes | – |
No output schema declared.
No examples provided.
tascan_list_agents ~49
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.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
tascan_list_assets ~51
List registered condition-ledger assets with their latest condition scores. Use to recover an asset_id for tascan_assess_condition or tascan_condition_history.
| Name | Type | Req | Description |
|---|---|---|---|
| project_id | string | – | Filter by project |
No output schema declared.
No examples provided.
tascan_list_chat_threads ~89
List the Ask TaScan chat threads of your org's admins (GET /chat/threads, newest first; admin_id narrows to one admin), or read one thread with its messages (thread_id). The same threads the Simple page and the portal show. Read tier.
| Name | Type | Req | Description |
|---|---|---|---|
| admin_id | string | – | – |
| limit | number | – | – |
| thread_id | string | – | – |
No output schema declared.
No examples provided.
tascan_list_connectors ~119
List the organization's connectors (GET /integrations), e.g. the Salesforce Work Order bridge: provider, instance URL, the project and list new work lands on (with names), whether it is on, the last poll time and the last error. Never shows secrets: the client id, the client secret, its storage name and the connector config are never returned. Read tier. Turning a connector on or off, retargeting it or adding one is done by an owner or admin in the TaScan portal, not by any tool.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
tascan_list_cycles ~173
List coordination-cycle roots in the organization (protocol v0.2, GET /coord/cycles): root id, title, status, task_type, project, build_ref, deploy_id and the T2 review id, newest first. Filter by project_id and/or status. Read tier — a reviewer's read-only key can call this too. Follow up with tascan_get_cycle_report root_id=... for the full audit trail of any row.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | Max rows to return (default 50, max 200). |
| project_id | string | – | Optional project UUID to filter to one project's cycles. |
| status | string | – | Optional cycle status to filter on (e.g. active, parked, authorized, integrated) — lowercase letters and underscores only, 1-20 chars. |
No output schema declared.
No examples provided.
tascan_list_delegations ~65
List delegated child keys (GET /delegations): this key's own direct children (id, label, scopes, active/revoked, depth, expires_at) — never the raw credential. An admin session sees every delegated key in the org. Read tier.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
tascan_list_devices ~117
List registered devices (RFID portals, barcode guns, PLCs, cameras, robots, tools, sensors) in the organization. Filter by status (active/revoked) or kind; paginate with an opaque cursor. Never returns a credential hash.
| Name | Type | Req | Description |
|---|---|---|---|
| cursor | string | – | Opaque cursor from a previous response next_cursor |
| kind | string | – | Filter by device kind |
| limit | number | – | Max rows to return (1-200, default 50) |
| status | string | – | Filter by device status |
No output schema declared.
No examples provided.
tascan_list_events ~31
List all events (task lists) within a project
| Name | Type | Req | Description |
|---|---|---|---|
| project_id | string | yes | Project ID |
No output schema declared.
No examples provided.
tascan_list_insights ~77
List AI Insights (GET /insights): the audit engine's suggestions for your org (ai_suggestions), pending by default; status applied, dismissed, explained, expired or all; optional project_id. Read tier.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | number | – | – |
| project_id | string | – | – |
| status | string | – | – |
No output schema declared.
No examples provided.
tascan_list_invites ~60
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.
| Name | Type | Req | Description |
|---|---|---|---|
| status | string | – | – |
No output schema declared.
No examples provided.
tascan_list_invoices ~68
List invoices for the org (newest first) with status, client, total, due date and share link. Filter by status (draft/sent/paid/overdue/cancelled) or project.
| Name | Type | Req | Description |
|---|---|---|---|
| project_id | string | – | – |
| status | string | – | – |
No output schema declared.
No examples provided.
tascan_list_issues ~67
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.
| Name | Type | Req | Description |
|---|---|---|---|
| list_id | string | yes | Task list (event) ID |
No output schema declared.
No examples provided.
tascan_list_payments ~76
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.
| Name | Type | Req | Description |
|---|---|---|---|
| status | string | – | Filter by status |
| task_list_id | string | – | Filter by task list |
No output schema declared.
No examples provided.
tascan_list_projects ~325
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 exactly, e.g. a customer job number like P14-4680), and the portal's date filters: starts_after / ends_before (YYYY-MM-DD) and window (week = Sunday-Saturday, or month) on the project's start/end dates (one date = that day; none = its created day), in zone (an IANA zone; default the org time zone, else UTC).
| Name | Type | Req | Description |
|---|---|---|---|
| ends_before | string | – | YYYY-MM-DD: only projects whose dates end before this day |
| number | string | – | Only the project with this project number (exact, e.g. P-00012) |
| ref | string | – | Only projects whose external_refs carry this ref (exact, e.g. P14-4680) |
| starts_after | string | – | YYYY-MM-DD: only projects whose dates start after this day |
| status | string | – | Only projects with this status (exact; comma-separated list allowed, e.g. "active,archived") |
| window | string | – | Only projects overlapping this week (Sunday-Saturday) or this calendar month |
| zone | string | – | IANA time zone for the date filters, e.g. America/Los_Angeles (default: the org time zone) |
No output schema declared.
No examples provided.
tascan_list_qr_styles ~156
Your saved QR looks (GET /qr-styles) with the per-purpose defaults, or, given task_id, list_id, project_id or site_id (and/or purpose share, placard, asset, receipt or work_order), the look that applies (GET /qr-styles/resolve: task, then list, project, site, purpose default, org default, then TaScan's own). Read tier.
| Name | Type | Req | Description |
|---|---|---|---|
| list_id | string | – | – |
| project_id | string | – | – |
| purpose | string | – | – |
| resolve | boolean | – | Resolve even with no item (purpose default, org default, TaScan) |
| site_id | string | – | – |
| task_id | string | – | – |
No output schema declared.
No examples provided.
tascan_list_reports ~55
List existing report links for a list or project (completion / service / project / evidence), newest first, with client acknowledgment status for service reports.
| Name | Type | Req | Description |
|---|---|---|---|
| list_id | string | – | – |
| project_id | string | – | – |
No output schema declared.
No examples provided.
tascan_list_scheduled_sms ~82
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.
| Name | Type | Req | Description |
|---|---|---|---|
| status | string | – | Filter by status (default pending + sending) |
No output schema declared.
No examples provided.
tascan_list_sites ~111
List the organization's sites (job locations: name, address, lat/lng, client company, external key). Filters: active (true, the default, false or all), q (name, address or client company) and project_id (sites linked to that project). Read tier.
| Name | Type | Req | Description |
|---|---|---|---|
| active | string | – | Default true (active sites only) |
| project_id | string | – | Only sites linked to this project |
| q | string | – | Substring of the name, address or client company |
No output schema declared.
No examples provided.
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 ~112
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.
| Name | Type | Req | Description |
|---|---|---|---|
| list_id | string | yes | Task list (event) ID |
| status | string | – | open = not completed yet (use this to find work), done = completed, all = everything (default). |
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_verifications ~100
Read a task completion's verification verdicts and job queue (Verification Layer V2, GET /completions/:completion_id/verifications): completion_verifications rows (state, method, verifier, policy, confidence, finding) plus verification_jobs rows (state, attempts, last_error, result). Read tier.
| Name | Type | Req | Description |
|---|---|---|---|
| completion_id | string | yes | task_completions.id (UUID) — from tascan_get_task -> completions[].id. |
No output schema declared.
No examples provided.
tascan_list_workers ~206
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 |
| actor_kind | string | – | Only these kinds of worker row: person, agent, admin or device, or a comma list (e.g. "person,agent") |
| 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_mint_completion_report ~80
Mint (or reuse) a task list's completion report and get its link (POST /lists/:id/completion-report): the same stable link tascan_generate_report type completion returns, never a worker's own shift report. Nothing is sent; text it with tascan_text_report. Write tier.
| Name | Type | Req | Description |
|---|---|---|---|
| list_id | string | yes | – |
No output schema declared.
No examples provided.
tascan_nudge_worker ~138
Nudge a worker by text about a task list (POST /lists/:id/nudge), through the same guards as the Simple page's nudge: the list must be yours, the recipient must be known to your org, burst limits, the SMS quota and STOP opt-outs apply, and the list link is appended. Send worker_id or phone (one), and an optional message (at most 300 characters). tascan_send_sms is the general text lane. Full tier.
| Name | Type | Req | Description |
|---|---|---|---|
| list_id | string | yes | – |
| message | string | – | – |
| phone | string | – | – |
| worker_id | string | – | – |
No output schema declared.
No examples provided.
tascan_org_analytics ~156
Read organization-wide analytics: view org (GET /analytics/org, the get_org_analytics rollup) or view resolutions (GET /analytics/resolutions, paginated AI issue-resolution history, filterable by severity, category, and pattern-detected). Read tier.
| Name | Type | Req | Description |
|---|---|---|---|
| category | string | – | resolutions only: filter by issue_category. |
| limit | integer | – | resolutions only: page size (default 50, max 200). |
| offset | integer | – | resolutions only: page offset. |
| pattern | boolean | – | resolutions only: true to filter to pattern_detected rows only. |
| severity | string | – | resolutions only: filter by classification_severity. |
| view | string | yes | Which analytics surface to read. |
No output schema declared.
No examples provided.
tascan_post_evidence ~270
Post one evidence event into the evidence ledger (protocol v0.2 V9a, POST /evidence): an actor did an action to an object at a point in time, optionally with a location and provenance. idempotency_key is required — the same (org, idempotency_key) always returns the same row, never a second insert. Optionally correlate the event to a task or task list. Write tier; a device credential (structurally different from an API key) is not reachable through this MCP connection, so device_id is never set here.
| Name | Type | Req | Description |
|---|---|---|---|
| action | string | yes | What happened, e.g. inspected, scanned, calibrated. |
| actor | object | yes | Who did it. |
| correlation | object | – | Optional correlation hint. |
| idempotency_key | string | yes | Required, 1-200 chars. The same key on the same org replays the same stored row. |
| location | object | – | Optional location. |
| object | object | yes | What it happened to. |
| occurred_at | string | yes | ISO timestamp for when the event actually happened. |
| provenance | object | – | Optional provenance object. provenance.kind first_party_scan is written only by the scan_events trigger and is refused from a caller; provenance.signature triggers device-signature verification. |
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_project_insights ~124
A project's progress and insights (GET /projects/:id/insights), counted like the portal's panel: per task list done of total (people's tasks), open issues by list (open / acknowledged / in progress, 30 days; an archived, completed or demo project counts none unless demo=true), and the newest 20 activity items (completions, scans, issues) with who and when. Read tier.
| Name | Type | Req | Description |
|---|---|---|---|
| demo | boolean | – | Count a demo / test project's open issues too (default false) |
| project_id | string | yes | – |
No output schema declared.
No examples provided.
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'
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 89 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 142 tools: tascan_list_projects, tascan_create_project, tascan_get_project, tascan_update_project, tascan_delete_project, and 137 more. Their descriptions and schemas cost roughly 25,684 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 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.