TaScan

io.github.snowbikemike由 GitHub 账号 snowbikemike 发布v3.0.0更新于 Oct 24, 2026

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

发布方自己的服务:scan.mx Email Diagnostics

已验证Streamable HTTP可网页运行效率与工作流沟通与协作商业与电商

概览

AI 生成的概览

TaScan MCP 让助手管理 TaScan 的项目、任务清单、工人、二维码、报告以及现场问题的 AI 修复流程。

可以做什么
  • 创建、查看、更新和删除项目与事件(任务清单),支持团队模式与多实例模式
  • 添加、修改、完成和删除任务与子任务,支持照片、文本、数字、日期、选项等作答类型
  • 管理工人,生成二维码与分享链接,套用模板,并获取带照片凭证的完成报告
  • 按项目跨清单查询同一任务的历史作答,形成按时间排列的序列
  • 列出、分析现场问题并给出修复建议,再通过多种渠道向工人下发指令
  • 注册 AI 代理并向其收件箱派发任务,获取签名回执与签名包用于核验
适用场景
适用于已在 TaScan 上开展现场或实体作业的组织,希望助手代为搭建巡检与检查清单、跟踪完成情况、查看照片凭证,或对上报问题做分诊与派发,而无需打开管理后台。
运行要求
可使用远程端点并以 TaScan 邮箱和密码通过 OAuth 登录;或使用 npm 本地包(npx 运行),需要 Node.js 以及 TASCAN_API_KEY 环境变量(可选 TASCAN_API_URL)。需要一个有效的 TaScan 组织,免费版即可。
安装前请注意
工具会创建、修改和删除项目、事件、任务与子任务,删除操作不可恢复。部分工具会向工人发送短信或邮件、创建发票,并向人员下发指令。TaScan 会处理并存储工人姓名、电话、邮箱、GPS 坐标和照片。API 密钥按组织范围授权且仅显示一次,请勿放入共享配置。

安装

在 SourceWeft 中

  1. 打开 控制台中的 TaScan,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Web executable,通过 Streamable HTTP。 远程服务在工作区中配置后即可从网页运行时运行。

交给智能体安装

把这段提示词粘贴到 Claude Code、Codex、Cursor 等智能体,或 SourceWeft 对话中。智能体会读取该服务器的安装指南,先向你展示发布者、端点和登录方式,经你同意后再把它添加到你的客户端。密钥不会写进任何命令。

阅读 https://sourceweft.com/mcp/io.github.snowbikemike%2Ftascan-mcp/install.md,并按其中说明把这个 MCP 服务器接入我的客户端。修改任何配置之前,先告诉我它的发布者、端点和登录方式,等我确认。不要把 API 密钥写进命令或我会提交的文件;问我密钥应从哪里获取。

查看智能体所依据的安装指南

其他 MCP 客户端

把它添加到你客户端的 mcpServers 配置中。

{
  "mcpServers": {
    "tascan": {
      "type": "http",
      "url": "https://app.tascan.io/mcp"
    }
  }
}

README

TaScan MCP Server

AI agent integration for TaScan — the closed-loop autonomous operations protocol. Manage projects, events, tasks, workers, QR codes, templates, completion reports, and AI-powered issue resolution through Claude, GitHub Copilot, or any MCP-compatible AI client.

Task. Scan. Done.

What is TaScan?

TaScan is a zero-download task assignment and verification platform for physical-world work. Workers scan a QR code, complete tasks with photo verification, and managers get real-time completion reports — no app download, no login, no training required.

When something breaks, AI analyzes the issue, generates fix instructions, and dispatches them to the right worker — closing the loop autonomously in under 10 seconds.

Industries: live events, construction, hospitality, warehousing, property management, healthcare, aviation, FEMA disaster response, and more.

10 Provisional Patents Filed — 265 claims, ~1000+ pages of specification. USPTO Applications #63/995,189 through #64/001,286.

Quickest Start: Claude.ai / Claude Mobile

No install required. Add TaScan as a custom connector in Claude:

  1. Settings > Connectors > Add custom connector
  2. Enter: https://app.tascan.io/mcp
  3. First time you use a tool, sign in with your TaScan email and password

That's it. Works on claude.ai and Claude mobile. Same sign-in experience as GitHub, Netlify, and Supabase connectors.


Installation (Claude Desktop / Claude Code)

bash
npm install tascan-mcp

Or run directly with npx:

bash
npx tascan-mcp

Configuration

Environment Variables

