File size: 2,170 Bytes
c592d77
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
/**
 * Telemetry tracker for MCP tool call usage.
 * Tracks invocation counts for each MCP tool to be reported via telemetry.
 */ "use strict";
Object.defineProperty(exports, "__esModule", {
    value: true
});
0 && (module.exports = {
    getMcpTelemetryUsage: null,
    mcpTelemetryTracker: null,
    recordMcpTelemetry: null,
    resetMcpTelemetry: null
});
function _export(target, all) {
    for(var name in all)Object.defineProperty(target, name, {
        enumerable: true,
        get: all[name]
    });
}
_export(exports, {
    getMcpTelemetryUsage: function() {
        return getMcpTelemetryUsage;
    },
    mcpTelemetryTracker: function() {
        return mcpTelemetryTracker;
    },
    recordMcpTelemetry: function() {
        return recordMcpTelemetry;
    },
    resetMcpTelemetry: function() {
        return resetMcpTelemetry;
    }
});
class McpTelemetryTracker {
    /**
   * Record a tool call invocation
   */ recordToolCall(toolName) {
        const current = this.usageMap.get(toolName) || 0;
        this.usageMap.set(toolName, current + 1);
    }
    /**
   * Get all tool usages as an array
   */ getUsages() {
        return Array.from(this.usageMap.entries()).map(([featureName, count])=>({
                featureName,
                invocationCount: count
            }));
    }
    /**
   * Reset all usage tracking
   */ reset() {
        this.usageMap.clear();
    }
    /**
   * Check if any tools have been called
   */ hasUsage() {
        return this.usageMap.size > 0;
    }
    constructor(){
        this.usageMap = new Map();
    }
}
const mcpTelemetryTracker = new McpTelemetryTracker();
function getMcpTelemetryUsage() {
    return mcpTelemetryTracker.getUsages();
}
function resetMcpTelemetry() {
    mcpTelemetryTracker.reset();
}
function recordMcpTelemetry(telemetry) {
    const mcpUsages = getMcpTelemetryUsage();
    if (mcpUsages.length === 0) {
        return;
    }
    const { eventMcpToolUsage } = require('../../telemetry/events/build');
    const events = eventMcpToolUsage(mcpUsages);
    for (const event of events){
        telemetry.record(event);
    }
}

//# sourceMappingURL=mcp-telemetry-tracker.js.map