nexup-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.

Potentially problematic release.


This version of nexup-mcp-server might be problematic. Click here for more details.

Files changed (66) hide show
  1. package/README.md +41 -0
  2. package/dist/client/auth.d.ts +6 -0
  3. package/dist/client/auth.d.ts.map +1 -0
  4. package/dist/client/auth.js +14 -0
  5. package/dist/client/auth.js.map +1 -0
  6. package/dist/client/http-client.d.ts +33 -0
  7. package/dist/client/http-client.d.ts.map +1 -0
  8. package/dist/client/http-client.js +149 -0
  9. package/dist/client/http-client.js.map +1 -0
  10. package/dist/config.d.ts +7 -0
  11. package/dist/config.d.ts.map +1 -0
  12. package/dist/config.js +19 -0
  13. package/dist/config.js.map +1 -0
  14. package/dist/index.d.ts +3 -0
  15. package/dist/index.d.ts.map +1 -0
  16. package/dist/index.js +108 -0
  17. package/dist/index.js.map +1 -0
  18. package/dist/resources/crm-resources.d.ts +8 -0
  19. package/dist/resources/crm-resources.d.ts.map +1 -0
  20. package/dist/resources/crm-resources.js +501 -0
  21. package/dist/resources/crm-resources.js.map +1 -0
  22. package/dist/resources/index.d.ts +2 -0
  23. package/dist/resources/index.d.ts.map +1 -0
  24. package/dist/resources/index.js +2 -0
  25. package/dist/resources/index.js.map +1 -0
  26. package/dist/tools/customers.d.ts +221 -0
  27. package/dist/tools/customers.d.ts.map +1 -0
  28. package/dist/tools/customers.js +207 -0
  29. package/dist/tools/customers.js.map +1 -0
  30. package/dist/tools/index.d.ts +883 -0
  31. package/dist/tools/index.d.ts.map +1 -0
  32. package/dist/tools/index.js +38 -0
  33. package/dist/tools/index.js.map +1 -0
  34. package/dist/tools/notifications.d.ts +16 -0
  35. package/dist/tools/notifications.d.ts.map +1 -0
  36. package/dist/tools/notifications.js +47 -0
  37. package/dist/tools/notifications.js.map +1 -0
  38. package/dist/tools/prospects.d.ts +478 -0
  39. package/dist/tools/prospects.d.ts.map +1 -0
  40. package/dist/tools/prospects.js +336 -0
  41. package/dist/tools/prospects.js.map +1 -0
  42. package/dist/tools/tickets.d.ts +83 -0
  43. package/dist/tools/tickets.d.ts.map +1 -0
  44. package/dist/tools/tickets.js +171 -0
  45. package/dist/tools/tickets.js.map +1 -0
  46. package/dist/tools/transcripts.d.ts +97 -0
  47. package/dist/tools/transcripts.d.ts.map +1 -0
  48. package/dist/tools/transcripts.js +188 -0
  49. package/dist/tools/transcripts.js.map +1 -0
  50. package/dist/utils/errors.d.ts +9 -0
  51. package/dist/utils/errors.d.ts.map +1 -0
  52. package/dist/utils/errors.js +28 -0
  53. package/dist/utils/errors.js.map +1 -0
  54. package/dist/utils/formatters.d.ts +5 -0
  55. package/dist/utils/formatters.d.ts.map +1 -0
  56. package/dist/utils/formatters.js +21 -0
  57. package/dist/utils/formatters.js.map +1 -0
  58. package/dist/utils/logger.d.ts +4 -0
  59. package/dist/utils/logger.d.ts.map +1 -0
  60. package/dist/utils/logger.js +43 -0
  61. package/dist/utils/logger.js.map +1 -0
  62. package/dist/validation/schemas.d.ts +424 -0
  63. package/dist/validation/schemas.d.ts.map +1 -0
  64. package/dist/validation/schemas.js +114 -0
  65. package/dist/validation/schemas.js.map +1 -0
  66. package/package.json +34 -0
