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