@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 +58 -66
- package/dist/index.js.map +1 -1
- package/dist/pylon-client.d.ts +50 -0
- package/dist/pylon-client.d.ts.map +1 -1
- package/dist/pylon-client.js +139 -4
- package/dist/pylon-client.js.map +1 -1
- package/dist/server-helpers.d.ts +86 -0
- package/dist/server-helpers.d.ts.map +1 -0
- package/dist/server-helpers.js +142 -0
- package/dist/server-helpers.js.map +1 -0
- package/package.json +1 -1
- package/vitest.config.ts +2 -0
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 {
|
|
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
|
|
7
|
+
const REQUIRE_MESSAGE_CONFIRMATION = isMessageConfirmationRequired(process.env.PYLON_REQUIRE_MESSAGE_CONFIRMATION);
|
|
8
8
|
const PYLON_API_TOKEN = process.env.PYLON_API_TOKEN;
|
|
9
|
-
|
|
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
|
-
|
|
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:
|
|
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
|
-
|
|
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
|
-
|
|
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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"}
|
package/dist/pylon-client.d.ts
CHANGED
|
@@ -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":"
|
|
1
|
+
{"version":3,"file":"pylon-client.d.ts","sourceRoot":"","sources":["../src/pylon-client.ts"],"names":[],"mappings":"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"}
|
package/dist/pylon-client.js
CHANGED
|
@@ -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
|
-
|
|
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:
|
|
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
|
-
|
|
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`);
|
package/dist/pylon-client.js.map
CHANGED
|
@@ -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
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
|
},
|