@xctrace-analyzer/mcp-server 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,165 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Xcode Instruments Trace Analyzer MCP Server
4
+ *
5
+ * Provides intelligent analysis of Xcode Instruments traces via Model Context Protocol
6
+ */
7
+ import { analyzeTraceFile as defaultAnalyzeTraceFile, compareTraceFiles as defaultCompareTraceFiles, getXCTraceVersion as defaultGetXCTraceVersion, getXCTraceCapabilities as defaultGetXCTraceCapabilities, isXCTraceAvailable as defaultIsXCTraceAvailable, listDevices as defaultListDevices, listTemplates as defaultListTemplates, recordTrace as defaultRecordTrace, symbolicateTrace as defaultSymbolicateTrace } from '@xctrace-analyzer/core';
8
+ export interface XCTraceAnalyzerDependencies {
9
+ analyzeTraceFile: typeof defaultAnalyzeTraceFile;
10
+ compareTraceFiles: typeof defaultCompareTraceFiles;
11
+ listTemplates: typeof defaultListTemplates;
12
+ listDevices: typeof defaultListDevices;
13
+ isXCTraceAvailable: typeof defaultIsXCTraceAvailable;
14
+ getXCTraceVersion: typeof defaultGetXCTraceVersion;
15
+ getXCTraceCapabilities?: typeof defaultGetXCTraceCapabilities;
16
+ recordTrace: typeof defaultRecordTrace;
17
+ symbolicateTrace?: typeof defaultSymbolicateTrace;
18
+ openTrace?: (tracePath: string) => Promise<void>;
19
+ }
20
+ export type RedactionMode = 'balanced' | 'strict' | 'off';
21
+ export interface XCTraceAnalyzerSecurityOptions {
22
+ allowLaunchProfiling?: boolean;
23
+ allowAllProcessesProfiling?: boolean;
24
+ allowExternalTraceOutput?: boolean;
25
+ allowExternalTraceCleanup?: boolean;
26
+ traceRoot?: string;
27
+ maxDurationSeconds?: number;
28
+ redaction?: RedactionMode;
29
+ }
30
+ /**
31
+ * MCP Server for Xcode Instruments trace analysis
32
+ */
33
+ export declare class XCTraceAnalyzerServer {
34
+ private server;
35
+ private deps;
36
+ private security;
37
+ private recordedTracePaths;
38
+ constructor(deps?: XCTraceAnalyzerDependencies, securityOptions?: XCTraceAnalyzerSecurityOptions);
39
+ private setupHandlers;
40
+ /**
41
+ * Define available MCP tools
42
+ */
43
+ private getTools;
44
+ /**
45
+ * Handle tool calls
46
+ */
47
+ callTool(toolName: string, args: any): Promise<any>;
48
+ private formatToolError;
49
+ /**
50
+ * Analyze a trace file
51
+ */
52
+ private analyzeTrace;
53
+ /**
54
+ * Compare two trace files
55
+ */
56
+ private compareTraces;
57
+ /**
58
+ * Record a running app and optionally analyze the captured trace.
59
+ */
60
+ private trackRunningApp;
61
+ /**
62
+ * Record a running app with a preset of Instruments templates and return one report.
63
+ */
64
+ private profileRunningApp;
65
+ /**
66
+ * List available templates
67
+ */
68
+ private listTemplates;
69
+ /**
70
+ * List available devices
71
+ */
72
+ private listDevices;
73
+ /**
74
+ * Check xctrace availability
75
+ */
76
+ private checkXCTrace;
77
+ /**
78
+ * Preview or delete generated .trace bundles.
79
+ */
80
+ private cleanupTraces;
81
+ private requiredString;
82
+ private optionalString;
83
+ private optionalPositiveNumber;
84
+ private optionalNonNegativeNumber;
85
+ private optionalPositiveInteger;
86
+ private assertDurationWithinLimit;
87
+ private optionalStringArray;
88
+ private optionalTimeRangeMs;
89
+ private outputFormat;
90
+ private formatToolOutput;
91
+ private safeDisplayValue;
92
+ private sanitizeReportText;
93
+ private safeInlineText;
94
+ private redactStructuredValue;
95
+ private structuredAnalysis;
96
+ private prepareTraceForAnalysis;
97
+ private recordTargetOptions;
98
+ private optionalStringMap;
99
+ private optionalBoolean;
100
+ private openTraceInInstruments;
101
+ private fallbackCapabilities;
102
+ private profileCapabilityWarnings;
103
+ private includesCaseInsensitive;
104
+ private discoverTraceBundles;
105
+ private cleanupTraceCandidate;
106
+ private tracePathSizeBytes;
107
+ private rememberRecordedTrace;
108
+ private traceOutputPath;
109
+ private assertTraceOutputPathAllowed;
110
+ private assertTraceDirectoryAllowed;
111
+ private assertStreamPathAllowed;
112
+ private assertCleanupDirectoryAllowed;
113
+ private canDeleteTracePath;
114
+ private isWithinTraceRoot;
115
+ private profilePresetForName;
116
+ private profileTraceOutputPath;
117
+ private safeFileName;
118
+ private formatTrackingHeader;
119
+ private formatInstrumentsOpenLine;
120
+ private formatProfileReport;
121
+ private profileStatus;
122
+ private profileSectionTitle;
123
+ private formatTraceCleanupOutput;
124
+ private formatTraceCleanupEntry;
125
+ private formatBytes;
126
+ private instrumentSectionTitle;
127
+ private appendCpuHighlights;
128
+ private appendTimeProfilerStatus;
129
+ private appendUserFrameSection;
130
+ private appendAnalysisWindow;
131
+ private appendHangsSection;
132
+ private hasHangExportSignal;
133
+ private hangSourceSchemas;
134
+ private appendInstrumentSections;
135
+ private appendSupportStatus;
136
+ private supportStatusLabel;
137
+ private appendExportDiagnostics;
138
+ private appendTraceExportFailureNextSteps;
139
+ private isTraceTocExportFailure;
140
+ private traceExportFailureNextSteps;
141
+ private profileRecommendations;
142
+ /**
143
+ * Format analysis output for human readability
144
+ */
145
+ private formatAnalysisOutput;
146
+ /**
147
+ * Format comparison output
148
+ */
149
+ private formatComparisonOutput;
150
+ /**
151
+ * Start the MCP server
152
+ */
153
+ start(): Promise<void>;
154
+ }
155
+ export interface XCTraceAnalyzerCliIo {
156
+ stdout: {
157
+ write(chunk: string): unknown;
158
+ };
159
+ stderr: {
160
+ write(chunk: string): unknown;
161
+ };
162
+ }
163
+ export declare function runCli(argv?: string[], io?: XCTraceAnalyzerCliIo, deps?: XCTraceAnalyzerDependencies): Promise<number>;
164
+ export declare function getDefaultTraceRoot(): string;
165
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}