acuity-mcp-server 1.0.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 (99) hide show
  1. package/README.md +541 -0
  2. package/dist/auth/device-flow.d.ts +46 -0
  3. package/dist/auth/device-flow.d.ts.map +1 -0
  4. package/dist/auth/device-flow.js +141 -0
  5. package/dist/auth/device-flow.js.map +1 -0
  6. package/dist/auth/http-auth.d.ts +25 -0
  7. package/dist/auth/http-auth.d.ts.map +1 -0
  8. package/dist/auth/http-auth.js +101 -0
  9. package/dist/auth/http-auth.js.map +1 -0
  10. package/dist/auth/jwt-validator.d.ts +20 -0
  11. package/dist/auth/jwt-validator.d.ts.map +1 -0
  12. package/dist/auth/jwt-validator.js +83 -0
  13. package/dist/auth/jwt-validator.js.map +1 -0
  14. package/dist/auth/token-storage.d.ts +88 -0
  15. package/dist/auth/token-storage.d.ts.map +1 -0
  16. package/dist/auth/token-storage.js +273 -0
  17. package/dist/auth/token-storage.js.map +1 -0
  18. package/dist/clients/hasura-client.d.ts +33 -0
  19. package/dist/clients/hasura-client.d.ts.map +1 -0
  20. package/dist/clients/hasura-client.js +79 -0
  21. package/dist/clients/hasura-client.js.map +1 -0
  22. package/dist/config/environments.d.ts +51 -0
  23. package/dist/config/environments.d.ts.map +1 -0
  24. package/dist/config/environments.js +183 -0
  25. package/dist/config/environments.js.map +1 -0
  26. package/dist/index.d.ts +7 -0
  27. package/dist/index.d.ts.map +1 -0
  28. package/dist/index.js +593 -0
  29. package/dist/index.js.map +1 -0
  30. package/dist/server/http-server.d.ts +14 -0
  31. package/dist/server/http-server.d.ts.map +1 -0
  32. package/dist/server/http-server.js +167 -0
  33. package/dist/server/http-server.js.map +1 -0
  34. package/dist/server/mcp-core.d.ts +12 -0
  35. package/dist/server/mcp-core.d.ts.map +1 -0
  36. package/dist/server/mcp-core.js +200 -0
  37. package/dist/server/mcp-core.js.map +1 -0
  38. package/dist/tools/acuity-init.d.ts +84 -0
  39. package/dist/tools/acuity-init.d.ts.map +1 -0
  40. package/dist/tools/acuity-init.js +239 -0
  41. package/dist/tools/acuity-init.js.map +1 -0
  42. package/dist/tools/get-dashboard-summary.d.ts +96 -0
  43. package/dist/tools/get-dashboard-summary.d.ts.map +1 -0
  44. package/dist/tools/get-dashboard-summary.js +264 -0
  45. package/dist/tools/get-dashboard-summary.js.map +1 -0
  46. package/dist/tools/get-issue.d.ts +62 -0
  47. package/dist/tools/get-issue.d.ts.map +1 -0
  48. package/dist/tools/get-issue.js +150 -0
  49. package/dist/tools/get-issue.js.map +1 -0
  50. package/dist/tools/get-lesson-learned.d.ts +53 -0
  51. package/dist/tools/get-lesson-learned.d.ts.map +1 -0
  52. package/dist/tools/get-lesson-learned.js +117 -0
  53. package/dist/tools/get-lesson-learned.js.map +1 -0
  54. package/dist/tools/get-lookup-values.d.ts +41 -0
  55. package/dist/tools/get-lookup-values.d.ts.map +1 -0
  56. package/dist/tools/get-lookup-values.js +127 -0
  57. package/dist/tools/get-lookup-values.js.map +1 -0
  58. package/dist/tools/get-project.d.ts +131 -0
  59. package/dist/tools/get-project.d.ts.map +1 -0
  60. package/dist/tools/get-project.js +340 -0
  61. package/dist/tools/get-project.js.map +1 -0
  62. package/dist/tools/get-risk.d.ts +65 -0
  63. package/dist/tools/get-risk.d.ts.map +1 -0
  64. package/dist/tools/get-risk.js +173 -0
  65. package/dist/tools/get-risk.js.map +1 -0
  66. package/dist/tools/get-status-reports.d.ts +46 -0
  67. package/dist/tools/get-status-reports.d.ts.map +1 -0
  68. package/dist/tools/get-status-reports.js +151 -0
  69. package/dist/tools/get-status-reports.js.map +1 -0
  70. package/dist/tools/init-auth.d.ts +47 -0
  71. package/dist/tools/init-auth.d.ts.map +1 -0
  72. package/dist/tools/init-auth.js +213 -0
  73. package/dist/tools/init-auth.js.map +1 -0
  74. package/dist/tools/list-issues.d.ts +134 -0
  75. package/dist/tools/list-issues.d.ts.map +1 -0
  76. package/dist/tools/list-issues.js +285 -0
  77. package/dist/tools/list-issues.js.map +1 -0
  78. package/dist/tools/list-lessons-learned.d.ts +79 -0
  79. package/dist/tools/list-lessons-learned.d.ts.map +1 -0
  80. package/dist/tools/list-lessons-learned.js +155 -0
  81. package/dist/tools/list-lessons-learned.js.map +1 -0
  82. package/dist/tools/list-projects.d.ts +200 -0
  83. package/dist/tools/list-projects.d.ts.map +1 -0
  84. package/dist/tools/list-projects.js +396 -0
  85. package/dist/tools/list-projects.js.map +1 -0
  86. package/dist/tools/list-risks.d.ts +166 -0
  87. package/dist/tools/list-risks.d.ts.map +1 -0
  88. package/dist/tools/list-risks.js +356 -0
  89. package/dist/tools/list-risks.js.map +1 -0
  90. package/dist/tools/search-projects.d.ts +90 -0
  91. package/dist/tools/search-projects.d.ts.map +1 -0
  92. package/dist/tools/search-projects.js +191 -0
  93. package/dist/tools/search-projects.js.map +1 -0
  94. package/dist/utils/formatters.d.ts +12 -0
  95. package/dist/utils/formatters.d.ts.map +1 -0
  96. package/dist/utils/formatters.js +28 -0
  97. package/dist/utils/formatters.js.map +1 -0
  98. package/openapi.yaml +194 -0
  99. package/package.json +68 -0
