@mcp-consultant-tools/application-insights 28.0.0-beta.7 → 28.0.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.
- package/build/cli/commands/appinsights-commands.d.ts +7 -0
- package/build/cli/commands/appinsights-commands.d.ts.map +1 -0
- package/build/cli/commands/appinsights-commands.js +175 -0
- package/build/cli/commands/appinsights-commands.js.map +1 -0
- package/build/cli/commands/index.d.ts +8 -0
- package/build/cli/commands/index.d.ts.map +1 -0
- package/build/cli/commands/index.js +9 -0
- package/build/cli/commands/index.js.map +1 -0
- package/build/cli/output.d.ts +11 -0
- package/build/cli/output.d.ts.map +1 -0
- package/build/cli/output.js +10 -0
- package/build/cli/output.js.map +1 -0
- package/build/cli.d.ts +9 -0
- package/build/cli.d.ts.map +1 -0
- package/build/cli.js +27 -0
- package/build/cli.js.map +1 -0
- package/build/context-factory.d.ts +4 -0
- package/build/context-factory.d.ts.map +1 -0
- package/build/context-factory.js +45 -0
- package/build/context-factory.js.map +1 -0
- package/package.json +5 -3
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Application Insights CLI Commands - 10 commands mapping to MCP tools
|
|
3
|
+
*/
|
|
4
|
+
import type { Command } from 'commander';
|
|
5
|
+
import type { ServiceContext } from '../../context-factory.js';
|
|
6
|
+
export declare function registerAppInsightsCommands(program: Command, ctx: ServiceContext): void;
|
|
7
|
+
//# sourceMappingURL=appinsights-commands.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"appinsights-commands.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/appinsights-commands.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEzC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAG/D,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,cAAc,GAAG,IAAI,CA8MvF"}
|
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Application Insights CLI Commands - 10 commands mapping to MCP tools
|
|
3
|
+
*/
|
|
4
|
+
import { getGlobalFlags, handleCliError } from '@mcp-consultant-tools/core';
|
|
5
|
+
import { outputResult } from '../output.js';
|
|
6
|
+
export function registerAppInsightsCommands(program, ctx) {
|
|
7
|
+
// ai-list-resources → list-resources
|
|
8
|
+
program
|
|
9
|
+
.command('list-resources')
|
|
10
|
+
.description('List all configured Application Insights resources (active and inactive)')
|
|
11
|
+
.action(async () => {
|
|
12
|
+
try {
|
|
13
|
+
const resources = ctx.appInsights.getAllResources();
|
|
14
|
+
outputResult({ fileName: 'appinsights-resources', data: resources, summary: `Found ${resources.length} resource(s)` }, getGlobalFlags(program));
|
|
15
|
+
}
|
|
16
|
+
catch (error) {
|
|
17
|
+
handleCliError(error, 'list resources');
|
|
18
|
+
}
|
|
19
|
+
});
|
|
20
|
+
// ai-get-metadata → get-metadata
|
|
21
|
+
program
|
|
22
|
+
.command('get-metadata')
|
|
23
|
+
.description('Get schema metadata (tables and columns) for an Application Insights resource')
|
|
24
|
+
.argument('<resourceId>', 'Resource ID (use list-resources to find IDs)')
|
|
25
|
+
.action(async (resourceId) => {
|
|
26
|
+
try {
|
|
27
|
+
const metadata = await ctx.appInsights.getMetadata(resourceId);
|
|
28
|
+
outputResult({ fileName: `metadata-${resourceId}`, data: metadata, summary: `Metadata for resource '${resourceId}'` }, getGlobalFlags(program));
|
|
29
|
+
}
|
|
30
|
+
catch (error) {
|
|
31
|
+
handleCliError(error, 'get metadata');
|
|
32
|
+
}
|
|
33
|
+
});
|
|
34
|
+
// ai-execute-query → query
|
|
35
|
+
program
|
|
36
|
+
.command('query')
|
|
37
|
+
.description('Execute a KQL (Kusto Query Language) query against Application Insights')
|
|
38
|
+
.argument('<resourceId>', 'Resource ID')
|
|
39
|
+
.argument('<query>', 'KQL query string')
|
|
40
|
+
.option('-t, --timespan <timespan>', 'Time range (e.g., PT1H, P1D, PT12H)')
|
|
41
|
+
.action(async (resourceId, query, opts) => {
|
|
42
|
+
try {
|
|
43
|
+
const result = await ctx.appInsights.executeQuery(resourceId, query, opts.timespan);
|
|
44
|
+
const rowCount = result.tables?.[0]?.rows?.length ?? 0;
|
|
45
|
+
outputResult({ fileName: `query-${resourceId}`, data: result, summary: `Query returned ${rowCount} row(s)` }, getGlobalFlags(program));
|
|
46
|
+
}
|
|
47
|
+
catch (error) {
|
|
48
|
+
handleCliError(error, 'execute query');
|
|
49
|
+
}
|
|
50
|
+
});
|
|
51
|
+
// ai-get-exceptions → exceptions
|
|
52
|
+
program
|
|
53
|
+
.command('exceptions')
|
|
54
|
+
.description('Get recent exceptions from Application Insights')
|
|
55
|
+
.argument('<resourceId>', 'Resource ID')
|
|
56
|
+
.option('-t, --timespan <timespan>', 'Time range (default: PT1H)', 'PT1H')
|
|
57
|
+
.option('-l, --limit <n>', 'Maximum number of results (default: 50)', '50')
|
|
58
|
+
.action(async (resourceId, opts) => {
|
|
59
|
+
try {
|
|
60
|
+
const result = await ctx.appInsights.getRecentExceptions(resourceId, opts.timespan, parseInt(opts.limit));
|
|
61
|
+
const rowCount = result.tables?.[0]?.rows?.length ?? 0;
|
|
62
|
+
outputResult({ fileName: `exceptions-${resourceId}`, data: result, summary: `Found ${rowCount} exception(s) in ${opts.timespan}` }, getGlobalFlags(program));
|
|
63
|
+
}
|
|
64
|
+
catch (error) {
|
|
65
|
+
handleCliError(error, 'get exceptions');
|
|
66
|
+
}
|
|
67
|
+
});
|
|
68
|
+
// ai-get-slow-requests → slow-requests
|
|
69
|
+
program
|
|
70
|
+
.command('slow-requests')
|
|
71
|
+
.description('Get slow HTTP requests (above duration threshold)')
|
|
72
|
+
.argument('<resourceId>', 'Resource ID')
|
|
73
|
+
.option('-d, --duration <ms>', 'Duration threshold in milliseconds (default: 5000)', '5000')
|
|
74
|
+
.option('-t, --timespan <timespan>', 'Time range (default: PT1H)', 'PT1H')
|
|
75
|
+
.option('-l, --limit <n>', 'Maximum number of results (default: 50)', '50')
|
|
76
|
+
.action(async (resourceId, opts) => {
|
|
77
|
+
try {
|
|
78
|
+
const result = await ctx.appInsights.getSlowRequests(resourceId, parseInt(opts.duration), opts.timespan, parseInt(opts.limit));
|
|
79
|
+
const rowCount = result.tables?.[0]?.rows?.length ?? 0;
|
|
80
|
+
outputResult({ fileName: `slow-requests-${resourceId}`, data: result, summary: `Found ${rowCount} slow request(s) (>${opts.duration}ms) in ${opts.timespan}` }, getGlobalFlags(program));
|
|
81
|
+
}
|
|
82
|
+
catch (error) {
|
|
83
|
+
handleCliError(error, 'get slow requests');
|
|
84
|
+
}
|
|
85
|
+
});
|
|
86
|
+
// ai-get-op-perf → op-perf
|
|
87
|
+
program
|
|
88
|
+
.command('op-perf')
|
|
89
|
+
.description('Get performance summary by operation (request count, avg duration, percentiles)')
|
|
90
|
+
.argument('<resourceId>', 'Resource ID')
|
|
91
|
+
.option('-t, --timespan <timespan>', 'Time range (default: PT1H)', 'PT1H')
|
|
92
|
+
.action(async (resourceId, opts) => {
|
|
93
|
+
try {
|
|
94
|
+
const result = await ctx.appInsights.getOperationPerformance(resourceId, opts.timespan);
|
|
95
|
+
const rowCount = result.tables?.[0]?.rows?.length ?? 0;
|
|
96
|
+
outputResult({ fileName: `op-perf-${resourceId}`, data: result, summary: `Performance summary for ${rowCount} operation(s) in ${opts.timespan}` }, getGlobalFlags(program));
|
|
97
|
+
}
|
|
98
|
+
catch (error) {
|
|
99
|
+
handleCliError(error, 'get operation performance');
|
|
100
|
+
}
|
|
101
|
+
});
|
|
102
|
+
// ai-get-failed-deps → failed-deps
|
|
103
|
+
program
|
|
104
|
+
.command('failed-deps')
|
|
105
|
+
.description('Get failed dependency calls (external APIs, databases, etc.)')
|
|
106
|
+
.argument('<resourceId>', 'Resource ID')
|
|
107
|
+
.option('-t, --timespan <timespan>', 'Time range (default: PT1H)', 'PT1H')
|
|
108
|
+
.option('-l, --limit <n>', 'Maximum number of results (default: 50)', '50')
|
|
109
|
+
.action(async (resourceId, opts) => {
|
|
110
|
+
try {
|
|
111
|
+
const result = await ctx.appInsights.getFailedDependencies(resourceId, opts.timespan, parseInt(opts.limit));
|
|
112
|
+
const rowCount = result.tables?.[0]?.rows?.length ?? 0;
|
|
113
|
+
outputResult({ fileName: `failed-deps-${resourceId}`, data: result, summary: `Found ${rowCount} failed dependency call(s) in ${opts.timespan}` }, getGlobalFlags(program));
|
|
114
|
+
}
|
|
115
|
+
catch (error) {
|
|
116
|
+
handleCliError(error, 'get failed dependencies');
|
|
117
|
+
}
|
|
118
|
+
});
|
|
119
|
+
// ai-get-traces → traces
|
|
120
|
+
program
|
|
121
|
+
.command('traces')
|
|
122
|
+
.description('Get diagnostic traces/logs filtered by severity level')
|
|
123
|
+
.argument('<resourceId>', 'Resource ID')
|
|
124
|
+
.option('-s, --severity <level>', 'Minimum severity (0=Verbose, 1=Info, 2=Warning, 3=Error, 4=Critical)', '2')
|
|
125
|
+
.option('-t, --timespan <timespan>', 'Time range (default: PT1H)', 'PT1H')
|
|
126
|
+
.option('-l, --limit <n>', 'Maximum number of results (default: 100)', '100')
|
|
127
|
+
.action(async (resourceId, opts) => {
|
|
128
|
+
try {
|
|
129
|
+
const severityNames = ['Verbose', 'Info', 'Warning', 'Error', 'Critical'];
|
|
130
|
+
const severityLevel = parseInt(opts.severity);
|
|
131
|
+
const result = await ctx.appInsights.getTracesBySeverity(resourceId, severityLevel, opts.timespan, parseInt(opts.limit));
|
|
132
|
+
const rowCount = result.tables?.[0]?.rows?.length ?? 0;
|
|
133
|
+
outputResult({ fileName: `traces-${resourceId}`, data: result, summary: `Found ${rowCount} trace(s) (>=${severityNames[severityLevel] || severityLevel}) in ${opts.timespan}` }, getGlobalFlags(program));
|
|
134
|
+
}
|
|
135
|
+
catch (error) {
|
|
136
|
+
handleCliError(error, 'get traces');
|
|
137
|
+
}
|
|
138
|
+
});
|
|
139
|
+
// ai-get-availability → availability
|
|
140
|
+
program
|
|
141
|
+
.command('availability')
|
|
142
|
+
.description('Get availability test results and uptime statistics')
|
|
143
|
+
.argument('<resourceId>', 'Resource ID')
|
|
144
|
+
.option('-t, --timespan <timespan>', 'Time range (default: PT24H)', 'PT24H')
|
|
145
|
+
.action(async (resourceId, opts) => {
|
|
146
|
+
try {
|
|
147
|
+
const result = await ctx.appInsights.getAvailabilityResults(resourceId, opts.timespan);
|
|
148
|
+
const rowCount = result.tables?.[0]?.rows?.length ?? 0;
|
|
149
|
+
outputResult({ fileName: `availability-${resourceId}`, data: result, summary: `Availability results for ${rowCount} test(s) in ${opts.timespan}` }, getGlobalFlags(program));
|
|
150
|
+
}
|
|
151
|
+
catch (error) {
|
|
152
|
+
handleCliError(error, 'get availability');
|
|
153
|
+
}
|
|
154
|
+
});
|
|
155
|
+
// ai-get-custom-events → custom-events
|
|
156
|
+
program
|
|
157
|
+
.command('custom-events')
|
|
158
|
+
.description('Get custom application events')
|
|
159
|
+
.argument('<resourceId>', 'Resource ID')
|
|
160
|
+
.option('-n, --event-name <name>', 'Filter by specific event name')
|
|
161
|
+
.option('-t, --timespan <timespan>', 'Time range (default: PT1H)', 'PT1H')
|
|
162
|
+
.option('-l, --limit <n>', 'Maximum number of results (default: 100)', '100')
|
|
163
|
+
.action(async (resourceId, opts) => {
|
|
164
|
+
try {
|
|
165
|
+
const result = await ctx.appInsights.getCustomEvents(resourceId, opts.eventName, opts.timespan, parseInt(opts.limit));
|
|
166
|
+
const rowCount = result.tables?.[0]?.rows?.length ?? 0;
|
|
167
|
+
const filterDesc = opts.eventName ? ` for '${opts.eventName}'` : '';
|
|
168
|
+
outputResult({ fileName: `custom-events-${resourceId}`, data: result, summary: `Found ${rowCount} custom event(s)${filterDesc} in ${opts.timespan}` }, getGlobalFlags(program));
|
|
169
|
+
}
|
|
170
|
+
catch (error) {
|
|
171
|
+
handleCliError(error, 'get custom events');
|
|
172
|
+
}
|
|
173
|
+
});
|
|
174
|
+
}
|
|
175
|
+
//# sourceMappingURL=appinsights-commands.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"appinsights-commands.js","sourceRoot":"","sources":["../../../src/cli/commands/appinsights-commands.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CLI Commands barrel export + combined registration
|
|
3
|
+
*/
|
|
4
|
+
import type { Command } from 'commander';
|
|
5
|
+
import type { ServiceContext } from '../../context-factory.js';
|
|
6
|
+
export declare function registerAllCommands(program: Command, ctx: ServiceContext): void;
|
|
7
|
+
export { registerAppInsightsCommands } from './appinsights-commands.js';
|
|
8
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAG/D,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,cAAc,GAAG,IAAI,CAE/E;AAED,OAAO,EAAE,2BAA2B,EAAE,MAAM,2BAA2B,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CLI Commands barrel export + combined registration
|
|
3
|
+
*/
|
|
4
|
+
import { registerAppInsightsCommands } from './appinsights-commands.js';
|
|
5
|
+
export function registerAllCommands(program, ctx) {
|
|
6
|
+
registerAppInsightsCommands(program, ctx);
|
|
7
|
+
}
|
|
8
|
+
export { registerAppInsightsCommands } from './appinsights-commands.js';
|
|
9
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cli/commands/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,2BAA2B,EAAE,MAAM,2BAA2B,CAAC;AAExE,MAAM,UAAU,mBAAmB,CAAC,OAAgB,EAAE,GAAmB;IACvE,2BAA2B,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;AAC5C,CAAC;AAED,OAAO,EAAE,2BAA2B,EAAE,MAAM,2BAA2B,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CLI output helper for application-insights package.
|
|
3
|
+
* Thin wrapper setting the package-specific cache directory.
|
|
4
|
+
*/
|
|
5
|
+
import { type GlobalFlags } from '@mcp-consultant-tools/core';
|
|
6
|
+
export declare function outputResult(opts: {
|
|
7
|
+
fileName: string;
|
|
8
|
+
data: unknown;
|
|
9
|
+
summary: string;
|
|
10
|
+
}, flags: GlobalFlags): void;
|
|
11
|
+
//# sourceMappingURL=output.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"output.d.ts","sourceRoot":"","sources":["../../src/cli/output.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAoC,KAAK,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAIhG,wBAAgB,YAAY,CAC1B,IAAI,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,EAC1D,KAAK,EAAE,WAAW,GACjB,IAAI,CAEN"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CLI output helper for application-insights package.
|
|
3
|
+
* Thin wrapper setting the package-specific cache directory.
|
|
4
|
+
*/
|
|
5
|
+
import { outputResult as coreOutputResult } from '@mcp-consultant-tools/core';
|
|
6
|
+
const CACHE_DIR = '.mcp-appins-cache';
|
|
7
|
+
export function outputResult(opts, flags) {
|
|
8
|
+
coreOutputResult({ ...opts, cacheDir: CACHE_DIR }, flags);
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=output.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"output.js","sourceRoot":"","sources":["../../src/cli/output.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,YAAY,IAAI,gBAAgB,EAAoB,MAAM,4BAA4B,CAAC;AAEhG,MAAM,SAAS,GAAG,mBAAmB,CAAC;AAEtC,MAAM,UAAU,YAAY,CAC1B,IAA0D,EAC1D,KAAkB;IAElB,gBAAgB,CAAC,EAAE,GAAG,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,KAAK,CAAC,CAAC;AAC5D,CAAC"}
|
package/build/cli.d.ts
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* @mcp-consultant-tools/application-insights CLI
|
|
4
|
+
*
|
|
5
|
+
* Command-line interface for Application Insights operations.
|
|
6
|
+
* Reuses the same ServiceContext and services as the MCP server.
|
|
7
|
+
*/
|
|
8
|
+
export {};
|
|
9
|
+
//# sourceMappingURL=cli.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA;;;;;GAKG"}
|
package/build/cli.js
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* @mcp-consultant-tools/application-insights CLI
|
|
4
|
+
*
|
|
5
|
+
* Command-line interface for Application Insights operations.
|
|
6
|
+
* Reuses the same ServiceContext and services as the MCP server.
|
|
7
|
+
*/
|
|
8
|
+
import { createCliProgram, loadEnvForCli } from '@mcp-consultant-tools/core';
|
|
9
|
+
import { createServiceContext } from './context-factory.js';
|
|
10
|
+
import { registerAllCommands } from './cli/commands/index.js';
|
|
11
|
+
const program = createCliProgram({
|
|
12
|
+
name: 'mcp-appins-cli',
|
|
13
|
+
description: 'Application Insights CLI - queries, exceptions, performance, dependencies, traces',
|
|
14
|
+
version: '27.0.0',
|
|
15
|
+
});
|
|
16
|
+
// Load env before parsing (--env-file handled by commander hook)
|
|
17
|
+
program.hook('preAction', (thisCommand) => {
|
|
18
|
+
const opts = thisCommand.opts();
|
|
19
|
+
loadEnvForCli(opts.envFile);
|
|
20
|
+
});
|
|
21
|
+
const ctx = createServiceContext();
|
|
22
|
+
registerAllCommands(program, ctx);
|
|
23
|
+
program.parseAsync(process.argv).catch((error) => {
|
|
24
|
+
console.error('CLI error:', error.message);
|
|
25
|
+
process.exit(1);
|
|
26
|
+
});
|
|
27
|
+
//# sourceMappingURL=cli.js.map
|
package/build/cli.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA;;;;;GAKG;AAEH,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC7E,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAE9D,MAAM,OAAO,GAAG,gBAAgB,CAAC;IAC/B,IAAI,EAAE,gBAAgB;IACtB,WAAW,EAAE,mFAAmF;IAChG,OAAO,EAAE,QAAQ;CAClB,CAAC,CAAC;AAEH,iEAAiE;AACjE,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,WAAgB,EAAE,EAAE;IAC7C,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC;IAChC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAC9B,CAAC,CAAC,CAAC;AAEH,MAAM,GAAG,GAAG,oBAAoB,EAAE,CAAC;AACnC,mBAAmB,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;AAElC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,KAAU,EAAE,EAAE;IACpD,OAAO,CAAC,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IAC3C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context-factory.d.ts","sourceRoot":"","sources":["../src/context-factory.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD,YAAY,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD,wBAAgB,oBAAoB,IAAI,cAAc,CAyCrD"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared service context factory - used by both MCP server and CLI.
|
|
3
|
+
*/
|
|
4
|
+
import { ApplicationInsightsService } from './services/appinsights-service.js';
|
|
5
|
+
export function createServiceContext() {
|
|
6
|
+
let service = null;
|
|
7
|
+
function getService() {
|
|
8
|
+
if (!service) {
|
|
9
|
+
let resources = [];
|
|
10
|
+
if (process.env.APPINSIGHTS_RESOURCES) {
|
|
11
|
+
try {
|
|
12
|
+
resources = JSON.parse(process.env.APPINSIGHTS_RESOURCES);
|
|
13
|
+
}
|
|
14
|
+
catch {
|
|
15
|
+
throw new Error('Failed to parse APPINSIGHTS_RESOURCES JSON');
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
else if (process.env.APPINSIGHTS_APP_ID) {
|
|
19
|
+
resources = [{
|
|
20
|
+
id: 'default',
|
|
21
|
+
name: 'Default Application Insights',
|
|
22
|
+
appId: process.env.APPINSIGHTS_APP_ID,
|
|
23
|
+
active: true,
|
|
24
|
+
}];
|
|
25
|
+
}
|
|
26
|
+
else {
|
|
27
|
+
throw new Error('Missing Application Insights configuration: APPINSIGHTS_RESOURCES or APPINSIGHTS_APP_ID');
|
|
28
|
+
}
|
|
29
|
+
const config = {
|
|
30
|
+
resources,
|
|
31
|
+
authMethod: (process.env.APPINSIGHTS_AUTH_METHOD || 'entra-id'),
|
|
32
|
+
tenantId: process.env.APPINSIGHTS_TENANT_ID || '',
|
|
33
|
+
clientId: process.env.APPINSIGHTS_CLIENT_ID || '',
|
|
34
|
+
clientSecret: process.env.APPINSIGHTS_CLIENT_SECRET || '',
|
|
35
|
+
};
|
|
36
|
+
service = new ApplicationInsightsService(config);
|
|
37
|
+
console.error('Application Insights service initialized');
|
|
38
|
+
}
|
|
39
|
+
return service;
|
|
40
|
+
}
|
|
41
|
+
return {
|
|
42
|
+
get appInsights() { return getService(); },
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=context-factory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context-factory.js","sourceRoot":"","sources":["../src/context-factory.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,0BAA0B,EAAE,MAAM,mCAAmC,CAAC;AAM/E,MAAM,UAAU,oBAAoB;IAClC,IAAI,OAAO,GAAsC,IAAI,CAAC;IAEtD,SAAS,UAAU;QACjB,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,IAAI,SAAS,GAAU,EAAE,CAAC;YAE1B,IAAI,OAAO,CAAC,GAAG,CAAC,qBAAqB,EAAE,CAAC;gBACtC,IAAI,CAAC;oBACH,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;gBAC5D,CAAC;gBAAC,MAAM,CAAC;oBACP,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;gBAChE,CAAC;YACH,CAAC;iBAAM,IAAI,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,CAAC;gBAC1C,SAAS,GAAG,CAAC;wBACX,EAAE,EAAE,SAAS;wBACb,IAAI,EAAE,8BAA8B;wBACpC,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,kBAAkB;wBACrC,MAAM,EAAE,IAAI;qBACb,CAAC,CAAC;YACL,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,KAAK,CAAC,yFAAyF,CAAC,CAAC;YAC7G,CAAC;YAED,MAAM,MAAM,GAA8B;gBACxC,SAAS;gBACT,UAAU,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,uBAAuB,IAAI,UAAU,CAA2B;gBACzF,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,EAAE;gBACjD,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,EAAE;gBACjD,YAAY,EAAE,OAAO,CAAC,GAAG,CAAC,yBAAyB,IAAI,EAAE;aAC1D,CAAC;YAEF,OAAO,GAAG,IAAI,0BAA0B,CAAC,MAAM,CAAC,CAAC;YACjD,OAAO,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC;QAC5D,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,OAAO;QACL,IAAI,WAAW,KAAK,OAAO,UAAU,EAAE,CAAC,CAAC,CAAC;KAC3C,CAAC;AACJ,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mcp-consultant-tools/application-insights",
|
|
3
|
-
"version": "28.0.0
|
|
3
|
+
"version": "28.0.0",
|
|
4
4
|
"description": "MCP server for Azure Application Insights - telemetry and performance monitoring",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./build/index.js",
|
|
@@ -40,9 +40,10 @@
|
|
|
40
40
|
},
|
|
41
41
|
"dependencies": {
|
|
42
42
|
"@azure/msal-node": "^3.3.0",
|
|
43
|
-
"@mcp-consultant-tools/core": "28.0.0
|
|
43
|
+
"@mcp-consultant-tools/core": "28.0.0",
|
|
44
44
|
"@modelcontextprotocol/sdk": "^1.0.4",
|
|
45
45
|
"axios": "^1.8.3",
|
|
46
|
+
"commander": "^14.0.3",
|
|
46
47
|
"zod": "^3.24.1"
|
|
47
48
|
},
|
|
48
49
|
"devDependencies": {
|
|
@@ -50,6 +51,7 @@
|
|
|
50
51
|
"typescript": "^5.8.2"
|
|
51
52
|
},
|
|
52
53
|
"bin": {
|
|
53
|
-
"mcp-appins": "build/index.js"
|
|
54
|
+
"mcp-appins": "build/index.js",
|
|
55
|
+
"mcp-appins-cli": "build/cli.js"
|
|
54
56
|
}
|
|
55
57
|
}
|