@vibescope/mcp-server 0.1.0 → 0.2.1

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.
Files changed (76) hide show
  1. package/README.md +1 -1
  2. package/dist/api-client.d.ts +120 -2
  3. package/dist/api-client.js +51 -5
  4. package/dist/handlers/bodies-of-work.js +84 -50
  5. package/dist/handlers/cost.js +62 -54
  6. package/dist/handlers/decisions.js +29 -16
  7. package/dist/handlers/deployment.js +114 -107
  8. package/dist/handlers/discovery.d.ts +3 -0
  9. package/dist/handlers/discovery.js +55 -657
  10. package/dist/handlers/fallback.js +42 -28
  11. package/dist/handlers/file-checkouts.d.ts +18 -0
  12. package/dist/handlers/file-checkouts.js +101 -0
  13. package/dist/handlers/findings.d.ts +14 -1
  14. package/dist/handlers/findings.js +104 -28
  15. package/dist/handlers/git-issues.js +36 -32
  16. package/dist/handlers/ideas.js +44 -26
  17. package/dist/handlers/index.d.ts +2 -0
  18. package/dist/handlers/index.js +6 -0
  19. package/dist/handlers/milestones.js +34 -27
  20. package/dist/handlers/organizations.js +86 -78
  21. package/dist/handlers/progress.js +22 -11
  22. package/dist/handlers/project.js +62 -22
  23. package/dist/handlers/requests.js +15 -11
  24. package/dist/handlers/roles.d.ts +18 -0
  25. package/dist/handlers/roles.js +130 -0
  26. package/dist/handlers/session.js +52 -15
  27. package/dist/handlers/sprints.js +78 -65
  28. package/dist/handlers/tasks.js +135 -74
  29. package/dist/handlers/tool-docs.d.ts +4 -3
  30. package/dist/handlers/tool-docs.js +252 -5
  31. package/dist/handlers/validation.js +30 -14
  32. package/dist/index.js +25 -7
  33. package/dist/tools.js +417 -4
  34. package/package.json +1 -1
  35. package/src/api-client.ts +161 -8
  36. package/src/handlers/__test-setup__.ts +12 -0
  37. package/src/handlers/bodies-of-work.ts +127 -111
  38. package/src/handlers/cost.test.ts +34 -44
  39. package/src/handlers/cost.ts +77 -92
  40. package/src/handlers/decisions.test.ts +3 -2
  41. package/src/handlers/decisions.ts +32 -27
  42. package/src/handlers/deployment.ts +144 -190
  43. package/src/handlers/discovery.test.ts +4 -5
  44. package/src/handlers/discovery.ts +60 -746
  45. package/src/handlers/fallback.test.ts +78 -0
  46. package/src/handlers/fallback.ts +51 -38
  47. package/src/handlers/file-checkouts.test.ts +477 -0
  48. package/src/handlers/file-checkouts.ts +127 -0
  49. package/src/handlers/findings.test.ts +274 -2
  50. package/src/handlers/findings.ts +123 -57
  51. package/src/handlers/git-issues.ts +40 -80
  52. package/src/handlers/ideas.ts +56 -54
  53. package/src/handlers/index.ts +6 -0
  54. package/src/handlers/milestones.test.ts +1 -1
  55. package/src/handlers/milestones.ts +47 -45
  56. package/src/handlers/organizations.ts +104 -129
  57. package/src/handlers/progress.ts +24 -22
  58. package/src/handlers/project.ts +89 -57
  59. package/src/handlers/requests.ts +18 -14
  60. package/src/handlers/roles.test.ts +303 -0
  61. package/src/handlers/roles.ts +208 -0
  62. package/src/handlers/session.test.ts +37 -2
  63. package/src/handlers/session.ts +64 -21
  64. package/src/handlers/sprints.ts +114 -134
  65. package/src/handlers/tasks.test.ts +61 -0
  66. package/src/handlers/tasks.ts +170 -139
  67. package/src/handlers/tool-docs.ts +1024 -0
  68. package/src/handlers/validation.test.ts +53 -1
  69. package/src/handlers/validation.ts +32 -21
  70. package/src/index.ts +25 -7
  71. package/src/tools.ts +417 -4
  72. package/dist/config/tool-categories.d.ts +0 -31
  73. package/dist/config/tool-categories.js +0 -253
  74. package/dist/knowledge.d.ts +0 -6
  75. package/dist/knowledge.js +0 -218
  76. package/src/knowledge.ts +0 -230
