qorrelate-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.
Files changed (50) hide show
  1. package/README.md +197 -0
  2. package/dist/client.d.ts +293 -0
  3. package/dist/client.d.ts.map +1 -0
  4. package/dist/client.js +358 -0
  5. package/dist/client.js.map +1 -0
  6. package/dist/index.d.ts +26 -0
  7. package/dist/index.d.ts.map +1 -0
  8. package/dist/index.js +242 -0
  9. package/dist/index.js.map +1 -0
  10. package/dist/tools/alerts.d.ts +14 -0
  11. package/dist/tools/alerts.d.ts.map +1 -0
  12. package/dist/tools/alerts.js +381 -0
  13. package/dist/tools/alerts.js.map +1 -0
  14. package/dist/tools/dashboards.d.ts +14 -0
  15. package/dist/tools/dashboards.d.ts.map +1 -0
  16. package/dist/tools/dashboards.js +409 -0
  17. package/dist/tools/dashboards.js.map +1 -0
  18. package/dist/tools/data-control.d.ts +19 -0
  19. package/dist/tools/data-control.d.ts.map +1 -0
  20. package/dist/tools/data-control.js +213 -0
  21. package/dist/tools/data-control.js.map +1 -0
  22. package/dist/tools/logs.d.ts +14 -0
  23. package/dist/tools/logs.d.ts.map +1 -0
  24. package/dist/tools/logs.js +191 -0
  25. package/dist/tools/logs.js.map +1 -0
  26. package/dist/tools/metrics.d.ts +14 -0
  27. package/dist/tools/metrics.d.ts.map +1 -0
  28. package/dist/tools/metrics.js +217 -0
  29. package/dist/tools/metrics.js.map +1 -0
  30. package/dist/tools/organizations.d.ts +16 -0
  31. package/dist/tools/organizations.d.ts.map +1 -0
  32. package/dist/tools/organizations.js +378 -0
  33. package/dist/tools/organizations.js.map +1 -0
  34. package/dist/tools/services.d.ts +14 -0
  35. package/dist/tools/services.d.ts.map +1 -0
  36. package/dist/tools/services.js +218 -0
  37. package/dist/tools/services.js.map +1 -0
  38. package/dist/tools/sessions.d.ts +14 -0
  39. package/dist/tools/sessions.d.ts.map +1 -0
  40. package/dist/tools/sessions.js +221 -0
  41. package/dist/tools/sessions.js.map +1 -0
  42. package/dist/tools/setup.d.ts +17 -0
  43. package/dist/tools/setup.d.ts.map +1 -0
  44. package/dist/tools/setup.js +304 -0
  45. package/dist/tools/setup.js.map +1 -0
  46. package/dist/tools/traces.d.ts +14 -0
  47. package/dist/tools/traces.d.ts.map +1 -0
  48. package/dist/tools/traces.js +350 -0
  49. package/dist/tools/traces.js.map +1 -0
  50. package/package.json +48 -0
