newrelic-mcp 1.1.2 → 2.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.
@@ -0,0 +1,38 @@
1
+ import { z } from 'zod';
2
+ export declare const RestClientOptions: z.ZodObject<{
3
+ apiKey: z.ZodString;
4
+ region: z.ZodDefault<z.ZodEnum<["US", "EU"]>>;
5
+ }, "strip", z.ZodTypeAny, {
6
+ region: "US" | "EU";
7
+ apiKey: string;
8
+ }, {
9
+ apiKey: string;
10
+ region?: "US" | "EU" | undefined;
11
+ }>;
12
+ export type RestClientOptions = z.infer<typeof RestClientOptions>;
13
+ export type Region = 'US' | 'EU';
14
+ declare function baseUrlForRegion(region: Region): string;
15
+ declare function serializeQuery(params: Record<string, unknown> | undefined): string;
16
+ declare function parseLinkHeader(linkHeader: string | null): Record<string, string>;
17
+ export interface RestResponse<T> {
18
+ status: number;
19
+ data: T;
20
+ links?: Record<string, string>;
21
+ url: string;
22
+ }
23
+ export declare class NewRelicRestClient {
24
+ private readonly apiKey;
25
+ private readonly region;
26
+ constructor(options: RestClientOptions);
27
+ private buildUrl;
28
+ get<T>(path: string, query?: Record<string, unknown>): Promise<RestResponse<T>>;
29
+ post<T>(path: string, body: unknown): Promise<RestResponse<T>>;
30
+ delete<T>(path: string): Promise<RestResponse<T>>;
31
+ }
32
+ export declare const __test__: {
33
+ serializeQuery: typeof serializeQuery;
34
+ parseLinkHeader: typeof parseLinkHeader;
35
+ baseUrlForRegion: typeof baseUrlForRegion;
36
+ };
37
+ export {};
38
+ //# sourceMappingURL=rest-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rest-client.d.ts","sourceRoot":"","sources":["../../src/client/rest-client.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,iBAAiB;;;;;;;;;EAG5B,CAAC;AACH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAElE,MAAM,MAAM,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC;AAEjC,iBAAS,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAEhD;AAED,iBAAS,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GAAG,MAAM,CAc3E;AAED,iBAAS,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAe1E;AAED,MAAM,WAAW,YAAY,CAAC,CAAC;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,CAAC,CAAC;IACR,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,GAAG,EAAE,MAAM,CAAC;CACb;AAED,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;gBAEpB,OAAO,EAAE,iBAAiB;IAMtC,OAAO,CAAC,QAAQ;IAQV,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IAiB/E,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IAkB9D,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;CAgBxD;AAED,eAAO,MAAM,QAAQ;;;;CAAwD,CAAC"}
@@ -0,0 +1,116 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.__test__ = exports.NewRelicRestClient = exports.RestClientOptions = void 0;
4
+ /* eslint-disable @typescript-eslint/explicit-function-return-type */
5
+ const zod_1 = require("zod");
6
+ exports.RestClientOptions = zod_1.z.object({
7
+ apiKey: zod_1.z.string().min(1),
8
+ region: zod_1.z.enum(['US', 'EU']).default('US'),
9
+ });
10
+ function baseUrlForRegion(region) {
11
+ return region === 'EU' ? 'https://api.eu.newrelic.com/v2' : 'https://api.newrelic.com/v2';
12
+ }
13
+ function serializeQuery(params) {
14
+ if (!params)
15
+ return '';
16
+ const query = new URLSearchParams();
17
+ for (const [key, value] of Object.entries(params)) {
18
+ if (value === undefined || value === null)
19
+ continue;
20
+ if (Array.isArray(value)) {
21
+ // arrays as repeated params: names[]=a&names[]=b
22
+ value.forEach((v) => query.append(`${key}[]`, String(v)));
23
+ }
24
+ else {
25
+ query.set(key, String(value));
26
+ }
27
+ }
28
+ const qs = query.toString();
29
+ return qs ? `?${qs}` : '';
30
+ }
31
+ function parseLinkHeader(linkHeader) {
32
+ if (!linkHeader)
33
+ return {};
34
+ const parts = linkHeader.split(',');
35
+ const links = {};
36
+ for (const part of parts) {
37
+ const section = part.split(';');
38
+ if (section.length < 2)
39
+ continue;
40
+ const url = section[0].trim().replace(/^<|>$/g, '');
41
+ const relMatch = section[1].match(/rel="(.*)"/);
42
+ const rel = relMatch?.[1];
43
+ if (rel) {
44
+ links[rel] = url;
45
+ }
46
+ }
47
+ return links;
48
+ }
49
+ class NewRelicRestClient {
50
+ apiKey;
51
+ region;
52
+ constructor(options) {
53
+ const parsed = exports.RestClientOptions.parse(options);
54
+ this.apiKey = parsed.apiKey;
55
+ this.region = parsed.region;
56
+ }
57
+ buildUrl(path, query) {
58
+ const base = baseUrlForRegion(this.region);
59
+ const normalizedPath = path.startsWith('/') ? path : `/${path}`;
60
+ const hasJson = normalizedPath.endsWith('.json');
61
+ const qs = serializeQuery(query);
62
+ return `${base}${hasJson ? normalizedPath : `${normalizedPath}.json`}${qs}`;
63
+ }
64
+ async get(path, query) {
65
+ const url = this.buildUrl(path, query);
66
+ const response = await fetch(url, {
67
+ method: 'GET',
68
+ headers: {
69
+ 'Content-Type': 'application/json',
70
+ 'Api-Key': this.apiKey,
71
+ },
72
+ });
73
+ const links = parseLinkHeader(response.headers.get('link'));
74
+ const data = (await response.json());
75
+ if (!response.ok) {
76
+ throw new Error(`REST API error: ${response.status} ${response.statusText}`);
77
+ }
78
+ return { status: response.status, data, links, url };
79
+ }
80
+ async post(path, body) {
81
+ const url = this.buildUrl(path);
82
+ const response = await fetch(url, {
83
+ method: 'POST',
84
+ headers: {
85
+ 'Content-Type': 'application/json',
86
+ 'Api-Key': this.apiKey,
87
+ },
88
+ body: JSON.stringify(body),
89
+ });
90
+ const links = parseLinkHeader(response.headers.get('link'));
91
+ const data = (await response.json());
92
+ if (!response.ok) {
93
+ throw new Error(`REST API error: ${response.status} ${response.statusText}`);
94
+ }
95
+ return { status: response.status, data, links, url };
96
+ }
97
+ async delete(path) {
98
+ const url = this.buildUrl(path);
99
+ const response = await fetch(url, {
100
+ method: 'DELETE',
101
+ headers: {
102
+ 'Content-Type': 'application/json',
103
+ 'Api-Key': this.apiKey,
104
+ },
105
+ });
106
+ const links = parseLinkHeader(response.headers.get('link'));
107
+ const data = (await response.json());
108
+ if (!response.ok) {
109
+ throw new Error(`REST API error: ${response.status} ${response.statusText}`);
110
+ }
111
+ return { status: response.status, data, links, url };
112
+ }
113
+ }
114
+ exports.NewRelicRestClient = NewRelicRestClient;
115
+ exports.__test__ = { serializeQuery, parseLinkHeader, baseUrlForRegion };
116
+ //# sourceMappingURL=rest-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rest-client.js","sourceRoot":"","sources":["../../src/client/rest-client.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":";AAIA,OAAO,EAKL,KAAK,IAAI,EACV,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAQ1D,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,KAAK,CAAoB;IACjC,OAAO,CAAC,gBAAgB,CAAC,CAAS;gBAEtB,MAAM,CAAC,EAAE,cAAc;IA4BnC,OAAO,CAAC,aAAa;IAwCrB,OAAO,CAAC,aAAa;IA8Bf,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAYtB,WAAW,CACf,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE;QAAE,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,GAChF,OAAO,CAAC,OAAO,CAAC;IA+GnB,OAAO,CAAC,iBAAiB;IAczB,WAAW;;;;;IAQX,kBAAkB,IAAI,MAAM,EAAE;IAI9B,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS;IAIvC,mBAAmB,IAAI,MAAM,GAAG,SAAS;CAG1C"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":";AAIA,OAAO,EAKL,KAAK,IAAI,EACV,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAW1D,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,KAAK,CAAoB;IACjC,OAAO,CAAC,gBAAgB,CAAC,CAAS;gBAEtB,MAAM,CAAC,EAAE,cAAc;IA4BnC,OAAO,CAAC,aAAa;IAmDrB,OAAO,CAAC,aAAa;IA8Bf,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAYtB,WAAW,CACf,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE;QAAE,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,GAChF,OAAO,CAAC,OAAO,CAAC;IA2InB,OAAO,CAAC,iBAAiB;IAczB,WAAW;;;;;IAQX,kBAAkB,IAAI,MAAM,EAAE;IAI9B,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS;IAIvC,mBAAmB,IAAI,MAAM,GAAG,SAAS;CAG1C"}
package/dist/server.js CHANGED
@@ -11,6 +11,9 @@ const apm_1 = require("./tools/apm");
11
11
  const entity_1 = require("./tools/entity");
