@vibescope/mcp-server 0.2.2 → 0.2.4
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/CHANGELOG.md +84 -0
- package/README.md +35 -20
- package/dist/api-client.d.ts +276 -8
- package/dist/api-client.js +128 -9
- package/dist/handlers/blockers.d.ts +11 -0
- package/dist/handlers/blockers.js +37 -2
- package/dist/handlers/bodies-of-work.d.ts +2 -0
- package/dist/handlers/bodies-of-work.js +30 -1
- package/dist/handlers/connectors.js +2 -2
- package/dist/handlers/decisions.d.ts +11 -0
- package/dist/handlers/decisions.js +37 -2
- package/dist/handlers/deployment.d.ts +6 -0
- package/dist/handlers/deployment.js +33 -5
- package/dist/handlers/discovery.js +27 -11
- package/dist/handlers/fallback.js +12 -6
- package/dist/handlers/file-checkouts.d.ts +1 -0
- package/dist/handlers/file-checkouts.js +17 -2
- package/dist/handlers/findings.d.ts +5 -0
- package/dist/handlers/findings.js +19 -2
- package/dist/handlers/git-issues.js +4 -2
- package/dist/handlers/ideas.d.ts +5 -0
- package/dist/handlers/ideas.js +19 -2
- package/dist/handlers/progress.js +2 -2
- package/dist/handlers/project.d.ts +1 -0
- package/dist/handlers/project.js +35 -2
- package/dist/handlers/requests.js +6 -3
- package/dist/handlers/roles.js +13 -2
- package/dist/handlers/session.d.ts +12 -0
- package/dist/handlers/session.js +288 -25
- package/dist/handlers/sprints.d.ts +2 -0
- package/dist/handlers/sprints.js +30 -1
- package/dist/handlers/tasks.d.ts +25 -2
- package/dist/handlers/tasks.js +228 -35
- package/dist/handlers/tool-docs.js +72 -5
- package/dist/templates/agent-guidelines.d.ts +18 -0
- package/dist/templates/agent-guidelines.js +207 -0
- package/dist/tools.js +478 -125
- package/dist/utils.d.ts +5 -2
- package/dist/utils.js +90 -51
- package/package.json +51 -46
- package/scripts/version-bump.ts +203 -0
- package/src/api-client.test.ts +8 -3
- package/src/api-client.ts +376 -13
- package/src/handlers/__test-setup__.ts +5 -0
- package/src/handlers/blockers.test.ts +76 -0
- package/src/handlers/blockers.ts +56 -2
- package/src/handlers/bodies-of-work.ts +59 -1
- package/src/handlers/connectors.ts +2 -2
- package/src/handlers/decisions.test.ts +71 -2
- package/src/handlers/decisions.ts +56 -2
- package/src/handlers/deployment.test.ts +81 -0
- package/src/handlers/deployment.ts +38 -5
- package/src/handlers/discovery.ts +27 -11
- package/src/handlers/fallback.test.ts +11 -10
- package/src/handlers/fallback.ts +14 -8
- package/src/handlers/file-checkouts.test.ts +83 -3
- package/src/handlers/file-checkouts.ts +22 -2
- package/src/handlers/findings.test.ts +2 -2
- package/src/handlers/findings.ts +38 -2
- package/src/handlers/git-issues.test.ts +2 -2
- package/src/handlers/git-issues.ts +4 -2
- package/src/handlers/ideas.test.ts +1 -1
- package/src/handlers/ideas.ts +34 -2
- package/src/handlers/progress.ts +2 -2
- package/src/handlers/project.ts +47 -2
- package/src/handlers/requests.test.ts +38 -7
- package/src/handlers/requests.ts +6 -3
- package/src/handlers/roles.test.ts +1 -1
- package/src/handlers/roles.ts +20 -2
- package/src/handlers/session.test.ts +303 -4
- package/src/handlers/session.ts +335 -28
- package/src/handlers/sprints.ts +61 -1
- package/src/handlers/tasks.test.ts +0 -73
- package/src/handlers/tasks.ts +269 -40
- package/src/handlers/tool-docs.ts +77 -5
- package/src/handlers/types.test.ts +259 -0
- package/src/templates/agent-guidelines.ts +210 -0
- package/src/tools.ts +479 -125
- package/src/utils.test.ts +7 -5
- package/src/utils.ts +95 -51
package/dist/tools.js
CHANGED
|
@@ -34,9 +34,39 @@ Use mode:'full' for complete context, mode:'lite' (default) for minimal tokens.`
|
|
|
34
34
|
enum: ['developer', 'validator', 'deployer', 'reviewer', 'maintainer'],
|
|
35
35
|
description: 'Agent role: developer (general work, default), validator (task validation), deployer (deployments), reviewer (code review), maintainer (housekeeping)',
|
|
36
36
|
},
|
|
37
|
+
hostname: {
|
|
38
|
+
type: 'string',
|
|
39
|
+
description: 'Machine hostname for worktree tracking. Pass os.hostname() to filter stale worktrees to only those created on this machine.',
|
|
40
|
+
},
|
|
41
|
+
agent_type: {
|
|
42
|
+
type: 'string',
|
|
43
|
+
enum: ['claude', 'gemini', 'cursor', 'windsurf', 'other'],
|
|
44
|
+
description: 'Agent type for onboarding. When a new agent type connects to an existing project, setup instructions are returned.',
|
|
45
|
+
},
|
|
37
46
|
},
|
|
38
47
|
},
|
|
39
48
|
},
|
|
49
|
+
{
|
|
50
|
+
name: 'confirm_agent_setup',
|
|
51
|
+
description: `Confirm that agent setup is complete for this project. Call this after creating your agent's configuration file (e.g., .claude/CLAUDE.md, .gemini/GEMINI.md).
|
|
52
|
+
|
|
53
|
+
This marks your agent type as fully onboarded to the project, so you won't receive setup instructions again.`,
|
|
54
|
+
inputSchema: {
|
|
55
|
+
type: 'object',
|
|
56
|
+
properties: {
|
|
57
|
+
project_id: {
|
|
58
|
+
type: 'string',
|
|
59
|
+
description: 'Project UUID',
|
|
60
|
+
},
|
|
61
|
+
agent_type: {
|
|
62
|
+
type: 'string',
|
|
63
|
+
enum: ['claude', 'gemini', 'cursor', 'windsurf', 'other'],
|
|
64
|
+
description: 'Agent type that completed setup',
|
|
65
|
+
},
|
|
66
|
+
},
|
|
67
|
+
required: ['project_id', 'agent_type'],
|
|
68
|
+
},
|
|
69
|
+
},
|
|
40
70
|
{
|
|
41
71
|
name: 'get_help',
|
|
42
72
|
description: 'Get guidance on a specific topic. Use when unsure about workflows.',
|
|
@@ -60,6 +90,33 @@ Use mode:'full' for complete context, mode:'lite' (default) for minimal tokens.`
|
|
|
60
90
|
properties: {},
|
|
61
91
|
},
|
|
62
92
|
},
|
|
93
|
+
{
|
|
94
|
+
name: 'report_token_usage',
|
|
95
|
+
description: `Report actual Claude API token usage for accurate cost tracking.
|
|
96
|
+
|
|
97
|
+
IMPORTANT: MCP can only estimate tokens from tool I/O (~1-5% of actual usage). Call this tool after each API response to report actual usage from the Claude API response headers.
|
|
98
|
+
|
|
99
|
+
The Claude API response includes 'usage.input_tokens' and 'usage.output_tokens' - pass those values here for accurate cost attribution.`,
|
|
100
|
+
inputSchema: {
|
|
101
|
+
type: 'object',
|
|
102
|
+
properties: {
|
|
103
|
+
input_tokens: {
|
|
104
|
+
type: 'number',
|
|
105
|
+
description: 'Input tokens from Claude API response (usage.input_tokens)',
|
|
106
|
+
},
|
|
107
|
+
output_tokens: {
|
|
108
|
+
type: 'number',
|
|
109
|
+
description: 'Output tokens from Claude API response (usage.output_tokens)',
|
|
110
|
+
},
|
|
111
|
+
model: {
|
|
112
|
+
type: 'string',
|
|
113
|
+
enum: ['opus', 'sonnet', 'haiku'],
|
|
114
|
+
description: 'Model used for this API call (optional, uses session model if not provided)',
|
|
115
|
+
},
|
|
116
|
+
},
|
|
117
|
+
required: ['input_tokens', 'output_tokens'],
|
|
118
|
+
},
|
|
119
|
+
},
|
|
63
120
|
// Cost monitoring tools
|
|
64
121
|
{
|
|
65
122
|
name: 'get_cost_summary',
|
|
@@ -84,19 +141,7 @@ Use mode:'full' for complete context, mode:'lite' (default) for minimal tokens.`
|
|
|
84
141
|
required: ['project_id'],
|
|
85
142
|
},
|
|
86
143
|
},
|
|
87
|
-
|
|
88
|
-
name: 'get_cost_alerts',
|
|
89
|
-
description: 'Get cost alerts for the current user.',
|
|
90
|
-
inputSchema: {
|
|
91
|
-
type: 'object',
|
|
92
|
-
properties: {
|
|
93
|
-
project_id: {
|
|
94
|
-
type: 'string',
|
|
95
|
-
description: 'Filter by project (optional)',
|
|
96
|
-
},
|
|
97
|
-
},
|
|
98
|
-
},
|
|
99
|
-
},
|
|
144
|
+
// REMOVED: get_cost_alerts - unbounded collection, use dashboard to view alerts
|
|
100
145
|
{
|
|
101
146
|
name: 'add_cost_alert',
|
|
102
147
|
description: 'Add a cost alert threshold.',
|
|
@@ -171,58 +216,9 @@ Use mode:'full' for complete context, mode:'lite' (default) for minimal tokens.`
|
|
|
171
216
|
required: ['alert_id'],
|
|
172
217
|
},
|
|
173
218
|
},
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
inputSchema: {
|
|
178
|
-
type: 'object',
|
|
179
|
-
properties: {
|
|
180
|
-
project_id: {
|
|
181
|
-
type: 'string',
|
|
182
|
-
description: 'Project UUID',
|
|
183
|
-
},
|
|
184
|
-
limit: {
|
|
185
|
-
type: 'number',
|
|
186
|
-
description: 'Max tasks to return (default: 20)',
|
|
187
|
-
},
|
|
188
|
-
},
|
|
189
|
-
required: ['project_id'],
|
|
190
|
-
},
|
|
191
|
-
},
|
|
192
|
-
{
|
|
193
|
-
name: 'get_body_of_work_costs',
|
|
194
|
-
description: 'Get cost breakdown by body of work with phase-level details. Returns costs for pre/core/post phases and model breakdown.',
|
|
195
|
-
inputSchema: {
|
|
196
|
-
type: 'object',
|
|
197
|
-
properties: {
|
|
198
|
-
body_of_work_id: {
|
|
199
|
-
type: 'string',
|
|
200
|
-
description: 'Body of work UUID (optional if project_id provided)',
|
|
201
|
-
},
|
|
202
|
-
project_id: {
|
|
203
|
-
type: 'string',
|
|
204
|
-
description: 'Project UUID to get all body of work costs (optional if body_of_work_id provided)',
|
|
205
|
-
},
|
|
206
|
-
},
|
|
207
|
-
},
|
|
208
|
-
},
|
|
209
|
-
{
|
|
210
|
-
name: 'get_sprint_costs',
|
|
211
|
-
description: 'Get cost breakdown by sprint with velocity metrics. Returns cost per story point and phase breakdown.',
|
|
212
|
-
inputSchema: {
|
|
213
|
-
type: 'object',
|
|
214
|
-
properties: {
|
|
215
|
-
sprint_id: {
|
|
216
|
-
type: 'string',
|
|
217
|
-
description: 'Sprint UUID (optional if project_id provided)',
|
|
218
|
-
},
|
|
219
|
-
project_id: {
|
|
220
|
-
type: 'string',
|
|
221
|
-
description: 'Project UUID to get all sprint costs (optional if sprint_id provided)',
|
|
222
|
-
},
|
|
223
|
-
},
|
|
224
|
-
},
|
|
225
|
-
},
|
|
219
|
+
// REMOVED: get_task_costs - unbounded collection, use get_cost_summary for aggregated data
|
|
220
|
+
// REMOVED: get_body_of_work_costs - unbounded collection, use get_cost_summary for aggregated data
|
|
221
|
+
// REMOVED: get_sprint_costs - unbounded collection, use get_cost_summary for aggregated data
|
|
226
222
|
// Knowledge Base Query Tool
|
|
227
223
|
{
|
|
228
224
|
name: 'query_knowledge_base',
|
|
@@ -396,17 +392,47 @@ Use mode:'full' for complete context, mode:'lite' (default) for minimal tokens.`
|
|
|
396
392
|
type: 'boolean',
|
|
397
393
|
description: 'Automatically tag deployments on main branch',
|
|
398
394
|
},
|
|
399
|
-
|
|
395
|
+
deployment_instructions: {
|
|
396
|
+
type: 'string',
|
|
397
|
+
description: 'Instructions for how to deploy (e.g., "Push to main for Vercel auto-deploy", "Run fly deploy")',
|
|
398
|
+
},
|
|
399
|
+
// Git and validation settings
|
|
400
|
+
git_delete_branch_on_merge: {
|
|
400
401
|
type: 'boolean',
|
|
401
|
-
description: '
|
|
402
|
+
description: 'Delete feature branch after PR merge (default: true)',
|
|
402
403
|
},
|
|
403
|
-
|
|
404
|
+
require_pr_for_validation: {
|
|
404
405
|
type: 'boolean',
|
|
405
|
-
description: '
|
|
406
|
+
description: 'Require PR exists before task validation can be approved (default: true for github-flow/git-flow)',
|
|
406
407
|
},
|
|
407
|
-
|
|
408
|
-
type: '
|
|
409
|
-
description: '
|
|
408
|
+
auto_merge_on_approval: {
|
|
409
|
+
type: 'boolean',
|
|
410
|
+
description: 'Automatically merge PR when validator approves (default: true)',
|
|
411
|
+
},
|
|
412
|
+
validation_required: {
|
|
413
|
+
type: 'boolean',
|
|
414
|
+
description: 'Completed tasks require validation before being considered done (default: true)',
|
|
415
|
+
},
|
|
416
|
+
// Task default settings
|
|
417
|
+
default_task_priority: {
|
|
418
|
+
type: 'integer',
|
|
419
|
+
minimum: 1,
|
|
420
|
+
maximum: 5,
|
|
421
|
+
description: 'Default priority for new tasks when not specified (1=highest, 5=lowest, default: 3)',
|
|
422
|
+
},
|
|
423
|
+
require_time_estimates: {
|
|
424
|
+
type: 'boolean',
|
|
425
|
+
description: 'Require estimated_minutes when creating tasks (default: false)',
|
|
426
|
+
},
|
|
427
|
+
// Agent behavior settings
|
|
428
|
+
fallback_activities_enabled: {
|
|
429
|
+
type: 'boolean',
|
|
430
|
+
description: 'Allow agents to perform background activities when no tasks available (default: true)',
|
|
431
|
+
},
|
|
432
|
+
preferred_fallback_activities: {
|
|
433
|
+
type: 'array',
|
|
434
|
+
items: { type: 'string' },
|
|
435
|
+
description: 'Array of preferred fallback activities (e.g., ["code_review", "security_review"]). Null means all allowed.',
|
|
410
436
|
},
|
|
411
437
|
},
|
|
412
438
|
required: ['project_id'],
|
|
@@ -431,8 +457,76 @@ Use mode:'full' for complete context, mode:'lite' (default) for minimal tokens.`
|
|
|
431
457
|
},
|
|
432
458
|
},
|
|
433
459
|
{
|
|
434
|
-
name: '
|
|
435
|
-
description: 'Get
|
|
460
|
+
name: 'get_project_summary',
|
|
461
|
+
description: 'Get a unified project overview with aggregated stats. Token-efficient way to get task counts, blockers, findings, active agents, and more in a single call.',
|
|
462
|
+
inputSchema: {
|
|
463
|
+
type: 'object',
|
|
464
|
+
properties: {
|
|
465
|
+
project_id: {
|
|
466
|
+
type: 'string',
|
|
467
|
+
description: 'Project UUID',
|
|
468
|
+
},
|
|
469
|
+
},
|
|
470
|
+
required: ['project_id'],
|
|
471
|
+
},
|
|
472
|
+
},
|
|
473
|
+
// Targeted task endpoints (token-efficient)
|
|
474
|
+
{
|
|
475
|
+
name: 'get_task',
|
|
476
|
+
description: `Get a single task by ID with optional subtasks and milestones.`,
|
|
477
|
+
inputSchema: {
|
|
478
|
+
type: 'object',
|
|
479
|
+
properties: {
|
|
480
|
+
task_id: {
|
|
481
|
+
type: 'string',
|
|
482
|
+
description: 'Task UUID',
|
|
483
|
+
},
|
|
484
|
+
include_subtasks: {
|
|
485
|
+
type: 'boolean',
|
|
486
|
+
description: 'Include subtasks array (default: false)',
|
|
487
|
+
},
|
|
488
|
+
include_milestones: {
|
|
489
|
+
type: 'boolean',
|
|
490
|
+
description: 'Include milestones array (default: false)',
|
|
491
|
+
},
|
|
492
|
+
},
|
|
493
|
+
required: ['task_id'],
|
|
494
|
+
},
|
|
495
|
+
},
|
|
496
|
+
{
|
|
497
|
+
name: 'search_tasks',
|
|
498
|
+
description: `Search tasks by text query. Supports pagination with offset. Use for finding specific tasks by title or description.`,
|
|
499
|
+
inputSchema: {
|
|
500
|
+
type: 'object',
|
|
501
|
+
properties: {
|
|
502
|
+
project_id: {
|
|
503
|
+
type: 'string',
|
|
504
|
+
description: 'Project UUID',
|
|
505
|
+
},
|
|
506
|
+
query: {
|
|
507
|
+
type: 'string',
|
|
508
|
+
description: 'Search query (min 2 chars). Searches title and description.',
|
|
509
|
+
},
|
|
510
|
+
status: {
|
|
511
|
+
type: 'array',
|
|
512
|
+
items: { type: 'string', enum: ['backlog', 'pending', 'in_progress', 'completed', 'cancelled'] },
|
|
513
|
+
description: 'Filter by status (optional, array)',
|
|
514
|
+
},
|
|
515
|
+
limit: {
|
|
516
|
+
type: 'number',
|
|
517
|
+
description: 'Max results per page (1-20, default: 10)',
|
|
518
|
+
},
|
|
519
|
+
offset: {
|
|
520
|
+
type: 'number',
|
|
521
|
+
description: 'Number of results to skip for pagination (default: 0)',
|
|
522
|
+
},
|
|
523
|
+
},
|
|
524
|
+
required: ['project_id', 'query'],
|
|
525
|
+
},
|
|
526
|
+
},
|
|
527
|
+
{
|
|
528
|
+
name: 'get_tasks_by_priority',
|
|
529
|
+
description: `Get tasks filtered by priority. Supports pagination with offset. Use for finding high-priority or low-priority tasks.`,
|
|
436
530
|
inputSchema: {
|
|
437
531
|
type: 'object',
|
|
438
532
|
properties: {
|
|
@@ -440,6 +534,50 @@ Use mode:'full' for complete context, mode:'lite' (default) for minimal tokens.`
|
|
|
440
534
|
type: 'string',
|
|
441
535
|
description: 'Project UUID',
|
|
442
536
|
},
|
|
537
|
+
priority: {
|
|
538
|
+
type: 'number',
|
|
539
|
+
minimum: 1,
|
|
540
|
+
maximum: 5,
|
|
541
|
+
description: 'Exact priority to match (1=highest, 5=lowest)',
|
|
542
|
+
},
|
|
543
|
+
priority_max: {
|
|
544
|
+
type: 'number',
|
|
545
|
+
minimum: 1,
|
|
546
|
+
maximum: 5,
|
|
547
|
+
description: 'Max priority (for range, e.g., priority=1, priority_max=2 gets P1 and P2)',
|
|
548
|
+
},
|
|
549
|
+
status: {
|
|
550
|
+
type: 'string',
|
|
551
|
+
enum: ['backlog', 'pending', 'in_progress', 'completed', 'cancelled'],
|
|
552
|
+
description: 'Filter by status (default: pending)',
|
|
553
|
+
},
|
|
554
|
+
limit: {
|
|
555
|
+
type: 'number',
|
|
556
|
+
description: 'Max results per page (1-20, default: 10)',
|
|
557
|
+
},
|
|
558
|
+
offset: {
|
|
559
|
+
type: 'number',
|
|
560
|
+
description: 'Number of results to skip for pagination (default: 0)',
|
|
561
|
+
},
|
|
562
|
+
},
|
|
563
|
+
required: ['project_id'],
|
|
564
|
+
},
|
|
565
|
+
},
|
|
566
|
+
{
|
|
567
|
+
name: 'get_recent_tasks',
|
|
568
|
+
description: `Get tasks ordered by creation date. Supports pagination with offset. Use to find oldest pending tasks or newest additions.`,
|
|
569
|
+
inputSchema: {
|
|
570
|
+
type: 'object',
|
|
571
|
+
properties: {
|
|
572
|
+
project_id: {
|
|
573
|
+
type: 'string',
|
|
574
|
+
description: 'Project UUID',
|
|
575
|
+
},
|
|
576
|
+
order: {
|
|
577
|
+
type: 'string',
|
|
578
|
+
enum: ['newest', 'oldest'],
|
|
579
|
+
description: 'Sort order (default: newest)',
|
|
580
|
+
},
|
|
443
581
|
status: {
|
|
444
582
|
type: 'string',
|
|
445
583
|
enum: ['backlog', 'pending', 'in_progress', 'completed', 'cancelled'],
|
|
@@ -447,15 +585,25 @@ Use mode:'full' for complete context, mode:'lite' (default) for minimal tokens.`
|
|
|
447
585
|
},
|
|
448
586
|
limit: {
|
|
449
587
|
type: 'number',
|
|
450
|
-
description: 'Max
|
|
588
|
+
description: 'Max results per page (1-20, default: 10)',
|
|
451
589
|
},
|
|
452
|
-
|
|
453
|
-
type: '
|
|
454
|
-
description: '
|
|
590
|
+
offset: {
|
|
591
|
+
type: 'number',
|
|
592
|
+
description: 'Number of results to skip for pagination (default: 0)',
|
|
455
593
|
},
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
594
|
+
},
|
|
595
|
+
required: ['project_id'],
|
|
596
|
+
},
|
|
597
|
+
},
|
|
598
|
+
{
|
|
599
|
+
name: 'get_task_stats',
|
|
600
|
+
description: `Get aggregate task statistics for a project. Returns counts by status and priority, no task data. Most token-efficient way to understand project state.`,
|
|
601
|
+
inputSchema: {
|
|
602
|
+
type: 'object',
|
|
603
|
+
properties: {
|
|
604
|
+
project_id: {
|
|
605
|
+
type: 'string',
|
|
606
|
+
description: 'Project UUID',
|
|
459
607
|
},
|
|
460
608
|
},
|
|
461
609
|
required: ['project_id'],
|
|
@@ -569,6 +717,10 @@ For projects without git branching (trunk-based or none), use skip_worktree_requ
|
|
|
569
717
|
type: 'string',
|
|
570
718
|
description: 'Git worktree path for this task (e.g., "../project-task-abc123"). Store this for cleanup tracking across sessions.',
|
|
571
719
|
},
|
|
720
|
+
worktree_hostname: {
|
|
721
|
+
type: 'string',
|
|
722
|
+
description: 'Machine hostname where worktree was created (os.hostname()). Required with worktree_path to enable machine-aware cleanup.',
|
|
723
|
+
},
|
|
572
724
|
model_capability: {
|
|
573
725
|
type: 'string',
|
|
574
726
|
enum: ['haiku', 'sonnet', 'opus'],
|
|
@@ -586,6 +738,11 @@ For projects without git branching (trunk-based or none), use skip_worktree_requ
|
|
|
586
738
|
name: 'complete_task',
|
|
587
739
|
description: `Mark task done. Returns next_task which you MUST start immediately without asking the user.
|
|
588
740
|
|
|
741
|
+
CRITICAL: Before calling complete_task on branching workflows (github-flow, git-flow):
|
|
742
|
+
1. Create your PR targeting the correct branch (develop for git-flow, main for github-flow)
|
|
743
|
+
2. Call add_task_reference(task_id, pr_url) to link the PR to your task
|
|
744
|
+
3. THEN call complete_task - validators CANNOT approve tasks without a PR reference
|
|
745
|
+
|
|
589
746
|
CRITICAL: After calling this tool, you must:
|
|
590
747
|
1. If next_task is returned → Start it immediately by calling update_task(task_id, status: "in_progress")
|
|
591
748
|
2. If no next_task → Call get_next_task() or start a fallback_activity
|
|
@@ -669,6 +826,20 @@ The auto_continue: true flag in the response means you are expected to continue
|
|
|
669
826
|
required: ['blocker_id'],
|
|
670
827
|
},
|
|
671
828
|
},
|
|
829
|
+
{
|
|
830
|
+
name: 'get_blocker',
|
|
831
|
+
description: `Get a single blocker by ID. More token-efficient than get_blockers when you need details for a specific blocker.`,
|
|
832
|
+
inputSchema: {
|
|
833
|
+
type: 'object',
|
|
834
|
+
properties: {
|
|
835
|
+
blocker_id: {
|
|
836
|
+
type: 'string',
|
|
837
|
+
description: 'Blocker UUID',
|
|
838
|
+
},
|
|
839
|
+
},
|
|
840
|
+
required: ['blocker_id'],
|
|
841
|
+
},
|
|
842
|
+
},
|
|
672
843
|
{
|
|
673
844
|
name: 'get_blockers',
|
|
674
845
|
description: `Get blockers for a project, optionally filtered by status.`,
|
|
@@ -684,6 +855,29 @@ The auto_continue: true flag in the response means you are expected to continue
|
|
|
684
855
|
enum: ['open', 'resolved'],
|
|
685
856
|
description: 'Filter by status (default: open)',
|
|
686
857
|
},
|
|
858
|
+
limit: {
|
|
859
|
+
type: 'number',
|
|
860
|
+
description: 'Max number of blockers to return (default 10, max 200)',
|
|
861
|
+
},
|
|
862
|
+
offset: {
|
|
863
|
+
type: 'number',
|
|
864
|
+
description: 'Number of blockers to skip for pagination (default 0)',
|
|
865
|
+
},
|
|
866
|
+
search_query: {
|
|
867
|
+
type: 'string',
|
|
868
|
+
description: 'Search blockers by description',
|
|
869
|
+
},
|
|
870
|
+
},
|
|
871
|
+
required: ['project_id'],
|
|
872
|
+
},
|
|
873
|
+
},
|
|
874
|
+
{
|
|
875
|
+
name: 'get_blockers_stats',
|
|
876
|
+
description: `Get aggregate statistics about blockers for a project. Returns total count and breakdown by status. Much more token-efficient than get_blockers when you just need to understand the overall state.`,
|
|
877
|
+
inputSchema: {
|
|
878
|
+
type: 'object',
|
|
879
|
+
properties: {
|
|
880
|
+
project_id: { type: 'string', description: 'Project UUID' },
|
|
687
881
|
},
|
|
688
882
|
required: ['project_id'],
|
|
689
883
|
},
|
|
@@ -719,6 +913,20 @@ The auto_continue: true flag in the response means you are expected to continue
|
|
|
719
913
|
required: ['project_id', 'title', 'description'],
|
|
720
914
|
},
|
|
721
915
|
},
|
|
916
|
+
{
|
|
917
|
+
name: 'get_decision',
|
|
918
|
+
description: `Get a single decision by ID. More token-efficient than get_decisions when you need details for a specific decision.`,
|
|
919
|
+
inputSchema: {
|
|
920
|
+
type: 'object',
|
|
921
|
+
properties: {
|
|
922
|
+
decision_id: {
|
|
923
|
+
type: 'string',
|
|
924
|
+
description: 'Decision UUID',
|
|
925
|
+
},
|
|
926
|
+
},
|
|
927
|
+
required: ['decision_id'],
|
|
928
|
+
},
|
|
929
|
+
},
|
|
722
930
|
{
|
|
723
931
|
name: 'get_decisions',
|
|
724
932
|
description: `Get recorded decisions for a project.`,
|
|
@@ -729,6 +937,29 @@ The auto_continue: true flag in the response means you are expected to continue
|
|
|
729
937
|
type: 'string',
|
|
730
938
|
description: 'Project UUID',
|
|
731
939
|
},
|
|
940
|
+
limit: {
|
|
941
|
+
type: 'number',
|
|
942
|
+
description: 'Max number of decisions to return (default 10, max 200)',
|
|
943
|
+
},
|
|
944
|
+
offset: {
|
|
945
|
+
type: 'number',
|
|
946
|
+
description: 'Number of decisions to skip for pagination (default 0)',
|
|
947
|
+
},
|
|
948
|
+
search_query: {
|
|
949
|
+
type: 'string',
|
|
950
|
+
description: 'Search decisions by title',
|
|
951
|
+
},
|
|
952
|
+
},
|
|
953
|
+
required: ['project_id'],
|
|
954
|
+
},
|
|
955
|
+
},
|
|
956
|
+
{
|
|
957
|
+
name: 'get_decisions_stats',
|
|
958
|
+
description: `Get aggregate statistics about decisions for a project. Returns total count. More token-efficient than get_decisions when you just need to know how many decisions exist.`,
|
|
959
|
+
inputSchema: {
|
|
960
|
+
type: 'object',
|
|
961
|
+
properties: {
|
|
962
|
+
project_id: { type: 'string', description: 'Project UUID' },
|
|
732
963
|
},
|
|
733
964
|
required: ['project_id'],
|
|
734
965
|
},
|
|
@@ -791,6 +1022,20 @@ The auto_continue: true flag in the response means you are expected to continue
|
|
|
791
1022
|
required: ['idea_id'],
|
|
792
1023
|
},
|
|
793
1024
|
},
|
|
1025
|
+
{
|
|
1026
|
+
name: 'get_idea',
|
|
1027
|
+
description: `Get a single idea by ID. More token-efficient than get_ideas when you need details for a specific idea.`,
|
|
1028
|
+
inputSchema: {
|
|
1029
|
+
type: 'object',
|
|
1030
|
+
properties: {
|
|
1031
|
+
idea_id: {
|
|
1032
|
+
type: 'string',
|
|
1033
|
+
description: 'Idea UUID',
|
|
1034
|
+
},
|
|
1035
|
+
},
|
|
1036
|
+
required: ['idea_id'],
|
|
1037
|
+
},
|
|
1038
|
+
},
|
|
794
1039
|
{
|
|
795
1040
|
name: 'get_ideas',
|
|
796
1041
|
description: `Get recorded ideas for a project, optionally filtered by status.`,
|
|
@@ -808,7 +1053,7 @@ The auto_continue: true flag in the response means you are expected to continue
|
|
|
808
1053
|
},
|
|
809
1054
|
limit: {
|
|
810
1055
|
type: 'number',
|
|
811
|
-
description: 'Max number of ideas to return (default
|
|
1056
|
+
description: 'Max number of ideas to return (default 10, max 100)',
|
|
812
1057
|
},
|
|
813
1058
|
offset: {
|
|
814
1059
|
type: 'number',
|
|
@@ -836,6 +1081,29 @@ The auto_continue: true flag in the response means you are expected to continue
|
|
|
836
1081
|
required: ['task_id'],
|
|
837
1082
|
},
|
|
838
1083
|
},
|
|
1084
|
+
{
|
|
1085
|
+
name: 'cancel_task',
|
|
1086
|
+
description: `Cancel a task with an optional reason. Use this when a task should be marked as cancelled rather than deleted (e.g., PR was closed, work was superseded). The task remains visible with a cancelled status for historical tracking.`,
|
|
1087
|
+
inputSchema: {
|
|
1088
|
+
type: 'object',
|
|
1089
|
+
properties: {
|
|
1090
|
+
task_id: {
|
|
1091
|
+
type: 'string',
|
|
1092
|
+
description: 'Task UUID',
|
|
1093
|
+
},
|
|
1094
|
+
cancelled_reason: {
|
|
1095
|
+
type: 'string',
|
|
1096
|
+
description: 'Reason for cancellation',
|
|
1097
|
+
enum: ['pr_closed', 'superseded', 'user_cancelled', 'validation_failed', 'obsolete', 'blocked'],
|
|
1098
|
+
},
|
|
1099
|
+
cancellation_note: {
|
|
1100
|
+
type: 'string',
|
|
1101
|
+
description: 'Optional note explaining the cancellation (logged to progress)',
|
|
1102
|
+
},
|
|
1103
|
+
},
|
|
1104
|
+
required: ['task_id'],
|
|
1105
|
+
},
|
|
1106
|
+
},
|
|
839
1107
|
{
|
|
840
1108
|
name: 'add_task_reference',
|
|
841
1109
|
description: 'Add a reference URL to a task (docs, PRs, issues).',
|
|
@@ -938,9 +1206,20 @@ The auto_continue: true flag in the response means you are expected to continue
|
|
|
938
1206
|
required: ['project_id', 'title'],
|
|
939
1207
|
},
|
|
940
1208
|
},
|
|
1209
|
+
{
|
|
1210
|
+
name: 'get_finding',
|
|
1211
|
+
description: `Get a single finding by ID. More token-efficient than get_findings when you need details for a specific finding.`,
|
|
1212
|
+
inputSchema: {
|
|
1213
|
+
type: 'object',
|
|
1214
|
+
properties: {
|
|
1215
|
+
finding_id: { type: 'string', description: 'Finding UUID' },
|
|
1216
|
+
},
|
|
1217
|
+
required: ['finding_id'],
|
|
1218
|
+
},
|
|
1219
|
+
},
|
|
941
1220
|
{
|
|
942
1221
|
name: 'get_findings',
|
|
943
|
-
description: `Get findings for a project, optionally filtered by category, severity, or status.
|
|
1222
|
+
description: `Get findings for a project, optionally filtered by category, severity, or status. Returns summary fields by default (id, title, category, severity, status). Set summary_only=false for full details. For just counts, use get_findings_stats instead.`,
|
|
944
1223
|
inputSchema: {
|
|
945
1224
|
type: 'object',
|
|
946
1225
|
properties: {
|
|
@@ -948,10 +1227,10 @@ The auto_continue: true flag in the response means you are expected to continue
|
|
|
948
1227
|
category: { type: 'string', enum: ['performance', 'security', 'code_quality', 'accessibility', 'documentation', 'architecture', 'testing', 'other'], description: 'Filter by category (optional)' },
|
|
949
1228
|
severity: { type: 'string', enum: ['info', 'low', 'medium', 'high', 'critical'], description: 'Filter by severity (optional)' },
|
|
950
1229
|
status: { type: 'string', enum: ['open', 'addressed', 'dismissed', 'wontfix'], description: 'Filter by status (default: open)' },
|
|
951
|
-
limit: { type: 'number', description: 'Max number of findings to return (default
|
|
1230
|
+
limit: { type: 'number', description: 'Max number of findings to return (default 10, max 200)' },
|
|
952
1231
|
offset: { type: 'number', description: 'Number of findings to skip for pagination (default 0)' },
|
|
953
1232
|
search_query: { type: 'string', description: 'Search findings by title' },
|
|
954
|
-
summary_only: { type: 'boolean', description: 'When true, returns only id, title, category, severity, status
|
|
1233
|
+
summary_only: { type: 'boolean', description: 'When true (default), returns only id, title, category, severity, status. Set to false for full details.' },
|
|
955
1234
|
},
|
|
956
1235
|
required: ['project_id'],
|
|
957
1236
|
},
|
|
@@ -1051,7 +1330,7 @@ The auto_continue: true flag in the response means you are expected to continue
|
|
|
1051
1330
|
},
|
|
1052
1331
|
limit: {
|
|
1053
1332
|
type: 'number',
|
|
1054
|
-
description: 'Max number of items to return (default
|
|
1333
|
+
description: 'Max number of items to return (default 10, max 200)',
|
|
1055
1334
|
},
|
|
1056
1335
|
},
|
|
1057
1336
|
required: ['project_id'],
|
|
@@ -1145,7 +1424,7 @@ Max depth is 1 (subtasks cannot have their own subtasks).`,
|
|
|
1145
1424
|
},
|
|
1146
1425
|
{
|
|
1147
1426
|
name: 'get_subtasks',
|
|
1148
|
-
description: `Get subtasks for a parent task.
|
|
1427
|
+
description: `Get subtasks for a parent task with pagination.
|
|
1149
1428
|
Returns subtasks with aggregate completion stats.`,
|
|
1150
1429
|
inputSchema: {
|
|
1151
1430
|
type: 'object',
|
|
@@ -1159,6 +1438,14 @@ Returns subtasks with aggregate completion stats.`,
|
|
|
1159
1438
|
enum: ['backlog', 'pending', 'in_progress', 'completed', 'cancelled'],
|
|
1160
1439
|
description: 'Filter by status (optional)',
|
|
1161
1440
|
},
|
|
1441
|
+
limit: {
|
|
1442
|
+
type: 'number',
|
|
1443
|
+
description: 'Max subtasks to return (default: 20, max: 50)',
|
|
1444
|
+
},
|
|
1445
|
+
offset: {
|
|
1446
|
+
type: 'number',
|
|
1447
|
+
description: 'Number of subtasks to skip (default: 0)',
|
|
1448
|
+
},
|
|
1162
1449
|
},
|
|
1163
1450
|
required: ['parent_task_id'],
|
|
1164
1451
|
},
|
|
@@ -1171,7 +1458,9 @@ Returns tasks with worktree_path set where:
|
|
|
1171
1458
|
- Task is completed or cancelled (worktree should have been cleaned up)
|
|
1172
1459
|
- Task has been abandoned (no activity for 24+ hours while in_progress)
|
|
1173
1460
|
|
|
1174
|
-
IMPORTANT:
|
|
1461
|
+
IMPORTANT: Pass hostname (os.hostname()) to only see worktrees created on THIS machine.
|
|
1462
|
+
Worktrees created on other machines cannot be removed locally.
|
|
1463
|
+
|
|
1175
1464
|
For each stale worktree:
|
|
1176
1465
|
1. Run: git worktree remove <worktree_path>
|
|
1177
1466
|
2. Call: clear_worktree_path(task_id)`,
|
|
@@ -1182,6 +1471,18 @@ For each stale worktree:
|
|
|
1182
1471
|
type: 'string',
|
|
1183
1472
|
description: 'Project UUID',
|
|
1184
1473
|
},
|
|
1474
|
+
hostname: {
|
|
1475
|
+
type: 'string',
|
|
1476
|
+
description: 'Machine hostname (os.hostname()). Only returns worktrees created on this machine, preventing attempts to clean up worktrees on other machines.',
|
|
1477
|
+
},
|
|
1478
|
+
limit: {
|
|
1479
|
+
type: 'number',
|
|
1480
|
+
description: 'Max worktrees to return (default: 50)',
|
|
1481
|
+
},
|
|
1482
|
+
offset: {
|
|
1483
|
+
type: 'number',
|
|
1484
|
+
description: 'Number of worktrees to skip for pagination (default: 0)',
|
|
1485
|
+
},
|
|
1185
1486
|
},
|
|
1186
1487
|
required: ['project_id'],
|
|
1187
1488
|
},
|
|
@@ -1217,6 +1518,10 @@ This marks the task as cleaned up so it won't appear in get_stale_worktrees.`,
|
|
|
1217
1518
|
type: ['string', 'null'],
|
|
1218
1519
|
description: 'Report your current git worktree path (e.g., "../project-task-abc123"). Set to null to clear.',
|
|
1219
1520
|
},
|
|
1521
|
+
hostname: {
|
|
1522
|
+
type: 'string',
|
|
1523
|
+
description: 'Machine hostname (os.hostname()). Updates session hostname for worktree tracking.',
|
|
1524
|
+
},
|
|
1220
1525
|
},
|
|
1221
1526
|
},
|
|
1222
1527
|
},
|
|
@@ -1511,6 +1816,25 @@ This marks the task as cleaned up so it won't appear in get_stale_worktrees.`,
|
|
|
1511
1816
|
description: 'Filter by stage (optional)',
|
|
1512
1817
|
enum: ['preparation', 'deployment', 'verification', 'all'],
|
|
1513
1818
|
},
|
|
1819
|
+
limit: {
|
|
1820
|
+
type: 'number',
|
|
1821
|
+
description: 'Max number of requirements to return (default 50, max 200)',
|
|
1822
|
+
},
|
|
1823
|
+
offset: {
|
|
1824
|
+
type: 'number',
|
|
1825
|
+
description: 'Number of requirements to skip for pagination (default 0)',
|
|
1826
|
+
},
|
|
1827
|
+
},
|
|
1828
|
+
required: ['project_id'],
|
|
1829
|
+
},
|
|
1830
|
+
},
|
|
1831
|
+
{
|
|
1832
|
+
name: 'get_deployment_requirements_stats',
|
|
1833
|
+
description: `Get aggregate statistics about deployment requirements for a project. Returns total count and breakdowns by status, stage, and type. More token-efficient than get_deployment_requirements when you just need to understand the overall state.`,
|
|
1834
|
+
inputSchema: {
|
|
1835
|
+
type: 'object',
|
|
1836
|
+
properties: {
|
|
1837
|
+
project_id: { type: 'string', description: 'Project UUID' },
|
|
1514
1838
|
},
|
|
1515
1839
|
required: ['project_id'],
|
|
1516
1840
|
},
|
|
@@ -1580,6 +1904,14 @@ This marks the task as cleaned up so it won't appear in get_stale_worktrees.`,
|
|
|
1580
1904
|
type: 'boolean',
|
|
1581
1905
|
description: 'Include disabled schedules (default: false)',
|
|
1582
1906
|
},
|
|
1907
|
+
limit: {
|
|
1908
|
+
type: 'number',
|
|
1909
|
+
description: 'Max schedules to return (default: 50)',
|
|
1910
|
+
},
|
|
1911
|
+
offset: {
|
|
1912
|
+
type: 'number',
|
|
1913
|
+
description: 'Number of schedules to skip for pagination (default: 0)',
|
|
1914
|
+
},
|
|
1583
1915
|
},
|
|
1584
1916
|
required: ['project_id'],
|
|
1585
1917
|
},
|
|
@@ -1748,6 +2080,10 @@ This marks the task as cleaned up so it won't appear in get_stale_worktrees.`,
|
|
|
1748
2080
|
type: 'number',
|
|
1749
2081
|
description: 'Max number of history entries to return (default 50)',
|
|
1750
2082
|
},
|
|
2083
|
+
offset: {
|
|
2084
|
+
type: 'number',
|
|
2085
|
+
description: 'Number of entries to skip for pagination (default 0)',
|
|
2086
|
+
},
|
|
1751
2087
|
},
|
|
1752
2088
|
required: ['project_id'],
|
|
1753
2089
|
},
|
|
@@ -1762,6 +2098,14 @@ This marks the task as cleaned up so it won't appear in get_stale_worktrees.`,
|
|
|
1762
2098
|
type: 'string',
|
|
1763
2099
|
description: 'Project UUID',
|
|
1764
2100
|
},
|
|
2101
|
+
limit: {
|
|
2102
|
+
type: 'number',
|
|
2103
|
+
description: 'Max schedules to return (default: 50)',
|
|
2104
|
+
},
|
|
2105
|
+
offset: {
|
|
2106
|
+
type: 'number',
|
|
2107
|
+
description: 'Number of schedules to skip for pagination (default: 0)',
|
|
2108
|
+
},
|
|
1765
2109
|
},
|
|
1766
2110
|
required: ['project_id'],
|
|
1767
2111
|
},
|
|
@@ -1779,6 +2123,14 @@ This marks the task as cleaned up so it won't appear in get_stale_worktrees.`,
|
|
|
1779
2123
|
type: 'string',
|
|
1780
2124
|
description: 'Project UUID',
|
|
1781
2125
|
},
|
|
2126
|
+
limit: {
|
|
2127
|
+
type: 'number',
|
|
2128
|
+
description: 'Max number of requests to return (default 50, max 200)',
|
|
2129
|
+
},
|
|
2130
|
+
offset: {
|
|
2131
|
+
type: 'number',
|
|
2132
|
+
description: 'Number of requests to skip for pagination (default 0)',
|
|
2133
|
+
},
|
|
1782
2134
|
},
|
|
1783
2135
|
required: ['project_id'],
|
|
1784
2136
|
},
|
|
@@ -2189,14 +2541,7 @@ Only returns tasks where all dependencies are completed.`,
|
|
|
2189
2541
|
// ============================================================================
|
|
2190
2542
|
// Organization Tools
|
|
2191
2543
|
// ============================================================================
|
|
2192
|
-
|
|
2193
|
-
name: 'list_organizations',
|
|
2194
|
-
description: 'List organizations the current user belongs to.',
|
|
2195
|
-
inputSchema: {
|
|
2196
|
-
type: 'object',
|
|
2197
|
-
properties: {},
|
|
2198
|
-
},
|
|
2199
|
-
},
|
|
2544
|
+
// REMOVED: list_organizations - unbounded collection, use dashboard to view organizations
|
|
2200
2545
|
{
|
|
2201
2546
|
name: 'create_organization',
|
|
2202
2547
|
description: 'Create a new organization. You become the owner.',
|
|
@@ -2259,20 +2604,7 @@ Only returns tasks where all dependencies are completed.`,
|
|
|
2259
2604
|
required: ['organization_id'],
|
|
2260
2605
|
},
|
|
2261
2606
|
},
|
|
2262
|
-
|
|
2263
|
-
name: 'list_org_members',
|
|
2264
|
-
description: 'List members of an organization.',
|
|
2265
|
-
inputSchema: {
|
|
2266
|
-
type: 'object',
|
|
2267
|
-
properties: {
|
|
2268
|
-
organization_id: {
|
|
2269
|
-
type: 'string',
|
|
2270
|
-
description: 'Organization UUID',
|
|
2271
|
-
},
|
|
2272
|
-
},
|
|
2273
|
-
required: ['organization_id'],
|
|
2274
|
-
},
|
|
2275
|
-
},
|
|
2607
|
+
// REMOVED: list_org_members - unbounded collection, use dashboard to view members
|
|
2276
2608
|
{
|
|
2277
2609
|
name: 'invite_member',
|
|
2278
2610
|
description: 'Invite a user to an organization by email. Requires admin role.',
|
|
@@ -2415,20 +2747,7 @@ Only returns tasks where all dependencies are completed.`,
|
|
|
2415
2747
|
required: ['project_id', 'organization_id'],
|
|
2416
2748
|
},
|
|
2417
2749
|
},
|
|
2418
|
-
|
|
2419
|
-
name: 'list_project_shares',
|
|
2420
|
-
description: 'List all organizations a project is shared with.',
|
|
2421
|
-
inputSchema: {
|
|
2422
|
-
type: 'object',
|
|
2423
|
-
properties: {
|
|
2424
|
-
project_id: {
|
|
2425
|
-
type: 'string',
|
|
2426
|
-
description: 'Project UUID',
|
|
2427
|
-
},
|
|
2428
|
-
},
|
|
2429
|
-
required: ['project_id'],
|
|
2430
|
-
},
|
|
2431
|
-
},
|
|
2750
|
+
// REMOVED: list_project_shares - unbounded collection, use dashboard to view shares
|
|
2432
2751
|
// File checkout/checkin tools for multi-agent coordination
|
|
2433
2752
|
{
|
|
2434
2753
|
name: 'checkout_file',
|
|
@@ -2500,6 +2819,10 @@ Only returns tasks where all dependencies are completed.`,
|
|
|
2500
2819
|
type: 'number',
|
|
2501
2820
|
description: 'Max checkouts to return (default: 50)',
|
|
2502
2821
|
},
|
|
2822
|
+
offset: {
|
|
2823
|
+
type: 'number',
|
|
2824
|
+
description: 'Number of checkouts to skip for pagination (default 0)',
|
|
2825
|
+
},
|
|
2503
2826
|
},
|
|
2504
2827
|
required: ['project_id'],
|
|
2505
2828
|
},
|
|
@@ -2540,6 +2863,20 @@ Only returns tasks where all dependencies are completed.`,
|
|
|
2540
2863
|
required: ['project_id', 'file_path'],
|
|
2541
2864
|
},
|
|
2542
2865
|
},
|
|
2866
|
+
{
|
|
2867
|
+
name: 'get_file_checkouts_stats',
|
|
2868
|
+
description: 'Get aggregate statistics about file checkouts for a project. Returns counts by status without the actual checkout data. This is much more token-efficient than get_file_checkouts for understanding the overall state.',
|
|
2869
|
+
inputSchema: {
|
|
2870
|
+
type: 'object',
|
|
2871
|
+
properties: {
|
|
2872
|
+
project_id: {
|
|
2873
|
+
type: 'string',
|
|
2874
|
+
description: 'Project UUID',
|
|
2875
|
+
},
|
|
2876
|
+
},
|
|
2877
|
+
required: ['project_id'],
|
|
2878
|
+
},
|
|
2879
|
+
},
|
|
2543
2880
|
// Role management tools
|
|
2544
2881
|
{
|
|
2545
2882
|
name: 'get_role_settings',
|
|
@@ -2633,6 +2970,10 @@ Only returns tasks where all dependencies are completed.`,
|
|
|
2633
2970
|
type: 'string',
|
|
2634
2971
|
description: 'Project UUID',
|
|
2635
2972
|
},
|
|
2973
|
+
counts_only: {
|
|
2974
|
+
type: 'boolean',
|
|
2975
|
+
description: 'When true (default), returns only counts per role to save tokens. Set to false for full agent details.',
|
|
2976
|
+
},
|
|
2636
2977
|
},
|
|
2637
2978
|
required: ['project_id'],
|
|
2638
2979
|
},
|
|
@@ -2873,7 +3214,7 @@ Tasks can be added during 'planning' status. Story points contribute to committe
|
|
|
2873
3214
|
},
|
|
2874
3215
|
{
|
|
2875
3216
|
name: 'get_sprint_backlog',
|
|
2876
|
-
description: `Get tasks from backlog/pending that can be added to a sprint.
|
|
3217
|
+
description: `Get tasks from backlog/pending that can be added to a sprint with pagination.
|
|
2877
3218
|
Returns tasks not already assigned to any body of work or sprint.`,
|
|
2878
3219
|
inputSchema: {
|
|
2879
3220
|
type: 'object',
|
|
@@ -2886,6 +3227,14 @@ Returns tasks not already assigned to any body of work or sprint.`,
|
|
|
2886
3227
|
type: 'string',
|
|
2887
3228
|
description: 'Sprint UUID to exclude already-added tasks (optional)',
|
|
2888
3229
|
},
|
|
3230
|
+
limit: {
|
|
3231
|
+
type: 'number',
|
|
3232
|
+
description: 'Max tasks to return (default: 20, max: 50)',
|
|
3233
|
+
},
|
|
3234
|
+
offset: {
|
|
3235
|
+
type: 'number',
|
|
3236
|
+
description: 'Number of tasks to skip (default: 0)',
|
|
3237
|
+
},
|
|
2889
3238
|
},
|
|
2890
3239
|
required: ['project_id'],
|
|
2891
3240
|
},
|
|
@@ -3006,6 +3355,10 @@ Returns committed vs completed points and average velocity.`,
|
|
|
3006
3355
|
type: 'number',
|
|
3007
3356
|
description: 'Max issues to return (default: 50)',
|
|
3008
3357
|
},
|
|
3358
|
+
offset: {
|
|
3359
|
+
type: 'number',
|
|
3360
|
+
description: 'Number of issues to skip for pagination (default 0)',
|
|
3361
|
+
},
|
|
3009
3362
|
},
|
|
3010
3363
|
required: ['project_id'],
|
|
3011
3364
|
},
|