@customer-support-success/pylon-mcp-server 1.6.3 → 1.7.1

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.
package/dist/index.js CHANGED
@@ -2,21 +2,14 @@
2
2
  import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
3
3
  import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
4
4
  import { z } from 'zod';
5
- import { PylonClient } from './pylon-client.js';
5
+ import { parseCacheTtl, isMessageConfirmationRequired, createPylonClient, ensurePylonClient as ensureClient, jsonResponse, processElicitationResult, buildElicitationMessage, buildElicitationSchema, } from './server-helpers.js';
6
6
  // Environment variable to control whether elicitation is required for customer-facing messages
7
- const REQUIRE_MESSAGE_CONFIRMATION = process.env.PYLON_REQUIRE_MESSAGE_CONFIRMATION !== 'false';
7
+ const REQUIRE_MESSAGE_CONFIRMATION = isMessageConfirmationRequired(process.env.PYLON_REQUIRE_MESSAGE_CONFIRMATION);
8
8
  const PYLON_API_TOKEN = process.env.PYLON_API_TOKEN;
9
- const PYLON_CACHE_TTL = process.env.PYLON_CACHE_TTL
10
- ? parseInt(process.env.PYLON_CACHE_TTL, 10)
11
- : undefined;
9
+ // Parse and validate PYLON_CACHE_TTL
10
+ const PYLON_CACHE_TTL = parseCacheTtl(process.env.PYLON_CACHE_TTL);
12
11
  // Initialize client only when token is available
13
- let pylonClient = null;
14
- if (PYLON_API_TOKEN) {
15
- pylonClient = new PylonClient({
16
- apiToken: PYLON_API_TOKEN,
17
- cacheTtl: PYLON_CACHE_TTL,
18
- });
19
- }
12
+ const pylonClient = createPylonClient(PYLON_API_TOKEN, PYLON_CACHE_TTL);
20
13
  // Create the McpServer instance (high-level API, replaces deprecated Server class)
