@vibescope/mcp-server 0.3.0 → 0.3.3

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 (154) hide show
  1. package/dist/api-client/blockers.d.ts +46 -0
  2. package/dist/api-client/blockers.js +43 -0
  3. package/dist/api-client/cost.d.ts +112 -0
  4. package/dist/api-client/cost.js +76 -0
  5. package/dist/api-client/decisions.d.ts +55 -0
  6. package/dist/api-client/decisions.js +32 -0
  7. package/dist/api-client/discovery.d.ts +62 -0
  8. package/dist/api-client/discovery.js +21 -0
  9. package/dist/api-client/ideas.d.ts +75 -0
  10. package/dist/api-client/ideas.js +36 -0
  11. package/dist/api-client/index.d.ts +749 -0
  12. package/dist/api-client/index.js +291 -0
  13. package/dist/api-client/project.d.ts +132 -0
  14. package/dist/api-client/project.js +45 -0
  15. package/dist/api-client/session.d.ts +163 -0
  16. package/dist/api-client/session.js +52 -0
  17. package/dist/api-client/tasks.d.ts +328 -0
  18. package/dist/api-client/tasks.js +132 -0
  19. package/dist/api-client/types.d.ts +25 -0
  20. package/dist/api-client/types.js +4 -0
  21. package/dist/api-client/worktrees.d.ts +33 -0
  22. package/dist/api-client/worktrees.js +26 -0
  23. package/dist/api-client.d.ts +9 -0
  24. package/dist/api-client.js +104 -25
  25. package/dist/cli-init.d.ts +17 -0
  26. package/dist/cli-init.js +445 -0
  27. package/dist/cli.js +0 -0
  28. package/dist/handlers/cloud-agents.d.ts +21 -0
  29. package/dist/handlers/cloud-agents.js +91 -0
  30. package/dist/handlers/discovery.js +7 -0
  31. package/dist/handlers/index.d.ts +1 -0
  32. package/dist/handlers/index.js +3 -0
  33. package/dist/handlers/session.js +3 -1
  34. package/dist/handlers/tasks.js +10 -12
  35. package/dist/handlers/types.d.ts +2 -1
  36. package/dist/handlers/validation.js +5 -1
  37. package/dist/index.js +8 -3
  38. package/dist/token-tracking.js +2 -2
  39. package/dist/tools/blockers.d.ts +13 -0
  40. package/dist/tools/blockers.js +119 -0
  41. package/dist/tools/bodies-of-work.d.ts +19 -0
  42. package/dist/tools/bodies-of-work.js +280 -0
  43. package/dist/tools/cloud-agents.d.ts +9 -0
  44. package/dist/tools/cloud-agents.js +67 -0
  45. package/dist/tools/connectors.d.ts +14 -0
  46. package/dist/tools/connectors.js +188 -0
  47. package/dist/tools/cost.d.ts +11 -0
  48. package/dist/tools/cost.js +108 -0
  49. package/dist/tools/decisions.d.ts +12 -0
  50. package/dist/tools/decisions.js +108 -0
  51. package/dist/tools/deployment.d.ts +24 -0
  52. package/dist/tools/deployment.js +439 -0
  53. package/dist/tools/discovery.d.ts +10 -0
  54. package/dist/tools/discovery.js +73 -0
  55. package/dist/tools/fallback.d.ts +11 -0
  56. package/dist/tools/fallback.js +108 -0
  57. package/dist/tools/file-checkouts.d.ts +13 -0
  58. package/dist/tools/file-checkouts.js +141 -0
  59. package/dist/tools/findings.d.ts +13 -0
  60. package/dist/tools/findings.js +98 -0
  61. package/dist/tools/git-issues.d.ts +11 -0
  62. package/dist/tools/git-issues.js +127 -0
  63. package/dist/tools/ideas.d.ts +13 -0
  64. package/dist/tools/ideas.js +159 -0
  65. package/dist/tools/index.d.ts +71 -0
  66. package/dist/tools/index.js +98 -0
  67. package/dist/tools/milestones.d.ts +12 -0
  68. package/dist/tools/milestones.js +115 -0
  69. package/dist/tools/organizations.d.ts +17 -0
  70. package/dist/tools/organizations.js +221 -0
  71. package/dist/tools/progress.d.ts +9 -0
  72. package/dist/tools/progress.js +70 -0
  73. package/dist/tools/project.d.ts +13 -0
  74. package/dist/tools/project.js +199 -0
  75. package/dist/tools/requests.d.ts +10 -0
  76. package/dist/tools/requests.js +65 -0
  77. package/dist/tools/roles.d.ts +11 -0
  78. package/dist/tools/roles.js +109 -0
  79. package/dist/tools/session.d.ts +15 -0
  80. package/dist/tools/session.js +178 -0
  81. package/dist/tools/sprints.d.ts +18 -0
  82. package/dist/tools/sprints.js +295 -0
  83. package/dist/tools/tasks.d.ts +27 -0
  84. package/dist/tools/tasks.js +539 -0
  85. package/dist/tools/types.d.ts +7 -0
  86. package/dist/tools/types.js +6 -0
  87. package/dist/tools/validation.d.ts +10 -0
  88. package/dist/tools/validation.js +72 -0
  89. package/dist/tools/worktrees.d.ts +9 -0
  90. package/dist/tools/worktrees.js +63 -0
  91. package/dist/utils.d.ts +66 -0
  92. package/dist/utils.js +102 -0
  93. package/docs/TOOLS.md +55 -2
  94. package/package.json +5 -3
  95. package/scripts/generate-docs.ts +1 -1
  96. package/src/api-client/blockers.ts +86 -0
  97. package/src/api-client/cost.ts +185 -0
  98. package/src/api-client/decisions.ts +87 -0
  99. package/src/api-client/discovery.ts +81 -0
  100. package/src/api-client/ideas.ts +112 -0
  101. package/src/api-client/index.ts +378 -0
  102. package/src/api-client/project.ts +179 -0
  103. package/src/api-client/session.ts +220 -0
  104. package/src/api-client/tasks.ts +450 -0
  105. package/src/api-client/types.ts +32 -0
  106. package/src/api-client/worktrees.ts +53 -0
  107. package/src/api-client.test.ts +136 -9
  108. package/src/api-client.ts +125 -27
  109. package/src/cli-init.ts +504 -0
  110. package/src/handlers/__test-utils__.ts +2 -0
  111. package/src/handlers/cloud-agents.ts +138 -0
  112. package/src/handlers/discovery.ts +7 -0
  113. package/src/handlers/index.ts +3 -0
  114. package/src/handlers/session.ts +3 -1
  115. package/src/handlers/tasks.ts +10 -12
  116. package/src/handlers/tool-categories.test.ts +1 -1
  117. package/src/handlers/types.ts +2 -1
  118. package/src/handlers/validation.ts +6 -1
  119. package/src/index.test.ts +2 -2
  120. package/src/index.ts +8 -2
  121. package/src/token-tracking.ts +3 -2
  122. package/src/tools/blockers.ts +122 -0
  123. package/src/tools/bodies-of-work.ts +283 -0
  124. package/src/tools/cloud-agents.ts +70 -0
  125. package/src/tools/connectors.ts +191 -0
  126. package/src/tools/cost.ts +111 -0
  127. package/src/tools/decisions.ts +111 -0
  128. package/src/tools/deployment.ts +442 -0
  129. package/src/tools/discovery.ts +76 -0
  130. package/src/tools/fallback.ts +111 -0
  131. package/src/tools/file-checkouts.ts +145 -0
  132. package/src/tools/findings.ts +101 -0
  133. package/src/tools/git-issues.ts +130 -0
  134. package/src/tools/ideas.ts +162 -0
  135. package/src/tools/index.ts +131 -0
  136. package/src/tools/milestones.ts +118 -0
  137. package/src/tools/organizations.ts +224 -0
  138. package/src/tools/progress.ts +73 -0
  139. package/src/tools/project.ts +202 -0
  140. package/src/tools/requests.ts +68 -0
  141. package/src/tools/roles.ts +112 -0
  142. package/src/tools/session.ts +181 -0
  143. package/src/tools/sprints.ts +298 -0
  144. package/src/tools/tasks.ts +542 -0
  145. package/src/tools/tools.test.ts +222 -0
  146. package/src/tools/types.ts +9 -0
  147. package/src/tools/validation.ts +75 -0
  148. package/src/tools/worktrees.ts +66 -0
  149. package/src/tools.test.ts +1 -1
  150. package/src/utils.test.ts +229 -0
  151. package/src/utils.ts +117 -0
  152. package/dist/tools.d.ts +0 -2
  153. package/dist/tools.js +0 -3602
  154. package/src/tools.ts +0 -3607
