Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

TaScan

REMOTE · APP.TASCAN.IO · 2 COMPONENTS

36 MCP tools for projects, tasks, workers, QR/NFC tags, and AI remediation. Task. Scan. Done.

0 this week 89 Trust /100

Last scanned (5 hours ago)

Scores higher than 97% of remote servers

Reachable. Last reached 5 Nov 2026.

Category Project Management

Trust breakdown (7 categories)

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
Transport & Reachability100
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
Changelog

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
Diagnostics

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
MCP tools · 142 exposed · ~25,684 tokens

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 →

Tool Tokens
tascan_get_project ~27

Get details of a specific project

NameTypeReqDescription
project_idstringyesProject 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.

NameTypeReqDescription
completion_idstringyestask_completions.id (UUID) - from tascan_get_task -> completions[].id
profilestring–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.

NameTypeReqDescription
include_responsesboolean–Include the actual submitted response values for each completed task (default false — keeps the payload light)
list_idstringyesTask 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).

NameTypeReqDescription
limitnumber–Max results (default 50, max 200)
project_idstring–Project ID — page-scan mode, all lists in the project
sincestring–ISO timestamp — only scans after this
sourcestring–Filter page scans by channel: qr | nfc | sms | email | link | unknown
tag_idstring–NFC tag registry ID (from tascan_list_tags) — tag mode
task_list_idstring–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.

NameTypeReqDescription
signature_assertion_idstringyessignature_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.

NameTypeReqDescription
site_idstringyesSite 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.

NameTypeReqDescription
twilio_sidstringyesTwilio 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).

NameTypeReqDescription
task_idstringyesTask 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.

NameTypeReqDescription
kindsstring–Optional comma-separated kind filter, e.g. question,answer,handoff,note (discussion is stored as note; both names are accepted).
sincestring–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_idstringyesTask 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.

NameTypeReqDescription
list_idstringyes–
worker_idstring––

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.

NameTypeReqDescription
by_keyboolean–Break coordination spend down per dispatch-scoped API key -- owner admin session only.
periodstring–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.)

NameTypeReqDescription
worker_idstringyesWorker 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.

NameTypeReqDescription
worker_idstringyesWorker 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.

NameTypeReqDescription
extend_secondsinteger–Optional: push expires_at out to now + this many seconds (60-86400) if that is later than the current lease -- never shortens it.
instancestringyesThe SAME instance string you claimed with -- a mismatch answers not_live.
run_idstringyesThe 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.

NameTypeReqDescription
list_idstringyesTask list you want them on
messagestring–Optional short intro prepended to the text (max 240 chars)
worker_idstringyesworker_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.

NameTypeReqDescription
issue_idstring–Read this issue's thread instead of the inbox
limitnumber–1-200 (default 100)
project_idstring––
site_idstring––
statusstring––

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.

NameTypeReqDescription
list_idstring––
project_idstring––
site_idstringyes–

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.

NameTypeReqDescription
project_idstring–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.

NameTypeReqDescription
admin_idstring––
limitnumber––
thread_idstring––

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.

NameTypeReqDescription
limitinteger–Max rows to return (default 50, max 200).
project_idstring–Optional project UUID to filter to one project's cycles.
statusstring–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.

NameTypeReqDescription
cursorstring–Opaque cursor from a previous response next_cursor
kindstring–Filter by device kind
limitnumber–Max rows to return (1-200, default 50)
statusstring–Filter by device status

No output schema declared.

No examples provided.

tascan_list_events ~31

List all events (task lists) within a project

NameTypeReqDescription
project_idstringyesProject 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.

NameTypeReqDescription
limitnumber––
project_idstring––
statusstring––

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.

NameTypeReqDescription
statusstring––

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.

NameTypeReqDescription
project_idstring––
statusstring––

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.

NameTypeReqDescription
list_idstringyesTask 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.

NameTypeReqDescription
statusstring–Filter by status
task_list_idstring–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).

NameTypeReqDescription
ends_beforestring–YYYY-MM-DD: only projects whose dates end before this day
numberstring–Only the project with this project number (exact, e.g. P-00012)
refstring–Only projects whose external_refs carry this ref (exact, e.g. P14-4680)
starts_afterstring–YYYY-MM-DD: only projects whose dates start after this day
statusstring–Only projects with this status (exact; comma-separated list allowed, e.g. "active,archived")
windowstring–Only projects overlapping this week (Sunday-Saturday) or this calendar month
zonestring–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.

NameTypeReqDescription
list_idstring––
project_idstring––
purposestring––
resolveboolean–Resolve even with no item (purpose default, org default, TaScan)
site_idstring––
task_idstring––

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.

NameTypeReqDescription
list_idstring––
project_idstring––

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.

NameTypeReqDescription
statusstring–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.

NameTypeReqDescription
activestring–Default true (active sites only)
project_idstring–Only sites linked to this project
qstring–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).

NameTypeReqDescription
task_idstringyesParent 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.

NameTypeReqDescription
list_idstringyesTask list (event) ID
statusstring–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)

NameTypeReqDescription
categorystring–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.

NameTypeReqDescription
completion_idstringyestask_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).

NameTypeReqDescription
active_sincestring–ISO date/datetime — only workers with last_active_at on/after this
actor_kindstring–Only these kinds of worker row: person, agent, admin or device, or a comma list (e.g. "person,agent")
has_emailboolean–true/false — same for email
has_phoneboolean–true = only workers with a phone on file; false = only without
include_inactiveboolean–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
querystring–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.

NameTypeReqDescription
project_idstring–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.

NameTypeReqDescription
dry_runboolean–true (default) = report reassignment counts only, change nothing. false = execute atomically.
duplicate_worker_idsarrayyesWorker IDs to fold into the primary (max 20)
primary_worker_idstringyesThe 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.

NameTypeReqDescription
list_idstringyes–

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.

NameTypeReqDescription
list_idstringyes–
messagestring––
phonestring––
worker_idstring––

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.

NameTypeReqDescription
categorystring–resolutions only: filter by issue_category.
limitinteger–resolutions only: page size (default 50, max 200).
offsetinteger–resolutions only: page offset.
patternboolean–resolutions only: true to filter to pattern_detected rows only.
severitystring–resolutions only: filter by classification_severity.
viewstringyesWhich 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.

NameTypeReqDescription
actionstringyesWhat happened, e.g. inspected, scanned, calibrated.
actorobjectyesWho did it.
correlationobject–Optional correlation hint.
idempotency_keystringyesRequired, 1-200 chars. The same key on the same org replays the same stored row.
locationobject–Optional location.
objectobjectyesWhat it happened to.
occurred_atstringyesISO timestamp for when the event actually happened.
provenanceobject–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.

NameTypeReqDescription
addresseestring–Optional, kind=question only: who the question is for (recorded; nobody is paged).
bodystringyesThe 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_refstring–Optional sha256:<64 hex> the message is about (defaults to the cycle task's bound build).
idempotency_keystring–Optional replay key (≤ 200 chars): the same key on the same task returns the same message id.
kindstringyesquestion = 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_tostring–Optional message id this replies to.
task_idstringyesTask 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.

NameTypeReqDescription
project_idstringyesProject 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.

NameTypeReqDescription
demoboolean–Count a demo / test project's open issues too (default false)
project_idstringyes–

No output schema declared.

No examples provided.

Install

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

# add to Claude Code
claude mcp add --transport http snowbikemike-tascan-mcp 'https://app.tascan.io/mcp'
Common questions

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.