@@ -0,0 +1,131 @@
1
+ /**
2
+ * MCP Tool: get_project
3
+ * Returns full details for a single project by ID or project_id_key
4
+ *
5
+ * Features:
6
+ * - All project fields including text content (description, background, benefits, etc.)
7
+ * - Enum conversion: DB integers → human-readable strings
8
+ * - Currency conversion: cents → dollars
9
+ * - All relationships resolved via Hasura (names instead of IDs)
10
+ * - All 8 stoplight statuses
11
+ */
12
+ import type { HasuraClient } from '../clients/hasura-client.js';
13
+ export type ProjectState = 'active' | 'hold' | 'completed' | 'cancelled' | 'pending';
14
+ export type ProposalState = 'draft' | 'final' | 'deferred' | 'cancelled' | 'approved';
15
+ export type StoplightStatus = 'green' | 'yellow' | 'red' | 'gray';
16
+ export type FundingStatus = 'planning' | 'funded' | 'unfunded';
17
+ export type FinancialClass = 'capital' | 'operational';
18
+ export interface GetProjectInput {
19
+ project_id?: number;
20
+ project_id_key?: string;
21
+ }
22
+ export interface TeamMemberInfo {
23
+ id: number;
24
+ name: string;
25
+ email?: string;
26
+ }
27
+ export interface LookupInfo {
28
+ id: number;
29
+ name: string;
30
+ }
31
+ export interface ProjectDetails {
32
+ id: number;
33
+ project_id_key: string | null;
34
+ project_token: string | null;
35
+ name: string;
36
+ description: string | null;
37
+ background: string | null;
38
+ benefits: string | null;
39
+ project_objectives: string | null;
40
+ recommendations: string | null;
41
+ decision_notes: string | null;
42
+ project_type: 'project' | 'proposal';
43
+ state: ProjectState;
44
+ proposal_state: ProposalState | null;
45
+ health_status: StoplightStatus | null;
46
+ schedule_status: StoplightStatus | null;
47
+ budget_status: StoplightStatus | null;
48
+ quality_status: StoplightStatus | null;
49
+ scope_stoplight_status: StoplightStatus | null;
50
+ risk_stoplight_status: StoplightStatus | null;
51
+ resource_stoplight_status: StoplightStatus | null;
52
+ benefits_stoplight_status: StoplightStatus | null;
53
+ start_date: string | null;
54
+ end_date: string | null;
55
+ baseline_start_date: string | null;
56
+ baseline_end_date: string | null;
57
+ proposal_approved_at: string | null;
58
+ proposal_canceled_at: string | null;
59
+ proposal_differed_at: string | null;
60
+ created_at: string;
61
+ updated_at: string;
62
+ percent_complete: number;
63
+ duration: number;
64
+ schedule_variance: number | null;
65
+ rank: number | null;
66
+ value_priority_score: number | null;
67
+ risk_priority_score: number | null;
68
+ value_score_notes: string | null;
69
+ risk_score_notes: string | null;
70
+ cost: number;
71
+ cost_actual: number;
72
+ financial_benefits: number;
73
+ financial_benefits_actual: number;
74
+ operational_expenses: number;
75
+ operational_expenses_actual: number;
76
+ capital_expenses: number;
77
+ capital_expenses_actual: number;
78
+ hours: number;
79
+ funding: FundingStatus | null;
80
+ financial_class: FinancialClass | null;
81
+ open_risks_count: number;
82
+ closed_risks_count: number;
83
+ total_risks_count: number;
84
+ open_issues_count: number;
85
+ closed_issues_count: number;
86
+ total_issues_count: number;
87
+ open_benefits_count: number;
88
+ closed_benefits_count: number;
89
+ total_benefits_count: number;
90
+ total_lessons_count: number;
91
+ portfolio: LookupInfo | null;
92
+ proposal_portfolio: LookupInfo | null;
93
+ department: LookupInfo | null;
94
+ category: LookupInfo | null;
95
+ lifecycle: LookupInfo | null;
96
+ strategic_objective: LookupInfo | null;
97
+ project_priority: LookupInfo | null;
98
+ project_manager: TeamMemberInfo | null;
99
+ project_sponsor: TeamMemberInfo | null;
100
+ project_team_member_1: TeamMemberInfo | null;
101
+ project_team_member_2: TeamMemberInfo | null;
102
+ project_team_member_3: TeamMemberInfo | null;
103
+ project_team_member_4: TeamMemberInfo | null;
104
+ proposal_requestor: TeamMemberInfo | null;
105
+ proposal_requestor_name: string | null;
106
+ }
107
+ export interface GetProjectResult {
108
+ project: ProjectDetails | null;
109
+ }
110
+ export declare function getProject(input: GetProjectInput, hasuraClient: HasuraClient): Promise<GetProjectResult>;
111
+ export declare const getProjectTool: {
112
+ name: string;
113
+ description: string;
114
+ inputSchema: {
115
+ type: string;
116
+ properties: {
117
+ project_id: {
118
+ type: string;
119
+ description: string;
120
+ };
121
+ project_id_key: {
122
+ type: string;
123
+ description: string;
124
+ };
125
+ };
126
+ oneOf: {
127
+ required: string[];
128
+ }[];
129
+ };
130
+ };
131
+ //# sourceMappingURL=get-project.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-project.d.ts","sourceRoot":"","sources":["../../src/tools/get-project.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,340 @@
1
+ /**
2
+ * MCP Tool: get_project
3
+ * Returns full details for a single project by ID or project_id_key
4
+ *
5
+ * Features:
6
+ * - All project fields including text content (description, background, benefits, etc.)
7
+ * - Enum conversion: DB integers → human-readable strings
8
+ * - Currency conversion: cents → dollars
9
+ * - All relationships resolved via Hasura (names instead of IDs)
10
+ * - All 8 stoplight statuses
11
+ */
12
+ // ============================================================================
13
+ // Enum Mappings
14
+ // ============================================================================
15
+ const DB_TO_STATE = {
16
+ 0: 'active',
17
+ 1: 'hold',
18
+ 2: 'completed',
19
+ 3: 'cancelled',
20
+ 4: 'pending'
21
+ };
22
+ const DB_TO_PROPOSAL_STATE = {
23
+ 0: 'draft',
24
+ 1: 'final',
25
+ 2: 'deferred',
26
+ 3: 'cancelled',
27
+ 4: 'approved'
28
+ };
29
+ const DB_TO_STOPLIGHT = {
30
+ 0: 'green',
31
+ 1: 'yellow',
32
+ 2: 'red',
33
+ 3: 'gray'
34
+ };
35
+ // Special case: schedule_status and budget_status have different order
36
+ const DB_TO_SCHEDULE_BUDGET = {
37
+ 0: 'yellow', // on schedule / on budget
38
+ 1: 'green', // ahead / under
39
+ 2: 'red', // behind / over
40
+ 3: 'gray'
41
+ };
42
+ const DB_TO_FUNDING = {
43
+ 0: 'planning',
44
+ 1: 'funded',
45
+ 2: 'unfunded'
46
+ };
47
+ const DB_TO_FINANCIAL_CLASS = {
48
+ 0: 'capital',
49
+ 1: 'operational'
50
+ };
51
+ // ============================================================================
52
+ // Helper Functions
53
+ // ============================================================================
54
+ function fromDbValue(value, mapping) {
55
+ if (value === null || value === undefined)
56
+ return null;
57
+ return mapping[value] ?? null;
58
+ }
59
+ /**
60
+ * Convert cents to dollars
61
+ */
62
+ function centsToDollars(cents) {
63
+ if (cents === null || cents === undefined)
64
+ return 0;
65
+ return cents / 100;
66
+ }
67
+ /**
68
+ * Transform raw DB project to formatted output
69
+ */
70
+ function transformProject(raw) {
71
+ return {
72
+ // Identifiers
73
+ id: raw.id,
74
+ project_id_key: raw.project_id_key,
75
+ project_token: raw.project_token,
76
+ // Basic Info
77
+ name: raw.name,
78
+ description: raw.description,
79
+ background: raw.background,
80
+ benefits: raw.benefits,
81
+ project_objectives: raw.project_objectives,
82
+ recommendations: raw.recommendations,
83
+ decision_notes: raw.decision_notes,
84
+ // Type & State
85
+ project_type: raw.project_type,
86
+ state: fromDbValue(raw.state, DB_TO_STATE) ?? 'active',
87
+ proposal_state: fromDbValue(raw.proposal_state, DB_TO_PROPOSAL_STATE),
88
+ // Status Indicators - 4 main stoplights
89
+ health_status: fromDbValue(raw.health_status, DB_TO_STOPLIGHT),
90
+ schedule_status: fromDbValue(raw.schedule_status, DB_TO_SCHEDULE_BUDGET),
91
+ budget_status: fromDbValue(raw.budget_status, DB_TO_SCHEDULE_BUDGET),
92
+ quality_status: fromDbValue(raw.quality_status, DB_TO_STOPLIGHT),
93
+ // 4 additional stoplights
94
+ scope_stoplight_status: fromDbValue(raw.scope_stoplight_status, DB_TO_STOPLIGHT),
95
+ risk_stoplight_status: fromDbValue(raw.risk_stoplight_status, DB_TO_STOPLIGHT),
96
+ resource_stoplight_status: fromDbValue(raw.resource_stoplight_status, DB_TO_STOPLIGHT),
97
+ benefits_stoplight_status: fromDbValue(raw.benefits_stoplight_status, DB_TO_STOPLIGHT),
98
+ // Dates
99
+ start_date: raw.start_date,
100
+ end_date: raw.end_date,
101
+ baseline_start_date: raw.baseline_start_date,
102
+ baseline_end_date: raw.baseline_end_date,
103
+ proposal_approved_at: raw.proposal_approved_at,
104
+ proposal_canceled_at: raw.proposal_canceled_at,
105
+ proposal_differed_at: raw.proposal_differed_at,
106
+ created_at: raw.created_at,
107
+ updated_at: raw.updated_at,
108
+ // Progress & Scoring
109
+ percent_complete: raw.percent_complete ?? 0,
110
+ duration: raw.duration ?? 0,
111
+ schedule_variance: raw.schedule_variance,
112
+ rank: raw.rank,
113
+ value_priority_score: raw.value_priority_score,
114
+ risk_priority_score: raw.risk_priority_score,
115
+ value_score_notes: raw.value_score_notes,
116
+ risk_score_notes: raw.risk_score_notes,
117
+ // Financial (convert cents to dollars)
118
+ cost: centsToDollars(raw.cost),
119
+ cost_actual: centsToDollars(raw.cost_actual),
120
+ financial_benefits: centsToDollars(raw.financial_benefits),
121
+ financial_benefits_actual: centsToDollars(raw.financial_benefits_actual),
122
+ operational_expenses: centsToDollars(raw.operational_expenses),
123
+ operational_expenses_actual: centsToDollars(raw.operational_expenses_actual),
124
+ capital_expenses: centsToDollars(raw.capital_expenses),
125
+ capital_expenses_actual: centsToDollars(raw.capital_expenses_actual),
126
+ hours: raw.hours ?? 0,
127
+ funding: fromDbValue(raw.funding, DB_TO_FUNDING),
128
+ financial_class: fromDbValue(raw.financial_class, DB_TO_FINANCIAL_CLASS),
129
+ // Counts
130
+ open_risks_count: raw.open_risks_count ?? 0,
131
+ closed_risks_count: raw.closed_risks_count ?? 0,
132
+ total_risks_count: raw.total_risks_count ?? 0,
133
+ open_issues_count: raw.open_issues_count ?? 0,
134
+ closed_issues_count: raw.closed_issues_count ?? 0,
135
+ total_issues_count: raw.total_issues_count ?? 0,
136
+ open_benefits_count: raw.open_benefits_count ?? 0,
137
+ closed_benefits_count: raw.closed_benefits_count ?? 0,
138
+ total_benefits_count: raw.total_benefits_count ?? 0,
139
+ total_lessons_count: raw.total_lessons_count ?? 0,
140
+ // Relationships (already resolved by Hasura)
141
+ portfolio: raw.portfolio,
142
+ proposal_portfolio: raw.proposal_portfolio,
143
+ department: raw.department,
144
+ category: raw.category,
145
+ lifecycle: raw.lifecycle,
146
+ strategic_objective: raw.strategic_objective,
147
+ project_priority: raw.project_priority,
148
+ project_manager: raw.project_manager,
149
+ project_sponsor: raw.project_sponsor,
150
+ project_team_member_1: raw.project_team_member_1,
151
+ project_team_member_2: raw.project_team_member_2,
152
+ project_team_member_3: raw.project_team_member_3,
153
+ project_team_member_4: raw.project_team_member_4,
154
+ proposal_requestor: raw.proposal_requestor,
155
+ proposal_requestor_name: raw.proposal_requestor_name
156
+ };
157
+ }
158
+ // ============================================================================
159
+ // GraphQL Query
160
+ // ============================================================================
161
+ const GET_PROJECT_QUERY = `
162
+ query GetProject($where: projects_bool_exp!) {
163
+ projects(where: $where, limit: 1) {
164
+ # Identifiers
165
+ id
166
+ project_id_key
167
+ project_token
168
+
169
+ # Basic Info
170
+ name
171
+ description
172
+ background
173
+ benefits
174
+ project_objectives
175
+ recommendations
176
+ decision_notes
177
+
178
+ # Type & State
179
+ project_type
180
+ state
181
+ proposal_state
182
+
183
+ # Status Indicators (8 stoplights)
184
+ health_status
185
+ schedule_status
186
+ budget_status
187
+ quality_status
188
+ scope_stoplight_status
189
+ risk_stoplight_status
190
+ resource_stoplight_status
191
+ benefits_stoplight_status
192
+
193
+ # Dates
194
+ start_date
195
+ end_date
196
+ baseline_start_date
197
+ baseline_end_date
198
+ proposal_approved_at
199
+ proposal_canceled_at
200
+ proposal_differed_at
201
+ created_at
202
+ updated_at
203
+
204
+ # Progress & Scoring
205
+ percent_complete
206
+ duration
207
+ schedule_variance
208
+ rank
209
+ value_priority_score
210
+ risk_priority_score
211
+ value_score_notes
212
+ risk_score_notes
213
+
214
+ # Financial (in cents - will be converted)
215
+ cost
216
+ cost_actual
217
+ financial_benefits
218
+ financial_benefits_actual
219
+ operational_expenses
220
+ operational_expenses_actual
221
+ capital_expenses
222
+ capital_expenses_actual
223
+ hours
224
+ funding
225
+ financial_class
226
+
227
+ # Counts
228
+ open_risks_count
229
+ closed_risks_count
230
+ total_risks_count
231
+ open_issues_count
232
+ closed_issues_count
233
+ total_issues_count
234
+ open_benefits_count
235
+ closed_benefits_count
236
+ total_benefits_count
237
+ total_lessons_count
238
+
239
+ # Relationships - Hasura resolves automatically
240
+ portfolio { id name }
241
+ proposal_portfolio { id name }
242
+ department { id name }
243
+ category { id name }
244
+ lifecycle { id name }
245
+ strategic_objective { id name }
246
+ project_priority { id name }
247
+ project_manager { id name email }
248
+ project_sponsor { id name }
249
+ project_team_member_1 { id name }
250
+ project_team_member_2 { id name }
251
+ project_team_member_3 { id name }
252
+ project_team_member_4 { id name }
253
+ proposal_requestor { id name }
254
+ proposal_requestor_name
255
+ }
256
+ }
257
+ `;
258
+ // ============================================================================
259
+ // Main Handler
260
+ // ============================================================================
261
+ export async function getProject(input, hasuraClient) {
262
+ const { project_id, project_id_key } = input;
263
+ // Validate input - need at least one identifier
264
+ if (project_id === undefined && !project_id_key) {
265
+ return { project: null };
266
+ }
267
+ // Build where clause
268
+ let whereClause;
269
+ if (project_id !== undefined) {
270
+ whereClause = { id: { _eq: project_id } };
271
+ }
272
+ else {
273
+ whereClause = { project_id_key: { _eq: project_id_key } };
274
+ }
275
+ const result = await hasuraClient.query(GET_PROJECT_QUERY, {
276
+ where: whereClause
277
+ });
278
+ if (!result.projects || result.projects.length === 0) {
279
+ return { project: null };
280
+ }
281
+ return {
282
+ project: transformProject(result.projects[0])
283
+ };
284
+ }
285
+ // ============================================================================
286
+ // Tool Definition
287
+ // ============================================================================
288
+ export const getProjectTool = {
289
+ name: 'get_project',
290
+ description: `
291
+ Get full details for a single project by ID or project_id_key.
292
+
293
+ Returns ALL project information including:
294
+ - Identifiers: id, project_id_key, project_token
295
+ - Content: name, description, background, benefits, project_objectives, recommendations, decision_notes
296
+ - Type & State: project_type, state, proposal_state
297
+ - 8 Stoplight statuses: health, schedule, budget, quality, scope, risk, resource, benefits
298
+ - Dates: start/end, baseline start/end, proposal dates, created/updated
299
+ - Progress: percent_complete, duration, schedule_variance, rank, priority scores
300
+ - Financial (in dollars): cost, cost_actual, financial_benefits, operational_expenses, capital_expenses, hours, funding, financial_class
301
+ - Counts: risks, issues, benefits, lessons (open/closed/total)
302
+ - Relationships with NAMES: portfolio, department, category, lifecycle, strategic_objective, project_priority, project_manager, project_sponsor, team_members 1-4
303
+
304
+ SEARCH OPTIONS (provide one):
305
+ - project_id: Database ID (integer)
306
+ - project_id_key: Human-readable key like "PRJ-001"
307
+
308
+ STATE values: "active", "hold", "completed", "cancelled", "pending"
309
+ PROPOSAL_STATE values: "draft", "final", "deferred", "cancelled", "approved"
310
+ STOPLIGHT values: "green", "yellow", "red", "gray"
311
+ SCHEDULE_STATUS: "yellow" = on schedule, "green" = ahead, "red" = behind
312
+ BUDGET_STATUS: "yellow" = on budget, "green" = under budget, "red" = over budget
313
+ FUNDING: "planning", "funded", "unfunded"
314
+ FINANCIAL_CLASS: "capital", "operational"
315
+
316
+ NOTE: Financial values are returned in DOLLARS (converted from cents stored in DB).
317
+
318
+ EXAMPLES:
319
+ - Get project by ID: project_id: 123
320
+ - Get project by key: project_id_key: "PRJ-001"
321
+ `.trim(),
322
+ inputSchema: {
323
+ type: 'object',
324
+ properties: {
325
+ project_id: {
326
+ type: 'number',
327
+ description: 'Project database ID (integer)'
328
+ },
329
+ project_id_key: {
330
+ type: 'string',
331
+ description: 'Human-readable project key (e.g., "PRJ-001")'
332
+ }
333
+ },
334
+ oneOf: [
335
+ { required: ['project_id'] },
336
+ { required: ['project_id_key'] }
337
+ ]
338
+ }
339
+ };
340
+ //# sourceMappingURL=get-project.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-project.js","sourceRoot":"","sources":["../../src/tools/get-project.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,65 @@
1
+ /**
2
+ * MCP Tool: get_risk
3
+ * Returns full details for a single risk by ID
4
+ *
5
+ * Features:
6
+ * - Enum conversion: DB integers → human-readable strings
7
+ * - Hasura relationships: returns resolved names instead of IDs
8
+ */
9
+ import type { HasuraClient } from '../clients/hasura-client.js';
10
+ export type RiskStatus = 'open' | 'closed' | 'realized';
11
+ export type RiskPriority = 'very_low' | 'low' | 'medium' | 'high' | 'critical';
12
+ export type RiskResponse = 'mitigate' | 'accept' | 'avoid' | 'watch' | 'transfer';
13
+ export type SeverityLevel = 'very_low' | 'low' | 'medium' | 'high' | 'very_high';
14
+ export type LikelihoodLevel = 'very_low' | 'low' | 'medium' | 'high' | 'very_high';
15
+ export interface GetRiskInput {
16
+ risk_id?: number;
17
+ risk_number?: number;
18
+ }
19
+ export interface RiskDetails {
20
+ id: number;
21
+ risk_id: number;
22
+ name: string;
23
+ description: string | null;
24
+ notes: string | null;
25
+ hyperlinks: string | null;
26
+ status: RiskStatus;
27
+ priority: RiskPriority;
28
+ severity: SeverityLevel;
29
+ likelihood: LikelihoodLevel;
30
+ risk_response: RiskResponse;
31
+ impact_score: number;
32
+ response_plan: string | null;
33
+ created_at: string;
34
+ updated_at: string;
35
+ project: {
36
+ id: number;
37
+ name: string;
38
+ } | null;
39
+ owner: {
40
+ id: number;
41
+ name: string;
42
+ } | null;
43
+ }
44
+ export interface GetRiskResult {
45
+ risk: RiskDetails | null;
46
+ }
47
+ export declare function getRisk(input: GetRiskInput, hasuraClient: HasuraClient): Promise<GetRiskResult>;
48
+ export declare const getRiskTool: {
49
+ name: string;
50
+ description: string;
51
+ inputSchema: {
52
+ type: string;
53
+ properties: {
54
+ risk_id: {
55
+ type: string;
56
+ description: string;
57
+ };
58
+ risk_number: {
59
+ type: string;
60
+ description: string;
61
+ };
62
+ };
63
+ };
64
+ };
65
+ //# sourceMappingURL=get-risk.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-risk.d.ts","sourceRoot":"","sources":["../../src/tools/get-risk.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAMhE,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,UAAU,CAAC;AACxD,MAAM,MAAM,YAAY,GAAG,UAAU,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,UAAU,CAAC;AAC/E,MAAM,MAAM,YAAY,GAAG,UAAU,GAAG,QAAQ,GAAG,OAAO,GAAG,OAAO,GAAG,UAAU,CAAC;AAClF,MAAM,MAAM,aAAa,GAAG,UAAU,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,WAAW,CAAC;AACjF,MAAM,MAAM,eAAe,GAAG,UAAU,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,WAAW,CAAC;AAEnF,MAAM,WAAW,YAAY;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAG1B,MAAM,EAAE,UAAU,CAAC;IACnB,QAAQ,EAAE,YAAY,CAAC;IACvB,QAAQ,EAAE,aAAa,CAAC;IACxB,UAAU,EAAE,eAAe,CAAC;IAC5B,aAAa,EAAE,YAAY,CAAC;IAG5B,YAAY,EAAE,MAAM,CAAC;IAGrB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAG7B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IAGnB,OAAO,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAC7C,KAAK,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;CAC5C;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,WAAW,GAAG,IAAI,CAAC;CAC1B;AA4ID,wBAAsB,OAAO,CAC3B,KAAK,EAAE,YAAY,EACnB,YAAY,EAAE,YAAY,GACzB,OAAO,CAAC,aAAa,CAAC,CA2BxB;AAMD,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;CA0CvB,CAAC"}