@@ -0,0 +1,191 @@
1
+ /**
2
+ * Connector Tool Definitions
3
+ *
4
+ * Tools for external integrations (Slack, Discord, webhooks, etc.):
5
+ * - get_connectors
6
+ * - get_connector
7
+ * - add_connector
8
+ * - update_connector
9
+ * - delete_connector
10
+ * - test_connector
11
+ * - get_connector_events
12
+ */
13
+
14
+ import type { Tool } from './types.js';
15
+
16
+ export const connectorTools: Tool[] = [
17
+ {
18
+ name: 'get_connectors',
19
+ description: `List connectors for a project. Connectors enable sending events to external services (Slack, Discord, webhooks, etc.).`,
20
+ inputSchema: {
21
+ type: 'object',
22
+ properties: {
23
+ project_id: {
24
+ type: 'string',
25
+ description: 'Project UUID',
26
+ },
27
+ type: {
28
+ type: 'string',
29
+ enum: ['webhook', 'slack', 'discord', 'github', 'custom'],
30
+ description: 'Filter by connector type (optional)',
31
+ },
32
+ status: {
33
+ type: 'string',
34
+ enum: ['active', 'disabled'],
35
+ description: 'Filter by status (optional)',
36
+ },
37
+ limit: {
38
+ type: 'number',
39
+ description: 'Max connectors to return (default: 50)',
40
+ },
41
+ offset: {
42
+ type: 'number',
43
+ description: 'Pagination offset (default: 0)',
44
+ },
45
+ },
46
+ required: ['project_id'],
47
+ },
48
+ },
49
+ {
50
+ name: 'get_connector',
51
+ description: `Get a single connector with full details including configuration (sensitive fields are masked).`,
52
+ inputSchema: {
53
+ type: 'object',
54
+ properties: {
55
+ connector_id: {
56
+ type: 'string',
57
+ description: 'Connector UUID',
58
+ },
59
+ },
60
+ required: ['connector_id'],
61
+ },
62
+ },
63
+ {
64
+ name: 'add_connector',
65
+ description: `Add a new connector for external integrations. Supports webhook, Slack, Discord, GitHub, and custom connectors.`,
66
+ inputSchema: {
67
+ type: 'object',
68
+ properties: {
69
+ project_id: {
70
+ type: 'string',
71
+ description: 'Project UUID',
72
+ },
73
+ name: {
74
+ type: 'string',
75
+ description: 'Connector name (e.g., "Slack Notifications")',
76
+ },
77
+ type: {
78
+ type: 'string',
79
+ enum: ['webhook', 'slack', 'discord', 'github', 'custom'],
80
+ description: 'Connector type',
81
+ },
82
+ description: {
83
+ type: 'string',
84
+ description: 'Optional description',
85
+ },
86
+ config: {
87
+ type: 'object',
88
+ description: 'Type-specific configuration (e.g., { webhook_url: "..." } for Slack)',
89
+ },
90
+ events: {
91
+ type: 'object',
92
+ description: 'Event subscriptions (e.g., { task_completed: true, blocker_added: true })',
93
+ },
94
+ },
95
+ required: ['project_id', 'name', 'type'],
96
+ },
97
+ },
98
+ {
99
+ name: 'update_connector',
100
+ description: `Update a connector's configuration, events, or status.`,
101
+ inputSchema: {
102
+ type: 'object',
103
+ properties: {
104
+ connector_id: {
105
+ type: 'string',
106
+ description: 'Connector UUID',
107
+ },
108
+ name: {
109
+ type: 'string',
110
+ description: 'Updated name',
111
+ },
112
+ description: {
113
+ type: 'string',
114
+ description: 'Updated description',
115
+ },
116
+ config: {
117
+ type: 'object',
118
+ description: 'Updated configuration (merged with existing)',
119
+ },
120
+ events: {
121
+ type: 'object',
122
+ description: 'Updated event subscriptions',
123
+ },
124
+ status: {
125
+ type: 'string',
126
+ enum: ['active', 'disabled'],
127
+ description: 'Enable or disable the connector',
128
+ },
129
+ },
130
+ required: ['connector_id'],
131
+ },
132
+ },
133
+ {
134
+ name: 'delete_connector',
135
+ description: `Delete a connector.`,
136
+ inputSchema: {
137
+ type: 'object',
138
+ properties: {
139
+ connector_id: {
140
+ type: 'string',
141
+ description: 'Connector UUID',
142
+ },
143
+ },
144
+ required: ['connector_id'],
145
+ },
146
+ },
147
+ {
148
+ name: 'test_connector',
149
+ description: `Test a connector by sending a test event. Returns success/failure status.`,
150
+ inputSchema: {
151
+ type: 'object',
152
+ properties: {
153
+ connector_id: {
154
+ type: 'string',
155
+ description: 'Connector UUID to test',
156
+ },
157
+ },
158
+ required: ['connector_id'],
159
+ },
160
+ },
161
+ {
162
+ name: 'get_connector_events',
163
+ description: `Get event history for a connector or project. Shows delivery status and errors.`,
164
+ inputSchema: {
165
+ type: 'object',
166
+ properties: {
167
+ connector_id: {
168
+ type: 'string',
169
+ description: 'Connector UUID (optional if project_id provided)',
170
+ },
171
+ project_id: {
172
+ type: 'string',
173
+ description: 'Project UUID (optional if connector_id provided)',
174
+ },
175
+ status: {
176
+ type: 'string',
177
+ enum: ['pending', 'sent', 'failed', 'retrying'],
178
+ description: 'Filter by delivery status (optional)',
179
+ },
180
+ limit: {
181
+ type: 'number',
182
+ description: 'Max events to return (default: 50)',
183
+ },
184
+ offset: {
185
+ type: 'number',
186
+ description: 'Pagination offset (default: 0)',
187
+ },
188
+ },
189
+ },
190
+ },
191
+ ];
@@ -0,0 +1,111 @@
1
+ /**
2
+ * Cost Tool Definitions
3
+ *
4
+ * Tools for cost monitoring and alerts:
5
+ * - get_cost_summary
6
+ * - add_cost_alert
7
+ * - update_cost_alert
8
+ * - delete_cost_alert
9
+ */
10
+
11
+ import type { Tool } from '@modelcontextprotocol/sdk/types.js';
12
+
13
+ export const costTools: Tool[] = [
14
+ {
15
+ name: 'get_cost_summary',
16
+ description: 'Get cost summary (daily/weekly/monthly) for a project.',
17
+ inputSchema: {
18
+ type: 'object',
19
+ properties: {
20
+ project_id: {
21
+ type: 'string',
22
+ description: 'Project UUID',
23
+ },
24
+ period: {
25
+ type: 'string',
26
+ enum: ['daily', 'weekly', 'monthly'],
27
+ description: 'Summary period (default: daily)',
28
+ },
29
+ limit: {
30
+ type: 'number',
31
+ description: 'Max records to return (default: 30)',
32
+ },
33
+ },
34
+ required: ['project_id'],
35
+ },
36
+ },
37
+ {
38
+ name: 'add_cost_alert',
39
+ description: 'Add a cost alert threshold.',
40
+ inputSchema: {
41
+ type: 'object',
42
+ properties: {
43
+ project_id: {
44
+ type: 'string',
45
+ description: 'Project UUID (null for all projects)',
46
+ },
47
+ threshold_amount: {
48
+ type: 'number',
49
+ description: 'Amount in USD that triggers the alert',
50
+ },
51
+ threshold_period: {
52
+ type: 'string',
53
+ enum: ['daily', 'weekly', 'monthly'],
54
+ description: 'Period for the threshold',
55
+ },
56
+ alert_type: {
57
+ type: 'string',
58
+ enum: ['warning', 'critical'],
59
+ description: 'Alert severity (default: warning)',
60
+ },
61
+ },
62
+ required: ['threshold_amount', 'threshold_period'],
63
+ },
64
+ },
65
+ {
66
+ name: 'update_cost_alert',
67
+ description: 'Update a cost alert.',
68
+ inputSchema: {
69
+ type: 'object',
70
+ properties: {
71
+ alert_id: {
72
+ type: 'string',
73
+ description: 'Alert UUID',
74
+ },
75
+ threshold_amount: {
76
+ type: 'number',
77
+ description: 'New threshold amount in USD',
78
+ },
79
+ threshold_period: {
80
+ type: 'string',
81
+ enum: ['daily', 'weekly', 'monthly'],
82
+ description: 'New period',
83
+ },
84
+ alert_type: {
85
+ type: 'string',
86
+ enum: ['warning', 'critical'],
87
+ description: 'New alert type',
88
+ },
89
+ enabled: {
90
+ type: 'boolean',
91
+ description: 'Enable or disable the alert',
92
+ },
93
+ },
94
+ required: ['alert_id'],
95
+ },
96
+ },
97
+ {
98
+ name: 'delete_cost_alert',
99
+ description: 'Delete a cost alert.',
100
+ inputSchema: {
101
+ type: 'object',
102
+ properties: {
103
+ alert_id: {
104
+ type: 'string',
105
+ description: 'Alert UUID to delete',
106
+ },
107
+ },
108
+ required: ['alert_id'],
109
+ },
110
+ },
111
+ ];
@@ -0,0 +1,111 @@
1
+ /**
2
+ * Decision Tool Definitions
3
+ *
4
+ * Tools for recording architectural and technical decisions:
5
+ * - log_decision
6
+ * - get_decision
7
+ * - get_decisions
8
+ * - get_decisions_stats
9
+ * - delete_decision
10
+ */
11
+
12
+ import type { Tool } from './types.js';
13
+
14
+ export const decisionTools: Tool[] = [
15
+ {
16
+ name: 'log_decision',
17
+ description: `Record an architectural or technical decision with rationale.`,
18
+ inputSchema: {
19
+ type: 'object',
20
+ properties: {
21
+ project_id: {
22
+ type: 'string',
23
+ description: 'Project UUID',
24
+ },
25
+ title: {
26
+ type: 'string',
27
+ description: 'Decision title (e.g., "Use PostgreSQL for database")',
28
+ },
29
+ description: {
30
+ type: 'string',
31
+ description: 'What was decided',
32
+ },
33
+ rationale: {
34
+ type: 'string',
35
+ description: 'Why this decision was made',
36
+ },
37
+ alternatives_considered: {
38
+ type: 'array',
39
+ items: { type: 'string' },
40
+ description: 'Other options that were considered',
41
+ },
42
+ },
43
+ required: ['project_id', 'title', 'description'],
44
+ },
45
+ },
46
+ {
47
+ name: 'get_decision',
48
+ description: `Get a single decision by ID. More token-efficient than get_decisions when you need details for a specific decision.`,
49
+ inputSchema: {
50
+ type: 'object',
51
+ properties: {
52
+ decision_id: {
53
+ type: 'string',
54
+ description: 'Decision UUID',
55
+ },
56
+ },
57
+ required: ['decision_id'],
58
+ },
59
+ },
60
+ {
61
+ name: 'get_decisions',
62
+ description: `Get recorded decisions for a project.`,
63
+ inputSchema: {
64
+ type: 'object',
65
+ properties: {
66
+ project_id: {
67
+ type: 'string',
68
+ description: 'Project UUID',
69
+ },
70
+ limit: {
71
+ type: 'number',
72
+ description: 'Max number of decisions to return (default 10, max 200)',
73
+ },
74
+ offset: {
75
+ type: 'number',
76
+ description: 'Number of decisions to skip for pagination (default 0)',
77
+ },
78
+ search_query: {
79
+ type: 'string',
80
+ description: 'Search decisions by title',
81
+ },
82
+ },
83
+ required: ['project_id'],
84
+ },
85
+ },
86
+ {
87
+ name: 'get_decisions_stats',
88
+ 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.`,
89
+ inputSchema: {
90
+ type: 'object',
91
+ properties: {
92
+ project_id: { type: 'string', description: 'Project UUID' },
93
+ },
94
+ required: ['project_id'],
95
+ },
96
+ },
97
+ {
98
+ name: 'delete_decision',
99
+ description: `Delete a decision.`,
100
+ inputSchema: {
101
+ type: 'object',
102
+ properties: {
103
+ decision_id: {
104
+ type: 'string',
105
+ description: 'Decision UUID',
106
+ },
107
+ },
108
+ required: ['decision_id'],
109
+ },
110
+ },
111
+ ];