12
12
  const nerdgraph_1 = require("./tools/nerdgraph");
13
13
  const nrql_1 = require("./tools/nrql");
14
+ const apm_2 = require("./tools/rest/apm");
15
+ const deployments_1 = require("./tools/rest/deployments");
16
+ const metrics_1 = require("./tools/rest/metrics");
14
17
  const synthetics_1 = require("./tools/synthetics");
15
18
  class NewRelicMCPServer {
16
19
  server;
@@ -47,6 +50,9 @@ class NewRelicMCPServer {
47
50
  const alertTool = new alert_1.AlertTool(this.client);
48
51
  const syntheticsTool = new synthetics_1.SyntheticsTool(this.client);
49
52
  const nerdGraphTool = new nerdgraph_1.NerdGraphTool(this.client);
53
+ const restDeployments = new deployments_1.RestDeploymentsTool();
54
+ const restApm = new apm_2.RestApmTool();
55
+ const restMetrics = new metrics_1.RestMetricsTool();
50
56
  // Register all tools
51
57
  const tools = [
52
58
  nrqlTool.getToolDefinition(),
@@ -59,6 +65,14 @@ class NewRelicMCPServer {
59
65
  syntheticsTool.getListMonitorsTool(),
60
66
  syntheticsTool.getCreateMonitorTool(),
61
67
  nerdGraphTool.getQueryTool(),
68
+ // REST v2 tools
69
+ restDeployments.getCreateTool(),
70
+ restDeployments.getListTool(),
71
+ restDeployments.getDeleteTool(),
72
+ restApm.getListApplicationsTool(),
73
+ restMetrics.getListMetricNamesTool(),
74
+ restMetrics.getMetricDataTool(),
75
+ restMetrics.getListApplicationHostsTool(),
62
76
  {
63
77
  name: 'get_account_details',
64
78
  description: 'Get New Relic account details',
@@ -128,6 +142,20 @@ class NewRelicMCPServer {
128
142
  ...args,
129
143
  target_account_id: accountId,
130
144
  });
145
+ case 'create_deployment':
146
+ return await new deployments_1.RestDeploymentsTool().create(args);
147
+ case 'list_deployments_rest':
148
+ return await new deployments_1.RestDeploymentsTool().list(args);
149
+ case 'delete_deployment':
150
+ return await new deployments_1.RestDeploymentsTool().delete(args);
151
+ case 'list_apm_applications_rest':
152
+ return await new apm_2.RestApmTool().listApplications(args);
153
+ case 'list_metric_names_for_host':
154
+ return await new metrics_1.RestMetricsTool().listMetricNames(args);
155
+ case 'get_metric_data_for_host':
156
+ return await new metrics_1.RestMetricsTool().getMetricData(args);
157
+ case 'list_application_hosts':
158
+ return await new metrics_1.RestMetricsTool().listApplicationHosts(args);
131
159
  case 'get_account_details':
132
160
  return await this.client.getAccountDetails(accountId);
133
161
  case 'list_alert_policies':
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ import type { Tool } from '@modelcontextprotocol/sdk/types.js';
2
+ import { type Region } from '../../client/rest-client';
3
+ type ListPoliciesArgs = {
4
+ filter_name?: string;
5
+ page?: number;
6
+ auto_paginate?: boolean;
7
+ region?: Region;
8
+ };
9
+ type ListIncidentsArgs = {
10
+ page?: number;
11
+ auto_paginate?: boolean;
12
+ only_open?: boolean;
13
+ priority?: 'CRITICAL' | 'HIGH' | 'MEDIUM' | 'LOW';
14
+ region?: Region;
15
+ };
16
+ export declare class RestAlertsTool {
17
+ private restFor;
18
+ getListPoliciesTool(): Tool;
19
+ listPolicies(args: ListPoliciesArgs): Promise<unknown>;
20
+ getListIncidentsTool(): Tool;
21
+ listIncidents(args: ListIncidentsArgs): Promise<unknown>;
22
+ }
23
+ export {};
24
+ //# sourceMappingURL=alerts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"alerts.d.ts","sourceRoot":"","sources":["../../../src/tools/rest/alerts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAC/D,OAAO,EAAsB,KAAK,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAE3E,KAAK,gBAAgB,GAAG;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,KAAK,iBAAiB,GAAG;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;IAClD,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,qBAAa,cAAc;IACzB,OAAO,CAAC,OAAO;IAKf,mBAAmB,IAAI,IAAI;IAgBrB,YAAY,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC;IAU5D,oBAAoB,IAAI,IAAI;IAiBtB,aAAa,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,OAAO,CAAC;CAwC/D"}
@@ -0,0 +1,94 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RestAlertsTool = void 0;
4
+ const rest_client_1 = require("../../client/rest-client");
5
+ class RestAlertsTool {
6
+ restFor(region) {
7
+ const apiKey = process.env.NEW_RELIC_API_KEY;
8
+ return new rest_client_1.NewRelicRestClient({ apiKey, region: region ?? 'US' });
9
+ }
10
+ getListPoliciesTool() {
11
+ return {
12
+ name: 'list_alert_policies_rest',
13
+ description: 'List alert policies via REST v2.',
14
+ inputSchema: {
15
+ type: 'object',
16
+ properties: {
17
+ filter_name: { type: 'string' },
18
+ page: { type: 'number' },
19
+ auto_paginate: { type: 'boolean' },
20
+ region: { type: 'string', enum: ['US', 'EU'] },
21
+ },
22
+ },
23
+ };
24
+ }
25
+ async listPolicies(args) {
26
+ const client = this.restFor(args.region);
27
+ const path = '/alerts_policies';
28
+ const query = {};
29
+ if (args.filter_name)
30
+ query['filter[name]'] = args.filter_name;
31
+ if (args.page)
32
+ query.page = args.page;
33
+ const res = await client.get(path, query);
34
+ return res;
35
+ }
36
+ getListIncidentsTool() {
37
+ return {
38
+ name: 'list_open_incidents_rest',
39
+ description: 'List alert incidents via REST v2 (client-side filtering of open/priority).',
40
+ inputSchema: {
41
+ type: 'object',
42
+ properties: {
43
+ only_open: { type: 'boolean' },
44
+ priority: { type: 'string', enum: ['CRITICAL', 'HIGH', 'MEDIUM', 'LOW'] },
45
+ page: { type: 'number' },
46
+ auto_paginate: { type: 'boolean' },
47
+ region: { type: 'string', enum: ['US', 'EU'] },
48
+ },
49
+ },
50
+ };
51
+ }
52
+ async listIncidents(args) {
53
+ const client = this.restFor(args.region);
54
+ const path = '/alerts_incidents';
55
+ const query = {};
56
+ if (args.page)
57
+ query.page = args.page;
58
+ const results = [];
59
+ let nextUrl;
60
+ let page = args.page;
61
+ do {
62
+ const res = await client.get(path, page ? { ...query, page } : query);
63
+ results.push(res.data);
64
+ const next = res.links?.next;
65
+ if (args.auto_paginate && next) {
66
+ const u = new URL(next);
67
+ const p = u.searchParams.get('page');
68
+ page = p ? Number(p) : undefined;
69
+ nextUrl = next;
70
+ }
71
+ else {
72
+ nextUrl = undefined;
73
+ }
74
+ } while (args.auto_paginate && nextUrl);
75
+ const combined = args.auto_paginate ? results.flat() : results[0];
76
+ // Apply client-side filters if requested
77
+ let items = combined;
78
+ if (Array.isArray(combined)) {
79
+ items = combined.filter((inc) => {
80
+ let ok = true;
81
+ if (args.only_open === true) {
82
+ ok = ok && (!inc.closed_at || inc.closed_at === 0);
83
+ }
84
+ if (args.priority) {
85
+ ok = ok && inc.priority === args.priority;
86
+ }
87
+ return ok;
88
+ });
89
+ }
90
+ return { items, page };
91
+ }
92
+ }
93
+ exports.RestAlertsTool = RestAlertsTool;
94
+ //# sourceMappingURL=alerts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"alerts.js","sourceRoot":"","sources":["../../../src/tools/rest/alerts.ts"],"names":[],"mappings":";;;AACA,0DAA2E;AAiB3E,MAAa,cAAc;IACjB,OAAO,CAAC,MAAe;QAC7B,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,iBAA2B,CAAC;QACvD,OAAO,IAAI,gCAAkB,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,IAAI,IAAI,EAAE,CAAC,CAAC;IACpE,CAAC;IAED,mBAAmB;QACjB,OAAO;YACL,IAAI,EAAE,0BAA0B;YAChC,WAAW,EAAE,kCAAkC;YAC/C,WAAW,EAAE;gBACX,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACV,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;oBAC/B,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;oBACxB,aAAa,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;oBAClC,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE;iBAC/C;aACF;SACF,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,IAAsB;QACvC,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACzC,MAAM,IAAI,GAAG,kBAAkB,CAAC;QAChC,MAAM,KAAK,GAA4B,EAAE,CAAC;QAC1C,IAAI,IAAI,CAAC,WAAW;YAAE,KAAK,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC;QAC/D,IAAI,IAAI,CAAC,IAAI;YAAE,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACtC,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,GAAG,CAAU,IAAI,EAAE,KAAK,CAAC,CAAC;QACnD,OAAO,GAAG,CAAC;IACb,CAAC;IAED,oBAAoB;QAClB,OAAO;YACL,IAAI,EAAE,0BAA0B;YAChC,WAAW,EAAE,4EAA4E;YACzF,WAAW,EAAE;gBACX,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACV,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;oBAC9B,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC,EAAE;oBACzE,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;oBACxB,aAAa,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;oBAClC,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE;iBAC/C;aACF;SACF,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,IAAuB;QACzC,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACzC,MAAM,IAAI,GAAG,mBAAmB,CAAC;QACjC,MAAM,KAAK,GAA4B,EAAE,CAAC;QAC1C,IAAI,IAAI,CAAC,IAAI;YAAE,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QAEtC,MAAM,OAAO,GAAU,EAAE,CAAC;QAC1B,IAAI,OAA2B,CAAC;QAChC,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACrB,GAAG,CAAC;YACF,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,GAAG,CAAM,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;YAC3E,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACvB,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC;YAC7B,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,EAAE,CAAC;gBAC/B,MAAM,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC;gBACxB,MAAM,CAAC,GAAG,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;gBACrC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;gBACjC,OAAO,GAAG,IAAI,CAAC;YACjB,CAAC;iBAAM,CAAC;gBACN,OAAO,GAAG,SAAS,CAAC;YACtB,CAAC;QACH,CAAC,QAAQ,IAAI,CAAC,aAAa,IAAI,OAAO,EAAE;QAExC,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAClE,yCAAyC;QACzC,IAAI,KAAK,GAAG,QAAQ,CAAC;QACrB,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC5B,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE;gBAC9B,IAAI,EAAE,GAAG,IAAI,CAAC;gBACd,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI,EAAE,CAAC;oBAC5B,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,SAAS,IAAI,GAAG,CAAC,SAAS,KAAK,CAAC,CAAC,CAAC;gBACrD,CAAC;gBACD,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;oBAClB,EAAE,GAAG,EAAE,IAAI,GAAG,CAAC,QAAQ,KAAK,IAAI,CAAC,QAAQ,CAAC;gBAC5C,CAAC;gBACD,OAAO,EAAE,CAAC;YACZ,CAAC,CAAC,CAAC;QACL,CAAC;QACD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IACzB,CAAC;CACF;AAzFD,wCAyFC"}
@@ -0,0 +1,18 @@
1
+ import type { Tool } from '@modelcontextprotocol/sdk/types.js';
2
+ import { type Region } from '../../client/rest-client';
3
+ type ListApplicationsArgs = {
4
+ filter_name?: string;
5
+ filter_host?: string;
6
+ filter_ids?: number[];
7
+ filter_language?: string;
8
+ page?: number;
9
+ auto_paginate?: boolean;
10
+ region?: Region;
11
+ };
12
+ export declare class RestApmTool {
13
+ private restFor;
14
+ getListApplicationsTool(): Tool;
15
+ listApplications(args: ListApplicationsArgs): Promise<unknown>;
16
+ }
17
+ export {};
18
+ //# sourceMappingURL=apm.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apm.d.ts","sourceRoot":"","sources":["../../../src/tools/rest/apm.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAC/D,OAAO,EAAsB,KAAK,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAE3E,KAAK,oBAAoB,GAAG;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,qBAAa,WAAW;IACtB,OAAO,CAAC,OAAO;IAKf,uBAAuB,IAAI,IAAI;IAmBzB,gBAAgB,CAAC,IAAI,EAAE,oBAAoB,GAAG,OAAO,CAAC,OAAO,CAAC;CA8BrE"}
@@ -0,0 +1,63 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RestApmTool = void 0;
4
+ const rest_client_1 = require("../../client/rest-client");
5
+ class RestApmTool {
6
+ restFor(region) {
7
+ const apiKey = process.env.NEW_RELIC_API_KEY;
8
+ return new rest_client_1.NewRelicRestClient({ apiKey, region: region ?? 'US' });
9
+ }
10
+ getListApplicationsTool() {
11
+ return {
12
+ name: 'list_apm_applications_rest',
13
+ description: 'List APM applications via REST v2.',
14
+ inputSchema: {
15
+ type: 'object',
16
+ properties: {
17
+ filter_name: { type: 'string' },
18
+ filter_host: { type: 'string' },
19
+ filter_ids: { type: 'array', items: { type: 'number' } },
20
+ filter_language: { type: 'string' },
21
+ page: { type: 'number' },
22
+ auto_paginate: { type: 'boolean' },
23
+ region: { type: 'string', enum: ['US', 'EU'] },
24
+ },
25
+ },
26
+ };
27
+ }
28
+ async listApplications(args) {
29
+ const client = this.restFor(args.region);
30
+ const path = '/applications';
31
+ const query = {};
32
+ if (args.filter_name)
33
+ query['filter[name]'] = args.filter_name;
34
+ if (args.filter_host)
35
+ query['filter[host]'] = args.filter_host;
36
+ if (args.filter_language)
37
+ query['filter[language]'] = args.filter_language;
38
+ if (args.filter_ids && args.filter_ids.length > 0)
39
+ query['filter[ids]'] = args.filter_ids.join(',');
40
+ if (args.page)
41
+ query.page = args.page;
42
+ const results = [];
43
+ let nextUrl;
44
+ let page = args.page;
45
+ do {
46
+ const res = await client.get(path, page ? { ...query, page } : query);
47
+ results.push(res.data);
48
+ const next = res.links?.next;
49
+ if (args.auto_paginate && next) {
50
+ const u = new URL(next);
51
+ const p = u.searchParams.get('page');
52
+ page = p ? Number(p) : undefined;
53
+ nextUrl = next;
54
+ }
55
+ else {
56
+ nextUrl = undefined;
57
+ }
58
+ } while (args.auto_paginate && nextUrl);
59
+ return { items: args.auto_paginate ? results : results[0], page };
60
+ }
61
+ }
62
+ exports.RestApmTool = RestApmTool;
63
+ //# sourceMappingURL=apm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apm.js","sourceRoot":"","sources":["../../../src/tools/rest/apm.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ import type { Tool } from '@modelcontextprotocol/sdk/types.js';
2
+ import { type Region } from '../../client/rest-client';
3
+ type CreateDeploymentArgs = {
4
+ application_id: number;
5
+ revision: string;
6
+ changelog?: string;
7
+ description?: string;
8
+ user?: string;
9
+ region?: Region;
10
+ };
11
+ type ListDeploymentsArgs = {
12
+ application_id: number;
13
+ page?: number;
14
+ auto_paginate?: boolean;
15
+ region?: Region;
16
+ };
17
+ type DeleteDeploymentArgs = {
18
+ application_id: number;
19
+ id: number;
20
+ confirm: true;
21
+ region?: Region;
22
+ };
23
+ export declare class RestDeploymentsTool {
24
+ private restFor;
25
+ getCreateTool(): Tool;
26
+ create(args: CreateDeploymentArgs): Promise<unknown>;
27
+ getListTool(): Tool;
28
+ list(args: ListDeploymentsArgs): Promise<unknown>;
29
+ getDeleteTool(): Tool;
30
+ delete(args: DeleteDeploymentArgs): Promise<unknown>;
31
+ }
32
+ export {};
33
+ //# sourceMappingURL=deployments.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deployments.d.ts","sourceRoot":"","sources":["../../../src/tools/rest/deployments.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAC/D,OAAO,EAAsB,KAAK,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAE3E,KAAK,oBAAoB,GAAG;IAC1B,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,KAAK,mBAAmB,GAAG;IACzB,cAAc,EAAE,MAAM,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,KAAK,oBAAoB,GAAG;IAC1B,cAAc,EAAE,MAAM,CAAC;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,IAAI,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,OAAO;IAKf,aAAa,IAAI,IAAI;IAmBf,MAAM,CAAC,IAAI,EAAE,oBAAoB,GAAG,OAAO,CAAC,OAAO,CAAC;IAe1D,WAAW,IAAI,IAAI;IAiBb,IAAI,CAAC,IAAI,EAAE,mBAAmB,GAAG,OAAO,CAAC,OAAO,CAAC;IA4BvD,aAAa,IAAI,IAAI;IAiBf,MAAM,CAAC,IAAI,EAAE,oBAAoB,GAAG,OAAO,CAAC,OAAO,CAAC;CAS3D"}
@@ -0,0 +1,111 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RestDeploymentsTool = void 0;
4
+ const rest_client_1 = require("../../client/rest-client");
5
+ class RestDeploymentsTool {
6
+ restFor(region) {
7
+ const apiKey = process.env.NEW_RELIC_API_KEY;
8
+ return new rest_client_1.NewRelicRestClient({ apiKey, region: region ?? 'US' });
9
+ }
10
+ getCreateTool() {
11
+ return {
12
+ name: 'create_deployment',
13
+ description: 'Create a deployment marker for an APM application (REST v2).',
14
+ inputSchema: {
15
+ type: 'object',
16
+ properties: {
17
+ application_id: { type: 'number' },
18
+ revision: { type: 'string' },
19
+ changelog: { type: 'string' },
20
+ description: { type: 'string' },
21
+ user: { type: 'string' },
22
+ region: { type: 'string', enum: ['US', 'EU'] },
23
+ },
24
+ required: ['application_id', 'revision'],
25
+ },
26
+ };
27
+ }
28
+ async create(args) {
29
+ const client = this.restFor(args.region);
30
+ const path = `/applications/${args.application_id}/deployments`;
31
+ const payload = {
32
+ deployment: {
33
+ revision: args.revision,
34
+ changelog: args.changelog,
35
+ description: args.description,
36
+ user: args.user,
37
+ },
38
+ };
39
+ const res = await client.post(path, payload);
40
+ return { ...res };
41
+ }
42
+ getListTool() {
43
+ return {
44
+ name: 'list_deployments_rest',
45
+ description: 'List deployments for an APM application (REST v2).',
46
+ inputSchema: {
47
+ type: 'object',
48
+ properties: {
49
+ application_id: { type: 'number' },
50
+ page: { type: 'number' },
51
+ auto_paginate: { type: 'boolean' },
52
+ region: { type: 'string', enum: ['US', 'EU'] },
53
+ },
54
+ required: ['application_id'],
55
+ },
56
+ };
57
+ }
58
+ async list(args) {
59
+ const client = this.restFor(args.region);
60
+ const path = `/applications/${args.application_id}/deployments`;
61
+ const results = [];
62
+ let page = args.page;
63
+ let nextUrl;
64
+ do {
65
+ const res = await client.get(path, page ? { page } : undefined);
66
+ results.push(res.data);
67
+ const next = res.links?.next;
68
+ if (args.auto_paginate && next) {
69
+ // Extract page from next URL if present
70
+ const u = new URL(next);
71
+ const p = u.searchParams.get('page');
72
+ page = p ? Number(p) : undefined;
73
+ nextUrl = next;
74
+ }
75
+ else {
76
+ nextUrl = undefined;
77
+ }
78
+ } while (args.auto_paginate && nextUrl);
79
+ return {
80
+ items: args.auto_paginate ? results : results[0],
81
+ page: page,
82
+ };
83
+ }
84
+ getDeleteTool() {
85
+ return {
86
+ name: 'delete_deployment',
87
+ description: 'Delete a deployment record (REST v2). Requires admin role permissions.',
88
+ inputSchema: {
89
+ type: 'object',
90
+ properties: {
91
+ application_id: { type: 'number' },
92
+ id: { type: 'number' },
93
+ confirm: { type: 'boolean' },
94
+ region: { type: 'string', enum: ['US', 'EU'] },
95
+ },
96
+ required: ['application_id', 'id', 'confirm'],
97
+ },
98
+ };
99
+ }
100
+ async delete(args) {
101
+ if (args.confirm !== true) {
102
+ throw new Error('delete_deployment: confirm must be true');
103
+ }
104
+ const client = this.restFor(args.region);
105
+ const path = `/applications/${args.application_id}/deployments/${args.id}`;
106
+ const res = await client.delete(path);
107
+ return { ...res };
108
+ }
109
+ }
110
+ exports.RestDeploymentsTool = RestDeploymentsTool;
111
+ //# sourceMappingURL=deployments.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deployments.js","sourceRoot":"","sources":["../../../src/tools/rest/deployments.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,42 @@
1
+ import type { Tool } from '@modelcontextprotocol/sdk/types.js';
2
+ import { type Region } from '../../client/rest-client';
3
+ type ListMetricNamesArgs = {
4
+ application_id: number;
5
+ host_id: number;
6
+ name?: string;
7
+ page?: number;
8
+ auto_paginate?: boolean;
9
+ region?: Region;
10
+ };
11
+ type GetMetricDataArgs = {
12
+ application_id: number;
13
+ host_id: number;
14
+ names: string[];
15
+ values?: string[];
16
+ from?: string;
17
+ to?: string;
18
+ period?: number;
19
+ summarize?: boolean;
20
+ page?: number;
21
+ auto_paginate?: boolean;
22
+ region?: Region;
23
+ };
24
+ type ListHostsArgs = {
25
+ application_id: number;
26
+ filter_hostname?: string;
27
+ filter_ids?: string;
28
+ page?: number;
29
+ auto_paginate?: boolean;
30
+ region?: Region;
31
+ };
32
+ export declare class RestMetricsTool {
33
+ private restFor;
34
+ getListMetricNamesTool(): Tool;
35
+ listMetricNames(args: ListMetricNamesArgs): Promise<unknown>;
36
+ getMetricDataTool(): Tool;
37
+ getMetricData(args: GetMetricDataArgs): Promise<unknown>;
38
+ getListApplicationHostsTool(): Tool;
39
+ listApplicationHosts(args: ListHostsArgs): Promise<unknown>;
40
+ }
41
+ export {};
42
+ //# sourceMappingURL=metrics.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metrics.d.ts","sourceRoot":"","sources":["../../../src/tools/rest/metrics.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAC/D,OAAO,EAAsB,KAAK,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAE3E,KAAK,mBAAmB,GAAG;IACzB,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,KAAK,iBAAiB,GAAG;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,KAAK,aAAa,GAAG;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,qBAAa,eAAe;IAC1B,OAAO,CAAC,OAAO;IAKf,sBAAsB,IAAI,IAAI;IAmBxB,eAAe,CAAC,IAAI,EAAE,mBAAmB,GAAG,OAAO,CAAC,OAAO,CAAC;IAyBlE,iBAAiB,IAAI,IAAI;IAwBnB,aAAa,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,OAAO,CAAC;IA6B9D,2BAA2B,IAAI,IAAI;IAmB7B,oBAAoB,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC;CAUlE"}
@@ -0,0 +1,144 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RestMetricsTool = void 0;
4
+ const rest_client_1 = require("../../client/rest-client");
5
+ class RestMetricsTool {
6
+ restFor(region) {
7
+ const apiKey = process.env.NEW_RELIC_API_KEY;
8
+ return new rest_client_1.NewRelicRestClient({ apiKey, region: region ?? 'US' });
9
+ }
10
+ getListMetricNamesTool() {
11
+ return {
12
+ name: 'list_metric_names_for_host',
13
+ description: 'List metric names and values for a specific application host (REST v2).',
14
+ inputSchema: {
15
+ type: 'object',
16
+ properties: {
17
+ application_id: { type: 'number' },
18
+ host_id: { type: 'number' },
19
+ name: { type: 'string' },
20
+ page: { type: 'number' },
21
+ auto_paginate: { type: 'boolean' },
22
+ region: { type: 'string', enum: ['US', 'EU'] },
23
+ },
24
+ required: ['application_id', 'host_id'],
25
+ },
26
+ };
27
+ }
28
+ async listMetricNames(args) {
29
+ const client = this.restFor(args.region);
30
+ const path = `/applications/${args.application_id}/hosts/${args.host_id}/metrics`;
31
+ const query = {};
32
+ if (args.name)
33
+ query.name = args.name;
34
+ if (args.page)
35
+ query.page = args.page;
36
+ const results = [];
37
+ let nextUrl;
38
+ let page = args.page;
39
+ do {
40
+ const res = await client.get(path, page ? { ...query, page } : query);
41
+ results.push(res.data);
42
+ const next = res.links?.next;
43
+ if (args.auto_paginate && next) {
44
+ const u = new URL(next);
45
+ const p = u.searchParams.get('page');
46
+ page = p ? Number(p) : undefined;
47
+ nextUrl = next;
48
+ }
49
+ else {
50
+ nextUrl = undefined;
51
+ }
52
+ } while (args.auto_paginate && nextUrl);
53
+ return { items: args.auto_paginate ? results : results[0], page };
54
+ }
55
+ getMetricDataTool() {
56
+ return {
57
+ name: 'get_metric_data_for_host',
58
+ description: 'Get metric timeslices for metrics on a host (REST v2).',
59
+ inputSchema: {
60
+ type: 'object',
61
+ properties: {
62
+ application_id: { type: 'number' },
63
+ host_id: { type: 'number' },
64
+ names: { type: 'array', items: { type: 'string' } },
65
+ values: { type: 'array', items: { type: 'string' } },
66
+ from: { type: 'string' },
67
+ to: { type: 'string' },
68
+ period: { type: 'number' },
69
+ summarize: { type: 'boolean' },
70
+ page: { type: 'number' },
71
+ auto_paginate: { type: 'boolean' },
72
+ region: { type: 'string', enum: ['US', 'EU'] },
73
+ },
74
+ required: ['application_id', 'host_id', 'names'],
75
+ },
76
+ };
77
+ }
78
+ async getMetricData(args) {
79
+ const client = this.restFor(args.region);
80
+ const path = `/applications/${args.application_id}/hosts/${args.host_id}/metrics/data`;
81
+ const query = { names: args.names, values: args.values };
82
+ if (args.from)
83
+ query.from = args.from;
84
+ if (args.to)
85
+ query.to = args.to;
86
+ if (args.period)
87
+ query.period = args.period;
88
+ if (args.summarize !== undefined)
89
+ query.summarize = args.summarize;
90
+ if (args.page)
91
+ query.page = args.page;
92
+ const results = [];
93
+ let nextUrl;
94
+ let page = args.page;
95
+ do {
96
+ const res = await client.get(path, page ? { ...query, page } : query);
97
+ results.push(res.data);
98
+ const next = res.links?.next;
99
+ if (args.auto_paginate && next) {
100
+ const u = new URL(next);
101
+ const p = u.searchParams.get('page');
102
+ page = p ? Number(p) : undefined;
103
+ nextUrl = next;
104
+ }
105
+ else {
106
+ nextUrl = undefined;
107
+ }
108
+ } while (args.auto_paginate && nextUrl);
109
+ return { items: args.auto_paginate ? results : results[0], page };
110
+ }
111
+ getListApplicationHostsTool() {
112
+ return {
113
+ name: 'list_application_hosts',
114
+ description: 'List hosts for an APM application (REST v2).',
115
+ inputSchema: {
116
+ type: 'object',
117
+ properties: {
118
+ application_id: { type: 'number' },
119
+ filter_hostname: { type: 'string' },
120
+ filter_ids: { type: 'string' },
121
+ page: { type: 'number' },
122
+ auto_paginate: { type: 'boolean' },
123
+ region: { type: 'string', enum: ['US', 'EU'] },
124
+ },
125
+ required: ['application_id'],
126
+ },
127
+ };
128
+ }
129
+ async listApplicationHosts(args) {
130
+ const client = this.restFor(args.region);
131
+ const path = `/applications/${args.application_id}/hosts`;
132
+ const query = {};
133
+ if (args.filter_hostname)
134
+ query['filter[hostname]'] = args.filter_hostname;
135
+ if (args.filter_ids)
136
+ query['filter[ids]'] = args.filter_ids;
137
+ if (args.page)
138
+ query.page = args.page;
139
+ const res = await client.get(path, query);
140
+ return res;
141
+ }
142
+ }
143
+ exports.RestMetricsTool = RestMetricsTool;
144
+ //# sourceMappingURL=metrics.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metrics.js","sourceRoot":"","sources":["../../../src/tools/rest/metrics.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "newrelic-mcp",
3
- "version": "1.1.2",
3
+ "version": "2.0.0",
4
4
  "description": "Model Context Protocol server for New Relic observability platform integration",
5
5
  "main": "dist/server.js",
6
6
  "bin": {