@elliotding/ai-agent-mcp 0.1.3 → 0.1.5
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/.prompt-cache/cmd-cmd-client-sdk-ai-hub-generate-testcase.md +101 -0
- package/.prompt-cache/cmd-cmd-client-sdk-ai-hub-submit_zct_job.md +158 -0
- package/.prompt-cache/skill-skill-client-sdk-ai-hub-analyze-conf-status.md +311 -0
- package/.prompt-cache/skill-skill-client-sdk-ai-hub-analyze-sdk-log.md +64 -0
- package/.prompt-cache/skill-skill-client-sdk-ai-hub-analyze-zmb-log-errors.md +84 -0
- package/ai-resource-telemetry.json +28 -0
- package/dist/api/client.d.ts +39 -0
- package/dist/api/client.d.ts.map +1 -1
- package/dist/api/client.js +22 -5
- package/dist/api/client.js.map +1 -1
- package/dist/auth/permissions.d.ts.map +1 -1
- package/dist/auth/permissions.js +6 -0
- package/dist/auth/permissions.js.map +1 -1
- package/dist/auth/token-validator.d.ts.map +1 -1
- package/dist/auth/token-validator.js +1 -3
- package/dist/auth/token-validator.js.map +1 -1
- package/dist/config/index.d.ts +6 -1
- package/dist/config/index.d.ts.map +1 -1
- package/dist/config/index.js +1 -3
- package/dist/config/index.js.map +1 -1
- package/dist/index.js +13 -0
- package/dist/index.js.map +1 -1
- package/dist/prompts/cache.d.ts +69 -0
- package/dist/prompts/cache.d.ts.map +1 -0
- package/dist/prompts/cache.js +163 -0
- package/dist/prompts/cache.js.map +1 -0
- package/dist/prompts/generator.d.ts +49 -0
- package/dist/prompts/generator.d.ts.map +1 -0
- package/dist/prompts/generator.js +158 -0
- package/dist/prompts/generator.js.map +1 -0
- package/dist/prompts/index.d.ts +13 -0
- package/dist/prompts/index.d.ts.map +1 -0
- package/dist/prompts/index.js +24 -0
- package/dist/prompts/index.js.map +1 -0
- package/dist/prompts/manager.d.ts +106 -0
- package/dist/prompts/manager.d.ts.map +1 -0
- package/dist/prompts/manager.js +262 -0
- package/dist/prompts/manager.js.map +1 -0
- package/dist/server/http.d.ts.map +1 -1
- package/dist/server/http.js +60 -17
- package/dist/server/http.js.map +1 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +43 -0
- package/dist/server.js.map +1 -1
- package/dist/telemetry/index.d.ts +3 -0
- package/dist/telemetry/index.d.ts.map +1 -0
- package/dist/telemetry/index.js +7 -0
- package/dist/telemetry/index.js.map +1 -0
- package/dist/telemetry/manager.d.ts +151 -0
- package/dist/telemetry/manager.d.ts.map +1 -0
- package/dist/telemetry/manager.js +367 -0
- package/dist/telemetry/manager.js.map +1 -0
- package/dist/tools/index.d.ts +1 -0
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +1 -0
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/manage-subscription.d.ts.map +1 -1
- package/dist/tools/manage-subscription.js +19 -4
- package/dist/tools/manage-subscription.js.map +1 -1
- package/dist/tools/search-resources.d.ts.map +1 -1
- package/dist/tools/search-resources.js +2 -3
- package/dist/tools/search-resources.js.map +1 -1
- package/dist/tools/sync-resources.d.ts +9 -4
- package/dist/tools/sync-resources.d.ts.map +1 -1
- package/dist/tools/sync-resources.js +121 -7
- package/dist/tools/sync-resources.js.map +1 -1
- package/dist/tools/track-usage.d.ts +63 -0
- package/dist/tools/track-usage.d.ts.map +1 -0
- package/dist/tools/track-usage.js +90 -0
- package/dist/tools/track-usage.js.map +1 -0
- package/dist/tools/uninstall-resource.d.ts.map +1 -1
- package/dist/tools/uninstall-resource.js +53 -3
- package/dist/tools/uninstall-resource.js.map +1 -1
- package/dist/tools/upload-resource.d.ts.map +1 -1
- package/dist/tools/upload-resource.js +49 -5
- package/dist/tools/upload-resource.js.map +1 -1
- package/dist/utils/cursor-paths.d.ts +10 -0
- package/dist/utils/cursor-paths.d.ts.map +1 -1
- package/dist/utils/cursor-paths.js +13 -0
- package/dist/utils/cursor-paths.js.map +1 -1
- package/package.json +1 -1
- package/src/api/client.ts +53 -5
- package/src/auth/permissions.ts +6 -0
- package/src/auth/token-validator.ts +1 -3
- package/src/config/index.ts +11 -5
- package/src/index.ts +18 -0
- package/src/prompts/cache.ts +140 -0
- package/src/prompts/generator.ts +142 -0
- package/src/prompts/index.ts +20 -0
- package/src/prompts/manager.ts +341 -0
- package/src/server/http.ts +68 -17
- package/src/server.ts +13 -0
- package/src/telemetry/index.ts +10 -0
- package/src/telemetry/manager.ts +419 -0
- package/src/tools/index.ts +1 -0
- package/src/tools/manage-subscription.ts +19 -4
- package/src/tools/search-resources.ts +2 -4
- package/src/tools/sync-resources.ts +131 -7
- package/src/tools/track-usage.ts +113 -0
- package/src/tools/uninstall-resource.ts +62 -4
- package/src/tools/upload-resource.ts +52 -5
- package/src/utils/cursor-paths.ts +13 -0
|
@@ -50,6 +50,7 @@ const manager_1 = require("../filesystem/manager");
|
|
|
50
50
|
const client_1 = require("../api/client");
|
|
51
51
|
const cursor_paths_js_1 = require("../utils/cursor-paths.js");
|
|
52
52
|
const errors_1 = require("../types/errors");
|
|
53
|
+
const index_js_1 = require("../prompts/index.js");
|
|
53
54
|
/**
|
|
54
55
|
* Find installed resource files/directories by pattern.
|
|
55
56
|
* - File-based types (rule, command): scan for matching .md/.mdc files
|
|
@@ -153,15 +154,64 @@ async function uninstallResource(params) {
|
|
|
153
154
|
try {
|
|
154
155
|
const pattern = typedParams.resource_id_or_name;
|
|
155
156
|
const removeFromAccount = typedParams.remove_from_account || false;
|
|
157
|
+
const removedResources = [];
|
|
158
|
+
let subscriptionRemoved = false;
|
|
159
|
+
let mcpJsonCleaned = false;
|
|
160
|
+
// ── Command / Skill: unregister MCP Prompt + delete cache ─────────────
|
|
161
|
+
// Match registered prompt names that contain the pattern.
|
|
162
|
+
const matchedPromptNames = index_js_1.promptManager.promptNames().filter((name) => name === pattern || name.includes(pattern));
|
|
163
|
+
if (matchedPromptNames.length > 0) {
|
|
164
|
+
for (const promptName of matchedPromptNames) {
|
|
165
|
+
// Prompt name format: <team>/<type>/<resource_name>
|
|
166
|
+
const parts = promptName.split('/');
|
|
167
|
+
const team = parts[0] ?? 'general';
|
|
168
|
+
const resourceType = parts[1];
|
|
169
|
+
const resourceName = parts.slice(2).join('/') || promptName;
|
|
170
|
+
// Find the resource_id from the registered prompt (best-effort via name).
|
|
171
|
+
// For unsubscription, we pass the promptName as id if no better source.
|
|
172
|
+
const resourceId = pattern.startsWith('cmd-') || pattern.startsWith('skill-')
|
|
173
|
+
? pattern
|
|
174
|
+
: promptName;
|
|
175
|
+
// Unregister from the in-memory prompt registry only.
|
|
176
|
+
// The server-side .prompt-cache/ files are intentionally NOT deleted here —
|
|
177
|
+
// they are shared across all users and will be regenerated on the next git pull.
|
|
178
|
+
index_js_1.promptManager.unregisterPrompt(resourceId, resourceType ?? 'command', resourceName);
|
|
179
|
+
removedResources.push({ id: resourceId, name: resourceName, path: `[MCP Prompt: ${promptName}]` });
|
|
180
|
+
logger_1.logger.info({ promptName, team, resourceType, resourceName }, 'MCP Prompt unregistered via uninstall');
|
|
181
|
+
}
|
|
182
|
+
// Remove from server subscription if requested
|
|
183
|
+
if (removeFromAccount) {
|
|
184
|
+
for (const r of removedResources) {
|
|
185
|
+
try {
|
|
186
|
+
await client_1.apiClient.unsubscribe(r.id);
|
|
187
|
+
subscriptionRemoved = true;
|
|
188
|
+
}
|
|
189
|
+
catch (err) {
|
|
190
|
+
logger_1.logger.warn({ resourceId: r.id, err }, 'Failed to unsubscribe Command/Skill Prompt from account');
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
// Return early — Command/Skill resources have no local filesystem footprint.
|
|
195
|
+
const result = {
|
|
196
|
+
success: true,
|
|
197
|
+
removed_resources: removedResources,
|
|
198
|
+
subscription_removed: subscriptionRemoved,
|
|
199
|
+
message: [
|
|
200
|
+
`Successfully unregistered ${removedResources.length} MCP Prompt${removedResources.length > 1 ? 's' : ''}.`,
|
|
201
|
+
subscriptionRemoved ? 'Subscription removed from account.' : null,
|
|
202
|
+
].filter(Boolean).join(' '),
|
|
203
|
+
};
|
|
204
|
+
const duration = Date.now() - startTime;
|
|
205
|
+
(0, logger_1.logToolCall)('uninstall_resource', 'user-id', params, duration);
|
|
206
|
+
return { success: true, data: result };
|
|
207
|
+
}
|
|
208
|
+
// ── Rule / MCP: original local-filesystem removal path ────────────────
|
|
156
209
|
logger_1.logger.debug({ pattern }, 'Finding installed resources...');
|
|
157
210
|
const matched = await findInstalledResources(pattern);
|
|
158
211
|
if (matched.length === 0) {
|
|
159
212
|
throw (0, errors_1.createValidationError)(pattern, 'resource_id_or_name', 'No installed resources found matching pattern. Use search_resources to find available resources');
|
|
160
213
|
}
|
|
161
214
|
logger_1.logger.info({ pattern, count: matched.length }, 'Found matching installed resources');
|
|
162
|
-
const removedResources = [];
|
|
163
|
-
let subscriptionRemoved = false;
|
|
164
|
-
let mcpJsonCleaned = false;
|
|
165
215
|
for (const resource of matched) {
|
|
166
216
|
try {
|
|
167
217
|
if (resource.isDirectory) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"uninstall-resource.js","sourceRoot":"","sources":["../../src/tools/uninstall-resource.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"uninstall-resource.js","sourceRoot":"","sources":["../../src/tools/uninstall-resource.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upload-resource.d.ts","sourceRoot":"","sources":["../../src/tools/upload-resource.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;
|
|
1
|
+
{"version":3,"file":"upload-resource.d.ts","sourceRoot":"","sources":["../../src/tools/upload-resource.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAQH,OAAO,KAAK,EAAwB,oBAAoB,EAAE,UAAU,EAAa,MAAM,gBAAgB,CAAC;AAwJxG,wBAAsB,cAAc,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAC,CA4J/F;AAGD,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkG9B,CAAC"}
|
|
@@ -54,6 +54,22 @@ const logger_1 = require("../utils/logger");
|
|
|
54
54
|
const client_1 = require("../api/client");
|
|
55
55
|
const resources_1 = require("../resources");
|
|
56
56
|
const errors_1 = require("../types/errors");
|
|
57
|
+
const index_js_1 = require("../prompts/index.js");
|
|
58
|
+
/** Extract the `description` field from YAML frontmatter (--- ... ---) in Markdown content. */
|
|
59
|
+
function extractFrontmatterDescription(content) {
|
|
60
|
+
if (!content.startsWith('---'))
|
|
61
|
+
return undefined;
|
|
62
|
+
const end = content.indexOf('\n---', 3);
|
|
63
|
+
if (end === -1)
|
|
64
|
+
return undefined;
|
|
65
|
+
const frontmatter = content.slice(3, end);
|
|
66
|
+
for (const line of frontmatter.split('\n')) {
|
|
67
|
+
const match = /^description:\s*(.+)$/.exec(line.trim());
|
|
68
|
+
if (match)
|
|
69
|
+
return match[1].trim().replace(/^['"]|['"]$/g, '');
|
|
70
|
+
}
|
|
71
|
+
return undefined;
|
|
72
|
+
}
|
|
57
73
|
/**
|
|
58
74
|
* Infer the resource type from the uploaded file list ONLY when the user has
|
|
59
75
|
* not explicitly stated a type. If the user declared a type, that always wins.
|
|
@@ -230,6 +246,36 @@ async function uploadResource(params) {
|
|
|
230
246
|
const resourceUrl = finalizeResp.url ?? '';
|
|
231
247
|
const commitHash = finalizeResp.commit_hash ?? '';
|
|
232
248
|
logger_1.logger.info({ finalResourceId, version, commitHash }, 'Upload finalized successfully');
|
|
249
|
+
// For Command / Skill: register the uploaded content as an MCP Prompt immediately,
|
|
250
|
+
// so the user can invoke it via slash-command without a full sync cycle.
|
|
251
|
+
if (resourceType === 'command' || resourceType === 'skill') {
|
|
252
|
+
try {
|
|
253
|
+
const primaryFile = resourceType === 'skill'
|
|
254
|
+
? (fileEntries.find((f) => path.basename(f.path) === 'SKILL.md') ??
|
|
255
|
+
fileEntries.find((f) => f.path.endsWith('.md')) ??
|
|
256
|
+
fileEntries[0])
|
|
257
|
+
: (fileEntries.find((f) => path.basename(f.path).replace(/\.md$/, '') === resourceName) ??
|
|
258
|
+
fileEntries.find((f) => f.path.endsWith('.md')) ??
|
|
259
|
+
fileEntries[0]);
|
|
260
|
+
const rawContent = primaryFile?.content ?? '';
|
|
261
|
+
const team = typedParams.team ?? 'general';
|
|
262
|
+
const frontmatterDesc = extractFrontmatterDescription(rawContent);
|
|
263
|
+
const description = frontmatterDesc ?? typedParams.message ?? resourceName;
|
|
264
|
+
await index_js_1.promptManager.registerPrompt({
|
|
265
|
+
resource_id: finalResourceId,
|
|
266
|
+
resource_type: resourceType,
|
|
267
|
+
resource_name: resourceName,
|
|
268
|
+
team,
|
|
269
|
+
description,
|
|
270
|
+
rawContent,
|
|
271
|
+
});
|
|
272
|
+
logger_1.logger.info({ finalResourceId, resourceType }, 'MCP Prompt registered after upload');
|
|
273
|
+
}
|
|
274
|
+
catch (promptErr) {
|
|
275
|
+
// Non-fatal: the resource is uploaded; Prompt registration is best-effort.
|
|
276
|
+
logger_1.logger.warn({ finalResourceId, error: promptErr.message }, 'MCP Prompt registration after upload failed (non-fatal)');
|
|
277
|
+
}
|
|
278
|
+
}
|
|
233
279
|
const result = {
|
|
234
280
|
resource_id: finalResourceId,
|
|
235
281
|
version,
|
|
@@ -276,8 +322,7 @@ exports.uploadResourceTool = {
|
|
|
276
322
|
'\n\nPass files[] — an array of {path, content} entries. ' +
|
|
277
323
|
'path must be the original filename as-is (relative, no path traversal). ' +
|
|
278
324
|
'No restriction on file extensions — mcp packages may include .py, .js, package.json, etc.\n' +
|
|
279
|
-
'\
|
|
280
|
-
'so that each user\'s API calls use their own identity.',
|
|
325
|
+
'\nThe user_token is injected automatically by the server — do NOT read or pass it manually.',
|
|
281
326
|
inputSchema: {
|
|
282
327
|
type: 'object',
|
|
283
328
|
properties: {
|
|
@@ -337,9 +382,8 @@ exports.uploadResourceTool = {
|
|
|
337
382
|
},
|
|
338
383
|
user_token: {
|
|
339
384
|
type: 'string',
|
|
340
|
-
description: '
|
|
341
|
-
'
|
|
342
|
-
'for all CSP API calls in this request instead of the server-level fallback token.',
|
|
385
|
+
description: 'DO NOT set this field — it is automatically injected by the MCP server from ' +
|
|
386
|
+
'the authenticated SSE connection. The server always provides the correct token.',
|
|
343
387
|
},
|
|
344
388
|
},
|
|
345
389
|
required: ['resource_id', 'message', 'files'],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upload-resource.js","sourceRoot":"","sources":["../../src/tools/upload-resource.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"upload-resource.js","sourceRoot":"","sources":["../../src/tools/upload-resource.ts"],"names":[],"mappings":"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"}
|
|
@@ -46,4 +46,14 @@ export declare function getCursorTypeDir(resourceType: string): string;
|
|
|
46
46
|
* @param resourceName - Resource name (with or without extension)
|
|
47
47
|
*/
|
|
48
48
|
export declare function getCursorResourcePath(resourceType: string, resourceName: string): string;
|
|
49
|
+
/**
|
|
50
|
+
* Returns the path to the local AI resource telemetry file.
|
|
51
|
+
*
|
|
52
|
+
* Stored at the Cursor root level (not inside a resource-type subdirectory)
|
|
53
|
+
* so it persists independently of individual resource installs/uninstalls.
|
|
54
|
+
*
|
|
55
|
+
* macOS / Linux : ~/.cursor/ai-resource-telemetry.json
|
|
56
|
+
* Windows : %APPDATA%\Cursor\User\ai-resource-telemetry.json
|
|
57
|
+
*/
|
|
58
|
+
export declare function getTelemetryFilePath(): string;
|
|
49
59
|
//# sourceMappingURL=cursor-paths.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cursor-paths.d.ts","sourceRoot":"","sources":["../../src/utils/cursor-paths.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAKH,iEAAiE;AACjE,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CASnD,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,CAQzC;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,gBAAgB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAS7D;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,qBAAqB,CAAC,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM,CAExF"}
|
|
1
|
+
{"version":3,"file":"cursor-paths.d.ts","sourceRoot":"","sources":["../../src/utils/cursor-paths.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAKH,iEAAiE;AACjE,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CASnD,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,CAQzC;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,gBAAgB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAS7D;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,qBAAqB,CAAC,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM,CAExF;AAED;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,IAAI,MAAM,CAE7C"}
|
|
@@ -47,6 +47,7 @@ exports.CURSOR_TYPE_DIRS = void 0;
|
|
|
47
47
|
exports.getCursorRootDir = getCursorRootDir;
|
|
48
48
|
exports.getCursorTypeDir = getCursorTypeDir;
|
|
49
49
|
exports.getCursorResourcePath = getCursorResourcePath;
|
|
50
|
+
exports.getTelemetryFilePath = getTelemetryFilePath;
|
|
50
51
|
const os = __importStar(require("os"));
|
|
51
52
|
const path = __importStar(require("path"));
|
|
52
53
|
/** Supported Cursor resource types and their directory names. */
|
|
@@ -113,4 +114,16 @@ function getCursorTypeDir(resourceType) {
|
|
|
113
114
|
function getCursorResourcePath(resourceType, resourceName) {
|
|
114
115
|
return path.join(getCursorTypeDir(resourceType), resourceName);
|
|
115
116
|
}
|
|
117
|
+
/**
|
|
118
|
+
* Returns the path to the local AI resource telemetry file.
|
|
119
|
+
*
|
|
120
|
+
* Stored at the Cursor root level (not inside a resource-type subdirectory)
|
|
121
|
+
* so it persists independently of individual resource installs/uninstalls.
|
|
122
|
+
*
|
|
123
|
+
* macOS / Linux : ~/.cursor/ai-resource-telemetry.json
|
|
124
|
+
* Windows : %APPDATA%\Cursor\User\ai-resource-telemetry.json
|
|
125
|
+
*/
|
|
126
|
+
function getTelemetryFilePath() {
|
|
127
|
+
return path.join(getCursorRootDir(), 'ai-resource-telemetry.json');
|
|
128
|
+
}
|
|
116
129
|
//# sourceMappingURL=cursor-paths.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cursor-paths.js","sourceRoot":"","sources":["../../src/utils/cursor-paths.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuBH,4CAQC;AAeD,4CASC;AAgBD,sDAEC;
|
|
1
|
+
{"version":3,"file":"cursor-paths.js","sourceRoot":"","sources":["../../src/utils/cursor-paths.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuBH,4CAQC;AAeD,4CASC;AAgBD,sDAEC;AAWD,oDAEC;AApFD,uCAAyB;AACzB,2CAA6B;AAE7B,iEAAiE;AACpD,QAAA,gBAAgB,GAA2B;IACtD,KAAK,EAAI,QAAQ;IACjB,MAAM,EAAG,QAAQ;IACjB,OAAO,EAAE,UAAU;IACnB,QAAQ,EAAC,UAAU;IACnB,IAAI,EAAK,OAAO;IAChB,KAAK,EAAI,OAAO;IAChB,GAAG,EAAM,aAAa;IACtB,aAAa,EAAE,aAAa;CAC7B,CAAC;AAEF;;;;;GAKG;AACH,SAAgB,gBAAgB;IAC9B,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;QACjC,6EAA6E;QAC7E,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;QACrF,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC9C,CAAC;IACD,qCAAqC;IACrC,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,CAAC,CAAC;AAC5C,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,SAAgB,gBAAgB,CAAC,YAAoB;IACnD,MAAM,MAAM,GAAG,wBAAgB,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC,CAAC;IAC5D,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CACb,0BAA0B,YAAY,KAAK;YAC3C,oBAAoB,MAAM,CAAC,IAAI,CAAC,wBAAgB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC/D,CAAC;IACJ,CAAC;IACD,OAAO,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE,MAAM,CAAC,CAAC;AAC/C,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,SAAgB,qBAAqB,CAAC,YAAoB,EAAE,YAAoB;IAC9E,OAAO,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,EAAE,YAAY,CAAC,CAAC;AACjE,CAAC;AAED;;;;;;;;GAQG;AACH,SAAgB,oBAAoB;IAClC,OAAO,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE,4BAA4B,CAAC,CAAC;AACrE,CAAC"}
|
package/package.json
CHANGED
package/src/api/client.ts
CHANGED
|
@@ -26,16 +26,15 @@ class APIClient {
|
|
|
26
26
|
// Request interceptor for authentication and logging.
|
|
27
27
|
// Every request MUST carry a per-request Authorization header supplied by
|
|
28
28
|
// the caller via authConfig(userToken). If none is present the request is
|
|
29
|
-
// rejected immediately
|
|
30
|
-
//
|
|
29
|
+
// rejected immediately — the token must come from the authenticated SSE
|
|
30
|
+
// connection, not from environment variables.
|
|
31
31
|
this.client.interceptors.request.use(
|
|
32
32
|
(requestConfig) => {
|
|
33
33
|
if (!requestConfig.headers.Authorization) {
|
|
34
34
|
return Promise.reject(
|
|
35
35
|
new Error(
|
|
36
|
-
'
|
|
37
|
-
'
|
|
38
|
-
'mcpServers["csp-ai-agent"].env.CSP_API_TOKEN and restart Cursor.'
|
|
36
|
+
'Authorization token is missing. ' +
|
|
37
|
+
'Ensure the MCP server is connected via SSE with a valid Bearer token in the Authorization header.'
|
|
39
38
|
)
|
|
40
39
|
);
|
|
41
40
|
}
|
|
@@ -614,6 +613,55 @@ class APIClient {
|
|
|
614
613
|
return resp.data;
|
|
615
614
|
}
|
|
616
615
|
|
|
616
|
+
/**
|
|
617
|
+
* Report AI resource usage telemetry to the server.
|
|
618
|
+
*
|
|
619
|
+
* POST /csp/api/resources/telemetry
|
|
620
|
+
* Body: { client_version, reported_at, events[], subscribed_rules[], configured_mcps[] }
|
|
621
|
+
*
|
|
622
|
+
* Called by TelemetryManager.flush() every ~10 seconds and on reconnect.
|
|
623
|
+
* Throws on non-2xx so the caller can apply retry logic.
|
|
624
|
+
*
|
|
625
|
+
* jira_id in each event entry is optional — it is only present when the user
|
|
626
|
+
* explicitly passed a Jira ID during the Prompt invocation.
|
|
627
|
+
*
|
|
628
|
+
* @param payload Telemetry report payload built by TelemetryManager
|
|
629
|
+
* @param userToken Per-request Bearer token from the caller's mcp.json configuration
|
|
630
|
+
*/
|
|
631
|
+
async reportTelemetry(
|
|
632
|
+
payload: {
|
|
633
|
+
client_version: string;
|
|
634
|
+
reported_at: string;
|
|
635
|
+
events: Array<{
|
|
636
|
+
resource_id: string;
|
|
637
|
+
resource_type: string;
|
|
638
|
+
resource_name: string;
|
|
639
|
+
invocation_count: number;
|
|
640
|
+
first_invoked_at: string;
|
|
641
|
+
last_invoked_at: string;
|
|
642
|
+
/** Optional Jira Issue ID (e.g. "PROJ-12345"). Absent when not provided. */
|
|
643
|
+
jira_id?: string;
|
|
644
|
+
}>;
|
|
645
|
+
subscribed_rules: Array<{
|
|
646
|
+
resource_id: string;
|
|
647
|
+
resource_name: string;
|
|
648
|
+
subscribed_at: string;
|
|
649
|
+
}>;
|
|
650
|
+
configured_mcps: Array<{
|
|
651
|
+
resource_id: string;
|
|
652
|
+
resource_name: string;
|
|
653
|
+
configured_at: string;
|
|
654
|
+
}>;
|
|
655
|
+
},
|
|
656
|
+
userToken: string
|
|
657
|
+
): Promise<void> {
|
|
658
|
+
await this.post<{ code: number; result: string; data: unknown }>(
|
|
659
|
+
'/csp/api/resources/telemetry',
|
|
660
|
+
payload,
|
|
661
|
+
this.authConfig(userToken)
|
|
662
|
+
);
|
|
663
|
+
}
|
|
664
|
+
|
|
617
665
|
/**
|
|
618
666
|
* @deprecated Use uploadResourceFiles() + finalizeResourceUpload() instead.
|
|
619
667
|
*/
|
package/src/auth/permissions.ts
CHANGED
|
@@ -69,6 +69,12 @@ const defaultPermissions: ToolPermission[] = [
|
|
|
69
69
|
allowedGroups: ['*'],
|
|
70
70
|
requiredPermission: PermissionLevel.WRITE,
|
|
71
71
|
},
|
|
72
|
+
// track_usage - internal telemetry tool, always allowed for all authenticated users
|
|
73
|
+
{
|
|
74
|
+
tool: 'track_usage',
|
|
75
|
+
allowedGroups: ['*'],
|
|
76
|
+
requiredPermission: PermissionLevel.WRITE,
|
|
77
|
+
},
|
|
72
78
|
];
|
|
73
79
|
|
|
74
80
|
/**
|
|
@@ -111,9 +111,7 @@ export async function verifyTokenViaAPI(token: string): Promise<TokenPayload | n
|
|
|
111
111
|
'Calling CSP API /user/permissions to validate token'
|
|
112
112
|
);
|
|
113
113
|
|
|
114
|
-
// Call CSP API to validate token
|
|
115
|
-
// Note: apiClient already adds Authorization header with CSP_API_TOKEN
|
|
116
|
-
// But for SSE connection, we might use a different token from the client
|
|
114
|
+
// Call CSP API to validate the token presented in the SSE Authorization header.
|
|
117
115
|
const response = await apiClient.get<PermissionsResponse>(
|
|
118
116
|
'/csp/api/user/permissions',
|
|
119
117
|
{
|
package/src/config/index.ts
CHANGED
|
@@ -46,6 +46,12 @@ export interface Config {
|
|
|
46
46
|
http?: {
|
|
47
47
|
host: string;
|
|
48
48
|
port: number;
|
|
49
|
+
/** URL path prefix when the server runs behind a reverse proxy sub-path.
|
|
50
|
+
* e.g. HTTP_BASE_PATH=/csp-agent → SSE at /csp-agent/sse
|
|
51
|
+
* → messages POST to /csp-agent/message
|
|
52
|
+
* Leave empty (default) for direct / root-path deployments.
|
|
53
|
+
*/
|
|
54
|
+
basePath: string;
|
|
49
55
|
};
|
|
50
56
|
|
|
51
57
|
// Session (for SSE transport)
|
|
@@ -56,7 +62,10 @@ export interface Config {
|
|
|
56
62
|
// CSP API
|
|
57
63
|
csp: {
|
|
58
64
|
apiBaseUrl: string;
|
|
59
|
-
|
|
65
|
+
// NOTE: No apiToken here. The user token is established during the first MCP
|
|
66
|
+
// connection (SSE Authorization header), validated, then cached per-session.
|
|
67
|
+
// Each tool call receives it via the injected user_token argument.
|
|
68
|
+
// Storing a static token in config would break multi-user scenarios.
|
|
60
69
|
timeout: number;
|
|
61
70
|
};
|
|
62
71
|
|
|
@@ -140,9 +149,6 @@ export function loadConfig(): Config {
|
|
|
140
149
|
const logLevel = (process.env.LOG_LEVEL || 'info') as Config['logLevel'];
|
|
141
150
|
const transportMode = (process.env.TRANSPORT_MODE || 'stdio') as 'stdio' | 'sse';
|
|
142
151
|
|
|
143
|
-
// Debug: Log CSP_API_TOKEN to verify it was loaded
|
|
144
|
-
console.log(`🔑 CSP_API_TOKEN from env: ${process.env.CSP_API_TOKEN ? process.env.CSP_API_TOKEN.substring(0, 20) + '...' : 'NOT SET'}`);
|
|
145
|
-
|
|
146
152
|
return {
|
|
147
153
|
nodeEnv,
|
|
148
154
|
port: getEnvNumber('PORT', 5090),
|
|
@@ -155,6 +161,7 @@ export function loadConfig(): Config {
|
|
|
155
161
|
http: transportMode === 'sse' ? {
|
|
156
162
|
host: getEnv('HTTP_HOST', '0.0.0.0'),
|
|
157
163
|
port: getEnvNumber('HTTP_PORT', 3000),
|
|
164
|
+
basePath: getEnv('HTTP_BASE_PATH', ''),
|
|
158
165
|
} : undefined,
|
|
159
166
|
|
|
160
167
|
session: transportMode === 'sse' ? {
|
|
@@ -163,7 +170,6 @@ export function loadConfig(): Config {
|
|
|
163
170
|
|
|
164
171
|
csp: {
|
|
165
172
|
apiBaseUrl: getEnv('CSP_API_BASE_URL', 'https://csp.example.com'),
|
|
166
|
-
apiToken: getEnv('CSP_API_TOKEN', 'test-token-12345'),
|
|
167
173
|
timeout: getEnvNumber('CSP_API_TIMEOUT', 30000),
|
|
168
174
|
},
|
|
169
175
|
|
package/src/index.ts
CHANGED
|
@@ -10,6 +10,8 @@ import { startLogCleanupSchedule, stopLogCleanupSchedule } from './utils/log-cle
|
|
|
10
10
|
import { startServer, stopServer } from './server';
|
|
11
11
|
import { stopCacheCleanup } from './auth/token-validator';
|
|
12
12
|
import { sessionManager } from './session/manager';
|
|
13
|
+
import { telemetry } from './telemetry/index.js';
|
|
14
|
+
import { apiClient } from './api/client.js';
|
|
13
15
|
|
|
14
16
|
// Global error handlers
|
|
15
17
|
process.on('uncaughtException', (error: Error) => {
|
|
@@ -52,11 +54,21 @@ async function main() {
|
|
|
52
54
|
// Start log cleanup scheduler
|
|
53
55
|
const cleanupTimer = startLogCleanupSchedule();
|
|
54
56
|
|
|
57
|
+
// Wire up telemetry reporting (inject API client to avoid circular import).
|
|
58
|
+
// Tokens are sourced exclusively from authenticated SSE connections via setUserToken().
|
|
59
|
+
telemetry.configure(
|
|
60
|
+
(payload, token) => apiClient.reportTelemetry(payload, token)
|
|
61
|
+
);
|
|
62
|
+
|
|
55
63
|
try {
|
|
56
64
|
// Start MCP Server
|
|
57
65
|
await startServer();
|
|
58
66
|
|
|
59
67
|
logger.info({ port: config.port }, `✅ CSP AI Agent MCP Server started successfully`);
|
|
68
|
+
|
|
69
|
+
// Start periodic telemetry flush (every 10 seconds)
|
|
70
|
+
telemetry.startPeriodicFlush(10_000);
|
|
71
|
+
logger.info('Telemetry flush scheduler started (interval: 10s)');
|
|
60
72
|
} catch (error) {
|
|
61
73
|
logger.error({ error }, 'Failed to start server');
|
|
62
74
|
stopLogCleanupSchedule(cleanupTimer);
|
|
@@ -110,6 +122,12 @@ async function main() {
|
|
|
110
122
|
stopCacheCleanup();
|
|
111
123
|
logger.info('Token cache cleanup stopped');
|
|
112
124
|
|
|
125
|
+
// Stop telemetry scheduler and perform final flush
|
|
126
|
+
telemetry.stopPeriodicFlush();
|
|
127
|
+
logger.info('Telemetry scheduler stopped, performing final flush...');
|
|
128
|
+
await telemetry.flush();
|
|
129
|
+
logger.info('Final telemetry flush completed');
|
|
130
|
+
|
|
113
131
|
// Phase 4: Flush logs
|
|
114
132
|
logger.info('Phase 4: Flushing logs...');
|
|
115
133
|
|