@@ -0,0 +1,350 @@
1
+ "use strict";
2
+ /**
3
+ * Trace-related MCP tools
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.registerTraceTools = registerTraceTools;
7
+ exports.handleTraceTool = handleTraceTool;
8
+ function registerTraceTools() {
9
+ return [
10
+ {
11
+ name: "search_traces",
12
+ description: `Search distributed traces. Traces show the flow of requests through your services.
13
+
14
+ Examples:
15
+ - Find slow requests: search_traces with min_duration_ms=1000
16
+ - Find failed requests: search_traces with has_error=true
17
+ - Find traces for a service: search_traces with service="api-gateway"`,
18
+ inputSchema: {
19
+ type: "object",
20
+ properties: {
21
+ service: {
22
+ type: "string",
23
+ description: "Filter by service name",
24
+ },
25
+ min_duration_ms: {
26
+ type: "number",
27
+ description: "Minimum duration in milliseconds (find slow traces)",
28
+ },
29
+ has_error: {
30
+ type: "boolean",
31
+ description: "Filter to only error traces",
32
+ },
33
+ start_time: {
34
+ type: "string",
35
+ description: "Start of time range (ISO 8601 format). Defaults to 1 hour ago.",
36
+ },
37
+ end_time: {
38
+ type: "string",
39
+ description: "End of time range (ISO 8601 format). Defaults to now.",
40
+ },
41
+ limit: {
42
+ type: "number",
43
+ description: "Maximum number of traces to return (default: 20, max: 100)",
44
+ default: 20,
45
+ },
46
+ },
47
+ },
48
+ },
49
+ {
50
+ name: "get_trace",
51
+ description: `Get detailed information about a specific trace, including all spans. Use this after finding a trace with search_traces to see the full request flow.`,
52
+ inputSchema: {
53
+ type: "object",
54
+ properties: {
55
+ trace_id: {
56
+ type: "string",
57
+ description: "The trace ID to retrieve",
58
+ },
59
+ },
60
+ required: ["trace_id"],
61
+ },
62
+ },
63
+ {
64
+ name: "traces_analyze_latency",
65
+ description: "Analyze latency patterns for a service. Shows P50, P95, P99 latencies and identifies slow operations.",
66
+ inputSchema: {
67
+ type: "object",
68
+ properties: {
69
+ service: {
70
+ type: "string",
71
+ description: "Service name to analyze",
72
+ },
73
+ start_time: {
74
+ type: "string",
75
+ description: "Start of time range (ISO 8601 format). Defaults to 1 hour ago.",
76
+ },
77
+ end_time: {
78
+ type: "string",
79
+ description: "End of time range (ISO 8601 format). Defaults to now.",
80
+ },
81
+ },
82
+ required: ["service"],
83
+ },
84
+ },
85
+ {
86
+ name: "traces_find_dependencies",
87
+ description: "Find service dependencies based on trace data. Shows which services call each other.",
88
+ inputSchema: {
89
+ type: "object",
90
+ properties: {
91
+ service: {
92
+ type: "string",
93
+ description: "Service name to analyze (shows what it calls and what calls it)",
94
+ },
95
+ start_time: {
96
+ type: "string",
97
+ description: "Start of time range (ISO 8601 format). Defaults to 1 hour ago.",
98
+ },
99
+ end_time: {
100
+ type: "string",
101
+ description: "End of time range (ISO 8601 format). Defaults to now.",
102
+ },
103
+ },
104
+ required: ["service"],
105
+ },
106
+ },
107
+ ];
108
+ }
109
+ async function handleTraceTool(client, toolName, args) {
110
+ const params = args || {};
111
+ switch (toolName) {
112
+ case "search_traces": {
113
+ const result = await client.searchTraces({
114
+ service: params.service,
115
+ min_duration_ms: params.min_duration_ms,
116
+ has_error: params.has_error,
117
+ start_time: params.start_time,
118
+ end_time: params.end_time,
119
+ limit: Math.min(params.limit || 20, 100),
120
+ });
121
+ // Format traces for readability
122
+ const formattedTraces = result.traces.map(trace => ({
123
+ trace_id: trace.trace_id,
124
+ service: trace.service_name,
125
+ operation: trace.root_span_name,
126
+ duration_ms: trace.duration_ms,
127
+ span_count: trace.span_count,
128
+ has_error: trace.has_error,
129
+ start_time: trace.start_time,
130
+ }));
131
+ return {
132
+ content: [{
133
+ type: "text",
134
+ text: JSON.stringify({
135
+ total: result.total,
136
+ returned: formattedTraces.length,
137
+ traces: formattedTraces,
138
+ }, null, 2),
139
+ }],
140
+ };
141
+ }
142
+ case "get_trace": {
143
+ const traceId = params.trace_id;
144
+ if (!traceId) {
145
+ return {
146
+ content: [{ type: "text", text: "trace_id is required" }],
147
+ isError: true,
148
+ };
149
+ }
150
+ const trace = await client.getTrace(traceId);
151
+ // Build a tree representation of spans
152
+ const spanMap = new Map(trace.spans.map(s => [s.span_id, s]));
153
+ const rootSpans = trace.spans.filter(s => !s.parent_span_id || !spanMap.has(s.parent_span_id));
154
+ function buildSpanTree(span, depth = 0) {
155
+ const indent = " ".repeat(depth);
156
+ const status = span.status === "ERROR" ? "❌" : "✓";
157
+ let tree = `${indent}${status} ${span.name} (${span.service_name}) - ${span.duration_ms}ms\n`;
158
+ const children = trace.spans.filter(s => s.parent_span_id === span.span_id);
159
+ for (const child of children) {
160
+ tree += buildSpanTree(child, depth + 1);
161
+ }
162
+ return tree;
163
+ }
164
+ const traceTree = rootSpans.map(s => buildSpanTree(s)).join("");
165
+ return {
166
+ content: [{
167
+ type: "text",
168
+ text: JSON.stringify({
169
+ trace_id: trace.trace_id,
170
+ total_duration_ms: trace.duration_ms,
171
+ span_count: trace.span_count,
172
+ has_error: trace.has_error,
173
+ root_service: trace.service_name,
174
+ root_operation: trace.root_span_name,
175
+ trace_tree: traceTree,
176
+ spans: trace.spans.map(s => ({
177
+ name: s.name,
178
+ service: s.service_name,
179
+ duration_ms: s.duration_ms,
180
+ status: s.status,
181
+ })),
182
+ }, null, 2),
183
+ }],
184
+ };
185
+ }
186
+ case "traces_analyze_latency": {
187
+ const service = params.service;
188
+ if (!service) {
189
+ return {
190
+ content: [{ type: "text", text: "service is required" }],
191
+ isError: true,
192
+ };
193
+ }
194
+ const result = await client.searchTraces({
195
+ service,
196
+ start_time: params.start_time,
197
+ end_time: params.end_time,
198
+ limit: 1000,
199
+ });
200
+ if (result.traces.length === 0) {
201
+ return {
202
+ content: [{
203
+ type: "text",
204
+ text: JSON.stringify({
205
+ service,
206
+ message: "No traces found for this service in the given time range",
207
+ }, null, 2),
208
+ }],
209
+ };
210
+ }
211
+ // Calculate percentiles
212
+ const durations = result.traces.map(t => t.duration_ms).sort((a, b) => a - b);
213
+ const p50 = durations[Math.floor(durations.length * 0.5)];
214
+ const p95 = durations[Math.floor(durations.length * 0.95)];
215
+ const p99 = durations[Math.floor(durations.length * 0.99)];
216
+ const avg = durations.reduce((a, b) => a + b, 0) / durations.length;
217
+ const max = durations[durations.length - 1];
218
+ const min = durations[0];
219
+ // Find slow traces (> p95)
220
+ const slowTraces = result.traces
221
+ .filter(t => t.duration_ms > p95)
222
+ .slice(0, 5)
223
+ .map(t => ({
224
+ trace_id: t.trace_id,
225
+ operation: t.root_span_name,
226
+ duration_ms: t.duration_ms,
227
+ start_time: t.start_time,
228
+ }));
229
+ // Group by operation
230
+ const operationLatencies = new Map();
231
+ for (const trace of result.traces) {
232
+ const op = trace.root_span_name;
233
+ if (!operationLatencies.has(op)) {
234
+ operationLatencies.set(op, []);
235
+ }
236
+ operationLatencies.get(op).push(trace.duration_ms);
237
+ }
238
+ const operationStats = Array.from(operationLatencies.entries())
239
+ .map(([operation, latencies]) => {
240
+ latencies.sort((a, b) => a - b);
241
+ return {
242
+ operation,
243
+ count: latencies.length,
244
+ avg_ms: Math.round(latencies.reduce((a, b) => a + b, 0) / latencies.length),
245
+ p95_ms: latencies[Math.floor(latencies.length * 0.95)],
246
+ };
247
+ })
248
+ .sort((a, b) => b.p95_ms - a.p95_ms);
249
+ return {
250
+ content: [{
251
+ type: "text",
252
+ text: JSON.stringify({
253
+ service,
254
+ sample_size: result.traces.length,
255
+ latency: {
256
+ min_ms: min,
257
+ avg_ms: Math.round(avg),
258
+ p50_ms: p50,
259
+ p95_ms: p95,
260
+ p99_ms: p99,
261
+ max_ms: max,
262
+ },
263
+ slowest_traces: slowTraces,
264
+ operations_by_latency: operationStats.slice(0, 10),
265
+ }, null, 2),
266
+ }],
267
+ };
268
+ }
269
+ case "traces_find_dependencies": {
270
+ const service = params.service;
271
+ if (!service) {
272
+ return {
273
+ content: [{ type: "text", text: "service is required" }],
274
+ isError: true,
275
+ };
276
+ }
277
+ const result = await client.searchTraces({
278
+ service,
279
+ start_time: params.start_time,
280
+ end_time: params.end_time,
281
+ limit: 500,
282
+ });
283
+ // Analyze spans to find dependencies
284
+ const callsTo = new Map();
285
+ const calledBy = new Map();
286
+ for (const trace of result.traces) {
287
+ const spanMap = new Map(trace.spans.map(s => [s.span_id, s]));
288
+ for (const span of trace.spans) {
289
+ if (span.service_name === service && span.parent_span_id) {
290
+ const parent = spanMap.get(span.parent_span_id);
291
+ if (parent && parent.service_name !== service) {
292
+ // This service is called by parent service
293
+ const existing = calledBy.get(parent.service_name);
294
+ if (existing) {
295
+ existing.count++;
296
+ existing.avg_duration = (existing.avg_duration * (existing.count - 1) + span.duration_ms) / existing.count;
297
+ }
298
+ else {
299
+ calledBy.set(parent.service_name, { count: 1, avg_duration: span.duration_ms });
300
+ }
301
+ }
302
+ }
303
+ if (span.parent_span_id) {
304
+ const parent = spanMap.get(span.parent_span_id);
305
+ if (parent && parent.service_name === service && span.service_name !== service) {
306
+ // This service calls span's service
307
+ const existing = callsTo.get(span.service_name);
308
+ if (existing) {
309
+ existing.count++;
310
+ existing.avg_duration = (existing.avg_duration * (existing.count - 1) + span.duration_ms) / existing.count;
311
+ }
312
+ else {
313
+ callsTo.set(span.service_name, { count: 1, avg_duration: span.duration_ms });
314
+ }
315
+ }
316
+ }
317
+ }
318
+ }
319
+ return {
320
+ content: [{
321
+ type: "text",
322
+ text: JSON.stringify({
323
+ service,
324
+ traces_analyzed: result.traces.length,
325
+ calls_to: Array.from(callsTo.entries())
326
+ .map(([name, data]) => ({
327
+ service: name,
328
+ call_count: data.count,
329
+ avg_latency_ms: Math.round(data.avg_duration),
330
+ }))
331
+ .sort((a, b) => b.call_count - a.call_count),
332
+ called_by: Array.from(calledBy.entries())
333
+ .map(([name, data]) => ({
334
+ service: name,
335
+ call_count: data.count,
336
+ avg_latency_ms: Math.round(data.avg_duration),
337
+ }))
338
+ .sort((a, b) => b.call_count - a.call_count),
339
+ }, null, 2),
340
+ }],
341
+ };
342
+ }
343
+ default:
344
+ return {
345
+ content: [{ type: "text", text: `Unknown trace tool: ${toolName}` }],
346
+ isError: true,
347
+ };
348
+ }
349
+ }
350
+ //# sourceMappingURL=traces.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"traces.js","sourceRoot":"","sources":["../../src/tools/traces.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,48 @@
1
+ {
2
+ "name": "qorrelate-mcp-server",
3
+ "version": "0.1.0",
4
+ "description": "MCP server for Qorrelate observability platform - enables AI agents to query logs, traces, metrics, and alerts",
5
+ "main": "dist/index.js",
6
+ "types": "dist/index.d.ts",
7
+ "bin": {
8
+ "qorrelate-mcp": "./dist/index.js"
9
+ },
10
+ "scripts": {
11
+ "build": "tsc",
12
+ "dev": "tsc --watch",
13
+ "start": "node dist/index.js",
14
+ "prepublishOnly": "npm run build"
15
+ },
16
+ "keywords": [
17
+ "mcp",
18
+ "model-context-protocol",
19
+ "qorrelate",
20
+ "observability",
21
+ "logs",
22
+ "traces",
23
+ "metrics",
24
+ "ai-agents",
25
+ "llm-tools"
26
+ ],
27
+ "author": "Qorrelate",
28
+ "license": "MIT",
29
+ "repository": {
30
+ "type": "git",
31
+ "url": "https://github.com/sethmichaelking/arqive"
32
+ },
33
+ "dependencies": {
34
+ "@modelcontextprotocol/sdk": "^1.0.0"
35
+ },
36
+ "devDependencies": {
37
+ "@types/node": "^20.0.0",
38
+ "typescript": "^5.0.0"
39
+ },
40
+ "engines": {
41
+ "node": ">=18.0.0"
42
+ },
43
+ "files": [
44
+ "dist",
45
+ "README.md"
46
+ ]
47
+ }
48
+