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,501 @@
1
+ import { httpClient } from '../client/http-client.js';
2
+ import { logger } from '../utils/logger.js';
3
+ import { formatDate } from '../utils/formatters.js';
4
+ export const allResources = [
5
+ {
6
+ uri: 'nexup://prospects/list',
7
+ name: 'List Prospects',
8
+ description: 'List all prospect companies with optional filters (status, priority, owner)',
9
+ mimeType: 'application/json',
10
+ },
11
+ {
12
+ uri: 'nexup://prospects/{id}',
13
+ name: 'Prospect Details',
14
+ description: 'Get full details for a specific prospect company including contacts and touchpoint history',
15
+ mimeType: 'application/json',
16
+ },
17
+ {
18
+ uri: 'nexup://customers/list',
19
+ name: 'List Customers',
20
+ description: 'List all customer companies with optional filters (owner)',
21
+ mimeType: 'application/json',
22
+ },
23
+ {
24
+ uri: 'nexup://customers/{id}',
25
+ name: 'Customer Details',
26
+ description: 'Get full details for a specific customer company including contacts, transcripts and tickets',
27
+ mimeType: 'application/json',
28
+ },
29
+ {
30
+ uri: 'nexup://contacts/{id}',
31
+ name: 'Contact Details',
32
+ description: 'Get details for a specific contact person',
33
+ mimeType: 'application/json',
34
+ },
35
+ {
36
+ uri: 'nexup://contacts/list',
37
+ name: 'List Contacts',
38
+ description: 'List all contacts with optional filters',
39
+ mimeType: 'application/json',
40
+ },
41
+ {
42
+ uri: 'nexup://transcripts/list',
43
+ name: 'List Transcripts',
44
+ description: 'List all call transcripts with optional filters',
45
+ mimeType: 'application/json',
46
+ },
47
+ {
48
+ uri: 'nexup://transcripts/{id}',
49
+ name: 'Transcript Details',
50
+ description: 'Get full details for a specific call transcript',
51
+ mimeType: 'application/json',
52
+ },
53
+ {
54
+ uri: 'nexup://touchpoints/list',
55
+ name: 'List Touchpoints',
56
+ description: 'List all touchpoints with optional prospect filter',
57
+ mimeType: 'application/json',
58
+ },
59
+ {
60
+ uri: 'nexup://tickets/list',
61
+ name: 'List Tickets',
62
+ description: 'List all Linear tickets with optional filters',
63
+ mimeType: 'application/json',
64
+ },
65
+ {
66
+ uri: 'nexup://tickets/{id}',
67
+ name: 'Ticket Details',
68
+ description: 'Get full details for a specific ticket',
69
+ mimeType: 'application/json',
70
+ },
71
+ {
72
+ uri: 'nexup://notifications/pending',
73
+ name: 'Pending Notifications',
74
+ description: 'View upcoming reminders and notifications',
75
+ mimeType: 'application/json',
76
+ },
77
+ ];
78
+ export async function handleResourceRead(uri) {
79
+ logger.info('Reading resource', { uri });
80
+ // Parse URI
81
+ const url = new URL(uri);
82
+ const path = url.pathname;
83
+ const searchParams = Object.fromEntries(url.searchParams.entries());
84
+ // Route to appropriate handler
85
+ if (path.startsWith('/prospects/list')) {
86
+ return await listProspects(searchParams);
87
+ }
88
+ if (path.match(/^\/prospects\/[^/]+$/)) {
89
+ const id = path.split('/')[2];
90
+ return await getProspect(id);
91
+ }
92
+ if (path.startsWith('/customers/list')) {
93
+ return await listCustomers(searchParams);
94
+ }
95
+ if (path.match(/^\/customers\/[^/]+$/)) {
96
+ const id = path.split('/')[2];
97
+ return await getCustomer(id);
98
+ }
99
+ if (path.match(/^\/contacts\/[^/]+$/)) {
100
+ const id = path.split('/')[2];
101
+ return await getContact(id);
102
+ }
103
+ if (path.startsWith('/contacts/list')) {
104
+ return await listContacts(searchParams);
105
+ }
106
+ if (path.startsWith('/transcripts/list')) {
107
+ return await listTranscriptsResource(searchParams);
108
+ }
109
+ if (path.match(/^\/transcripts\/[^/]+$/)) {
110
+ const id = path.split('/')[2];
111
+ return await getTranscriptResource(id);
112
+ }
113
+ if (path.startsWith('/touchpoints/list')) {
114
+ return await listTouchpointsResource(searchParams);
115
+ }
116
+ if (path.startsWith('/tickets/list')) {
117
+ return await listTicketsResource(searchParams);
118
+ }
119
+ if (path.match(/^\/tickets\/[^/]+$/)) {
120
+ const id = path.split('/')[2];
121
+ return await getTicketResource(id);
122
+ }
123
+ if (path === '/notifications/pending') {
124
+ return await listPendingNotifications();
125
+ }
126
+ throw new Error(`Unknown resource: ${uri}`);
127
+ }
128
+ async function listProspects(params) {
129
+ const prospects = await httpClient.get('/api/prospects', params);
130
+ const formatted = prospects.map((p) => {
131
+ const primaryContact = p.contacts?.find((c) => c.isPrimary);
132
+ return {
133
+ id: p.id,
134
+ companyName: p.companyName,
135
+ address: p.address,
136
+ industry: p.industry,
137
+ website: p.website,
138
+ primaryContact: primaryContact ? {
139
+ name: `${primaryContact.firstName} ${primaryContact.lastName}`,
140
+ email: primaryContact.email,
141
+ phone: primaryContact.phone,
142
+ role: primaryContact.role,
143
+ } : null,
144
+ totalContacts: p._count?.contacts || 0,
145
+ status: p.status,
146
+ priority: p.priority,
147
+ owner: p.owner || 'Unassigned',
148
+ nextAction: p.nextAction,
149
+ nextActionDueDate: p.nextActionDueDate ? formatDate(p.nextActionDueDate) : null,
150
+ };
151
+ });
152
+ return {
153
+ contents: [
154
+ {
155
+ uri: 'nexup://prospects/list',
156
+ mimeType: 'application/json',
157
+ text: JSON.stringify(formatted, null, 2),
158
+ },
159
+ ],
160
+ };
161
+ }
162
+ async function getProspect(id) {
163
+ const prospect = await httpClient.get(`/api/prospects/${id}`);
164
+ const formatted = {
165
+ id: prospect.id,
166
+ companyName: prospect.companyName,
167
+ address: prospect.address,
168
+ industry: prospect.industry,
169
+ website: prospect.website,
170
+ status: prospect.status,
171
+ priority: prospect.priority,
172
+ owner: prospect.owner || 'Unassigned',
173
+ nextAction: prospect.nextAction,
174
+ nextActionDueDate: prospect.nextActionDueDate ? formatDate(prospect.nextActionDueDate) : null,
175
+ notes: prospect.notes,
176
+ contacts: prospect.contacts?.map((c) => ({
177
+ id: c.id,
178
+ name: `${c.firstName} ${c.lastName}`,
179
+ email: c.email,
180
+ phone: c.phone,
181
+ role: c.role,
182
+ isPrimary: c.isPrimary,
183
+ })) || [],
184
+ touchpoints: prospect.touchpoints?.map((t) => ({
185
+ id: t.id,
186
+ type: t.type,
187
+ date: formatDate(t.date),
188
+ summary: t.summary,
189
+ outcome: t.outcome,
190
+ })) || [],
191
+ recentTranscripts: prospect.callTranscripts?.slice(0, 5).map((t) => ({
192
+ id: t.id,
193
+ date: formatDate(t.date),
194
+ duration: t.duration,
195
+ summary: t.summary,
196
+ sentiment: t.sentiment,
197
+ })) || [],
198
+ createdAt: formatDate(prospect.createdAt),
199
+ updatedAt: formatDate(prospect.updatedAt),
200
+ };
201
+ return {
202
+ contents: [
203
+ {
204
+ uri: `nexup://prospects/${id}`,
205
+ mimeType: 'application/json',
206
+ text: JSON.stringify(formatted, null, 2),
207
+ },
208
+ ],
209
+ };
210
+ }
211
+ async function listCustomers(params) {
212
+ const customers = await httpClient.get('/api/customers', params);
213
+ const formatted = customers.map((c) => {
214
+ const primaryContact = c.contacts?.find((contact) => contact.isPrimary);
215
+ return {
216
+ id: c.id,
217
+ companyName: c.companyName,
218
+ address: c.address,
219
+ industry: c.industry,
220
+ website: c.website,
221
+ primaryContact: primaryContact ? {
222
+ name: `${primaryContact.firstName} ${primaryContact.lastName}`,
223
+ email: primaryContact.email,
224
+ phone: primaryContact.phone,
225
+ role: primaryContact.role,
226
+ } : null,
227
+ totalContacts: c._count?.contacts || 0,
228
+ sentiment: c.sentiment,
229
+ owner: c.owner || 'Unassigned',
230
+ nextAction: c.nextAction,
231
+ nextActionDueDate: c.nextActionDueDate ? formatDate(c.nextActionDueDate) : null,
232
+ };
233
+ });
234
+ return {
235
+ contents: [
236
+ {
237
+ uri: 'nexup://customers/list',
238
+ mimeType: 'application/json',
239
+ text: JSON.stringify(formatted, null, 2),
240
+ },
241
+ ],
242
+ };
243
+ }
244
+ async function getCustomer(id) {
245
+ const customer = await httpClient.get(`/api/customers/${id}`);
246
+ const formatted = {
247
+ id: customer.id,
248
+ companyName: customer.companyName,
249
+ address: customer.address,
250
+ industry: customer.industry,
251
+ website: customer.website,
252
+ sentiment: customer.sentiment,
253
+ owner: customer.owner || 'Unassigned',
254
+ nextAction: customer.nextAction,
255
+ nextActionDueDate: customer.nextActionDueDate ? formatDate(customer.nextActionDueDate) : null,
256
+ notes: customer.notes,
257
+ contacts: customer.contacts?.map((c) => ({
258
+ id: c.id,
259
+ name: `${c.firstName} ${c.lastName}`,
260
+ email: c.email,
261
+ phone: c.phone,
262
+ role: c.role,
263
+ isPrimary: c.isPrimary,
264
+ })) || [],
265
+ recentTranscripts: customer.callTranscripts?.slice(0, 5).map((t) => ({
266
+ id: t.id,
267
+ date: formatDate(t.date),
268
+ duration: t.duration,
269
+ summary: t.summary,
270
+ sentiment: t.sentiment,
271
+ })) || [],
272
+ openTickets: customer.linearTickets?.filter((t) => t.status !== 'done' && t.status !== 'cancelled').map((t) => ({
273
+ id: t.id,
274
+ title: t.title,
275
+ status: t.status,
276
+ priority: t.priority,
277
+ assignee: t.assignee,
278
+ })) || [],
279
+ createdAt: formatDate(customer.createdAt),
280
+ updatedAt: formatDate(customer.updatedAt),
281
+ };
282
+ return {
283
+ contents: [
284
+ {
285
+ uri: `nexup://customers/${id}`,
286
+ mimeType: 'application/json',
287
+ text: JSON.stringify(formatted, null, 2),
288
+ },
289
+ ],
290
+ };
291
+ }
292
+ async function getContact(id) {
293
+ const contact = await httpClient.get(`/api/contacts/${id}`);
294
+ const formatted = {
295
+ id: contact.id,
296
+ firstName: contact.firstName,
297
+ lastName: contact.lastName,
298
+ email: contact.email,
299
+ phone: contact.phone,
300
+ role: contact.role,
301
+ isPrimary: contact.isPrimary,
302
+ notes: contact.notes,
303
+ company: contact.prospect ? {
304
+ type: 'prospect',
305
+ id: contact.prospect.id,
306
+ name: contact.prospect.companyName,
307
+ } : contact.customer ? {
308
+ type: 'customer',
309
+ id: contact.customer.id,
310
+ name: contact.customer.companyName,
311
+ } : null,
312
+ createdAt: formatDate(contact.createdAt),
313
+ updatedAt: formatDate(contact.updatedAt),
314
+ };
315
+ return {
316
+ contents: [
317
+ {
318
+ uri: `nexup://contacts/${id}`,
319
+ mimeType: 'application/json',
320
+ text: JSON.stringify(formatted, null, 2),
321
+ },
322
+ ],
323
+ };
324
+ }
325
+ async function listPendingNotifications() {
326
+ const notifications = await httpClient.get('/api/notifications', { status: 'pending' });
327
+ const formatted = notifications.map((n) => ({
328
+ id: n.id,
329
+ type: n.type,
330
+ entityType: n.entityType,
331
+ title: n.title,
332
+ message: n.message,
333
+ scheduledFor: formatDate(n.scheduledFor),
334
+ owner: n.owner,
335
+ }));
336
+ return {
337
+ contents: [
338
+ {
339
+ uri: 'nexup://notifications/pending',
340
+ mimeType: 'application/json',
341
+ text: JSON.stringify(formatted, null, 2),
342
+ },
343
+ ],
344
+ };
345
+ }
346
+ async function listContacts(params) {
347
+ const contacts = await httpClient.get('/api/contacts', params);
348
+ const formatted = contacts.map((c) => ({
349
+ id: c.id,
350
+ name: `${c.firstName} ${c.lastName}`,
351
+ email: c.email,
352
+ phone: c.phone,
353
+ role: c.role,
354
+ isPrimary: c.isPrimary,
355
+ company: c.prospect ? {
356
+ type: 'prospect',
357
+ id: c.prospect.id,
358
+ name: c.prospect.companyName,
359
+ } : c.customer ? {
360
+ type: 'customer',
361
+ id: c.customer.id,
362
+ name: c.customer.companyName,
363
+ } : null,
364
+ }));
365
+ return {
366
+ contents: [
367
+ {
368
+ uri: 'nexup://contacts/list',
369
+ mimeType: 'application/json',
370
+ text: JSON.stringify(formatted, null, 2),
371
+ },
372
+ ],
373
+ };
374
+ }
375
+ async function listTranscriptsResource(params) {
376
+ const transcripts = await httpClient.get('/api/transcripts', params);
377
+ const formatted = transcripts.map((t) => ({
378
+ id: t.id,
379
+ entityType: t.entityType,
380
+ companyName: t.entityType === 'PROSPECT' ? t.prospect?.companyName : t.customer?.companyName,
381
+ date: formatDate(t.date),
382
+ duration: t.duration,
383
+ summary: t.summary,
384
+ sentiment: t.sentiment,
385
+ }));
386
+ return {
387
+ contents: [
388
+ {
389
+ uri: 'nexup://transcripts/list',
390
+ mimeType: 'application/json',
391
+ text: JSON.stringify(formatted, null, 2),
392
+ },
393
+ ],
394
+ };
395
+ }
396
+ async function getTranscriptResource(id) {
397
+ const transcript = await httpClient.get(`/api/transcripts/${id}`);
398
+ let actionItems = [];
399
+ try {
400
+ actionItems = transcript.actionItems ? JSON.parse(transcript.actionItems) : [];
401
+ }
402
+ catch (e) {
403
+ // ignore
404
+ }
405
+ const formatted = {
406
+ id: transcript.id,
407
+ entityType: transcript.entityType,
408
+ companyName: transcript.entityType === 'PROSPECT' ? transcript.prospect?.companyName : transcript.customer?.companyName,
409
+ date: formatDate(transcript.date),
410
+ duration: transcript.duration,
411
+ summary: transcript.summary,
412
+ transcript: transcript.transcript,
413
+ actionItems: actionItems,
414
+ sentiment: transcript.sentiment,
415
+ createdAt: formatDate(transcript.createdAt),
416
+ };
417
+ return {
418
+ contents: [
419
+ {
420
+ uri: `nexup://transcripts/${id}`,
421
+ mimeType: 'application/json',
422
+ text: JSON.stringify(formatted, null, 2),
423
+ },
424
+ ],
425
+ };
426
+ }
427
+ async function listTouchpointsResource(params) {
428
+ const touchpoints = await httpClient.get('/api/touchpoints', params);
429
+ const formatted = touchpoints.map((t) => ({
430
+ id: t.id,
431
+ prospectId: t.prospectId,
432
+ prospectName: t.prospect?.companyName,
433
+ type: t.type,
434
+ date: formatDate(t.date),
435
+ summary: t.summary,
436
+ outcome: t.outcome,
437
+ }));
438
+ return {
439
+ contents: [
440
+ {
441
+ uri: 'nexup://touchpoints/list',
442
+ mimeType: 'application/json',
443
+ text: JSON.stringify(formatted, null, 2),
444
+ },
445
+ ],
446
+ };
447
+ }
448
+ async function listTicketsResource(params) {
449
+ const tickets = await httpClient.get('/api/tickets', params);
450
+ const formatted = tickets.map((t) => ({
451
+ id: t.id,
452
+ customerId: t.customerId,
453
+ customerName: t.customer?.companyName,
454
+ title: t.title,
455
+ status: t.status,
456
+ priority: t.priority,
457
+ assignee: t.assignee,
458
+ dueDate: t.dueDate ? formatDate(t.dueDate) : null,
459
+ linearId: t.linearId,
460
+ }));
461
+ return {
462
+ contents: [
463
+ {
464
+ uri: 'nexup://tickets/list',
465
+ mimeType: 'application/json',
466
+ text: JSON.stringify(formatted, null, 2),
467
+ },
468
+ ],
469
+ };
470
+ }
471
+ async function getTicketResource(id) {
472
+ const tickets = await httpClient.get('/api/tickets');
473
+ const ticket = tickets.find((t) => t.id === id);
474
+ if (!ticket) {
475
+ throw new Error('Ticket not found');
476
+ }
477
+ const formatted = {
478
+ id: ticket.id,
479
+ customerId: ticket.customerId,
480
+ customerName: ticket.customer?.companyName,
481
+ title: ticket.title,
482
+ description: ticket.description,
483
+ status: ticket.status,
484
+ priority: ticket.priority,
485
+ assignee: ticket.assignee,
486
+ dueDate: ticket.dueDate ? formatDate(ticket.dueDate) : null,
487
+ linearId: ticket.linearId,
488
+ createdAt: formatDate(ticket.createdAt),
489
+ updatedAt: formatDate(ticket.updatedAt),
490
+ };
491
+ return {
492
+ contents: [
493
+ {
494
+ uri: `nexup://tickets/${id}`,
495
+ mimeType: 'application/json',
496
+ text: JSON.stringify(formatted, null, 2),
497
+ },
498
+ ],
499
+ };
500
+ }
501
+ //# sourceMappingURL=crm-resources.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"crm-resources.js","sourceRoot":"","sources":["../../src/resources/crm-resources.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export { allResources, handleResourceRead } from './crm-resources.js';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/resources/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { allResources, handleResourceRead } from './crm-resources.js';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/resources/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC"}