VariableRequiredDescription
TASCAN_API_KEYYesYour TaScan API key (generate in Admin Portal > Team > API Keys)
TASCAN_API_URLNoAPI base URL (default: https://app.tascan.io/api/v1)

Claude Desktop

Add to your Claude Desktop config file (claude_desktop_config.json):

json
{  "mcpServers": {    "tascan": {      "command": "npx",      "args": ["-y", "tascan-mcp"],      "env": {        "TASCAN_API_KEY": "your-api-key-here"      }    }  }}

Claude Code

bash
claude mcp add tascan -- npx -y tascan-mcp

Then set your API key in the environment.

Remote (claude.ai / Claude Mobile)

TaScan MCP is also available as a remote server — no install, no API key needed:

https://app.tascan.io/mcp

Add as a custom connector in Claude (Settings > Connectors). When you first use a tool, you'll be redirected to sign in with your TaScan email and password — just like connecting GitHub or Netlify. OAuth 2.0 with PKCE handles everything automatically.

Tools (36)

Projects

ToolDescriptionType
tascan_list_projectsList all projects in the organizationRead
tascan_get_projectGet details of a specific projectRead
tascan_create_projectCreate a new projectCreate
tascan_update_projectUpdate project name, location, status, datesUpdate
tascan_delete_projectDelete a project and all its contentsDelete

Events (Task Lists)

ToolDescriptionType
tascan_list_eventsList all events within a projectRead
tascan_get_eventGet event details including tasksRead
tascan_create_eventCreate a new event in a projectCreate
tascan_update_eventUpdate event name, description, modesUpdate
tascan_delete_eventDelete an event and all its tasksDelete

Tasks

ToolDescriptionType
tascan_list_tasksList all tasks in an eventRead
tascan_get_taskGet task details including completions; each completion carries photo_url (raw storage path) + photo_signed_url (fetchable, ~1h, null when no photo)Read
tascan_add_tasksBulk-create tasks in an eventCreate
tascan_update_taskUpdate task title, type, flags, orderUpdate
tascan_delete_taskDelete a task and its completionsDelete

Workers

ToolDescriptionType
tascan_list_workersList all workers in the organizationRead
tascan_create_workerCreate a new worker profileCreate
tascan_update_workerUpdate worker name, phone, emailUpdate

Operations

ToolDescriptionType
tascan_generate_qrGenerate a QR code for an eventCreate
tascan_apply_templateApply a pre-built template to an eventCreate
tascan_list_templatesList available task templatesRead
tascan_get_reportGet completion report for an event (optional include_responses returns submitted response data plus a per-task photos[] list of { path, signed_url, completed_at, worker_name })Read
tascan_generate_reportMint a shareable Completion / Service (client-branded, acknowledgeable) / Project / Evidence Pack link; optionally text itWrite
tascan_list_reportsExisting report links for a list or project with acknowledgment statusRead
tascan_invite_workerConsented intro to a marketplace worker: TaScan texts them, YES adds them to your org + sends the list, NO keeps them anonymousWrite
tascan_list_invitesYour marketplace invites and their status; accepted ones carry the worker's contactRead
tascan_zone_complianceHazard-zone audit: crossings, AI-verified PPE checkpoint verdicts, breaches, injuries cross-referenced with the last PPE check (zones now carry kind, required_ppe, task_list_on_enter, worker SMS rules)Read
tascan_create_invoiceCreate a client invoice from explicit line items OR from verified work (project / lists × hourly or flat rate); returns the share link and, for single-list invoices, a linked client Service ReportWrite
tascan_list_invoicesList invoices with status, totals, due dates, links; outstanding balanceRead
tascan_update_invoiceMark paid / overdue / cancelled, edit client details, notes, due dateWrite
tascan_query_responsesOne task's responses across every list in a project — chronological progression seriesRead

Closed-Loop Autonomous Operations (Patent Pending)

ToolDescriptionType
tascan_list_issuesList field-reported issues with filtering by status, category, severityRead
tascan_analyze_issueAI classifies issue severity, identifies root cause, and scores urgencyAI
tascan_recommend_fixAI generates ranked remediation tasks with step-by-step instructionsAI
tascan_auto_resolveFull closed loop in ONE call — issue in, AI analyzes, fix dispatched, loop closesAI

Communications

ToolDescriptionType
tascan_dispatch_instructionMulti-channel delivery of instructions to workers (SMS, email, QR)Create
tascan_send_task_emailSend task links and notifications via emailCreate
tascan_complete_taskMark a task as completed with optional response dataUpdate

AI Agent Coordination (Patent #10)

ToolDescriptionType
tascan_list_agentsList registered AI agents in the systemRead
tascan_register_agentRegister a new AI agent with capabilitiesCreate
tascan_dispatch_to_agentRoute a task to a specific AI agent for executionCreate

Usage Examples

Example 1: Set up a construction site inspection

User: Create a construction project for the Downtown Tower site and set up a daily safety inspection with tasks for PPE check, fall protection, scaffolding inspection, and fire extinguisher check. Make all tasks safety checkpoints that require photos.
Claude will:1. Call tascan_create_project with name "Downtown Tower" and location "123 Main St"2. Call tascan_create_event with name "Daily Safety Inspection"3. Call tascan_add_tasks with 4 safety checkpoint tasks requiring photos4. Call tascan_generate_qr to create a scannable QR code for the foreman

Example 2: AI-powered autonomous issue resolution

User: Check if there are any open issues on the Marriott load-in and have TaScan fix them automatically.
Claude will:1. Call tascan_list_issues to find open issues2. Call tascan_auto_resolve for each issue — AI analyzes root cause, generates fix tasks, and dispatches instructions to the nearest qualified worker via SMS3. Report back with resolution status and confidence scores

Example 3: Use templates to quickly deploy an event

User: We have a warehouse receiving shipment coming in tomorrow. Set up the standard receiving checklist.
Claude will:1. Call tascan_list_templates with category "logistics" to find available templates2. Call tascan_create_project for the warehouse3. Call tascan_create_event for the receiving session4. Call tascan_apply_template with the "warehouse-receiving" template slug5. Call tascan_generate_qr for the receiving dock crew

Example 4: Analyze and triage field issues

User: We have 5 open issues on the concert setup. Analyze them all and tell me which ones are most urgent.
Claude will:1. Call tascan_list_issues to get all open issues2. Call tascan_analyze_issue for each one — AI classifies severity, root cause probability, and urgency score3. Rank by urgency and recommend which to auto-resolve vs which need human attention

Task Types

Tasks support multiple response types:

TypeDescription
checkboxSimple done/not-done (default)
photoRequires photo upload to complete
textFree-text response
numberNumeric response
dateDate selection
choiceMultiple choice selection

Tasks can also be flagged as:

  • Safety checkpoints (is_safety_checkpoint: true) — highlighted in red, cannot be skipped
  • Photo required (requires_photo: true) — worker must attach a photo to complete

Getting an API Key

  1. Log in to the TaScan Admin Portal
  2. Navigate to Team in the sidebar
  3. Scroll to API Keys
  4. Click Generate API Key
  5. Copy the key (it's only shown once)
  6. Set it as TASCAN_API_KEY in your environment

API keys are scoped to your organization and support rate limiting (60 requests/minute).

Troubleshooting

"Connection failed" or OAuth redirect issues

  • Verify you're using the correct URL: https://app.tascan.io/mcp
  • Clear your browser cache and try reconnecting
  • If using Claude Desktop, restart the app after adding the connector

"Unauthorized" or 401 errors (local npm install)

  • Regenerate your API key in Admin Portal > Team > API Keys
  • Confirm TASCAN_API_KEY is set in your environment (not just in the config file)
  • Keys are organization-scoped — make sure you're using a key from the correct org

Tools not showing up in Claude

  • Disconnect and reconnect the TaScan connector
  • For Claude Code: run claude mcp list to verify the server is registered
  • Check that your TaScan account has an active organization (free tier is fine)

"Rate limited" errors

  • Default limit is 60 requests/minute per API key
  • Pro and Business tiers have higher limits
  • Batch operations (like tascan_add_tasks) are more efficient than individual calls

Task completions not appearing

  • Workers must submit via the task link (QR scan or direct URL)
  • Photo-required tasks won't show as complete until the photo uploads
  • Check the event's response mode (single vs. multi-response)

Photo evidence links

  • photo_url is the raw storage object path (stable, never changes). photo_signed_url is a fetchable HTTPS link that expires after ~1 hour (server default TASCAN_PHOTO_URL_TTL=3600). Re-run the read tool for a fresh link; never store the signed URL.
  • photo_signed_url: null with a non-null photo_url means signing was unavailable at read time (storage hiccup). The read still succeeds — retry for the link.

Changelog

v3.15.0 — 2026-09-19

  • tascan_create_cycle gains an optional reviews[] array — a multi-lens review panel (design item 14a): 1–8 lenses, each {lens, brief, provider: openai|anthropic|gemini, model?, blocking? (default true), max_tool_calls? (openai only)}, forwarded to POST /coord/cycles; at least one lens must be blocking. Omit it for the single OpenAI review.
  • tascan_get_cycle_report prints review[<lens>] for panel review steps; legacy steps print review unchanged.
  • 79 tools, no new tool, scopes unchanged.

v3.14.1 — 2026-09-18

  • tascan_create_cycle: new optional repo argument — which codebase on the executor the build runs in, an alias from the executor's allowlist (tascan-agent/repos.json; default tascan). artifact_paths are relative to that repo. An unknown alias is refused by the executor (repo_unknown) and the cycle parks — the protocol can now build, review and gate work in any project the executor lists, not only TaScan itself (migration 161).
  • 78 tools.

v3.14.0 — 2026-09-18

  • Coordination layer live (migration 155): tascan_create_cycle, tascan_get_cycle_report, tascan_get_build, tascan_get_build_file, tascan_post_message now run against the released schema — build → independent review → one human decision → integrate, with signed receipts at every step.
  • Scheduled SMS (migration 157): tascan_schedule_sms (full tier), tascan_list_scheduled_sms (read), tascan_cancel_scheduled_sms (full) — TaScan's own 5-minute scheduler sends through the same guarded lane as tascan_send_sms; nothing outside TaScan has to stay awake.
  • tascan_get_receipt: profile argument (full | public); public-profile receipts are now published for the protocol page's build trail.
  • 78 tools. Hosted MCP (https://app.tascan.io/mcp) already serves this version; this release brings the stdio package to parity.

v3.13.1 — 2026-09-14

  • Docs only. tascan_get_task and tascan_get_receipt now say it plainly: a completion with status completed means the executor returned and a result was recorded — it does not mean the result was accepted. Acceptance is the receipt's verification.result under a named policy, and in v0.1 no policy runs for agent tasks (no_policy_run), so read the recorded response before treating an agent completion as success (protocol §8.3 C11). The receipt description also lists the eleven-step verifier (65,536-byte size gate, real-calendar datetimes, GPS bounds, token-free locators, verifier.identity vocabulary). No tool additions — still 70 tools.

v3.13.0 — 2026-09-14

  • Authorization scopes. Every key and OAuth grant now carries a tier — read, write, or full — plus two additive permissions: agent:dispatch (hand PLAN/RESEARCH/WRITE/REVIEW/DEFAULT tasks to an AI agent inbox) and agent:dispatch:code (CODE/SHELL tasks, which run on the org's own machine). Tools are classified in scopes.cjs; a call outside the grant returns an isError result naming the scope to reconnect with. Existing OAuth connections must reconnect and tick the dispatch boxes on the consent page to dispatch again.
  • tascan_get_receipt (new, 70 tools). Fetches the signed Action Receipt (Ed25519 JWS, TaScan Protocol v0.1) for one completion: what was done, by whom, evidence hashes, verification, ledger chain head — with per-field provenance. Verify offline against https://app.tascan.io/.well-known/tascan-receipt-keys.json or online via POST /api/v1/receipts/verify. Spec: https://app.tascan.io/docs/protocol/TASCAN-PROTOCOL-v0.1.md
  • tascan_get_task reports an agent block (execution attempts: state, attempts, runner, trace id, error) for tasks dispatched to an agent — the only place agent failures are surfaced.
  • tascan_dispatch_to_agent keeps the full instruction in the task description; the urgent marker no longer breaks routing.

v3.12.0 — 2026-09-12

  • tascan_send_task_email and tascan_assess_condition now send the caller's API key (the TaScan functions behind them require it after the S99 security sweep). No tool additions — still 69 tools.

v3.11.0 — 2026-09-11

  • Signed photo URLs in every completion payload. Photo evidence was invisible to AI agents: photo_url was a bare private-bucket path with no host or token. Every read path that returns a completion now also returns photo_signed_url (short-lived, default 1h, tunable via TASCAN_PHOTO_URL_TTL), null when there is no photo. Covered: tascan_get_task (task + subtask completions), tascan_get_report (new per-task photos[] when include_responses is true, replacing the bare [+photo] marker), tascan_list_subtasks, tascan_query_responses, tascan_list_issues / issue analysis (issue + injury photos), tascan_zone_compliance (PPE checkpoint photos), tascan_condition_history (assessment + baseline photos).
  • One batched storage signing call per response (a 40-task list fires one request, not 40). Signing failures log and degrade to photo_signed_url: null with the raw path intact; the tool call never fails.
  • Single shared signing helper on the server (photo-sign-lib) now backs the API, the photo proxy used by the Completion / Client / Project / Evidence Pack reports, and every AI vision fetcher, so URL construction cannot drift again.
  • Remote endpoint serverInfo.version now reads from this package instead of a stale hardcoded string.

v3.10.0 — 2026-09-03

  • 69 tools: invoices, P2P worker payments, hazard zones with AI-verified PPE checkpoints, full RLS lockdown, agent claims.

Privacy Policy

TaScan collects and processes task completion data, worker information (name, phone, email), GPS coordinates (with consent), and photos uploaded during task completion. Data is stored securely in Supabase with row-level security policies. API access is authenticated and rate-limited.

For the full privacy policy, visit: https://tascan.io/faq.html

For data deletion requests or privacy inquiries, contact: [email protected]

Support

License

MIT License - Copyright (c) 2026 Michael Edward Love II / Love Productions LLC

来源:README.md,提交 68cfcb9

工具

116

tascan_list_projects

List Projects

List TaScan projects in the organization (each with its number, e.g. P-00001, and external_refs). Optional filters: status (exact, comma list), number (exact) and ref (matches any external_refs[].ref exactly, e.g. a customer job number like P14-4680).

输入参数refnumberstatus

tascan_create_project

Create Project

Create a new TaScan project (top-level container for events). number is optional (the next P-number is assigned when omitted; a number already used in the org is refused 409). external_refs links customer job numbers.

输入参数name必填numberlocationexternal_refs

tascan_get_project

Get Project

Get details of a specific project

输入参数project_id必填

tascan_update_project

Update Project

Update a project (name, location, status, dates, number, external_refs). A number already used in the org is refused 409; external_refs replaces the whole list.

输入参数namenumberstatusend_datelocationproject_id必填start_dateexternal_refs

tascan_delete_project

Delete Project

Delete a project and all its events, tasks, and completions. This action is irreversible.

输入参数project_id必填

tascan_create_event

Create Event

Create a new event (task list) within a project. Supports team_mode (shared completions) and multi_instance (each worker gets isolated copy — great for surveys, onboarding, info collection). team_mode and multi_instance cannot both be true.

输入参数name必填team_modeproject_id必填descriptionmulti_instanceassigned_worker_ids

tascan_list_events

List Events

List all events (task lists) within a project

输入参数project_id必填

tascan_get_event

Get Event

Get details of a specific event (task list) including its tasks

输入参数list_id必填

tascan_update_event

Update Event

Update an event / task list (name, description, team_mode, multi_instance, timer_mode). team_mode and multi_instance cannot both be true.

输入参数namelist_id必填team_modetimer_modedescriptionmulti_instanceassigned_worker_ids

tascan_delete_event

Delete Event

Delete an event (task list) and all its tasks and completions. This action is irreversible.

输入参数list_id必填

tascan_add_tasks

Add Tasks

Add one or more tasks to an event (task list). Supports bulk creation. IMPORTANT: Set response_type correctly — use "text" for info collection (names, phones, emails, notes), "photo" for visual verification (inspections, serial numbers, damage checks), "checkbox" only for simple confirmations. NOTE: To dispatch tasks to an AI agent use tascan_dispatch_to_agent instead. Writing into an agent inbox list requires the agent:dispatch permission (agent:dispatch:code for CODE:/SHELL: titles) — without it the call is refused.

输入参数tasks必填list_id必填idempotency_key

tascan_get_signature_bundle

Get Signature Bundle

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.

输入参数signature_assertion_id必填

tascan_dispatch_to_agent

Dispatch to AI Agent

PREFERRED tool for sending work to an AI agent. Dispatches a task to the agent's inbox — picked up and executed automatically. No list ID needed. REQUIRES the agent:dispatch permission on this connection (CODE:/SHELL: tasks also require agent:dispatch:code) — reconnect and tick the agent checkbox(es) if refused. Routing is by TITLE PREFIX only: CODE: SHELL: PLAN: MCP: → local Claude Code on Mike's PC; RESEARCH: WRITE: REVIEW: → cloud; no prefix (DEFAULT) → local while the PC agent is alive, else cloud. The cloud agent refuses CODE/SHELL/PLAN/MCP. Use "agent" param to target a specific agent (default: claude-code-local). Use tascan_list_agents to discover available agents; track progress with tascan_get_task (its "agent" block).

输入参数task必填agentpriority

tascan_list_agents

List AI Agents

List all registered AI agents with their capabilities, inbox IDs, and status. Like reading input labels on a video matrix — discover which agents are available and what they can do before dispatching work.

无需输入参数。

tascan_register_agent

Register AI Agent

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.

输入参数id必填name必填type必填modelinbox_id必填locationworker_iddescriptioncapabilities必填

tascan_list_tasks

List Tasks

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.

输入参数statuslist_id必填

tascan_get_task

Get Task

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

输入参数task_id必填

tascan_get_receipt

Get Action Receipt

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.

输入参数profilecompletion_id必填

tascan_update_task

Update Task

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:.

输入参数titletask_id必填sort_orderassigned_todescriptionresponse_typerequires_photoresponse_configrequired_equipmentis_safety_checkpoint

tascan_reply_with_list

Reply With a List

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.

输入参数tasks必填title必填author_nameparent_list_id必填

tascan_add_subtasks

Add Subtasks

Add one or more subtasks to a task (bulk). Subtasks support typed responses: "number" for per-set data (reps, weight, distance), "text" for notes, "choice" for options, "checkbox" for simple steps. Set-logging example: task "Bench Press" with subtasks Set 1/Set 2/Set 3 each response_type "number" — each completed set stores its value and timestamp, giving per-set timing for progression tracking.

输入参数task_id必填subtasks必填

tascan_list_subtasks

List Subtasks

List the subtasks of a task, including completion state, stored response values, and completion timestamps (per-set timing).

输入参数task_id必填

tascan_update_subtask

Update Subtask

Update a subtask (title, description, response_type, response_config, requires_photo, sort_order).

输入参数titlesort_ordersubtask_id必填descriptionresponse_typerequires_photoresponse_config

tascan_complete_subtask

Complete Subtask

Complete a subtask, optionally recording a typed response_value (e.g. the weight or reps for that set). Each completion is timestamped, so consecutive set completions yield per-set durations. Returns progress including all_subtasks_complete — when true, complete the parent task with tascan_complete_task.

输入参数notesworker_idsubtask_id必填response_value

tascan_delete_subtask

Delete Subtask

Delete a subtask and its completions. This action is irreversible.

输入参数subtask_id必填

tascan_delete_task

Delete Task

Delete a specific task and its completions. This action is irreversible.

输入参数task_id必填

tascan_complete_task

Complete Task

Complete an ORDINARY task on behalf of a worker. Inserts a completion record and timer event. Use this to simulate or record task completions via the API. Coordination-cycle tasks (a CODE:/REVIEW: build or review, a Decision / Question / Integrate / Parked card on a project Decisions list — tasks that carry `coord`) are refused with 403 for every key tier: builds and reviews are completed by their runner, decisions only by the human on the worker page.

输入参数notestask_id必填worker_id必填response_value

tascan_list_workers

List Workers

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

输入参数queryhas_emailhas_phoneactor_kindactive_sinceinclude_inactive

tascan_create_worker

Create Worker

Create a new worker (taskee) in the organization

输入参数name必填emailphone

tascan_update_worker

Update Worker

Update a worker profile (name, phone, email, actor_kind). Changing actor_kind to or from agent or admin is refused for every key: only an org owner or admin, signed in to the portal, can do that.

输入参数nameemailphoneworker_id必填actor_kind

tascan_generate_qr

Generate QR Code

Generate a QR code for a task list (event) that workers can scan to access tasks. TaScan draws the QR itself (an SVG, also returned as a data: URI in qr_image_url); no third-party QR service ever sees the link.

输入参数stylelist_id必填

tascan_share_list

Share Task List

Get a task list's share link and its QR code (an SVG drawn by TaScan; no third-party QR service), and optionally send the link to one person: send.phone or send.worker_id texts it through TaScan's guarded SMS lane (recipient must be known to your org, STOP opt-outs and limits apply), send.email e-mails it. Write tier for the link; sending needs the full access level. style is reserved for saved QR styles and ignored today.

输入参数sendstylelist_id必填

tascan_apply_template

Apply Template

Apply a pre-built template to a task list, adding all template tasks

输入参数list_id必填template_slug必填

tascan_list_templates

List Templates

List available task templates (built-in and saved)

输入参数category

tascan_get_report

Get Report

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.

输入参数list_id必填include_responses

tascan_query_responses

Query Task Responses Across Lists

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.

输入参数task必填limitproject_id必填

tascan_list_issues

List Issues

List all issues for a task list (event). Returns open, acknowledged, and resolved issues with severity, type, and category. Use this to discover issues that need AI analysis via tascan_analyze_issue.

输入参数list_id必填

tascan_analyze_issue

Analyze Issue

Step 1 of the Closed-Loop Autonomous Operations Protocol. Retrieves full issue context including worker info, message thread, project history, and recent similar issues. Use this data to reason about the root cause and generate a remediation plan. Also supports server-side AI analysis via POST (calls Anthropic API directly).

输入参数issue_id必填server_side_ai

tascan_recommend_fix

Recommend Fix

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.

输入参数ai_agentissue_id必填recommendation必填structured_recommendation

tascan_dispatch_instruction

Dispatch Instruction

Step 3 of the Closed-Loop Autonomous Operations Protocol. Dispatches remediation to the worker via MULTI-CHANNEL delivery: (1) issue thread message, (2) in-app notification, (3) progress feed update, (4) SMS if phone on file, (5) optional remediation task list creation. Closes the loop from digital AI analysis to physical worker execution.

输入参数ai_agentissue_id必填send_smsworker_idinstruction必填remediation_tasksrecommendation_summary

tascan_auto_resolve

Auto-Resolve Issue

FULL Closed-Loop Autonomous Operations Protocol in one call. Server-side AI analyzes the issue, generates remediation tasks, creates a task list, and dispatches to the worker — all without human intervention. This executes Patent Claim 7: autonomous operations from issue detection through physical-world instruction delivery.

输入参数issue_id必填

tascan_send_sms

Send SMS

Send a transactional TaScan SMS text to a worker (by worker_id, using their phone on file) or to a raw phone number. Optionally attach a task list — the recipient gets a tap-to-open checklist link. Attach images (MMS) with media_url (public https image URL) or media_base64 + media_type (jpeg/png/gif, max 3.5 MB) — e.g. a diagram, a tutorial photo or a site photo; the message text is optional when an image is attached. 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.

输入参数phonelist_idmessagemedia_urlworker_idmedia_typeinclude_linkmedia_base64idempotency_key

tascan_schedule_sms

Schedule SMS

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.

输入参数phonelist_idmessage必填send_at必填worker_idinclude_linkidempotency_key

tascan_list_scheduled_sms

List Scheduled SMS

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.

输入参数status

tascan_cancel_scheduled_sms

Cancel Scheduled SMS

Cancel a scheduled text that has not been sent yet (status pending). A row already sending, sent, failed or cancelled is refused (409) — a sent text cannot be recalled.

输入参数id必填

tascan_get_sms_status

Get SMS Status

Check delivery status of a previously sent TaScan SMS by its Twilio SID (returned by tascan_send_sms). Shows queued/sent/delivered/undelivered/failed plus carrier error codes.

输入参数twilio_sid必填

tascan_send_task_email

Send Task Email

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.

输入参数list_id必填messagesubjecttask_idto_nameto_email必填include_qr

tascan_register_tag

Register NFC Tag

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.

输入参数task_idtag_name必填project_idtarget_type必填task_list_idtag_hardware_id必填location_description

tascan_list_tags

List NFC Tags

List all registered NFC tags in the organization with their linked projects/task lists and scan counts

无需输入参数。

tascan_get_scan_history

Get Scan History

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

输入参数limitsincesourcetag_idproject_idtask_list_id

tascan_search_marketplace

Search Worker Marketplace

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.

输入参数qcitylimitavailablemin_completions

tascan_invite_worker

Invite Marketplace Worker

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.

输入参数list_id必填messageworker_id必填

tascan_list_invites

List Marketplace Invites

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.

输入参数status

tascan_create_zone

Create Geofenced Zone

Create a geofenced work zone. Delivery zones route workers who open the project Site Gate (geo.html?project=...) to this zone's task list when GPS places them inside the radius. Set enforce_on_list=true to zone-lock the task list — workers cannot start it from outside the zone.

输入参数lat必填lng必填kindname必填polygonradius_mproject_iddescriptionnotify_emailrequired_ppetask_list_idauto_clock_in另有 10 个

tascan_list_zones

List Geofenced Zones

List geofenced work zones, optionally filtered by project. Shows center, radius, routing target, and zone-lock status.

输入参数project_id

tascan_update_zone

Update Geofenced Zone

Update a geofenced zone — move the center, resize the radius, change the routing target, toggle zone-lock, or deactivate it (is_active=false).

输入参数latlngkindnamepolygonzone_id必填radius_mis_activenotify_emailrequired_ppetask_list_idauto_clock_in另有 10 个

tascan_zone_compliance

Zone Compliance Audit

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.

输入参数sinceuntilzone_idworker_idproject_id

tascan_register_asset

Register Condition Asset

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必填asset_typeproject_iddescriptionserial_numberlocation_description

tascan_assess_condition

Assess Asset Condition

Run an AI condition assessment of an asset from a photo. The model scores 0-100 with the asset's full assessment history in context, so it reads degradation over time — returning the Condition Delta Score vs the previous assessment, defects, wear indicators, maintenance recommendations, and a degradation trajectory. Sensor-free predictive maintenance.

输入参数asset_id必填photo_url必填worker_name

tascan_condition_history

Get Condition History

Get an asset's longitudinal condition history — score trend over time, every assessment with grade, delta, findings, and who assessed it. The per-serial-number condition ledger.

输入参数asset_id必填

tascan_list_assets

List Condition Assets

List registered condition-ledger assets with their latest condition scores. Use to recover an asset_id for tascan_assess_condition or tascan_condition_history.

输入参数project_id

tascan_generate_report

Generate Report Link

Mint a shareable report and get its link. Types: completion (full proof-of-work for one list: tasks, responses, subtasks, photos, GPS + place names, timing, QR pair), service (client-facing version of a list with YOUR company branding and a Client Acknowledgment button — the ack files into the list thread), project (every list in a project rolled up), evidence (compliance Evidence Pack; admin sign-in required to view). Links are stable — the same list/project returns the same link. Optionally text the link to a phone through the TaScan SMS lane.

输入参数type必填list_idmessagesend_noteproject_idshow_issuescompany_nameshow_workerssend_to_phone

tascan_list_reports

List Report Links

List existing report links for a list or project (completion / service / project / evidence), newest first, with client acknowledgment status for service reports.

输入参数list_idproject_id

tascan_create_invoice

Create Invoice

Create a client invoice and get its shareable link. Two ways to bill: (a) pass explicit line_items, or (b) pass project_id or task_list_ids plus hourly_rate (quarter-hour billing from first→last verified completion per list) or flat_rate_per_list, and TaScan builds one line per list from VERIFIED work ("<list> — 7/7 tasks verified · Sep 1 · 1.25h"); lists with no completions are skipped. A single-list invoice also mints a client-facing Service Report (acknowledge → pay) and links it. Returns invoice number, totals, url, and the work it billed.

输入参数notesstatusbillingdue_datetax_ratemin_hoursline_itemsproject_idclient_name必填hourly_rateclient_emailclient_phone另有 5 个

tascan_list_invoices

List Invoices

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.

输入参数statusproject_id

tascan_update_invoice

Update Invoice

Update an invoice: mark it paid (records paid_at), overdue, cancelled, or edit client details / notes / due date.

输入参数notesstatuspaid_atdue_dateinvoice_id必填client_nameclient_emailclient_phone

tascan_request_payment

Request Verified Payment

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

输入参数memoworker_id必填payer_namepayer_email必填amount_cents必填task_list_id必填idempotency_key

tascan_list_payments

List Gig Payments

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.

输入参数statustask_list_id

tascan_get_worker_passport

Get Worker Passport

Get a worker's verified work passport — task counts, lists worked, photos submitted, GPS-verified hours, points, streaks, and earned merit badges, all computed from real completion data (not self-reported). Includes the shareable profile URL.

输入参数worker_id必填

tascan_server_info

Server Info

Identify exactly which TaScan server and schema this MCP session is talking to. Call this FIRST when diagnosing anything — it makes "dev server masquerading as production" and "is my fix deployed yet" one tool call instead of an inference.

无需输入参数。

tascan_find

Find Anything

Cross-entity search: find projects (by name, project number or customer job number in external_refs; each with its status), task lists, tasks, workers, condition assets, sites (by name, address or client company) or work orders (by number or description) in one call — with ids and parent context to disambiguate. Use this instead of walking projects→lists→tasks or guessing ids from display names.

输入参数typequery必填

tascan_get_worker

Get Worker

Ungated, plain read of one worker row: name, contact, org, points, streaks, timestamps. (tascan_get_worker_passport is the rich stats view; this is the boring lookup.)

输入参数worker_id必填

tascan_find_duplicate_workers

Find Duplicate Workers

Find candidate same-person worker records with per-signal match detail (Patent 4 §6.25(b) signals: phone reuse, name similarity, GPS pattern correlation). Turns identity fragmentation from an accidental discovery into a monitorable metric, and feeds the merge workflow its candidate list.

输入参数namethresholdworker_idinclude_orphans

tascan_merge_workers

Merge Workers

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.

输入参数dry_runprimary_worker_id必填duplicate_worker_ids必填

tascan_delete_worker

Delete Worker

Tombstone a worker record (is_active=false). REFUSES if the worker has any task/subtask completions or payments — merge those into the real worker with tascan_merge_workers instead. Never hard-deletes.

输入参数worker_id必填

tascan_create_cycle

Create Cycle

Start an unattended build-review-decide cycle (protocol v0.2). Queues T1 CODE: (or SHELL:) with your build_brief on the AI Inbox and T2 REVIEW: with your review_brief, born blocked on T1. T1 (2026-09-24 throughput): kind=review_only mints T1 as CAPTURE: instead — the executor stores the bundle from the repo at HEAD without a model call and the review runs on that; dry_run=true runs the dispatch PREFLIGHT only (nothing queued) and prints every problem at once (codes title_too_long, brief_rule, brief_names_unbundled_path, artifact_over_cap, migration_as_context (tascan repo only), idempotency_replay, kind_invalid — bad kind, bad revisable_by, review_only + task_type SHELL/RESEARCH, review_only + max_questions 0), then what the API could NOT check (unchecked[]: artifact_missing_at_head always — only the executor sees the repo, and a CAPTURE naming a missing path fails with "[artifact_missing_at_head]" in its error; artifact_over_cap for any path without a byte count — pass artifact_bytes; idempotency_replay only if its lookup failed) and warnings[] (a build_brief naming a context file outside the bundle); a real create that the API refuses prints the same problems[] list (when the transport hands the tool only the first problem's text, the tool re-runs the preflight and prints the whole list). The local executor builds, stores the exact bytes of artifact_paths as a bundle (build_ref = sha256 over the manifest), the independent reviewer reviews THAT bundle, an approve verdict mints a Decision task for the human authority (one SMS), Approve mints an Integrate task for the deploy id. Revise verdicts spawn revisions (cap max_revisions, default 3); reject, human Reject, scope violations or exhausted revisions PARK the cycle (a Parked task with Resume with notes / Close). REQUIRES agent:dispatch:code. Duplicate protection: the same idempotency_key, or (keyless) the same briefs + paths on a live root, within 24 h is refused by the preflight as idempotency_replay (400, nothing

输入参数kindrepotitle必填dry_runreviewstask_typeproject_id必填build_brief必填preview_urlreview_brief必填revisable_bymax_questions另有 9 个

tascan_post_message

Post Trail Message

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.

输入参数body必填kind必填task_id必填reply_toaddresseebuild_refidempotency_key

tascan_record_integration

Record Integration

D4: the dispatcher records the Netlify deploy id for an authorized cycle — Integrate cards stop landing on Mike for something a key can prove instead (protocol v0.2, migration 181, coord_record_integration). Requires agent:dispatch. The root must be `authorized` (its checkpoint already Approved) with an open Integrate task; deploy_id must be a real Netlify deploy id — 24 lowercase hex, optionally "deployed:<id>" and/or a trailing build-ref hex prefix ("Deploy" and anything else is refused, bad_deploy_id). On success the root flips to `integrated`, the existing "Integrated: deploy …" trail note is posted, and the completion is stamped with your key as the actor (source api:key:<id>) — never as a human on the page. Idempotent: replaying the SAME deploy_id after the root is already integrated returns the same completion (replayed:true); a DIFFERENT deploy_id after integration is refused (409) without changing anything. A human may still complete the Integrate card on the worker page as an ops fallback, but only with a real deploy id too.

输入参数noteroot_id必填deploy_id必填

tascan_get_build

Get Build Manifest

Manifest of a stored build bundle by build_ref (protocol v0.2 build_artifacts): the exact files the executor produced for the cycle's artifact_paths, each with sha256, byte length and whether text content is stored (binary or over-cap files keep the sha only). build_ref = sha256 over the manifest, computed in the database once; the reviewer reviews THESE bytes, the human approves THIS ref, the integrate task records THIS ref. Read tier. Use tascan_get_build_file to read a file. Truncated at 12000 chars. Reading the manifest is discovery, not a read of any file.

输入参数build_ref必填

tascan_get_build_file

Get Build File

Read one file from a stored build bundle by build_ref and path (protocol v0.2 build_artifacts) — the exact bytes the executor produced, not a working-tree read. Returns up to 12000 chars per call with offset/limit paging (next_offset when truncated), plus the file's sha256 and byte length. Binary or over-cap files return no content (the sha256 still binds them). Read tier; this is what the independent reviewer reads. The header lines (path, build, sha256, chars a-b of total) are the record a reviewer's read is bound to; read every chunk until the range covers the whole file.

输入参数path必填limitoffsetbuild_ref必填

tascan_get_cycle_report

Get Cycle Report

The audit report of one coordination cycle by its root task id (protocol v0.2, get_cycle_report): every step task (build, review, checkpoint, integrate, question, parked) with its revision and state, every execution attempt with runner, outcome, build_ref and usage/cost, every completion (receipt id = completion id, receipt hash), every reviewer verdict, every human decision and answer, the full trail (messages), the ledger events and the hash-chain verdict per task, plus spend against the cap. A computed summary (stage, attempts, verdicts, decisions, receipts, spend, chains_ok) comes first; pass full=true for the complete JSON (large). Read tier. This is the ONLY per-cycle notification surface: cycle steps do not e-mail or text anyone except the one checkpoint / human-question SMS.

输入参数fullroot_id必填

tascan_project_digest

Project Digest

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.

输入参数project_id必填

tascan_list_cycles

List Cycles

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.

输入参数limitstatusproject_id

tascan_get_task_trail

Get Task Trail

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.

输入参数kindssincetask_id必填

tascan_verify_receipt

Verify Receipt

Independently verify a TaScan Action Receipt JWS (protocol 6.8, POST /receipts/verify): size, envelope, signature, issuer origin, key lifecycle, hashing profile, value semantics, schema and chain check, with an online issued/serial check for the reference issuer. Public route: no TaScan scope is required by the API itself, though this MCP connection still needs some valid key to place any tools/call. Works for both the full and the public export profile. Keys come only from the issuer's own well-known key document (https://app.tascan.io/.well-known/tascan-receipt-keys.json for the reference issuer, or the equivalent well-known path for a foreign one) — this tool never supplies keys itself. Never verifies locally — always calls the reference verifier.

输入参数jws必填

tascan_get_build_diff

Submit Build Diff

Store an already-computed diff for one file of a build bundle against a base commit (protocol v0.2 item 6, POST /coord/builds/:build_ref/diff — the parser has no GET for this path; a deployed function ships no git object database, so tascan-agent/deployer.js computes the diff text with its own persistent worktree and this route only validates + stores it via coord_set_artifact_diff). build_sha256 must equal the artifact's own stored sha256 or the call is refused; storing a diff replaces that file's stored full content with the diff going forward. There is currently no REST route that reads a stored diff back (GET /builds/:build_ref and /builds/:build_ref/file do not surface it) — this tool only writes one. Requires agent:dispatch.

输入参数path必填text必填base_ref必填build_ref必填truncatedbase_sha256build_sha256必填

tascan_dispatcher_action

Dispatcher Action

Record a chief-of-staff dispatcher action on a coordination cycle as a receipt (protocol v0.2 D6, POST /coord/cycles/:root/dispatcher-actions): hand_review_approve, hand_review_revise, park, bundle_recovery, migration_apply, deploy or decision. Mints a completed task + completion under the Chief of Staff worker and a dispatcher_action ledger event on the root. kind=deploy additionally requires evidence.deploy_id (a Netlify deploy id) and composes the same integrate-as-note every root gets with coord_record_integration when the root is authorized — one call that does both records. Requires agent:dispatch.

输入参数kind必填root_id必填summary必填evidence

tascan_post_evidence

Post Evidence

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.

输入参数actor必填action必填object必填locationprovenancecorrelationoccurred_at必填idempotency_key必填

tascan_evidence_policy

Evidence Policy

Read or author a task's evidence policy (protocol v0.2 V9b, GET|PUT /evidence/policy/:task_id — one route, two methods, so one tool). action=get evaluates the pinned policy against the evidence ledger so far: whether it is usable and satisfied, and its progress (read tier). action=set authors/updates a policy in your org's namespace when definition is given (definition.require is a non-empty array of requirement objects; definition.min_count, when set, must be an integer from 1 through definition.require.length) or, when definition is omitted, pins the task to an existing active policy_id (write tier).

输入参数action必填task_id必填versionpolicy_iddefinition

tascan_request_verification

Request Verification

Enqueue an autonomous verification job for a task completion (Verification Layer V2 + V7 doc_check, POST /completions/:completion_id/verification-jobs): http_probe checks a URL (params url, and optionally expect_status, expect_content_type, expect_sha256), doc_check runs a named policy against params.url and params.policy_id. Read the result with tascan_list_verifications once the job runs. Write tier.

输入参数params必填run_atcheck_type必填completion_id必填idempotency_key

tascan_list_verifications

List Verifications

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.

输入参数completion_id必填

tascan_org_analytics

Org Analytics

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.

输入参数view必填limitoffsetpatterncategoryseverity

tascan_get_usage

Get Usage

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.

输入参数by_keyperiod

tascan_get_budget

Get Budget

Read THIS credential's own per-key action budget (GET /budget): daily limits (sms, invites, payment-request cents per day and per request, dispatch, human pages) and today's spend against them. A NULL limit (or no budget row at all) means unlimited on that counter. A key can only ever see its OWN budget, never another key's (I-3, no tool or key ever reads another key's row). Read tier.

无需输入参数。

tascan_delegate_to_agent

Delegate To Agent

Mint a time-limited, NARROWER child API key (POST /delegations, roadmap #11) — only read/write scopes may be requested; full, agent:dispatch, agent:dispatch:code, device:admin, delegate and webhooks:manage are always refused by name (I-6). TTL defaults to 1 hour (3600s), clamps to [60 seconds, 24 hours], and clamps further to THIS key's own expiry if it has one — a delegated key can never outlive its grantor. The child's tier is always a SUBSET of this key's own effective tier, never wider or lateral. Requires the delegate permission (owner-only to grant, requires full). The returned raw key is shown to you exactly ONCE — it is never stored server-side and cannot be retrieved again (I-10). Revoking this key (or any ancestor) cascades immediately to every key it delegated.

输入参数rolemodelscopes必填vendoragent_idttl_secondsdisplay_nameresource_constraints

tascan_list_delegations

List Delegations

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.

无需输入参数。

tascan_revoke_delegation

Revoke Delegation

Revoke a delegated child key immediately (DELETE /delegations/:key_id) — self-revoke, revoke by an ancestor key, or by an admin session of the org; any other caller is refused. Revoking cascades to every key IT delegated, in turn (the database trigger, not application code). Idempotent: revoking an already-revoked key reports already_revoked, no error.

输入参数key_id必填

tascan_list_connectors

List Connectors

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.

无需输入参数。

tascan_get_org

Get Organization

Read the organization profile (GET /org): id, name, industry, logo, time zone and the admin phone MASKED to its last 4 digits (a tool never sees the full number). Read tier. Editing the organization is done by an owner or admin in the TaScan portal, not by any tool.

无需输入参数。

tascan_list_sites

List Sites

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.

输入参数qactiveproject_id

tascan_get_site

Get Site

Read one site with the projects and task lists linked to it. Read tier.

输入参数site_id必填

tascan_create_site

Create Site

Create a site (a job location) in the organization: name (1-200 characters) and optionally address, lat + lng (together), client_company and external_key (unique in your org: a second site with the same key is refused 409). Write tier.

输入参数latlngname必填addressexternal_keyclient_company

tascan_update_site

Update Site

Update a site (name, address, lat + lng, client_company, external_key, is_active). is_active false deactivates it (the soft delete: its links, work orders and visits stay). Write tier.

输入参数latlngnameaddresssite_id必填is_activeexternal_keyclient_company

tascan_today

Today Summary

The organization's Today summary (GET /today), counted exactly like the portal's Today: due_today, closed_today, awaiting_check, retake, photos_verified_7d and the needs list (each item's first reason of retake, issue, review, overdue, due_today). Archived, completed and demo projects never count (demo only with demo=true). The day is in zone (an IANA zone), else the org time zone, else UTC (timezone_fallback true). Read tier.

输入参数demozone

tascan_quickstart

Quickstart: First Verified Receipt

One action to a genuinely verified receipt (POST /quickstart). Under your org it reuses-or-creates the project "TaScan Quickstart", its list "Quickstart" and the worker "Quickstart executor", adds a NEW task "Reply with the exact text: <expected>", completes it with your key, has the named policy quickstart_exact_output v1 compare the response to the expected text (verified or refuted, signed into the receipt), and publishes the receipt's public profile. expected defaults to "VERIFIED" (max 200 chars); response defaults to expected — pass a different response to see a refuted receipt. Returns the receipt URL and the public verify URL. Write tier.

输入参数expectedresponse

tascan_list_devices

List Devices

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.

输入参数kindlimitcursorstatus

tascan_get_device

Get Device

Get one device by id: kind, name, status, location zone, credential rotation timestamps, revocation reason, and the last 20 evidence_events ids it produced. Never returns a credential hash.

输入参数device_id必填

tascan_revoke_device

Revoke Device

Revoke a device credential immediately — the kill switch for a lost, stolen, or decommissioned device (RFID portal, barcode gun, PLC, camera, robot, tool, sensor). Its next evidence post is refused. Idempotent: revoking an already-revoked device reports already_revoked and mints no second receipt. Requires the device:admin permission (owner-only, needs full, never reachable through OAuth).

输入参数reasondevice_id必填

tascan_create_fanout

Create Fan-out

Create a fan-out: 1-30 seats (RESEARCH by default, or LOCAL subagent seats) plus one synthesizer under ONE cycle root (POST /coord/fanouts). No Decision cards, Parked cards or pages per seat: only a control action or the closing roll-up reaches a human. Needs an API key with agent:dispatch:code (an admin session has no dispatch budget: key_required). dry_run true runs the same validation and ceiling/cap pre-check and returns dry_run, plan_sha256, seats and problems without spending budget or creating anything. Otherwise it consumes seats + 1 dispatch units BEFORE the create; a refusal only the database can see (cap_below_plan, fanout_open_limit, bad agent_id, reserve_floor_unset) still consumes them, by design. Fails fanout_ceiling_unset until the owner sets a ceiling, over_ceiling when cap exceeds it. idempotency_key replays a duplicate within 24h on the same plan, else idempotency_body_mismatch. Every seat, the synth and the roll-up leave a signed completion. Track with tascan_get_fanout.

输入参数cap必填seats必填synth必填title必填canarymin_okdry_runbreaker_kproject_id必填seat_reviewdeadline_minseat_defaults另有 1 个

tascan_get_fanout

Get Fan-out

Read a fan-out (GET /coord/fanouts/:id?view=). view=status (default): state, seat counts, spend, cap, synth_deadline_at, poll_after_s. view=report: the full cycle report (get_cycle_report) — every seat, review and control step. view=rollup: the exact roll-up response_value plus its leaves (path, sha256, completion_id) once closed. view=verify: the server recomputes rollup_ref over the frozen leaves and returns ok / mismatches — the same check scripts/verify-fanout.js performs independently from another machine, which is the trusted proof; this view is a convenience, not a substitute. A foreign org's fanout_id answers 404, never 403, so another org's fan-out never even appears to exist. Read tier, no dispatch permission required.

输入参数viewfanout_id必填

tascan_control_fanout

Control Fan-out

Control a running fan-out (POST /coord/fanouts/:id/control). pause holds every unclaimed seat and stops re-firing; resume releases them; cancel supersedes every unclaimed task and closes once quiet; close_barrier drops unsettled (or named exclude_seats) seats and forces the synth now; retry_synth mints a new synth revision from the stored inputs of the current synth when every failed run is input_ref_mismatch, refused otherwise (not_synthesizing, no_synth_task, no_failed_runs, not_input_ref_mismatch). No amend or answer yet. Every action first records a signed control completion as the system worker of this org, never as another org identity. idempotency_key replays the prior outcome (replayed true) and applies nothing twice; a replayed resume after a later pause stays paused. Refused fanout_closed once the roll-up has closed. Requires agent:dispatch:code.

输入参数action必填reasonfanout_id必填exclude_seatsidempotency_key

tascan_claim_run

Claim Run

Claim a fan-out seat task as a LOCAL subagent run (POST /runs/claim -> claim_agent_run(p_runner='local')). Only admitted when instance starts with "<your registered agent_id>:" -- the seat's own coord.agent_id, set when the fan-out was created (tascan_create_fanout seats[i].runner='local'). Any other instance is refused, claimed false with reason seat_not_yours -- this tool never claims a seat that is not yours, and never claims a cloud (research) seat at all (refused not_routable). Never mints a completion or a receipt by itself -- claiming only opens the run; work happens after, and tascan_finish_run is what leaves the signed receipt. Requires agent:dispatch:code. A foreign or unknown task_id is 404, never 403 (S2: another org's task never even appears to exist).

输入参数task_id必填instance必填ttl_seconds

tascan_heartbeat_run

Heartbeat Run

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.

输入参数run_id必填instance必填extend_seconds

tascan_finish_run

Finish Run

Finish a claimed local run (POST /runs/:run_id/finish). outcome='completed' stores `document` (and optional `verification`) as the seat's own build artifacts under EXACTLY the artifact_paths the fan-out named for this seat, hashes them into build_ref, and finishes the run -- this mints a real task_completions row and a SIGNED TASCAN RECEIPT for your work (tascan_get_receipt), the same as any other build; `document` is your deliverable and IS what gets hashed, so send the real content, not a summary. Zero changes to coord_fanout_settle / the barrier / the roll-up -- your completion releases the next held seat and, once every seat settles, feeds the fan-out's own synthesizer and rollup exactly like a cloud research seat's would. outcome='failed' finishes the run failed with your `error` text and stores nothing. Requires agent:dispatch:code. A run outside your org, or already finished, is refused (404 / the RPC's own not_live).

输入参数errorrun_id必填outcome必填documentinstance必填verificationcost_micro_usd

版本历史

1
  1. v3.0.0最新Sep 16, 2026

评分

已满足适用检查项的 90%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通必需25 分
  • 已声明认证方式必需10 分
  • 已列出工具必需15 分
  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分

    请在仓库或注册中心条目中声明许可证。

其他 Scan 集成