21
14
  const mcpServer = new McpServer({
22
15
  name: 'pylon-mcp-server',
@@ -34,55 +27,12 @@ async function requestMessageConfirmation(issueId, content) {
34
27
  try {
35
28
  const elicitParams = {
36
29
  mode: 'form',
37
- message: `⚠️ CUSTOMER-FACING MESSAGE CONFIRMATION\n\nYou are about to send the following message to a customer on issue ${issueId}:\n\n---\n${content}\n---\n\nPlease review and confirm you want to send this message.`,
38
- requestedSchema: {
39
- type: 'object',
40
- properties: {
41
- confirm_send: {
42
- type: 'boolean',
43
- title: 'Confirm Send',
44
- description: 'Check this box to confirm you want to send this message to the customer',
45
- default: false,
46
- },
47
- modified_content: {
48
- type: 'string',
49
- title: 'Message Content (optional edit)',
50
- description: 'You can modify the message content here before sending. Leave empty to use the original message.',
51
- },
52
- },
53
- required: ['confirm_send'],
54
- },
30
+ message: buildElicitationMessage(issueId, content),
31
+ requestedSchema: buildElicitationSchema(),
55
32
  };
56
33
  // Access elicitInput via the underlying Server instance
57
34
  const result = await mcpServer.server.elicitInput(elicitParams);
58
- if (result.action === 'accept' && result.content) {
59
- const confirmSend = result.content.confirm_send;
60
- const modifiedContent = result.content.modified_content;
61
- if (confirmSend) {
62
- return {
63
- confirmed: true,
64
- content: modifiedContent && modifiedContent.trim() ? modifiedContent.trim() : content,
65
- };
66
- }
67
- else {
68
- return {
69
- confirmed: false,
70
- reason: 'User did not confirm the message send',
71
- };
72
- }
73
- }
74
- else if (result.action === 'decline') {
75
- return {
76
- confirmed: false,
77
- reason: 'User explicitly declined to send the message',
78
- };
79
- }
80
- else {
81
- return {
82
- confirmed: false,
83
- reason: 'User cancelled the confirmation dialog',
84
- };
85
- }
35
+ return processElicitationResult(result, content);
86
36
  }
87
37
  catch (error) {
88
38
  // If elicitation is not supported by the client, log a warning and proceed
@@ -94,14 +44,7 @@ async function requestMessageConfirmation(issueId, content) {
94
44
  }
95
45
  // Helper function to ensure pylonClient is initialized
96
46
  function ensurePylonClient() {
97
- if (!pylonClient) {
98
- throw new Error('PYLON_API_TOKEN environment variable is required');
99
- }
100
- return pylonClient;
101
- }
102
- // Helper to create a JSON text response
103
- function jsonResponse(data) {
104
- return { content: [{ type: 'text', text: JSON.stringify(data, null, 2) }] };
47
+ return ensureClient(pylonClient);
105
48
  }
106
49
  // Register all tools using the McpServer.registerTool() pattern
107
50
  // User Management Tools
@@ -239,6 +182,55 @@ mcpServer.registerTool('pylon_search_issues', {
239
182
  .describe('Additional filters as key-value pairs. Examples: {"status": "open", "priority": "high"}, {"assignee": "john@company.com", "created_after": "2024-01-01"}'),
240
183
  },
241
184
  }, async ({ query, filters }) => jsonResponse(await ensurePylonClient().searchIssues(query, filters)));
185
+ // Similar Issues Helper Tools
186
+ mcpServer.registerTool('pylon_find_similar_issues_for_requestor', {
187
+ description: 'Find similar issues from the same requestor (contact). Helps identify patterns or recurring issues from a specific customer. Fetches the source issue, then searches for issues from the same requestor with similar content.',
188
+ inputSchema: {
189
+ issue_id: z
190
+ .string()
191
+ .describe('The source issue ID to find similar issues for. Example: "issue_abc123" or "36800"'),
192
+ query: z
193
+ .string()
194
+ .optional()
195
+ .describe('Optional search terms to narrow results. If not provided, uses the source issue title. Example: "login error"'),
196
+ limit: z
197
+ .number()
198
+ .optional()
199
+ .describe('Maximum number of similar issues to return. Example: 10'),
200
+ },
201
+ }, async ({ issue_id, query, limit }) => jsonResponse(await ensurePylonClient().findSimilarIssuesForRequestor(issue_id, { query, limit })));
202
+ mcpServer.registerTool('pylon_find_similar_issues_for_account', {
203
+ description: 'Find similar issues from the same account/company. Helps identify company-wide issues or patterns. Fetches the source issue to get the account ID, then searches for issues from the same account with similar content.',
204
+ inputSchema: {
205
+ issue_id: z
206
+ .string()
207
+ .describe('The source issue ID to find similar issues for. Example: "issue_abc123" or "36800"'),
208
+ query: z
209
+ .string()
210
+ .optional()
211
+ .describe('Optional search terms to narrow results. If not provided, uses the source issue title. Example: "billing problem"'),
212
+ limit: z
213
+ .number()
214
+ .optional()
215
+ .describe('Maximum number of similar issues to return. Example: 10'),
216
+ },
217
+ }, async ({ issue_id, query, limit }) => jsonResponse(await ensurePylonClient().findSimilarIssuesForAccount(issue_id, { query, limit })));
218
+ mcpServer.registerTool('pylon_find_similar_issues_global', {
219
+ description: 'Find similar issues across all users and companies. Helps identify widespread issues or find solutions from past tickets. Searches for issues with similar content to the source issue, excluding the source issue from results.',
220
+ inputSchema: {
221
+ issue_id: z
222
+ .string()
223
+ .describe('The source issue ID to find similar issues for. Example: "issue_abc123" or "36800"'),
224
+ query: z
225
+ .string()
226
+ .optional()
227
+ .describe('Optional search terms to narrow results. If not provided, uses the source issue title. Example: "API timeout"'),
228
+ limit: z
229
+ .number()
230
+ .optional()
231
+ .describe('Maximum number of similar issues to return. Example: 20'),
232
+ },
233
+ }, async ({ issue_id, query, limit }) => jsonResponse(await ensurePylonClient().findSimilarIssuesGlobal(issue_id, { query, limit })));
242
234
  mcpServer.registerTool('pylon_snooze_issue', {
243
235
  description: 'Temporarily hide an issue until a future date/time. Use this for issues that cannot be worked on now but need follow-up later (e.g., waiting for customer response, scheduled maintenance, feature release).',
244
236
  inputSchema: {
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,11 @@ export interface PylonConfig {
6
6
  * Default: 30000 (30 seconds)
7
7
  */
8
8
  cacheTtl?: number;
9
+ /**
10
+ * Maximum number of entries in the cache. When exceeded, least recently used entries are evicted.
11
+ * Default: 1000
12
+ */
13
+ maxCacheSize?: number;
9
14
  }
10
15
  export interface PylonUser {
11
16
  id: string;
@@ -26,6 +31,12 @@ export interface PylonIssue {
26
31
  status: string;
27
32
  priority: string;
28
33
  assignee?: string;
34
+ /** The ID of the contact who created the issue */
35
+ requestor_id?: string;
36
+ /** The ID of the account the requestor belongs to */
37
+ account_id?: string;
38
+ /** The HTML body content of the issue */
39
+ body_html?: string;
29
40
  }
30
41
  export interface PylonKnowledgeBase {
31
42
  id: string;
@@ -99,7 +110,13 @@ export declare class PylonClient {
99
110
  getCacheStats(): {
100
111
  size: number;
101
112
  ttl: number;
113
+ maxSize: number;
102
114
  } | null;
115
+ /**
116
+ * Cleanup resources (stop cache cleanup interval)
117
+ * Call this when you're done with the client to prevent memory leaks
118
+ */
119
+ destroy(): void;
103
120
  getMe(): Promise<PylonUser>;
104
121
  getContacts(params?: {
105
122
  search?: string;
@@ -127,6 +144,39 @@ export declare class PylonClient {
127
144
  getIssue(issueId: string): Promise<PylonIssue>;
128
145
  updateIssue(issueId: string, updates: Partial<PylonIssue>): Promise<PylonIssue>;
129
146
  snoozeIssue(issueId: string, until: string): Promise<void>;
147
+ /**
148
+ * Find similar issues from the same requestor (contact).
149
+ * Helps identify patterns or recurring issues from a specific customer.
150
+ */
151
+ findSimilarIssuesForRequestor(issueId: string, options?: {
152
+ query?: string;
153
+ limit?: number;
154
+ }): Promise<{
155
+ sourceIssue: PylonIssue;
156
+ similarIssues: PylonIssue[];
157
+ }>;
158
+ /**
159
+ * Find similar issues from the same account/company.
160
+ * Helps identify company-wide issues or patterns.
161
+ */
162
+ findSimilarIssuesForAccount(issueId: string, options?: {
163
+ query?: string;
164
+ limit?: number;
165
+ }): Promise<{
166
+ sourceIssue: PylonIssue;
167
+ similarIssues: PylonIssue[];
168
+ }>;
169
+ /**
170
+ * Find similar issues across all users and companies.
171
+ * Helps identify widespread issues or find solutions from past tickets.
172
+ */
173
+ findSimilarIssuesGlobal(issueId: string, options?: {
174
+ query?: string;
175
+ limit?: number;
176
+ }): Promise<{
177
+ sourceIssue: PylonIssue;
178
+ similarIssues: PylonIssue[];
179
+ }>;
130
180
  getIssueMessages(issueId: string): Promise<PylonMessage[]>;
131
181
  createIssueMessage(issueId: string, content: string): Promise<PylonMessage>;
132
182
  getIssueWithMessages(issueId: string): Promise<{
@@ -1 +1 @@
1
- {"version":3,"file":"pylon-client.d.ts","sourceRoot":"","sources":["../src/pylon-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pylon-client.d.ts","sourceRoot":"","sources":["../src/pylon-client.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,25 @@
1
1
  import axios from 'axios';
2
2
  /**
3
- * Simple in-memory cache with TTL support
3
+ * Simple in-memory cache with TTL support and LRU eviction
4
+ *
5
+ * Features:
6
+ * - TTL-based expiration
7
+ * - LRU (Least Recently Used) eviction when max size is reached
8
+ * - Proactive cleanup of expired entries
9
+ * - Bounded memory usage
4
10
  */
5
11
  class SimpleCache {
6
12
  cache = new Map();
7
13
  ttl;
8
- constructor(ttlMs = 30000) {
14
+ maxSize;
15
+ cleanupInterval = null;
16
+ constructor(ttlMs = 30000, maxSize = 1000) {
9
17
  this.ttl = ttlMs;
18
+ this.maxSize = maxSize;
19
+ // Start periodic cleanup of expired entries (every 60 seconds)
20
+ this.cleanupInterval = setInterval(() => {
21
+ this.cleanupExpired();
22
+ }, 60000);
10
23
  }
11
24
  get(key) {
12
25
  const entry = this.cache.get(key);
@@ -19,17 +32,56 @@ class SimpleCache {
19
32
  this.cache.delete(key);
20
33
  return null;
21
34
  }
35
+ // Update last accessed time for LRU tracking
36
+ entry.lastAccessed = now;
22
37
  return entry.data;
23
38
  }
24
39
  set(key, data) {
40
+ const now = Date.now();
41
+ // If cache is at max size and key doesn't exist, evict LRU entry
42
+ if (this.cache.size >= this.maxSize && !this.cache.has(key)) {
43
+ this.evictLRU();
44
+ }
25
45
  this.cache.set(key, {
26
46
  data,
27
- timestamp: Date.now(),
47
+ timestamp: now,
48
+ lastAccessed: now,
28
49
  });
29
50
  }
30
51
  clear() {
31
52
  this.cache.clear();
32
53
  }
54
+ /**
55
+ * Evict the least recently used entry
56
+ */
57
+ evictLRU() {
58
+ let oldestKey = null;
59
+ let oldestTime = Infinity;
60
+ for (const [key, entry] of this.cache.entries()) {
61
+ if (entry.lastAccessed < oldestTime) {
62
+ oldestTime = entry.lastAccessed;
63
+ oldestKey = key;
64
+ }
65
+ }
66
+ if (oldestKey) {
67
+ this.cache.delete(oldestKey);
68
+ }
69
+ }
70
+ /**
71
+ * Remove all expired entries from the cache
72
+ */
73
+ cleanupExpired() {
74
+ const now = Date.now();
75
+ const keysToDelete = [];
76
+ for (const [key, entry] of this.cache.entries()) {
77
+ if (now - entry.timestamp > this.ttl) {
78
+ keysToDelete.push(key);
79
+ }
80
+ }
81
+ for (const key of keysToDelete) {
82
+ this.cache.delete(key);
83
+ }
84
+ }
33
85
  /**
34
86
  * Get cache statistics for monitoring
35
87
  */
@@ -37,8 +89,19 @@ class SimpleCache {
37
89
  return {
38
90
  size: this.cache.size,
39
91
  ttl: this.ttl,
92
+ maxSize: this.maxSize,
40
93
  };
41
94
  }
95
+ /**
96
+ * Cleanup resources (stop cleanup interval)
97
+ */
98
+ destroy() {
99
+ if (this.cleanupInterval) {
100
+ clearInterval(this.cleanupInterval);
101
+ this.cleanupInterval = null;
102
+ }
103
+ this.clear();
104
+ }
42
105
  }
43
106
  export class PylonClient {
44
107
  client;
@@ -54,7 +117,8 @@ export class PylonClient {
54
117
  });
55
118
  // Initialize cache if TTL is provided and > 0
56
119
  const cacheTtl = config.cacheTtl ?? 30000; // Default 30 seconds
57
- this.cache = cacheTtl > 0 ? new SimpleCache(cacheTtl) : null;
120
+ const maxCacheSize = config.maxCacheSize ?? 1000; // Default 1000 entries
121
+ this.cache = cacheTtl > 0 ? new SimpleCache(cacheTtl, maxCacheSize) : null;
58
122
  }
59
123
  /**
60
124
  * Helper method to perform cached GET requests
@@ -92,6 +156,15 @@ export class PylonClient {
92
156
  getCacheStats() {
93
157
  return this.cache ? this.cache.getStats() : null;
94
158
  }
159
+ /**
160
+ * Cleanup resources (stop cache cleanup interval)
161
+ * Call this when you're done with the client to prevent memory leaks
162
+ */
163
+ destroy() {
164
+ if (this.cache) {
165
+ this.cache.destroy();
166
+ }
167
+ }
95
168
  async getMe() {
96
169
  return this.cachedGet('/me');
97
170
  }
@@ -170,6 +243,68 @@ export class PylonClient {
170
243
  async snoozeIssue(issueId, until) {
171
244
  await this.client.post(`/issues/${issueId}/snooze`, { until });
172
245
  }
246
+ // Similar Issues Helper Methods
247
+ /**
248
+ * Find similar issues from the same requestor (contact).
249
+ * Helps identify patterns or recurring issues from a specific customer.
250
+ */
251
+ async findSimilarIssuesForRequestor(issueId, options) {
252
+ const sourceIssue = await this.getIssue(issueId);
253
+ if (!sourceIssue.requestor_id) {
254
+ return { sourceIssue, similarIssues: [] };
255
+ }
256
+ // Build search query from title or provided query
257
+ const searchQuery = options?.query || sourceIssue.title;
258
+ const filters = {
259
+ requestor_id: sourceIssue.requestor_id,
260
+ };
261
+ if (options?.limit) {
262
+ filters.limit = options.limit;
263
+ }
264
+ const results = await this.searchIssues(searchQuery, filters);
265
+ // Exclude the source issue from results
266
+ const similarIssues = results.filter((issue) => issue.id !== issueId);
267
+ return { sourceIssue, similarIssues };
268
+ }
269
+ /**
270
+ * Find similar issues from the same account/company.
271
+ * Helps identify company-wide issues or patterns.
272
+ */
273
+ async findSimilarIssuesForAccount(issueId, options) {
274
+ const sourceIssue = await this.getIssue(issueId);
275
+ if (!sourceIssue.account_id) {
276
+ return { sourceIssue, similarIssues: [] };
277
+ }
278
+ // Build search query from title or provided query
279
+ const searchQuery = options?.query || sourceIssue.title;
280
+ const filters = {
281
+ account_id: sourceIssue.account_id,
282
+ };
283
+ if (options?.limit) {
284
+ filters.limit = options.limit;
285
+ }
286
+ const results = await this.searchIssues(searchQuery, filters);
287
+ // Exclude the source issue from results
288
+ const similarIssues = results.filter((issue) => issue.id !== issueId);
289
+ return { sourceIssue, similarIssues };
290
+ }
291
+ /**
292
+ * Find similar issues across all users and companies.
293
+ * Helps identify widespread issues or find solutions from past tickets.
294
+ */
295
+ async findSimilarIssuesGlobal(issueId, options) {
296
+ const sourceIssue = await this.getIssue(issueId);
297
+ // Build search query from title or provided query
298
+ const searchQuery = options?.query || sourceIssue.title;
299
+ const filters = {};
300
+ if (options?.limit) {
301
+ filters.limit = options.limit;
302
+ }
303
+ const results = await this.searchIssues(searchQuery, Object.keys(filters).length > 0 ? filters : undefined);
304
+ // Exclude the source issue from results
305
+ const similarIssues = results.filter((issue) => issue.id !== issueId);
306
+ return { sourceIssue, similarIssues };
307
+ }
173
308
  // Messages API
174
309
  async getIssueMessages(issueId) {
175
310
  return this.cachedGet(`/issues/${issueId}/messages`);
@@ -1 +1 @@
1
- {"version":3,"file":"pylon-client.js","sourceRoot":"","sources":["../src/pylon-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pylon-client.js","sourceRoot":"","sources":["../src/pylon-client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,86 @@
1
+ /**
2
+ * Server helper functions and utilities for the Pylon MCP Server.
3
+ * Extracted for testability.
4
+ */
5
+ import { PylonClient } from './pylon-client.js';
6
+ /**
7
+ * Parse and validate the PYLON_CACHE_TTL environment variable.
8
+ * @param envValue - The raw environment variable value
9
+ * @returns The parsed TTL value, or undefined if not set
10
+ * @throws Error if the value is set but not a valid integer
11
+ */
12
+ export declare function parseCacheTtl(envValue: string | undefined): number | undefined;
13
+ /**
14
+ * Determine if message confirmation is required based on environment variable.
15
+ * @param envValue - The PYLON_REQUIRE_MESSAGE_CONFIRMATION env var value
16
+ * @returns true if confirmation is required, false otherwise
17
+ */
18
+ export declare function isMessageConfirmationRequired(envValue: string | undefined): boolean;
19
+ /**
20
+ * Create a PylonClient instance if the API token is available.
21
+ * @param apiToken - The Pylon API token
22
+ * @param cacheTtl - Optional cache TTL in milliseconds
23
+ * @returns PylonClient instance or null if no token
24
+ */
25
+ export declare function createPylonClient(apiToken: string | undefined, cacheTtl?: number): PylonClient | null;
26
+ /**
27
+ * Helper function to ensure pylonClient is initialized.
28
+ * @param client - The PylonClient instance (may be null)
29
+ * @returns The PylonClient instance
30
+ * @throws Error if client is null
31
+ */
32
+ export declare function ensurePylonClient(client: PylonClient | null): PylonClient;
33
+ /**
34
+ * Helper to create a JSON text response for MCP tools.
35
+ * @param data - The data to serialize
36
+ * @returns MCP tool response with JSON content (text is always a string)
37
+ */
38
+ export declare function jsonResponse(data: unknown): {
39
+ content: {
40
+ type: "text";
41
+ text: string;
42
+ }[];
43
+ };
44
+ /**
45
+ * Process elicitation result for message confirmation.
46
+ * @param result - The elicitation result from MCP
47
+ * @param originalContent - The original message content
48
+ * @returns Confirmation result with confirmed status and content
49
+ */
50
+ export declare function processElicitationResult(result: {
51
+ action: string;
52
+ content?: Record<string, unknown>;
53
+ }, originalContent: string): {
54
+ confirmed: boolean;
55
+ content?: string;
56
+ reason?: string;
57
+ };
58
+ /**
59
+ * Build the elicitation message for message confirmation.
60
+ * @param issueId - The issue ID
61
+ * @param content - The message content
62
+ * @returns The formatted elicitation message
63
+ */
64
+ export declare function buildElicitationMessage(issueId: string, content: string): string;
65
+ /**
66
+ * Build the elicitation schema for message confirmation.
67
+ * @returns The JSON schema for the elicitation form
68
+ */
69
+ export declare function buildElicitationSchema(): {
70
+ type: "object";
71
+ properties: {
72
+ confirm_send: {
73
+ type: "boolean";
74
+ title: string;
75
+ description: string;
76
+ default: boolean;
77
+ };
78
+ modified_content: {
79
+ type: "string";
80
+ title: string;
81
+ description: string;
82
+ };
83
+ };
84
+ required: string[];
85
+ };
86
+ //# sourceMappingURL=server-helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server-helpers.d.ts","sourceRoot":"","sources":["../src/server-helpers.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAY9E;AAED;;;;GAIG;AACH,wBAAgB,6BAA6B,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAEnF;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,QAAQ,CAAC,EAAE,MAAM,GAChB,WAAW,GAAG,IAAI,CAQpB;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI,GAAG,WAAW,CAKzE;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,OAAO;;;;;EAKzC;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CACtC,MAAM,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,EAC7D,eAAe,EAAE,MAAM,GACtB;IAAE,SAAS,EAAE,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAkC3D;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAEhF;AAED;;;GAGG;AACH,wBAAgB,sBAAsB;;;;;;;;;;;;;;;cAiBJ,MAAM,EAAE;EAEzC"}
@@ -0,0 +1,142 @@
1
+ /**
2
+ * Server helper functions and utilities for the Pylon MCP Server.
3
+ * Extracted for testability.
4
+ */
5
+ import { PylonClient } from './pylon-client.js';
6
+ /**
7
+ * Parse and validate the PYLON_CACHE_TTL environment variable.
8
+ * @param envValue - The raw environment variable value
9
+ * @returns The parsed TTL value, or undefined if not set
10
+ * @throws Error if the value is set but not a valid integer
11
+ */
12
+ export function parseCacheTtl(envValue) {
13
+ if (envValue === undefined) {
14
+ return undefined;
15
+ }
16
+ // Validate that the value is a pure integer string (with optional leading minus sign)
17
+ // This prevents parseInt from accepting partial numeric prefixes like "5000ms"
18
+ if (!/^-?\d+$/.test(envValue.trim())) {
19
+ throw new Error(`Invalid PYLON_CACHE_TTL value: "${envValue}". Must be a valid integer (e.g., "5000", "0", "-1").`);
20
+ }
21
+ return parseInt(envValue, 10);
22
+ }
23
+ /**
24
+ * Determine if message confirmation is required based on environment variable.
25
+ * @param envValue - The PYLON_REQUIRE_MESSAGE_CONFIRMATION env var value
26
+ * @returns true if confirmation is required, false otherwise
27
+ */
28
+ export function isMessageConfirmationRequired(envValue) {
29
+ return envValue !== 'false';
30
+ }
31
+ /**
32
+ * Create a PylonClient instance if the API token is available.
33
+ * @param apiToken - The Pylon API token
34
+ * @param cacheTtl - Optional cache TTL in milliseconds
35
+ * @returns PylonClient instance or null if no token
36
+ */
37
+ export function createPylonClient(apiToken, cacheTtl) {
38
+ if (!apiToken) {
39
+ return null;
40
+ }
41
+ return new PylonClient({
42
+ apiToken,
43
+ cacheTtl,
44
+ });
45
+ }
46
+ /**
47
+ * Helper function to ensure pylonClient is initialized.
48
+ * @param client - The PylonClient instance (may be null)
49
+ * @returns The PylonClient instance
50
+ * @throws Error if client is null
51
+ */
52
+ export function ensurePylonClient(client) {
53
+ if (!client) {
54
+ throw new Error('PYLON_API_TOKEN environment variable is required');
55
+ }
56
+ return client;
57
+ }
58
+ /**
59
+ * Helper to create a JSON text response for MCP tools.
60
+ * @param data - The data to serialize
61
+ * @returns MCP tool response with JSON content (text is always a string)
62
+ */
63
+ export function jsonResponse(data) {
64
+ // JSON.stringify(undefined) returns undefined, so we need to handle that case
65
+ // to ensure text is always a string for MCP protocol compliance
66
+ const text = JSON.stringify(data, null, 2) ?? 'null';
67
+ return { content: [{ type: 'text', text }] };
68
+ }
69
+ /**
70
+ * Process elicitation result for message confirmation.
71
+ * @param result - The elicitation result from MCP
72
+ * @param originalContent - The original message content
73
+ * @returns Confirmation result with confirmed status and content
74
+ */
75
+ export function processElicitationResult(result, originalContent) {
76
+ if (result.action === 'accept' && result.content) {
77
+ // Guard against non-boolean values at runtime since content is Record<string, unknown>
78
+ // A string like 'false' would be truthy, so we require strict boolean true
79
+ const rawConfirmSend = result.content.confirm_send;
80
+ const confirmSend = rawConfirmSend === true;
81
+ const rawModifiedContent = result.content.modified_content;
82
+ // Guard against non-string values at runtime since content is Record<string, unknown>
83
+ const modifiedContent = typeof rawModifiedContent === 'string' ? rawModifiedContent : undefined;
84
+ if (confirmSend) {
85
+ return {
86
+ confirmed: true,
87
+ content: modifiedContent && modifiedContent.trim() ? modifiedContent.trim() : originalContent,
88
+ };
89
+ }
90
+ else {
91
+ return {
92
+ confirmed: false,
93
+ reason: 'User did not confirm the message send',
94
+ };
95
+ }
96
+ }
97
+ else if (result.action === 'decline') {
98
+ return {
99
+ confirmed: false,
100
+ reason: 'User explicitly declined to send the message',
101
+ };
102
+ }
103
+ else {
104
+ return {
105
+ confirmed: false,
106
+ reason: 'User cancelled the confirmation dialog',
107
+ };
108
+ }
109
+ }
110
+ /**
111
+ * Build the elicitation message for message confirmation.
112
+ * @param issueId - The issue ID
113
+ * @param content - The message content
114
+ * @returns The formatted elicitation message
115
+ */
116
+ export function buildElicitationMessage(issueId, content) {
117
+ return `⚠️ CUSTOMER-FACING MESSAGE CONFIRMATION\n\nYou are about to send the following message to a customer on issue ${issueId}:\n\n---\n${content}\n---\n\nPlease review and confirm you want to send this message.`;
118
+ }
119
+ /**
120
+ * Build the elicitation schema for message confirmation.
121
+ * @returns The JSON schema for the elicitation form
122
+ */
123
+ export function buildElicitationSchema() {
124
+ return {
125
+ type: 'object',
126
+ properties: {
127
+ confirm_send: {
128
+ type: 'boolean',
129
+ title: 'Confirm Send',
130
+ description: 'Check this box to confirm you want to send this message to the customer',
131
+ default: false,
132
+ },
133
+ modified_content: {
134
+ type: 'string',
135
+ title: 'Message Content (optional edit)',
136
+ description: 'You can modify the message content here before sending. Leave empty to use the original message.',
137
+ },
138
+ },
139
+ required: ['confirm_send'],
140
+ };
141
+ }
142
+ //# sourceMappingURL=server-helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server-helpers.js","sourceRoot":"","sources":["../src/server-helpers.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@customer-support-success/pylon-mcp-server",
3
- "version": "1.6.3",
3
+ "version": "1.7.1",
4
4
  "description": "MCP server for Pylon API integration",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
package/vitest.config.ts CHANGED
@@ -7,6 +7,8 @@ export default defineConfig({
7
7
  coverage: {
8
8
  provider: 'v8',
9
9
  reporter: ['text', 'json', 'html', 'lcov'],
10
+ // Explicitly include all source files for instrumentation
11
+ include: ['src/**/*.ts'],
10
12
  exclude: ['node_modules/', 'dist/', '**/*.test.ts', '**/*.spec.ts', 'vitest.config.ts'],
11
13
  },
12
14
  },