@@ -0,0 +1,424 @@
1
+ import { z } from 'zod';
2
+ export declare const createProspectSchema: z.ZodObject<{
3
+ companyName: z.ZodString;
4
+ address: z.ZodOptional<z.ZodString>;
5
+ industry: z.ZodOptional<z.ZodString>;
6
+ website: z.ZodOptional<z.ZodString>;
7
+ priority: z.ZodDefault<z.ZodEnum<["low", "medium", "high"]>>;
8
+ eventMetAt: z.ZodOptional<z.ZodString>;
9
+ status: z.ZodDefault<z.ZodEnum<["new", "contacted", "qualified", "interested", "unresponsive", "lost", "converted"]>>;
10
+ nextAction: z.ZodOptional<z.ZodString>;
11
+ nextActionDueDate: z.ZodOptional<z.ZodString>;
12
+ owner: z.ZodOptional<z.ZodString>;
13
+ notes: z.ZodOptional<z.ZodString>;
14
+ }, "strip", z.ZodTypeAny, {
15
+ status: "new" | "contacted" | "qualified" | "interested" | "unresponsive" | "lost" | "converted";
16
+ companyName: string;
17
+ priority: "low" | "medium" | "high";
18
+ address?: string | undefined;
19
+ industry?: string | undefined;
20
+ website?: string | undefined;
21
+ eventMetAt?: string | undefined;
22
+ nextAction?: string | undefined;
23
+ nextActionDueDate?: string | undefined;
24
+ owner?: string | undefined;
25
+ notes?: string | undefined;
26
+ }, {
27
+ companyName: string;
28
+ status?: "new" | "contacted" | "qualified" | "interested" | "unresponsive" | "lost" | "converted" | undefined;
29
+ address?: string | undefined;
30
+ industry?: string | undefined;
31
+ website?: string | undefined;
32
+ priority?: "low" | "medium" | "high" | undefined;
33
+ eventMetAt?: string | undefined;
34
+ nextAction?: string | undefined;
35
+ nextActionDueDate?: string | undefined;
36
+ owner?: string | undefined;
37
+ notes?: string | undefined;
38
+ }>;
39
+ export declare const updateProspectSchema: z.ZodObject<{
40
+ companyName: z.ZodOptional<z.ZodString>;
41
+ address: z.ZodOptional<z.ZodOptional<z.ZodString>>;
42
+ industry: z.ZodOptional<z.ZodOptional<z.ZodString>>;
43
+ website: z.ZodOptional<z.ZodOptional<z.ZodString>>;
44
+ priority: z.ZodOptional<z.ZodDefault<z.ZodEnum<["low", "medium", "high"]>>>;
45
+ eventMetAt: z.ZodOptional<z.ZodOptional<z.ZodString>>;
46
+ status: z.ZodOptional<z.ZodDefault<z.ZodEnum<["new", "contacted", "qualified", "interested", "unresponsive", "lost", "converted"]>>>;
47
+ nextAction: z.ZodOptional<z.ZodOptional<z.ZodString>>;
48
+ nextActionDueDate: z.ZodOptional<z.ZodOptional<z.ZodString>>;
49
+ owner: z.ZodOptional<z.ZodOptional<z.ZodString>>;
50
+ notes: z.ZodOptional<z.ZodOptional<z.ZodString>>;
51
+ } & {
52
+ prospectId: z.ZodString;
53
+ }, "strip", z.ZodTypeAny, {
54
+ prospectId: string;
55
+ status?: "new" | "contacted" | "qualified" | "interested" | "unresponsive" | "lost" | "converted" | undefined;
56
+ companyName?: string | undefined;
57
+ address?: string | undefined;
58
+ industry?: string | undefined;
59
+ website?: string | undefined;
60
+ priority?: "low" | "medium" | "high" | undefined;
61
+ eventMetAt?: string | undefined;
62
+ nextAction?: string | undefined;
63
+ nextActionDueDate?: string | undefined;
64
+ owner?: string | undefined;
65
+ notes?: string | undefined;
66
+ }, {
67
+ prospectId: string;
68
+ status?: "new" | "contacted" | "qualified" | "interested" | "unresponsive" | "lost" | "converted" | undefined;
69
+ companyName?: string | undefined;
70
+ address?: string | undefined;
71
+ industry?: string | undefined;
72
+ website?: string | undefined;
73
+ priority?: "low" | "medium" | "high" | undefined;
74
+ eventMetAt?: string | undefined;
75
+ nextAction?: string | undefined;
76
+ nextActionDueDate?: string | undefined;
77
+ owner?: string | undefined;
78
+ notes?: string | undefined;
79
+ }>;
80
+ export declare const createProspectWithContactSchema: z.ZodObject<{
81
+ companyName: z.ZodString;
82
+ address: z.ZodOptional<z.ZodString>;
83
+ industry: z.ZodOptional<z.ZodString>;
84
+ website: z.ZodOptional<z.ZodString>;
85
+ priority: z.ZodDefault<z.ZodEnum<["low", "medium", "high"]>>;
86
+ eventMetAt: z.ZodOptional<z.ZodString>;
87
+ notes: z.ZodOptional<z.ZodString>;
88
+ contactFirstName: z.ZodString;
89
+ contactLastName: z.ZodString;
90
+ contactEmail: z.ZodString;
91
+ contactPhone: z.ZodOptional<z.ZodString>;
92
+ contactRole: z.ZodOptional<z.ZodString>;
93
+ contactIsPrimary: z.ZodDefault<z.ZodBoolean>;
94
+ }, "strip", z.ZodTypeAny, {
95
+ companyName: string;
96
+ priority: "low" | "medium" | "high";
97
+ contactFirstName: string;
98
+ contactLastName: string;
99
+ contactEmail: string;
100
+ contactIsPrimary: boolean;
101
+ address?: string | undefined;
102
+ industry?: string | undefined;
103
+ website?: string | undefined;
104
+ eventMetAt?: string | undefined;
105
+ notes?: string | undefined;
106
+ contactPhone?: string | undefined;
107
+ contactRole?: string | undefined;
108
+ }, {
109
+ companyName: string;
110
+ contactFirstName: string;
111
+ contactLastName: string;
112
+ contactEmail: string;
113
+ address?: string | undefined;
114
+ industry?: string | undefined;
115
+ website?: string | undefined;
116
+ priority?: "low" | "medium" | "high" | undefined;
117
+ eventMetAt?: string | undefined;
118
+ notes?: string | undefined;
119
+ contactPhone?: string | undefined;
120
+ contactRole?: string | undefined;
121
+ contactIsPrimary?: boolean | undefined;
122
+ }>;
123
+ export declare const createContactSchema: z.ZodEffects<z.ZodObject<{
124
+ firstName: z.ZodString;
125
+ lastName: z.ZodString;
126
+ email: z.ZodString;
127
+ phone: z.ZodOptional<z.ZodString>;
128
+ role: z.ZodOptional<z.ZodString>;
129
+ isPrimary: z.ZodDefault<z.ZodBoolean>;
130
+ prospectId: z.ZodOptional<z.ZodString>;
131
+ customerId: z.ZodOptional<z.ZodString>;
132
+ notes: z.ZodOptional<z.ZodString>;
133
+ }, "strip", z.ZodTypeAny, {
134
+ firstName: string;
135
+ lastName: string;
136
+ email: string;
137
+ isPrimary: boolean;
138
+ notes?: string | undefined;
139
+ prospectId?: string | undefined;
140
+ phone?: string | undefined;
141
+ role?: string | undefined;
142
+ customerId?: string | undefined;
143
+ }, {
144
+ firstName: string;
145
+ lastName: string;
146
+ email: string;
147
+ notes?: string | undefined;
148
+ prospectId?: string | undefined;
149
+ phone?: string | undefined;
150
+ role?: string | undefined;
151
+ isPrimary?: boolean | undefined;
152
+ customerId?: string | undefined;
153
+ }>, {
154
+ firstName: string;
155
+ lastName: string;
156
+ email: string;
157
+ isPrimary: boolean;
158
+ notes?: string | undefined;
159
+ prospectId?: string | undefined;
160
+ phone?: string | undefined;
161
+ role?: string | undefined;
162
+ customerId?: string | undefined;
163
+ }, {
164
+ firstName: string;
165
+ lastName: string;
166
+ email: string;
167
+ notes?: string | undefined;
168
+ prospectId?: string | undefined;
169
+ phone?: string | undefined;
170
+ role?: string | undefined;
171
+ isPrimary?: boolean | undefined;
172
+ customerId?: string | undefined;
173
+ }>;
174
+ export declare const updateContactSchema: z.ZodObject<{
175
+ firstName: z.ZodOptional<z.ZodString>;
176
+ lastName: z.ZodOptional<z.ZodString>;
177
+ email: z.ZodOptional<z.ZodString>;
178
+ phone: z.ZodOptional<z.ZodOptional<z.ZodString>>;
179
+ role: z.ZodOptional<z.ZodOptional<z.ZodString>>;
180
+ isPrimary: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
181
+ prospectId: z.ZodOptional<z.ZodOptional<z.ZodString>>;
182
+ customerId: z.ZodOptional<z.ZodOptional<z.ZodString>>;
183
+ notes: z.ZodOptional<z.ZodOptional<z.ZodString>>;
184
+ } & {
185
+ contactId: z.ZodString;
186
+ }, "strip", z.ZodTypeAny, {
187
+ contactId: string;
188
+ notes?: string | undefined;
189
+ prospectId?: string | undefined;
190
+ firstName?: string | undefined;
191
+ lastName?: string | undefined;
192
+ email?: string | undefined;
193
+ phone?: string | undefined;
194
+ role?: string | undefined;
195
+ isPrimary?: boolean | undefined;
196
+ customerId?: string | undefined;
197
+ }, {
198
+ contactId: string;
199
+ notes?: string | undefined;
200
+ prospectId?: string | undefined;
201
+ firstName?: string | undefined;
202
+ lastName?: string | undefined;
203
+ email?: string | undefined;
204
+ phone?: string | undefined;
205
+ role?: string | undefined;
206
+ isPrimary?: boolean | undefined;
207
+ customerId?: string | undefined;
208
+ }>;
209
+ export declare const recordTouchpointSchema: z.ZodObject<{
210
+ prospectId: z.ZodString;
211
+ contactId: z.ZodOptional<z.ZodString>;
212
+ type: z.ZodEnum<["email", "call", "meeting", "linkedin", "other"]>;
213
+ date: z.ZodString;
214
+ summary: z.ZodOptional<z.ZodString>;
215
+ outcome: z.ZodOptional<z.ZodEnum<["positive", "neutral", "negative", "no_response"]>>;
216
+ }, "strip", z.ZodTypeAny, {
217
+ type: "email" | "call" | "meeting" | "linkedin" | "other";
218
+ prospectId: string;
219
+ date: string;
220
+ contactId?: string | undefined;
221
+ summary?: string | undefined;
222
+ outcome?: "positive" | "neutral" | "negative" | "no_response" | undefined;
223
+ }, {
224
+ type: "email" | "call" | "meeting" | "linkedin" | "other";
225
+ prospectId: string;
226
+ date: string;
227
+ contactId?: string | undefined;
228
+ summary?: string | undefined;
229
+ outcome?: "positive" | "neutral" | "negative" | "no_response" | undefined;
230
+ }>;
231
+ export declare const createCustomerSchema: z.ZodObject<{
232
+ companyName: z.ZodString;
233
+ address: z.ZodOptional<z.ZodString>;
234
+ industry: z.ZodOptional<z.ZodString>;
235
+ website: z.ZodOptional<z.ZodString>;
236
+ owner: z.ZodOptional<z.ZodString>;
237
+ sentiment: z.ZodDefault<z.ZodNumber>;
238
+ notes: z.ZodOptional<z.ZodString>;
239
+ }, "strip", z.ZodTypeAny, {
240
+ companyName: string;
241
+ sentiment: number;
242
+ address?: string | undefined;
243
+ industry?: string | undefined;
244
+ website?: string | undefined;
245
+ owner?: string | undefined;
246
+ notes?: string | undefined;
247
+ }, {
248
+ companyName: string;
249
+ address?: string | undefined;
250
+ industry?: string | undefined;
251
+ website?: string | undefined;
252
+ owner?: string | undefined;
253
+ notes?: string | undefined;
254
+ sentiment?: number | undefined;
255
+ }>;
256
+ export declare const updateCustomerSchema: z.ZodObject<{
257
+ customerId: z.ZodString;
258
+ companyName: z.ZodOptional<z.ZodString>;
259
+ address: z.ZodOptional<z.ZodString>;
260
+ industry: z.ZodOptional<z.ZodString>;
261
+ website: z.ZodOptional<z.ZodString>;
262
+ sentiment: z.ZodOptional<z.ZodNumber>;
263
+ nextAction: z.ZodOptional<z.ZodString>;
264
+ nextActionDueDate: z.ZodOptional<z.ZodString>;
265
+ notes: z.ZodOptional<z.ZodString>;
266
+ owner: z.ZodOptional<z.ZodString>;
267
+ }, "strip", z.ZodTypeAny, {
268
+ customerId: string;
269
+ companyName?: string | undefined;
270
+ address?: string | undefined;
271
+ industry?: string | undefined;
272
+ website?: string | undefined;
273
+ nextAction?: string | undefined;
274
+ nextActionDueDate?: string | undefined;
275
+ owner?: string | undefined;
276
+ notes?: string | undefined;
277
+ sentiment?: number | undefined;
278
+ }, {
279
+ customerId: string;
280
+ companyName?: string | undefined;
281
+ address?: string | undefined;
282
+ industry?: string | undefined;
283
+ website?: string | undefined;
284
+ nextAction?: string | undefined;
285
+ nextActionDueDate?: string | undefined;
286
+ owner?: string | undefined;
287
+ notes?: string | undefined;
288
+ sentiment?: number | undefined;
289
+ }>;
290
+ export declare const createAccountSchema: z.ZodObject<{
291
+ companyName: z.ZodString;
292
+ address: z.ZodOptional<z.ZodString>;
293
+ industry: z.ZodOptional<z.ZodString>;
294
+ website: z.ZodOptional<z.ZodString>;
295
+ owner: z.ZodOptional<z.ZodString>;
296
+ sentiment: z.ZodDefault<z.ZodNumber>;
297
+ notes: z.ZodOptional<z.ZodString>;
298
+ }, "strip", z.ZodTypeAny, {
299
+ companyName: string;
300
+ sentiment: number;
301
+ address?: string | undefined;
302
+ industry?: string | undefined;
303
+ website?: string | undefined;
304
+ owner?: string | undefined;
305
+ notes?: string | undefined;
306
+ }, {
307
+ companyName: string;
308
+ address?: string | undefined;
309
+ industry?: string | undefined;
310
+ website?: string | undefined;
311
+ owner?: string | undefined;
312
+ notes?: string | undefined;
313
+ sentiment?: number | undefined;
314
+ }>;
315
+ export declare const updateAccountSchema: z.ZodObject<{
316
+ customerId: z.ZodString;
317
+ companyName: z.ZodOptional<z.ZodString>;
318
+ address: z.ZodOptional<z.ZodString>;
319
+ industry: z.ZodOptional<z.ZodString>;
320
+ website: z.ZodOptional<z.ZodString>;
321
+ sentiment: z.ZodOptional<z.ZodNumber>;
322
+ nextAction: z.ZodOptional<z.ZodString>;
323
+ nextActionDueDate: z.ZodOptional<z.ZodString>;
324
+ notes: z.ZodOptional<z.ZodString>;
325
+ owner: z.ZodOptional<z.ZodString>;
326
+ }, "strip", z.ZodTypeAny, {
327
+ customerId: string;
328
+ companyName?: string | undefined;
329
+ address?: string | undefined;
330
+ industry?: string | undefined;
331
+ website?: string | undefined;
332
+ nextAction?: string | undefined;
333
+ nextActionDueDate?: string | undefined;
334
+ owner?: string | undefined;
335
+ notes?: string | undefined;
336
+ sentiment?: number | undefined;
337
+ }, {
338
+ customerId: string;
339
+ companyName?: string | undefined;
340
+ address?: string | undefined;
341
+ industry?: string | undefined;
342
+ website?: string | undefined;
343
+ nextAction?: string | undefined;
344
+ nextActionDueDate?: string | undefined;
345
+ owner?: string | undefined;
346
+ notes?: string | undefined;
347
+ sentiment?: number | undefined;
348
+ }>;
349
+ export declare const recordCallTranscriptSchema: z.ZodEffects<z.ZodObject<{
350
+ entityType: z.ZodEnum<["PROSPECT", "CUSTOMER"]>;
351
+ prospectId: z.ZodOptional<z.ZodString>;
352
+ customerId: z.ZodOptional<z.ZodString>;
353
+ date: z.ZodString;
354
+ duration: z.ZodOptional<z.ZodNumber>;
355
+ summary: z.ZodOptional<z.ZodString>;
356
+ transcript: z.ZodOptional<z.ZodString>;
357
+ sentiment: z.ZodOptional<z.ZodNumber>;
358
+ }, "strip", z.ZodTypeAny, {
359
+ date: string;
360
+ entityType: "PROSPECT" | "CUSTOMER";
361
+ prospectId?: string | undefined;
362
+ customerId?: string | undefined;
363
+ summary?: string | undefined;
364
+ sentiment?: number | undefined;
365
+ duration?: number | undefined;
366
+ transcript?: string | undefined;
367
+ }, {
368
+ date: string;
369
+ entityType: "PROSPECT" | "CUSTOMER";
370
+ prospectId?: string | undefined;
371
+ customerId?: string | undefined;
372
+ summary?: string | undefined;
373
+ sentiment?: number | undefined;
374
+ duration?: number | undefined;
375
+ transcript?: string | undefined;
376
+ }>, {
377
+ date: string;
378
+ entityType: "PROSPECT" | "CUSTOMER";
379
+ prospectId?: string | undefined;
380
+ customerId?: string | undefined;
381
+ summary?: string | undefined;
382
+ sentiment?: number | undefined;
383
+ duration?: number | undefined;
384
+ transcript?: string | undefined;
385
+ }, {
386
+ date: string;
387
+ entityType: "PROSPECT" | "CUSTOMER";
388
+ prospectId?: string | undefined;
389
+ customerId?: string | undefined;
390
+ summary?: string | undefined;
391
+ sentiment?: number | undefined;
392
+ duration?: number | undefined;
393
+ transcript?: string | undefined;
394
+ }>;
395
+ export declare const createLinearTicketSchema: z.ZodObject<{
396
+ customerId: z.ZodString;
397
+ title: z.ZodString;
398
+ description: z.ZodOptional<z.ZodString>;
399
+ priority: z.ZodDefault<z.ZodEnum<["low", "medium", "high", "urgent"]>>;
400
+ assignee: z.ZodOptional<z.ZodString>;
401
+ dueDate: z.ZodOptional<z.ZodString>;
402
+ }, "strip", z.ZodTypeAny, {
403
+ priority: "low" | "medium" | "high" | "urgent";
404
+ customerId: string;
405
+ title: string;
406
+ description?: string | undefined;
407
+ assignee?: string | undefined;
408
+ dueDate?: string | undefined;
409
+ }, {
410
+ customerId: string;
411
+ title: string;
412
+ priority?: "low" | "medium" | "high" | "urgent" | undefined;
413
+ description?: string | undefined;
414
+ assignee?: string | undefined;
415
+ dueDate?: string | undefined;
416
+ }>;
417
+ export declare const markNotificationCompleteSchema: z.ZodObject<{
418
+ notificationId: z.ZodString;
419
+ }, "strip", z.ZodTypeAny, {
420
+ notificationId: string;
421
+ }, {
422
+ notificationId: string;
423
+ }>;
424
+ //# sourceMappingURL=schemas.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../src/validation/schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAY/B,CAAC;AAEH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAE/B,CAAC;AAGH,eAAO,MAAM,+BAA+B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiB1C,CAAC;AAeH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAE9B,CAAC;AAEH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAE9B,CAAC;AAGH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;EAOjC,CAAC;AAGH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;EAQ/B,CAAC;AAEH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAW/B,CAAC;AAGH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;EAAuB,CAAC;AACxD,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAAuB,CAAC;AAGxD,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EActC,CAAC;AAGF,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;EAOnC,CAAC;AAGH,eAAO,MAAM,8BAA8B;;;;;;EAEzC,CAAC"}
@@ -0,0 +1,114 @@
1
+ import { z } from 'zod';
2
+ // Prospect schemas (company-level)
3
+ export const createProspectSchema = z.object({
4
+ companyName: z.string().min(1, 'Company name is required'),
5
+ address: z.string().optional(),
6
+ industry: z.string().optional(),
7
+ website: z.string().optional(),
8
+ priority: z.enum(['low', 'medium', 'high']).default('medium'),
9
+ eventMetAt: z.string().optional(),
10
+ status: z.enum(['new', 'contacted', 'qualified', 'interested', 'unresponsive', 'lost', 'converted']).default('new'),
11
+ nextAction: z.string().optional(),
12
+ nextActionDueDate: z.string().optional(),
13
+ owner: z.string().optional(),
14
+ notes: z.string().optional(),
15
+ });
16
+ export const updateProspectSchema = createProspectSchema.partial().extend({
17
+ prospectId: z.string().min(1, 'Prospect ID is required'),
18
+ });
19
+ // Combined prospect + contact schema (for business cards)
20
+ export const createProspectWithContactSchema = z.object({
21
+ // Company fields
22
+ companyName: z.string().min(1, 'Company name is required'),
23
+ address: z.string().optional(),
24
+ industry: z.string().optional(),
25
+ website: z.string().optional(),
26
+ priority: z.enum(['low', 'medium', 'high']).default('medium'),
27
+ eventMetAt: z.string().optional(),
28
+ notes: z.string().optional(),
29
+ // Contact fields
30
+ contactFirstName: z.string().min(1, 'Contact first name is required'),
31
+ contactLastName: z.string().min(1, 'Contact last name is required'),
32
+ contactEmail: z.string().email('Invalid email address'),
33
+ contactPhone: z.string().optional(),
34
+ contactRole: z.string().optional(),
35
+ contactIsPrimary: z.boolean().default(true), // Default to primary for business cards
36
+ });
37
+ // Contact schemas (person-level)
38
+ const contactBaseSchema = z.object({
39
+ firstName: z.string().min(1, 'First name is required'),
40
+ lastName: z.string().min(1, 'Last name is required'),
41
+ email: z.string().email('Invalid email address'),
42
+ phone: z.string().optional(),
43
+ role: z.string().optional(),
44
+ isPrimary: z.boolean().default(false),
45
+ prospectId: z.string().optional(),
46
+ customerId: z.string().optional(),
47
+ notes: z.string().optional(),
48
+ });
49
+ export const createContactSchema = contactBaseSchema.refine(data => data.prospectId || data.customerId, {
50
+ message: 'Contact must belong to either a prospect or customer',
51
+ });
52
+ export const updateContactSchema = contactBaseSchema.partial().extend({
53
+ contactId: z.string().min(1, 'Contact ID is required'),
54
+ });
55
+ // Touchpoint schemas
56
+ export const recordTouchpointSchema = z.object({
57
+ prospectId: z.string().min(1, 'Prospect ID is required'),
58
+ contactId: z.string().optional(),
59
+ type: z.enum(['email', 'call', 'meeting', 'linkedin', 'other']),
60
+ date: z.string(),
61
+ summary: z.string().optional(),
62
+ outcome: z.enum(['positive', 'neutral', 'negative', 'no_response']).optional(),
63
+ });
64
+ // Customer schemas (company-level)
65
+ export const createCustomerSchema = z.object({
66
+ companyName: z.string().min(1, 'Company name is required'),
67
+ address: z.string().optional(),
68
+ industry: z.string().optional(),
69
+ website: z.string().optional(),
70
+ owner: z.string().optional(),
71
+ sentiment: z.number().int().min(1).max(5).default(3),
72
+ notes: z.string().optional(),
73
+ });
74
+ export const updateCustomerSchema = z.object({
75
+ customerId: z.string().min(1, 'Customer ID is required'),
76
+ companyName: z.string().optional(),
77
+ address: z.string().optional(),
78
+ industry: z.string().optional(),
79
+ website: z.string().optional(),
80
+ sentiment: z.number().int().min(1).max(5).optional(),
81
+ nextAction: z.string().optional(),
82
+ nextActionDueDate: z.string().optional(),
83
+ notes: z.string().optional(),
84
+ owner: z.string().optional(),
85
+ });
86
+ // Backwards compatibility
87
+ export const createAccountSchema = createCustomerSchema;
88
+ export const updateAccountSchema = updateCustomerSchema;
89
+ // Call transcript schemas
90
+ export const recordCallTranscriptSchema = z.object({
91
+ entityType: z.enum(['PROSPECT', 'CUSTOMER']),
92
+ prospectId: z.string().optional(),
93
+ customerId: z.string().optional(),
94
+ date: z.string(),
95
+ duration: z.number().int().positive().optional(),
96
+ summary: z.string().optional(),
97
+ transcript: z.string().optional(),
98
+ sentiment: z.number().int().min(1).max(5).optional(),
99
+ }).refine((data) => (data.entityType === 'PROSPECT' && data.prospectId) ||
100
+ (data.entityType === 'CUSTOMER' && data.customerId), { message: 'Must provide prospectId for PROSPECT or customerId for CUSTOMER' });
101
+ // Linear ticket schemas
102
+ export const createLinearTicketSchema = z.object({
103
+ customerId: z.string().min(1, 'Customer ID is required'),
104
+ title: z.string().min(1, 'Title is required'),
105
+ description: z.string().optional(),
106
+ priority: z.enum(['low', 'medium', 'high', 'urgent']).default('medium'),
107
+ assignee: z.string().optional(),
108
+ dueDate: z.string().optional(),
109
+ });
110
+ // Notification schema
111
+ export const markNotificationCompleteSchema = z.object({
112
+ notificationId: z.string().min(1, 'Notification ID is required'),
113
+ });
114
+ //# sourceMappingURL=schemas.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schemas.js","sourceRoot":"","sources":["../../src/validation/schemas.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,34 @@
1
+ {
2
+ "name": "nexup-mcp-server",
3
+ "version": "1.0.0",
4
+ "description": "Model Context Protocol server for NexUp CRM",
5
+ "main": "dist/index.js",
6
+ "bin": {
7
+ "nexup-mcp-server": "dist/index.js"
8
+ },
9
+ "files": [
10
+ "dist"
11
+ ],
12
+ "type": "module",
13
+ "scripts": {
14
+ "build": "tsc",
15
+ "dev": "tsx src/index.ts",
16
+ "start": "node dist/index.js",
17
+ "watch": "tsx watch src/index.ts"
18
+ },
19
+ "keywords": ["mcp", "model-context-protocol", "crm", "nexup"],
20
+ "author": "",
21
+ "license": "MIT",
22
+ "dependencies": {
23
+ "@modelcontextprotocol/sdk": "^1.0.4",
24
+ "axios": "^1.7.0",
25
+ "dotenv": "^16.4.0",
26
+ "zod": "^3.23.8",
27
+ "winston": "^3.11.0"
28
+ },
29
+ "devDependencies": {
30
+ "@types/node": "^20.0.0",
31
+ "typescript": "^5.0.0",
32
+ "tsx": "^4.0.0"
33
+ }
34
+ }