@@ -0,0 +1,1024 @@
1
+ /**
2
+ * Tool Documentation
3
+ *
4
+ * Externalized documentation for all MCP tools.
5
+ * This file is lazy-loaded by get_tool_info to save tokens.
6
+ *
7
+ * Token savings: ~8,000 tokens per schema load when this isn't bundled.
8
+ */
9
+
10
+ export const TOOL_INFO: Record<string, string> = {
11
+ start_work_session: `# start_work_session
12
+ Initialize agent session and get assigned work.
13
+
14
+ **Parameters:**
15
+ - project_id (optional): Project UUID
16
+ - git_url (optional): Git URL to find project
17
+ - mode: 'lite' (default) or 'full' for complete context
18
+
19
+ **Returns:** session_id, persona, project info, next_task
20
+
21
+ **Example:** start_work_session(git_url: "https://github.com/org/repo")`,
22
+
23
+ get_help: `# get_help
24
+ Get workflow guidance on specific topics.
25
+
26
+ **Parameters:**
27
+ - topic (required): One of: getting_started, tasks, validation, deployment, git, blockers, milestones, fallback, session, tokens, topics
28
+
29
+ **Example:** get_help(topic: "deployment")`,
30
+
31
+ get_token_usage: `# get_token_usage
32
+ Get token usage statistics for current session.
33
+
34
+ **Returns:** total calls, total tokens, breakdown by tool, averages`,
35
+
36
+ heartbeat: `# heartbeat
37
+ Send heartbeat to maintain active status. Call every 30-60 seconds.
38
+
39
+ **Parameters:**
40
+ - session_id (optional): Uses current session if not provided
41
+ - current_worktree_path (optional): Report your current git worktree path (e.g., "../project-task-abc123")`,
42
+
43
+ end_work_session: `# end_work_session
44
+ End session and release claimed tasks.
45
+
46
+ **Parameters:**
47
+ - session_id (optional): Uses current session if not provided
48
+
49
+ **Returns:** Session summary with tasks completed, time spent`,
50
+
51
+ get_project_context: `# get_project_context
52
+ Get full project context including goals, instructions, tasks, blockers, decisions.
53
+
54
+ **Parameters:**
55
+ - project_id (optional): Project UUID
56
+ - git_url (optional): Git URL to find project
57
+
58
+ Without params, lists all projects.`,
59
+
60
+ get_git_workflow: `# get_git_workflow
61
+ Get git workflow config and branching instructions.
62
+
63
+ **Parameters:**
64
+ - project_id (required): Project UUID
65
+ - task_id (optional): Include branch naming suggestion
66
+
67
+ **Returns:** workflow type, branch names, auto-settings`,
68
+
69
+ create_project: `# create_project
70
+ Create a new project to track.
71
+
72
+ **Parameters:**
73
+ - name (required): Project display name
74
+ - description: Brief description
75
+ - goal: What "done" looks like
76
+ - git_url: Repository URL
77
+ - tech_stack: Array of technologies`,
78
+
79
+ update_project: `# update_project
80
+ Update project settings.
81
+
82
+ **Parameters:**
83
+ - project_id (required): Project UUID
84
+ - name, description, goal, git_url, tech_stack, status
85
+ - git_workflow: none, trunk-based, github-flow, git-flow
86
+ - git_main_branch, git_develop_branch, git_auto_branch, git_auto_tag`,
87
+
88
+ update_project_readme: `# update_project_readme
89
+ Sync README content to the dashboard.
90
+
91
+ **Parameters:**
92
+ - project_id (required): Project UUID
93
+ - readme_content (required): Markdown content`,
94
+
95
+ get_tasks: `# get_tasks
96
+ Get tasks for a project.
97
+
98
+ **Parameters:**
99
+ - project_id (required): Project UUID
100
+ - status (optional): pending, in_progress, completed, cancelled
101
+ - limit (optional): Max tasks (default 50)`,
102
+
103
+ get_next_task: `# get_next_task
104
+ Get highest priority pending task not claimed by another agent.
105
+
106
+ **Parameters:**
107
+ - project_id (required): Project UUID
108
+
109
+ **Returns:** task or null, may suggest fallback activity`,
110
+
111
+ add_task: `# add_task
112
+ Create a new task.
113
+
114
+ **Parameters:**
115
+ - project_id (required): Project UUID
116
+ - title (required): Task title
117
+ - description: Detailed description
118
+ - priority: 1-5 (1=highest, default 3)
119
+ - estimated_minutes: Time estimate`,
120
+
121
+ update_task: `# update_task
122
+ Update task status, progress, or details.
123
+
124
+ **Parameters:**
125
+ - task_id (required): Task UUID
126
+ - status: pending, in_progress, completed, cancelled
127
+ - progress_percentage: 0-100
128
+ - progress_note: Brief note (auto-logged)
129
+ - title, description, priority, estimated_minutes, git_branch
130
+
131
+ **Best practice:** Include progress_note with progress_percentage`,
132
+
133
+ complete_task: `# complete_task
134
+ Mark task as done.
135
+
136
+ **Parameters:**
137
+ - task_id (required): Task UUID
138
+ - summary: What was done
139
+
140
+ **Returns:** next_task, validation_count, blockers_count, deployment_priority`,
141
+
142
+ delete_task: `# delete_task
143
+ Delete a task.
144
+
145
+ **Parameters:**
146
+ - task_id (required): Task UUID`,
147
+
148
+ batch_update_tasks: `# batch_update_tasks
149
+ Update multiple tasks at once.
150
+
151
+ **Parameters:**
152
+ - updates (required): Array of {task_id, status?, progress_percentage?, progress_note?, priority?}`,
153
+
154
+ batch_complete_tasks: `# batch_complete_tasks
155
+ Complete multiple tasks at once.
156
+
157
+ **Parameters:**
158
+ - completions (required): Array of {task_id, summary?}`,
159
+
160
+ add_task_reference: `# add_task_reference
161
+ Add a reference URL to a task.
162
+
163
+ **Parameters:**
164
+ - task_id (required): Task UUID
165
+ - url (required): Reference URL
166
+ - label (optional): Display label`,
167
+
168
+ remove_task_reference: `# remove_task_reference
169
+ Remove a reference URL from a task.
170
+
171
+ **Parameters:**
172
+ - task_id (required): Task UUID
173
+ - url (required): URL to remove`,
174
+
175
+ add_milestone: `# add_milestone
176
+ Add a milestone/step to a task.
177
+
178
+ **Parameters:**
179
+ - task_id (required): Task UUID
180
+ - title (required): Milestone title
181
+ - description (optional): Details
182
+ - order_index (optional): Position (0-based)`,
183
+
184
+ update_milestone: `# update_milestone
185
+ Update a milestone.
186
+
187
+ **Parameters:**
188
+ - milestone_id (required): Milestone UUID
189
+ - title, description, status (pending/in_progress/completed), order_index`,
190
+
191
+ complete_milestone: `# complete_milestone
192
+ Mark milestone as completed.
193
+
194
+ **Parameters:**
195
+ - milestone_id (required): Milestone UUID`,
196
+
197
+ delete_milestone: `# delete_milestone
198
+ Delete a milestone.
199
+
200
+ **Parameters:**
201
+ - milestone_id (required): Milestone UUID`,
202
+
203
+ get_milestones: `# get_milestones
204
+ Get all milestones for a task.
205
+
206
+ **Parameters:**
207
+ - task_id (required): Task UUID`,
208
+
209
+ log_progress: `# log_progress
210
+ Record a progress update.
211
+
212
+ **Parameters:**
213
+ - project_id (required): Project UUID
214
+ - summary (required): Brief summary
215
+ - task_id (optional): Link to task
216
+ - details (optional): Extended notes`,
217
+
218
+ get_activity_feed: `# get_activity_feed
219
+ Get combined activity feed.
220
+
221
+ **Parameters:**
222
+ - project_id (required): Project UUID
223
+ - types (optional): Array of task, progress, blocker, decision
224
+ - created_by (optional): agent or user
225
+ - since (optional): ISO date string
226
+ - limit (optional): Max items (default 50)`,
227
+
228
+ add_blocker: `# add_blocker
229
+ Record a blocker preventing progress.
230
+
231
+ **Parameters:**
232
+ - project_id (required): Project UUID
233
+ - description (required): What is blocking`,
234
+
235
+ resolve_blocker: `# resolve_blocker
236
+ Mark a blocker as resolved.
237
+
238
+ **Parameters:**
239
+ - blocker_id (required): Blocker UUID
240
+ - resolution_note (optional): How it was resolved`,
241
+
242
+ get_blockers: `# get_blockers
243
+ Get blockers for a project.
244
+
245
+ **Parameters:**
246
+ - project_id (required): Project UUID
247
+ - status (optional): open or resolved (default: open)`,
248
+
249
+ delete_blocker: `# delete_blocker
250
+ Delete a blocker.
251
+
252
+ **Parameters:**
253
+ - blocker_id (required): Blocker UUID`,
254
+
255
+ log_decision: `# log_decision
256
+ Record an architectural decision.
257
+
258
+ **Parameters:**
259
+ - project_id (required): Project UUID
260
+ - title (required): Decision title
261
+ - description (required): What was decided
262
+ - rationale (optional): Why
263
+ - alternatives_considered (optional): Array of alternatives`,
264
+
265
+ get_decisions: `# get_decisions
266
+ Get recorded decisions.
267
+
268
+ **Parameters:**
269
+ - project_id (required): Project UUID`,
270
+
271
+ delete_decision: `# delete_decision
272
+ Delete a decision.
273
+
274
+ **Parameters:**
275
+ - decision_id (required): Decision UUID`,
276
+
277
+ add_idea: `# add_idea
278
+ Record an improvement idea.
279
+
280
+ **Parameters:**
281
+ - project_id (required): Project UUID
282
+ - title (required): Idea title
283
+ - description (optional): Details
284
+ - status (optional): raw, exploring, planned, in_development, shipped`,
285
+
286
+ update_idea: `# update_idea
287
+ Update an idea.
288
+
289
+ **Parameters:**
290
+ - idea_id (required): Idea UUID
291
+ - title, description, status, doc_url`,
292
+
293
+ get_ideas: `# get_ideas
294
+ Get recorded ideas.
295
+
296
+ **Parameters:**
297
+ - project_id (required): Project UUID
298
+ - status (optional): Filter by status`,
299
+
300
+ delete_idea: `# delete_idea
301
+ Delete an idea.
302
+
303
+ **Parameters:**
304
+ - idea_id (required): Idea UUID`,
305
+
306
+ convert_idea_to_task: `# convert_idea_to_task
307
+ Convert an idea to a task. Creates a new task from the idea's title and description.
308
+
309
+ **Parameters:**
310
+ - idea_id (required): Idea UUID to convert
311
+ - priority (optional): Task priority 1-5 (default: 3)
312
+ - estimated_minutes (optional): Estimated time
313
+ - update_status (optional): Update idea to 'in_development' (default: true)
314
+
315
+ **Returns:**
316
+ - task_id: Created task UUID
317
+ - Links idea and task together`,
318
+
319
+ add_finding: `# add_finding
320
+ Record an audit/review finding.
321
+
322
+ **Parameters:**
323
+ - project_id (required): Project UUID
324
+ - title (required): Finding title
325
+ - category: performance, security, code_quality, accessibility, documentation, architecture, testing, other
326
+ - description: Details with impact and suggested fix
327
+ - severity: info, low, medium, high, critical
328
+ - file_path, line_number, related_task_id (optional)`,
329
+
330
+ get_findings: `# get_findings
331
+ Get audit findings.
332
+
333
+ **Parameters:**
334
+ - project_id (required): Project UUID
335
+ - category, severity, status (optional filters)
336
+ - limit (optional): Max items`,
337
+
338
+ update_finding: `# update_finding
339
+ Update a finding.
340
+
341
+ **Parameters:**
342
+ - finding_id (required): Finding UUID
343
+ - status: open, addressed, dismissed, wontfix
344
+ - resolution_note, title, description, severity`,
345
+
346
+ delete_finding: `# delete_finding
347
+ Delete a finding.
348
+
349
+ **Parameters:**
350
+ - finding_id (required): Finding UUID`,
351
+
352
+ get_tasks_awaiting_validation: `# get_tasks_awaiting_validation
353
+ Get completed tasks needing validation.
354
+
355
+ **Parameters:**
356
+ - project_id (required): Project UUID
357
+
358
+ **Returns:** Tasks with reviewing status (who's reviewing, when started)`,
359
+
360
+ claim_validation: `# claim_validation
361
+ Claim a completed task for review. Shows "being reviewed" on dashboard.
362
+
363
+ **Parameters:**
364
+ - task_id (required): Task UUID to claim
365
+
366
+ **Note:** Claim before reviewing to prevent duplicate work.`,
367
+
368
+ validate_task: `# validate_task
369
+ Validate a completed task.
370
+
371
+ **Parameters:**
372
+ - task_id (required): Task UUID
373
+ - approved (required): true/false
374
+ - validation_notes: What was checked, issues found`,
375
+
376
+ request_deployment: `# request_deployment
377
+ Request a deployment.
378
+
379
+ **Parameters:**
380
+ - project_id (required): Project UUID
381
+ - environment: development, staging, production
382
+ - version_bump: patch, minor, major
383
+ - notes, git_ref (optional)`,
384
+
385
+ claim_deployment_validation: `# claim_deployment_validation
386
+ Claim pending deployment for validation.
387
+
388
+ **Parameters:**
389
+ - project_id (required): Project UUID
390
+
391
+ Next: Run build+tests, then call report_validation`,
392
+
393
+ report_validation: `# report_validation
394
+ Report build/test results.
395
+
396
+ **Parameters:**
397
+ - project_id (required): Project UUID
398
+ - build_passed (required): boolean
399
+ - tests_passed (required): boolean
400
+ - error_message (if failed)`,
401
+
402
+ check_deployment_status: `# check_deployment_status
403
+ Get active deployment status.
404
+
405
+ **Parameters:**
406
+ - project_id (required): Project UUID`,
407
+
408
+ start_deployment: `# start_deployment
409
+ Start deployment (requires 'ready' status).
410
+
411
+ **Parameters:**
412
+ - project_id (required): Project UUID`,
413
+
414
+ complete_deployment: `# complete_deployment
415
+ Mark deployment complete.
416
+
417
+ **Parameters:**
418
+ - project_id (required): Project UUID
419
+ - success (required): boolean
420
+ - summary: What was deployed or why failed`,
421
+
422
+ cancel_deployment: `# cancel_deployment
423
+ Cancel active deployment.
424
+
425
+ **Parameters:**
426
+ - project_id (required): Project UUID
427
+ - reason (optional): Why cancelled`,
428
+
429
+ schedule_deployment: `# schedule_deployment
430
+ Schedule a deployment for a specific time.
431
+
432
+ **Parameters:**
433
+ - project_id (required): Project UUID
434
+ - scheduled_at (required): ISO 8601 datetime
435
+ - schedule_type (optional): once, daily, weekly, monthly (default: once)
436
+ - auto_trigger (optional): Whether agents auto-trigger (default: true)
437
+ - environment (optional): development, staging, production (default: production)
438
+ - version_bump (optional): patch, minor, major (default: patch)
439
+ - notes (optional): Notes about the deployment
440
+ - git_ref (optional): Git branch or commit
441
+
442
+ **Example:** schedule_deployment(project_id, scheduled_at: "2025-01-15T10:00:00Z", schedule_type: "weekly")`,
443
+
444
+ get_scheduled_deployments: `# get_scheduled_deployments
445
+ List scheduled deployments for a project.
446
+
447
+ **Parameters:**
448
+ - project_id (required): Project UUID
449
+ - include_disabled (optional): Include disabled schedules (default: false)`,
450
+
451
+ update_scheduled_deployment: `# update_scheduled_deployment
452
+ Update a scheduled deployment's configuration.
453
+
454
+ **Parameters:**
455
+ - schedule_id (required): Schedule UUID
456
+ - scheduled_at (optional): New scheduled time
457
+ - schedule_type (optional): once, daily, weekly, monthly
458
+ - auto_trigger (optional): Whether to auto-trigger
459
+ - enabled (optional): Enable or disable
460
+ - environment, version_bump, notes, git_ref (optional)`,
461
+
462
+ delete_scheduled_deployment: `# delete_scheduled_deployment
463
+ Delete a scheduled deployment.
464
+
465
+ **Parameters:**
466
+ - schedule_id (required): Schedule UUID`,
467
+
468
+ trigger_scheduled_deployment: `# trigger_scheduled_deployment
469
+ Manually trigger a scheduled deployment.
470
+
471
+ Creates a new deployment using the schedule's configuration.
472
+ Updates schedule: last_triggered_at, trigger_count, next scheduled_at (for recurring).
473
+
474
+ **Parameters:**
475
+ - schedule_id (required): Schedule UUID`,
476
+
477
+ check_due_deployments: `# check_due_deployments
478
+ Check for scheduled deployments that are due.
479
+
480
+ Returns schedules where: enabled AND auto_trigger AND scheduled_at <= NOW()
481
+
482
+ Use this to find deployments to trigger when working on a project.
483
+
484
+ **Parameters:**
485
+ - project_id (required): Project UUID`,
486
+
487
+ start_fallback_activity: `# start_fallback_activity
488
+ Start background activity when no tasks.
489
+
490
+ **Parameters:**
491
+ - project_id (required): Project UUID
492
+ - activity (required): feature_ideation, code_review, performance_audit, ux_review, cost_analysis, security_review, test_coverage, documentation_review, dependency_audit, validate_completed_tasks`,
493
+
494
+ stop_fallback_activity: `# stop_fallback_activity
495
+ Stop current fallback activity.
496
+
497
+ **Parameters:**
498
+ - project_id (required): Project UUID
499
+ - summary (optional): What was accomplished`,
500
+
501
+ get_activity_history: `# get_activity_history
502
+ Get background activity history.
503
+
504
+ **Parameters:**
505
+ - project_id (required): Project UUID
506
+ - activity_type (optional): Filter by type
507
+ - limit (optional): Max items`,
508
+
509
+ get_activity_schedules: `# get_activity_schedules
510
+ Get activity schedules.
511
+
512
+ **Parameters:**
513
+ - project_id (required): Project UUID`,
514
+
515
+ get_pending_requests: `# get_pending_requests
516
+ Get unacknowledged user requests.
517
+
518
+ **Parameters:**
519
+ - project_id (required): Project UUID`,
520
+
521
+ acknowledge_request: `# acknowledge_request
522
+ Mark a request as handled.
523
+
524
+ **Parameters:**
525
+ - request_id (required): Request UUID`,
526
+
527
+ answer_question: `# answer_question
528
+ Answer a user question from dashboard.
529
+
530
+ **Parameters:**
531
+ - request_id (required): Request UUID
532
+ - answer (required): Your answer`,
533
+
534
+ discover_tools: `# discover_tools
535
+ List available tools by category.
536
+
537
+ **Parameters:**
538
+ - category (optional): Filter to specific category
539
+
540
+ Without category, returns all categories with tool counts.
541
+ With category, returns tools in that category with brief descriptions.`,
542
+
543
+ get_tool_info: `# get_tool_info
544
+ Get detailed info for a specific tool.
545
+
546
+ **Parameters:**
547
+ - tool_name (required): Name of the tool
548
+
549
+ Returns: full documentation, parameters, examples, best practices.`,
550
+
551
+ // Organization tools
552
+ list_organizations: `# list_organizations
553
+ List organizations the current user belongs to.
554
+
555
+ **Parameters:** None
556
+
557
+ **Returns:** Array of organizations with role and joined_at`,
558
+
559
+ create_organization: `# create_organization
560
+ Create a new organization. You become the owner.
561
+
562
+ **Parameters:**
563
+ - name (required): Organization display name
564
+ - description (optional): Brief description
565
+ - slug (optional): URL-friendly identifier (auto-generated if not provided)
566
+
567
+ **Example:** create_organization(name: "Acme Corp", description: "Our development team")`,
568
+
569
+ update_organization: `# update_organization
570
+ Update organization details. Requires admin role.
571
+
572
+ **Parameters:**
573
+ - organization_id (required): Organization UUID
574
+ - name, description, logo_url (optional updates)`,
575
+
576
+ delete_organization: `# delete_organization
577
+ Delete an organization. Requires owner role. Removes all shares.
578
+
579
+ **Parameters:**
580
+ - organization_id (required): Organization UUID
581
+
582
+ **Warning:** This will remove all project shares with this organization.`,
583
+
584
+ list_org_members: `# list_org_members
585
+ List members of an organization.
586
+
587
+ **Parameters:**
588
+ - organization_id (required): Organization UUID
589
+
590
+ **Returns:** Array of members with role and joined_at`,
591
+
592
+ invite_member: `# invite_member
593
+ Invite a user to an organization by email. Requires admin role.
594
+
595
+ **Parameters:**
596
+ - organization_id (required): Organization UUID
597
+ - email (required): Email address to invite
598
+ - role (optional): admin, member, or viewer (default: member)
599
+
600
+ **Returns:** Invite details with token`,
601
+
602
+ update_member_role: `# update_member_role
603
+ Change a member's role. Requires admin role.
604
+
605
+ **Parameters:**
606
+ - organization_id (required): Organization UUID
607
+ - user_id (required): User UUID to update
608
+ - role (required): admin, member, or viewer
609
+
610
+ **Note:** Cannot change your own role or the owner's role.`,
611
+
612
+ remove_member: `# remove_member
613
+ Remove a member from an organization. Requires admin role.
614
+
615
+ **Parameters:**
616
+ - organization_id (required): Organization UUID
617
+ - user_id (required): User UUID to remove
618
+
619
+ **Note:** Cannot remove the owner. Their org-scoped API keys are invalidated.`,
620
+
621
+ leave_organization: `# leave_organization
622
+ Leave an organization.
623
+
624
+ **Parameters:**
625
+ - organization_id (required): Organization UUID
626
+
627
+ **Note:** Owner cannot leave. Must transfer ownership or delete organization.`,
628
+
629
+ share_project_with_org: `# share_project_with_org
630
+ Share a project with an organization. You must own the project.
631
+
632
+ **Parameters:**
633
+ - project_id (required): Project UUID
634
+ - organization_id (required): Organization UUID to share with
635
+ - permission (optional): read, write, or admin (default: read)
636
+
637
+ **Permission levels:**
638
+ - read: View project and tasks
639
+ - write: Add/update tasks, log progress
640
+ - admin: All write permissions plus deployments`,
641
+
642
+ update_project_share: `# update_project_share
643
+ Update the permission level for a project share.
644
+
645
+ **Parameters:**
646
+ - project_id (required): Project UUID
647
+ - organization_id (required): Organization UUID
648
+ - permission (required): read, write, or admin`,
649
+
650
+ unshare_project: `# unshare_project
651
+ Remove a project share from an organization.
652
+
653
+ **Parameters:**
654
+ - project_id (required): Project UUID
655
+ - organization_id (required): Organization UUID
656
+
657
+ **Note:** Org members will lose access immediately.`,
658
+
659
+ list_project_shares: `# list_project_shares
660
+ List all organizations a project is shared with.
661
+
662
+ **Parameters:**
663
+ - project_id (required): Project UUID
664
+
665
+ **Returns:** Array of shares with organization info and permission level`,
666
+
667
+ // Cost monitoring tools
668
+ get_cost_summary: `# get_cost_summary
669
+ Get cost summary (daily/weekly/monthly) for a project.
670
+
671
+ **Parameters:**
672
+ - project_id (required): Project UUID
673
+ - period: 'daily' | 'weekly' | 'monthly' (default: daily)
674
+ - limit: Max records to return (default: 30)
675
+
676
+ **Returns:** Cost summary with totals and breakdown by model`,
677
+
678
+ get_cost_alerts: `# get_cost_alerts
679
+ Get cost alerts for the current user.
680
+
681
+ **Parameters:**
682
+ - project_id (optional): Filter by project
683
+
684
+ **Returns:** Array of configured cost alerts`,
685
+
686
+ add_cost_alert: `# add_cost_alert
687
+ Add a cost threshold alert.
688
+
689
+ **Parameters:**
690
+ - project_id (optional): Specific project or null for all
691
+ - threshold_amount (required): Amount in USD
692
+ - threshold_period (required): 'daily' | 'weekly' | 'monthly'
693
+ - alert_type: 'warning' | 'critical' (default: warning)
694
+
695
+ **Example:** add_cost_alert(threshold_amount: 50, threshold_period: "daily", alert_type: "warning")`,
696
+
697
+ update_cost_alert: `# update_cost_alert
698
+ Update an existing cost alert.
699
+
700
+ **Parameters:**
701
+ - alert_id (required): Alert UUID
702
+ - threshold_amount: New amount in USD
703
+ - threshold_period: New period
704
+ - alert_type: New alert type
705
+ - enabled: Enable/disable the alert`,
706
+
707
+ delete_cost_alert: `# delete_cost_alert
708
+ Delete a cost alert.
709
+
710
+ **Parameters:**
711
+ - alert_id (required): Alert UUID to delete`,
712
+
713
+ get_task_costs: `# get_task_costs
714
+ Get cost breakdown by task for a project.
715
+
716
+ **Parameters:**
717
+ - project_id (required): Project UUID
718
+ - limit: Max tasks to return (default: 20)
719
+
720
+ **Returns:** Tasks sorted by estimated cost with model breakdown`,
721
+
722
+ // Subtasks
723
+ add_subtask: `# add_subtask
724
+ Add a subtask to break down a larger task.
725
+
726
+ **Parameters:**
727
+ - parent_task_id (required): UUID of the parent task
728
+ - title (required): Subtask title
729
+ - description (optional): Detailed description
730
+ - priority (optional): 1-5 (defaults to parent priority)
731
+ - estimated_minutes (optional): Time estimate
732
+
733
+ **Note:** Max depth is 1 (subtasks cannot have their own subtasks).`,
734
+
735
+ get_subtasks: `# get_subtasks
736
+ Get subtasks for a parent task.
737
+
738
+ **Parameters:**
739
+ - parent_task_id (required): UUID of the parent task
740
+ - status (optional): Filter by status
741
+
742
+ **Returns:** Subtasks with aggregate completion stats.`,
743
+
744
+ // Bodies of work
745
+ create_body_of_work: `# create_body_of_work
746
+ Create a new body of work to group tasks into phases.
747
+
748
+ **Parameters:**
749
+ - project_id (required): Project UUID
750
+ - title (required): Title for the body of work
751
+ - description (optional): Description
752
+ - auto_deploy_on_completion (optional): Auto-deploy when all tasks complete (default: false)
753
+ - deploy_environment (optional): Target environment (default: production)
754
+ - deploy_version_bump (optional): Version bump (default: minor)
755
+ - deploy_trigger (optional): When to trigger auto-deploy (default: all_completed_validated)`,
756
+
757
+ update_body_of_work: `# update_body_of_work
758
+ Update a body of work's settings.
759
+
760
+ **Parameters:**
761
+ - body_of_work_id (required): Body of work UUID
762
+ - title, description (optional)
763
+ - auto_deploy_on_completion, deploy_environment, deploy_version_bump, deploy_trigger (optional)`,
764
+
765
+ get_body_of_work: `# get_body_of_work
766
+ Get a body of work with all its tasks organized by phase.
767
+
768
+ **Parameters:**
769
+ - body_of_work_id (required): Body of work UUID
770
+
771
+ **Returns:** Body of work with tasks grouped by pre/core/post phases.`,
772
+
773
+ get_bodies_of_work: `# get_bodies_of_work
774
+ List bodies of work for a project.
775
+
776
+ **Parameters:**
777
+ - project_id (required): Project UUID
778
+ - status (optional): Filter by status (draft, active, completed, cancelled)
779
+ - limit (optional): Max items (default 50)`,
780
+
781
+ delete_body_of_work: `# delete_body_of_work
782
+ Delete a body of work. Tasks are preserved but no longer grouped.
783
+
784
+ **Parameters:**
785
+ - body_of_work_id (required): Body of work UUID`,
786
+
787
+ add_task_to_body_of_work: `# add_task_to_body_of_work
788
+ Add a task to a body of work in a specific phase.
789
+
790
+ **Parameters:**
791
+ - body_of_work_id (required): Body of work UUID
792
+ - task_id (required): Task UUID to add
793
+ - phase (optional): pre, core, or post (default: core)
794
+ - order_index (optional): Order within phase`,
795
+
796
+ remove_task_from_body_of_work: `# remove_task_from_body_of_work
797
+ Remove a task from its body of work.
798
+
799
+ **Parameters:**
800
+ - task_id (required): Task UUID to remove
801
+
802
+ **Note:** The task is preserved, just no longer grouped.`,
803
+
804
+ activate_body_of_work: `# activate_body_of_work
805
+ Activate a draft body of work to start execution.
806
+
807
+ **Parameters:**
808
+ - body_of_work_id (required): Body of work UUID
809
+
810
+ **Note:** Requires at least one task. Once active, tasks follow phase order.`,
811
+
812
+ add_task_dependency: `# add_task_dependency
813
+ Add a dependency between tasks in a body of work.
814
+
815
+ **Parameters:**
816
+ - body_of_work_id (required): Body of work UUID
817
+ - task_id (required): Task that depends on another
818
+ - depends_on_task_id (required): Task that must complete first
819
+
820
+ **Note:** Prevents circular dependencies.`,
821
+
822
+ remove_task_dependency: `# remove_task_dependency
823
+ Remove a dependency between tasks.
824
+
825
+ **Parameters:**
826
+ - task_id (required): Task UUID
827
+ - depends_on_task_id (required): Dependency task UUID`,
828
+
829
+ get_task_dependencies: `# get_task_dependencies
830
+ Get task dependencies for a body of work or specific task.
831
+
832
+ **Parameters:**
833
+ - body_of_work_id (optional): Body of work UUID
834
+ - task_id (optional): Specific task UUID`,
835
+
836
+ get_next_body_of_work_task: `# get_next_body_of_work_task
837
+ Get the next available task from a body of work.
838
+
839
+ **Parameters:**
840
+ - body_of_work_id (required): Body of work UUID
841
+
842
+ **Note:** Considers phase order (pre → core → post) and dependencies.`,
843
+
844
+ // Sprints
845
+ create_sprint: `# create_sprint
846
+ Create a new sprint with time bounds and velocity tracking.
847
+
848
+ **Parameters:**
849
+ - project_id (required): Project UUID
850
+ - title (required): Sprint title (e.g., "Sprint 5")
851
+ - start_date (required): Start date (YYYY-MM-DD)
852
+ - end_date (required): End date (YYYY-MM-DD)
853
+ - goal (optional): Sprint goal statement
854
+ - auto_deploy_on_completion, deploy_environment, deploy_version_bump (optional)`,
855
+
856
+ update_sprint: `# update_sprint
857
+ Update a sprint's details.
858
+
859
+ **Parameters:**
860
+ - sprint_id (required): Sprint UUID
861
+ - title, goal, start_date, end_date (optional)
862
+ - auto_deploy_on_completion, deploy_environment, deploy_version_bump (optional)`,
863
+
864
+ get_sprint: `# get_sprint
865
+ Get a sprint with all its tasks organized by phase.
866
+
867
+ **Parameters:**
868
+ - sprint_id (required): Sprint UUID
869
+
870
+ **Returns:** Sprint with progress percentage, velocity points, committed points.`,
871
+
872
+ get_sprints: `# get_sprints
873
+ List sprints for a project with velocity metrics.
874
+
875
+ **Parameters:**
876
+ - project_id (required): Project UUID
877
+ - status (optional): planning, active, in_review, retrospective, completed, cancelled
878
+ - limit (optional): Max sprints (default 20)`,
879
+
880
+ delete_sprint: `# delete_sprint
881
+ Delete a sprint. Tasks are preserved but no longer grouped.
882
+
883
+ **Parameters:**
884
+ - sprint_id (required): Sprint UUID`,
885
+
886
+ start_sprint: `# start_sprint
887
+ Start a sprint. Transitions from 'planning' to 'active'.
888
+
889
+ **Parameters:**
890
+ - sprint_id (required): Sprint UUID
891
+
892
+ **Note:** Locks committed_points at current total story points.`,
893
+
894
+ complete_sprint: `# complete_sprint
895
+ Complete a sprint. Handles retrospective phase and auto-deployment.
896
+
897
+ **Parameters:**
898
+ - sprint_id (required): Sprint UUID
899
+ - retrospective_notes (optional): Sprint retrospective notes
900
+ - skip_retrospective (optional): Skip retrospective phase (default: false)`,
901
+
902
+ add_task_to_sprint: `# add_task_to_sprint
903
+ Add a task to a sprint with optional story points.
904
+
905
+ **Parameters:**
906
+ - sprint_id (required): Sprint UUID
907
+ - task_id (required): Task UUID to add
908
+ - story_points (optional): Story point estimate
909
+ - phase (optional): pre, core, or post (default: core)`,
910
+
911
+ remove_task_from_sprint: `# remove_task_from_sprint
912
+ Remove a task from a sprint.
913
+
914
+ **Parameters:**
915
+ - sprint_id (required): Sprint UUID
916
+ - task_id (required): Task UUID to remove
917
+
918
+ **Note:** Task returns to backlog.`,
919
+
920
+ get_sprint_backlog: `# get_sprint_backlog
921
+ Get tasks that can be added to a sprint.
922
+
923
+ **Parameters:**
924
+ - project_id (required): Project UUID
925
+ - sprint_id (optional): Exclude tasks already in this sprint
926
+
927
+ **Returns:** Tasks not assigned to any body of work or sprint.`,
928
+
929
+ get_sprint_velocity: `# get_sprint_velocity
930
+ Get velocity metrics for completed sprints.
931
+
932
+ **Parameters:**
933
+ - project_id (required): Project UUID
934
+ - limit (optional): Number of sprints to analyze (default 10)
935
+
936
+ **Returns:** Committed vs completed points, average velocity.`,
937
+
938
+ // Git issues
939
+ add_git_issue: `# add_git_issue
940
+ Record a git-related issue (merge conflict, push failure, etc.).
941
+
942
+ **Parameters:**
943
+ - project_id (required): Project UUID
944
+ - issue_type (required): merge_conflict, push_failed, rebase_needed, branch_diverged, pr_not_mergeable
945
+ - branch (required): Branch where the issue occurred
946
+ - target_branch, conflicting_files, error_message, pr_url, task_id (optional)`,
947
+
948
+ resolve_git_issue: `# resolve_git_issue
949
+ Mark a git issue as resolved.
950
+
951
+ **Parameters:**
952
+ - git_issue_id (required): Git issue UUID
953
+ - resolution_note (optional): How the issue was resolved
954
+ - auto_resolved (optional): Whether auto-resolved`,
955
+
956
+ get_git_issues: `# get_git_issues
957
+ Get git issues for a project.
958
+
959
+ **Parameters:**
960
+ - project_id (required): Project UUID
961
+ - status (optional): open or resolved (default: open)
962
+ - issue_type (optional): Filter by issue type
963
+ - branch (optional): Filter by branch
964
+ - limit (optional): Max issues (default 50)`,
965
+
966
+ delete_git_issue: `# delete_git_issue
967
+ Delete a git issue.
968
+
969
+ **Parameters:**
970
+ - git_issue_id (required): Git issue UUID`,
971
+
972
+ // Deployment requirements
973
+ add_deployment_requirement: `# add_deployment_requirement
974
+ Add a pre-deployment requirement.
975
+
976
+ **Parameters:**
977
+ - project_id (required): Project UUID
978
+ - type (required): migration, env_var, config, manual, breaking_change, agent_task
979
+ - title (required): Brief description
980
+ - description (optional): Detailed instructions
981
+ - stage (optional): preparation, deployment, or verification (default: preparation)
982
+ - file_path (optional): File path reference
983
+ - blocking (optional): Whether converted task blocks other work`,
984
+
985
+ complete_deployment_requirement: `# complete_deployment_requirement
986
+ Mark a deployment requirement as completed.
987
+
988
+ **Parameters:**
989
+ - requirement_id (required): Requirement UUID`,
990
+
991
+ get_deployment_requirements: `# get_deployment_requirements
992
+ Get pending deployment requirements.
993
+
994
+ **Parameters:**
995
+ - project_id (required): Project UUID
996
+ - stage (optional): preparation, deployment, verification, or all
997
+ - status (optional): pending, completed, converted_to_task, or all (default: pending)`,
998
+
999
+ // Knowledge base
1000
+ query_knowledge_base: `# query_knowledge_base
1001
+ Query aggregated project knowledge in a single call. Reduces token usage by combining multiple data sources.
1002
+
1003
+ **Parameters:**
1004
+ - project_id (required): Project UUID
1005
+ - scope: 'summary' (default) or 'detailed' (includes rationales, descriptions)
1006
+ - categories: Array of categories to include (default: all)
1007
+ - findings: Audit findings (security, performance, code quality)
1008
+ - qa: Questions and answers
1009
+ - decisions: Architectural decisions
1010
+ - completed_tasks: Tasks with completion summaries
1011
+ - blockers: Resolved blockers with resolution notes
1012
+ - progress: Recent progress logs
1013
+ - limit: Max items per category (default: 5, max: 20)
1014
+ - search_query: Optional text search across all knowledge
1015
+
1016
+ **Returns:**
1017
+ - project: name, goal, tech_stack
1018
+ - stats: counts for each category, findings by severity
1019
+ - Category data based on selection
1020
+
1021
+ **Token savings:** Replaces up to 6 separate tool calls (get_findings, get_decisions, get_tasks, get_blockers, etc.) with one call.
1022
+
1023
+ **Example:** query_knowledge_base(project_id, categories: ["findings", "decisions"], limit: 10)`,
1024
+ };