tascan-mcp 2.1.0 → 2.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +48 -8
- package/index.js +4 -4
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
AI agent integration for [TaScan](https://tascan.io) — 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.
|
|
4
4
|
|
|
5
|
-
**
|
|
5
|
+
**Task. Scan. Done.**
|
|
6
6
|
|
|
7
7
|
## What is TaScan?
|
|
8
8
|
|
|
@@ -12,14 +12,14 @@ When something breaks, AI analyzes the issue, generates fix instructions, and di
|
|
|
12
12
|
|
|
13
13
|
Industries: live events, construction, hospitality, warehousing, property management, healthcare, aviation, FEMA disaster response, and more.
|
|
14
14
|
|
|
15
|
-
**
|
|
15
|
+
**10 Provisional Patents Filed** — 265 claims, ~1000+ pages of specification. USPTO Applications #63/995,189 through #64/001,286.
|
|
16
16
|
|
|
17
17
|
## Quickest Start: Claude.ai / Claude Mobile
|
|
18
18
|
|
|
19
19
|
No install required. Add TaScan as a custom connector in Claude:
|
|
20
20
|
|
|
21
21
|
1. **Settings > Connectors > Add custom connector**
|
|
22
|
-
2. Enter: `https://tascan
|
|
22
|
+
2. Enter: `https://app.tascan.io/mcp`
|
|
23
23
|
3. First time you use a tool, sign in with your TaScan email and password
|
|
24
24
|
|
|
25
25
|
That's it. Works on claude.ai and Claude mobile. Same sign-in experience as GitHub, Netlify, and Supabase connectors.
|
|
@@ -45,7 +45,7 @@ npx tascan-mcp
|
|
|
45
45
|
| Variable | Required | Description |
|
|
46
46
|
|----------|----------|-------------|
|
|
47
47
|
| `TASCAN_API_KEY` | Yes | Your TaScan API key (generate in Admin Portal > Team > API Keys) |
|
|
48
|
-
| `TASCAN_API_URL` | No | API base URL (default: `https://tascan
|
|
48
|
+
| `TASCAN_API_URL` | No | API base URL (default: `https://app.tascan.io/api/v1`) |
|
|
49
49
|
|
|
50
50
|
### Claude Desktop
|
|
51
51
|
|
|
@@ -78,12 +78,12 @@ Then set your API key in the environment.
|
|
|
78
78
|
TaScan MCP is also available as a remote server — no install, no API key needed:
|
|
79
79
|
|
|
80
80
|
```
|
|
81
|
-
https://tascan
|
|
81
|
+
https://app.tascan.io/mcp
|
|
82
82
|
```
|
|
83
83
|
|
|
84
84
|
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.
|
|
85
85
|
|
|
86
|
-
## Tools (
|
|
86
|
+
## Tools (32)
|
|
87
87
|
|
|
88
88
|
### Projects
|
|
89
89
|
| Tool | Description | Type |
|
|
@@ -133,9 +133,22 @@ Add as a custom connector in Claude (Settings > Connectors). When you first use
|
|
|
133
133
|
| `tascan_list_issues` | List field-reported issues with filtering by status, category, severity | Read |
|
|
134
134
|
| `tascan_analyze_issue` | AI classifies issue severity, identifies root cause, and scores urgency | AI |
|
|
135
135
|
| `tascan_recommend_fix` | AI generates ranked remediation tasks with step-by-step instructions | AI |
|
|
136
|
-
| `tascan_dispatch_instruction` | Multi-channel delivery of fix instructions to workers (SMS, push, QR) | Create |
|
|
137
136
|
| `tascan_auto_resolve` | Full closed loop in ONE call — issue in, AI analyzes, fix dispatched, loop closes | AI |
|
|
138
137
|
|
|
138
|
+
### Communications
|
|
139
|
+
| Tool | Description | Type |
|
|
140
|
+
|------|-------------|------|
|
|
141
|
+
| `tascan_dispatch_instruction` | Multi-channel delivery of instructions to workers (SMS, email, QR) | Create |
|
|
142
|
+
| `tascan_send_task_email` | Send task links and notifications via email | Create |
|
|
143
|
+
| `tascan_complete_task` | Mark a task as completed with optional response data | Update |
|
|
144
|
+
|
|
145
|
+
### AI Agent Coordination (Patent #10)
|
|
146
|
+
| Tool | Description | Type |
|
|
147
|
+
|------|-------------|------|
|
|
148
|
+
| `tascan_list_agents` | List registered AI agents in the system | Read |
|
|
149
|
+
| `tascan_register_agent` | Register a new AI agent with capabilities | Create |
|
|
150
|
+
| `tascan_dispatch_to_agent` | Route a task to a specific AI agent for execution | Create |
|
|
151
|
+
|
|
139
152
|
## Usage Examples
|
|
140
153
|
|
|
141
154
|
### Example 1: Set up a construction site inspection
|
|
@@ -204,7 +217,7 @@ Tasks can also be flagged as:
|
|
|
204
217
|
|
|
205
218
|
## Getting an API Key
|
|
206
219
|
|
|
207
|
-
1. Log in to the [TaScan Admin Portal](https://tascan
|
|
220
|
+
1. Log in to the [TaScan Admin Portal](https://app.tascan.io)
|
|
208
221
|
2. Navigate to **Team** in the sidebar
|
|
209
222
|
3. Scroll to **API Keys**
|
|
210
223
|
4. Click **Generate API Key**
|
|
@@ -213,6 +226,33 @@ Tasks can also be flagged as:
|
|
|
213
226
|
|
|
214
227
|
API keys are scoped to your organization and support rate limiting (60 requests/minute).
|
|
215
228
|
|
|
229
|
+
## Troubleshooting
|
|
230
|
+
|
|
231
|
+
**"Connection failed" or OAuth redirect issues**
|
|
232
|
+
- Verify you're using the correct URL: `https://app.tascan.io/mcp`
|
|
233
|
+
- Clear your browser cache and try reconnecting
|
|
234
|
+
- If using Claude Desktop, restart the app after adding the connector
|
|
235
|
+
|
|
236
|
+
**"Unauthorized" or 401 errors (local npm install)**
|
|
237
|
+
- Regenerate your API key in Admin Portal > Team > API Keys
|
|
238
|
+
- Confirm `TASCAN_API_KEY` is set in your environment (not just in the config file)
|
|
239
|
+
- Keys are organization-scoped — make sure you're using a key from the correct org
|
|
240
|
+
|
|
241
|
+
**Tools not showing up in Claude**
|
|
242
|
+
- Disconnect and reconnect the TaScan connector
|
|
243
|
+
- For Claude Code: run `claude mcp list` to verify the server is registered
|
|
244
|
+
- Check that your TaScan account has an active organization (free tier is fine)
|
|
245
|
+
|
|
246
|
+
**"Rate limited" errors**
|
|
247
|
+
- Default limit is 60 requests/minute per API key
|
|
248
|
+
- Pro and Business tiers have higher limits
|
|
249
|
+
- Batch operations (like `tascan_add_tasks`) are more efficient than individual calls
|
|
250
|
+
|
|
251
|
+
**Task completions not appearing**
|
|
252
|
+
- Workers must submit via the task link (QR scan or direct URL)
|
|
253
|
+
- Photo-required tasks won't show as complete until the photo uploads
|
|
254
|
+
- Check the event's response mode (single vs. multi-response)
|
|
255
|
+
|
|
216
256
|
## Privacy Policy
|
|
217
257
|
|
|
218
258
|
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.
|
package/index.js
CHANGED
|
@@ -10,7 +10,7 @@ import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
|
10
10
|
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
|
|
11
11
|
import { z } from 'zod';
|
|
12
12
|
|
|
13
|
-
const API_BASE = process.env.TASCAN_API_URL || 'https://tascan
|
|
13
|
+
const API_BASE = process.env.TASCAN_API_URL || 'https://app.tascan.io/api/v1';
|
|
14
14
|
const API_KEY = process.env.TASCAN_API_KEY || '';
|
|
15
15
|
|
|
16
16
|
if (!API_KEY) {
|
|
@@ -134,13 +134,13 @@ server.registerTool(
|
|
|
134
134
|
'tascan_add_tasks',
|
|
135
135
|
{
|
|
136
136
|
title: 'Add Tasks',
|
|
137
|
-
description: 'Add one or more tasks to an event (task list). Supports bulk creation.',
|
|
137
|
+
description: '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.',
|
|
138
138
|
inputSchema: {
|
|
139
139
|
list_id: z.string().describe('Task list (event) ID'),
|
|
140
140
|
tasks: z.array(z.object({
|
|
141
141
|
title: z.string().describe('Task title'),
|
|
142
142
|
description: z.string().optional().describe('Task description'),
|
|
143
|
-
response_type: z.enum(['checkbox', 'photo', 'text', 'number', 'date', 'choice']).optional().describe('
|
|
143
|
+
response_type: z.enum(['checkbox', 'photo', 'text', 'number', 'date', 'choice']).optional().describe('CRITICAL: "text" for names, phones, emails, notes, any free-form input. "photo" for visual proof (inspections, serial numbers, packed cases). "checkbox" ONLY for yes/no confirmations. "number" for numeric values. "date" for dates. "choice" for multiple-choice (needs response_config.options). Default is checkbox but most info-collection tasks should be "text".'),
|
|
144
144
|
is_safety_checkpoint: z.boolean().optional().describe('Safety-critical task flag'),
|
|
145
145
|
requires_photo: z.boolean().optional().describe('Require photo on completion')
|
|
146
146
|
})).describe('Array of tasks to create')
|
|
@@ -531,7 +531,7 @@ server.registerTool(
|
|
|
531
531
|
task_id: z.string().describe('Task ID'),
|
|
532
532
|
title: z.string().optional().describe('New title'),
|
|
533
533
|
description: z.string().optional().describe('New description'),
|
|
534
|
-
response_type: z.enum(['checkbox', 'photo', 'text', 'number', 'date', 'choice']).optional().describe('
|
|
534
|
+
response_type: z.enum(['checkbox', 'photo', 'text', 'number', 'date', 'choice']).optional().describe('See tascan_add_tasks for guidance. "text" for info collection, "photo" for visual proof, "checkbox" for yes/no only.'),
|
|
535
535
|
is_safety_checkpoint: z.boolean().optional().describe('Safety-critical flag'),
|
|
536
536
|
requires_photo: z.boolean().optional().describe('Require photo'),
|
|
537
537
|
sort_order: z.number().optional().describe('Sort order position')
|
package/package.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "tascan-mcp",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.3.0",
|
|
4
4
|
"mcpName": "io.github.snowbikemike/tascan-mcp",
|
|
5
|
-
"description": "TaScan MCP Server — Closed-loop autonomous operations protocol.
|
|
5
|
+
"description": "TaScan MCP Server — Closed-loop autonomous operations protocol. 32 tools for projects, tasks, workers, QR codes, AI issue analysis, autonomous remediation dispatch, and multi-agent coordination. 10 patents filed (265 claims). Task. Scan. Done.",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"main": "index.js",
|
|
8
8
|
"bin": {
|