@task-boards/mcp-server 0.20.0 → 0.25.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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@task-boards/mcp-server",
3
- "version": "0.20.0",
3
+ "version": "0.25.0",
4
4
  "description": "MCP stdio server for Task Boards (IDE integration)",
5
5
  "type": "module",
6
6
  "main": "./build/cli.js",
@@ -9,6 +9,7 @@
9
9
  },
10
10
  "files": [
11
11
  "build",
12
+ "skills",
12
13
  "README.md"
13
14
  ],
14
15
  "engines": {
@@ -20,7 +21,7 @@
20
21
  },
21
22
  "scripts": {
22
23
  "build": "tsc --build tsconfig.json && node scripts/bundle.mjs",
23
- "prepublishOnly": "node ../../scripts/assert-mcp-publish-deps.mjs && npm run build",
24
+ "prepublishOnly": "node ../../scripts/assert-mcp-publish-deps.mjs && node scripts/assert-bundled-skills.mjs && npm run build",
24
25
  "start": "node build/cli.js"
25
26
  },
26
27
  "dependencies": {
@@ -0,0 +1,58 @@
1
+ ---
2
+ name: task-boards-agent-runs
3
+ description: Task Boards agent run lifecycle — ack_agent_run, complete_agent_run, AGENTIC_SDLC outcomes, and per-run processing. Use when acknowledging dispatched runs, completing workflow transitions, or handling HANDOFF/SKIP outcomes.
4
+ ---
5
+
6
+ # Task Boards Agent Runs
7
+
8
+ ## Lifecycle overview
9
+
10
+ ```
11
+ DISPATCHED → ack_agent_run → ACKNOWLEDGED → complete_agent_run → COMPLETED
12
+ ```
13
+
14
+ Logical orchestrator phases (not separate backend statuses): `dispatched` → `acknowledged` → `complete`.
15
+
16
+ ## Key MCP tools
17
+
18
+ | Tool | Purpose |
19
+ | --------------------- | -------------------------------------------------------------------- |
20
+ | `list_agent_runs` | Read-only inspection (prefer `wait_for_agent_runs` for orchestrator) |
21
+ | `wait_for_agent_runs` | Long-poll with atomic claim |
22
+ | `ack_agent_run` | `DISPATCHED` → `ACKNOWLEDGED` after Task dispatch |
23
+ | `complete_agent_run` | Apply workflow transition + optional work item patch |
24
+
25
+ ## Per-run processing (DISPATCHED)
26
+
27
+ 1. `list_work_item_attachments` / download if needed.
28
+ 2. `sync_project_subagents` if custom subagent slug.
29
+ 3. `Task(subagent_type, prompt, file_attachments)`.
30
+ 4. `ack_agent_run(agentRunId)`.
31
+ 5. Subagent work — IDE blockers → `report_agent_attention` (see attention skill).
32
+ 6. Human resolves → `clear_agent_attention`.
33
+ 7. `complete_agent_run` with appropriate outcome.
34
+ 8. Local `git commit` with `work-item:{uuid}` when code changed.
35
+
36
+ ## complete_agent_run outcomes (AGENTIC_SDLC)
37
+
38
+ Columns: `backlog`, `in-analysis`, `in-development`, `in-qa`, `in-awaiting`, `done`, `released`.
39
+
40
+ | Outcome | Effect |
41
+ | --------------------- | ----------------------------------------------------------------- |
42
+ | `DEFAULT` | Standard handoff per role and column |
43
+ | `HANDOFF` | Move to next analysis phase |
44
+ | `SKIP_DESIGN` | Skip designer → in-development |
45
+ | `SKIP_DEV` | Skip dev when `codeChangesRequired=false` |
46
+ | `HAS_BUGS` | QA → back to in-development |
47
+ | `NEEDS_CLARIFICATION` | Workflow questions → **`in-awaiting`** column (not IDE attention) |
48
+ | `FAILED` | No column move |
49
+
50
+ ## designerRequired
51
+
52
+ On ARCHITECT `complete_agent_run`, optional `workItemPatch.designerRequired` controls DESIGNER runs. Default `false` — set `true` only when design phase is required.
53
+
54
+ ## Re-entry with attention
55
+
56
+ If run has `requiresAttention: true`: `clear_agent_attention` first before resuming; do not re-dispatch Task until cleared.
57
+
58
+ `complete_agent_run` deletes `.cursor/orchestrator-active-run.json` and pending attention state.
@@ -0,0 +1,60 @@
1
+ ---
2
+ name: task-boards-attention
3
+ description: Task Boards IDE attention — report_agent_attention, clear_agent_attention, replace semantics, seven message categories, and distinction from workflow in-awaiting. Use when subagents need IDE approval or when configuring attention hooks.
4
+ ---
5
+
6
+ # Task Boards IDE Attention
7
+
8
+ ## IDE attention vs workflow in-awaiting
9
+
10
+ | Concern | Mechanism | Column change |
11
+ | ---------------------------------------------------------- | ------------------------------------------------------------ | ----------------- |
12
+ | Subagent spec / stakeholder questions | `complete_agent_run(NEEDS_CLARIFICATION)` + `create_comment` | **`in-awaiting`** |
13
+ | IDE approval (shell, git, network, Smart Mode, MCP, files) | `report_agent_attention` / `clear_agent_attention` | **unchanged** |
14
+
15
+ Never move a story to `in-awaiting` for IDE shell approvals, git push prompts, MCP auth, or Smart Mode blocks.
16
+
17
+ ## report_agent_attention / clear_agent_attention
18
+
19
+ 1. Call `ack_agent_run` first (`DISPATCHED` → `ACKNOWLEDGED`).
20
+ 2. Call `report_agent_attention(agentRunId, message)` when blocked awaiting human action in the IDE.
21
+ 3. **One message per ACK run — replace on re-report** (latest message wins; do not append).
22
+ 4. After human resolves: `clear_agent_attention(agentRunId)`, then resume subagent work and `complete_agent_run`.
23
+ 5. `clear_agent_attention` requires `ACKNOWLEDGED` status.
24
+
25
+ On poll timeout: do **not** call `clear_agent_attention` — board badge remains until resolved.
26
+
27
+ ## Message format (7 categories)
28
+
29
+ Pattern: `[{category}] {detail}`
30
+
31
+ | Category | Example |
32
+ | ------------ | ------------------------------------------------------------- |
33
+ | `shell` | `[shell] Approve shell command: npm install` |
34
+ | `git` | `[git] Approve git operation: git push origin feature/tb-180` |
35
+ | `network` | `[network] Approve network access: registry.npmjs.org` |
36
+ | `smart-mode` | `[smart-mode] Approve Smart Mode: blocked npm ci` |
37
+ | `mcp` | `[mcp] Approve MCP / API action: token rotation test` |
38
+ | `file` | `[file] Approve file change outside scope` |
39
+ | `other` | `[other] Human input required: staging credentials` |
40
+
41
+ ## Auxiliary CLI bridge
42
+
43
+ ```bash
44
+ task-boards-mcp attention report --agent-run-id <id> --message "[shell] ..."
45
+ task-boards-mcp attention report-from-hook # Cursor hooks stdin
46
+ task-boards-mcp attention clear
47
+ task-boards-mcp orchestrator write-active-run --agent-run-id ... --work-item-id ... --project-id ...
48
+ task-boards-mcp orchestrator clear-active-run
49
+ ```
50
+
51
+ Global user hooks (`~/.cursor/hooks.json`) auto-report shell/MCP/Smart Mode blocks when the workspace contains `.task-boards.yaml` and `WORKSPACE_ROOT` / API token are configured.
52
+
53
+ ## Auto bridge state files
54
+
55
+ | File | Purpose |
56
+ | --------------------------------------------- | --------------------------- |
57
+ | `.cursor/orchestrator-active-run.json` | Written on `ack_agent_run` |
58
+ | `.cursor/orchestrator-attention-pending.json` | Pending flag for hook clear |
59
+
60
+ `complete_agent_run` deletes both files.
@@ -0,0 +1,55 @@
1
+ ---
2
+ name: task-boards-git-sync
3
+ description: Task Boards git sync — sync_git_releases, work-item commit tags, sync_project_subagents, and conventional commit policy. Use after git push, on poll timeout, or before dispatching custom subagent slugs.
4
+ ---
5
+
6
+ # Task Boards Git Sync
7
+
8
+ ## sync_git_releases
9
+
10
+ MCP tool: fetch origin and sync commits tagged with `work-item:{uuid}` from:
11
+
12
+ - Default branch (`master` / `main`)
13
+ - Current feature branch when cwd is not on default branch
14
+
15
+ | When | Action |
16
+ | ----------------------------------------- | ----------------------------------- |
17
+ | After `git push` on feature branch | Call `sync_git_releases(projectId)` |
18
+ | On `master`/`main` with local commit only | Sync without push |
19
+ | Poll `timedOut: true` | Call before next poll cycle |
20
+
21
+ Requires MCP API token with `write` scope and `WORKSPACE_ROOT` set.
22
+
23
+ ## Git commit conventions
24
+
25
+ After dev/QA when code is ready:
26
+
27
+ 1. Local `git commit` with conventional message: `<type>(<scope>): <subject>`
28
+ 2. Body must include `work-item:{uuid}` for release sync
29
+ 3. `git push` on feature branches or when user explicitly requests — not by default on `master`/`main`
30
+ 4. Never commit `.env`, `config.yaml`, or secrets
31
+
32
+ See project `conventional-commits.mdc` for types and CI release rules.
33
+
34
+ ## sync_project_subagents
35
+
36
+ Before `Task(subagent_type=custom-slug)` when `payload.suggestedSubagentType` is a **project custom slug**:
37
+
38
+ ```json
39
+ { "projectId": "f9ee1002-2b17-4803-9a7d-949741b9fd8d" }
40
+ ```
41
+
42
+ Writes `{workspaceRoot}/.cursor/agents/{slug}.md` — idempotent overwrite.
43
+
44
+ Built-in IDE subagents (`generalPurpose`, `explore`, etc.) do not need sync.
45
+
46
+ ## Orchestrator git timing
47
+
48
+ - `run_orchestrator_once` does **not** auto-call `sync_git_releases`.
49
+ - Orchestrator calls sync after batch complete and on poll timeout.
50
+ - Do not clear IDE attention on timeout — badge remains until human resolves.
51
+
52
+ ## Related
53
+
54
+ - `task-boards-orchestrator` — when to call sync in poll loop
55
+ - `task-boards-agent-runs` — commit after `complete_agent_run` when code changed
@@ -0,0 +1,69 @@
1
+ ---
2
+ name: task-boards-orchestrator
3
+ description: Run the Task Boards orchestrator poll loop — run_orchestrator_once, wait_for_agent_runs, inflight recovery, timeout handling, and single-sleeper policy. Use when long-polling agent runs, dispatching subagents, or recovering orphaned runs.
4
+ ---
5
+
6
+ # Task Boards Orchestrator Loop
7
+
8
+ Canonical reference: `.cursor/rules/orchestrator.mdc` and package README.
9
+
10
+ ## Poll entry points
11
+
12
+ | Tool | When |
13
+ | ----------------------- | -------------------------------------------------------- |
14
+ | `run_orchestrator_once` | Preferred — resolves project, claims runs, returns hints |
15
+ | `wait_for_agent_runs` | When `projectId` is already known |
16
+
17
+ Defaults: `timeout=120`, `pollInterval=2`, `limit=1`.
18
+
19
+ ## Poll loop
20
+
21
+ ```
22
+ 1. resolve_project (if needed)
23
+ 2. run_orchestrator_once / wait_for_agent_runs
24
+ a. items.length > 0 → process newly claimed runs
25
+ b. inflightRuns.length > 0 → process recovered runs (no re-claim)
26
+ c. timedOut → sync_git_releases(projectId) → exit (true idle)
27
+ 3. For each run → process (ack, Task, attention, complete)
28
+ 4. sync_git_releases after batch
29
+ 5. Loop — never parallel polls
30
+ ```
31
+
32
+ ## Response fields
33
+
34
+ | Field | Meaning |
35
+ | -------------- | ------------------------------------------------------------ |
36
+ | `items` | Newly claimed runs (`PENDING→DISPATCHED`) |
37
+ | `inflightRuns` | Recovered `DISPATCHED`/`ACKNOWLEDGED` (orphan recovery) |
38
+ | `timedOut` | `true` when deadline reached with no claimed and no inflight |
39
+
40
+ Read `orchestrator.sleeperPolicy` on every response — one blocking poll per workspace.
41
+
42
+ ## Timeout behavior
43
+
44
+ When `timedOut: true`:
45
+
46
+ 1. Call `sync_git_releases(projectId)`.
47
+ 2. Exit and poll again later.
48
+ 3. Do **not** call `clear_agent_attention` on timeout — IDE attention badge remains until the human resolves the blocker.
49
+ 4. Schedule at most one follow-up automation wake; prefer interval ≥ `timeout`.
50
+
51
+ ## Orphan recovery
52
+
53
+ When claim returns empty, MCP lists inflight runs before sleeping:
54
+
55
+ - `DISPATCHED` inflight → resume dispatch phase unless subagent already running.
56
+ - `ACKNOWLEDGED` + `requiresAttention` → clear attention first; do not re-dispatch Task.
57
+ - `ACKNOWLEDGED` without attention → resume subagent work → complete.
58
+
59
+ `orchestrator.processRuns[].source` is `"claimed"` or `"inflight"`.
60
+
61
+ ## Prerequisite
62
+
63
+ STORY items must be assigned to **Агент ИИ** (SERVICE user) before agent columns enqueue runs.
64
+
65
+ ## Related skills
66
+
67
+ - `task-boards-agent-runs` — ack and complete lifecycle
68
+ - `task-boards-attention` — IDE attention vs workflow `in-awaiting`
69
+ - `task-boards-git-sync` — `sync_git_releases` and commits
@@ -0,0 +1,69 @@
1
+ ---
2
+ name: task-boards-setup
3
+ description: Configure Task Boards MCP server for IDE agents — environment variables, WORKSPACE_ROOT, MCP client JSON, and quick start. Use when setting up @task-boards/mcp-server, troubleshooting connection issues, or onboarding a new workspace.
4
+ ---
5
+
6
+ # Task Boards MCP Setup
7
+
8
+ ## Quick start
9
+
10
+ ```bash
11
+ npx @task-boards/mcp-server
12
+ ```
13
+
14
+ Install bundled Cursor skills after setup:
15
+
16
+ ```bash
17
+ npx @task-boards/mcp-server skills install
18
+ ```
19
+
20
+ ## Environment variables
21
+
22
+ | Variable | Required | Default | Purpose |
23
+ | ----------------------- | ---------------- | --------------------------------- | -------------------------------------------------------------- |
24
+ | `TASK_BOARDS_API_URL` | No | `https://task-boards.com/backend` | Backend base URL (without `/api/v1`) |
25
+ | `TASK_BOARDS_API_TOKEN` | Yes (production) | — | API token with `read` / `write` scopes |
26
+ | `WORKSPACE_ROOT` | No | — | Git repo root for attachments, sync tools, orchestrator bridge |
27
+
28
+ Effective API base: `{TASK_BOARDS_API_URL}/api/v1`.
29
+
30
+ ## IDE MCP configuration
31
+
32
+ Add to `.cursor/mcp.json` or IDE MCP settings:
33
+
34
+ ```json
35
+ {
36
+ "mcpServers": {
37
+ "task-boards": {
38
+ "command": "npx",
39
+ "args": ["-y", "@task-boards/mcp-server"],
40
+ "env": {
41
+ "TASK_BOARDS_API_URL": "https://task-boards.com/backend",
42
+ "TASK_BOARDS_API_TOKEN": "<your-api-token>",
43
+ "WORKSPACE_ROOT": "/path/to/your/repo"
44
+ }
45
+ }
46
+ }
47
+ }
48
+ ```
49
+
50
+ ## Workspace resolution
51
+
52
+ - Set `WORKSPACE_ROOT` to the git repository root when the MCP client cwd differs from the repo.
53
+ - Project id lives in `.task-boards.yaml` or `.cursor/rules/task-boards.mdc`.
54
+ - Use `resolve_project` MCP tool when project id is unknown.
55
+
56
+ ## Bundled skills install
57
+
58
+ | Command | Target |
59
+ | ----------------------------------------- | --------------------------------- |
60
+ | `task-boards-mcp skills install` | `{workspaceRoot}/.cursor/skills/` |
61
+ | `task-boards-mcp skills install --global` | `~/.cursor/skills/` |
62
+
63
+ Re-run after upgrading `@task-boards/mcp-server` to refresh skill content.
64
+
65
+ ## Documentation
66
+
67
+ - Package README: orchestrator tools, poll fields, attention lifecycle
68
+ - In-app guides: `/guide/mcp-orchestrator`, `/guide/agentic-prompts` (sign-in required)
69
+ - `task-boards-mcp --help` — full MCP tool catalog (32 tools)
@@ -0,0 +1,55 @@
1
+ ---
2
+ name: task-boards-work-items
3
+ description: Manage Task Boards work items via MCP — create, update, move, search, estimation rules, and SERVICE assignee requirements. Use when creating stories, moving cards, or checking estimation gates before column transitions.
4
+ ---
5
+
6
+ # Task Boards Work Items
7
+
8
+ ## Core MCP tools
9
+
10
+ | Tool | Purpose |
11
+ | --------------------------------------- | ------------------------------------- |
12
+ | `list_work_items` / `search_work_items` | Browse and find items |
13
+ | `get_work_item` | Fetch by id |
14
+ | `create_work_item` | Create under a project |
15
+ | `update_work_item` | Patch fields (fetches version first) |
16
+ | `move_work_item` | Change column (fetches version first) |
17
+ | `get_board` | Board projection with columns |
18
+
19
+ ## SERVICE assignee rule
20
+
21
+ - MCP `create_work_item` attributes creator and default assignee to **Агент ИИ** (SERVICE user) unless `assigneeUserId` is set.
22
+ - The orchestrator processes STORY items only when assignee is the SERVICE user.
23
+ - Priority defaults to `LOW` when omitted.
24
+
25
+ ## Estimation gates
26
+
27
+ When `project.estimationRequired` is true:
28
+
29
+ - `storyPoints` and `estimate` are optional on create.
30
+ - Before moving a STORY to any column except `backlog` (slug=backlog), active estimation is required.
31
+ - `move_work_item` returns `ESTIMATION_REQUIRED_FOR_MOVE` (422) when estimation is missing.
32
+
33
+ ## Comments and labels
34
+
35
+ | Tool | Purpose |
36
+ | ---------------------------------------------------------------- | --------------------------------------------------------------------------- |
37
+ | `list_comments` / `create_comment` | Thread on work items — use for orchestrator `NEEDS_CLARIFICATION` questions |
38
+ | `list_labels` / `create_label` / `update_label` / `delete_label` | Project labels |
39
+
40
+ ## Attachments
41
+
42
+ | Tool | Purpose |
43
+ | -------------------------------- | ----------------------------------- |
44
+ | `list_work_item_attachments` | List files |
45
+ | `download_work_item_attachments` | Stage to `.task-boards/attachments` |
46
+ | `upload_work_item_attachment` | Upload local file (multipart) |
47
+
48
+ ## Delete rules
49
+
50
+ - MCP may hard-delete **SUBTASK** items only.
51
+ - Use `get_work_item_delete_preview` before delete.
52
+
53
+ ## Work item tags in git
54
+
55
+ Local commits must include `work-item:{uuid}` in the body for `sync_git_releases` — see `task-boards-git-sync` skill.