newrelic-mcp 1.0.0 → 1.1.2
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/README.md +30 -7
- package/dist/client/newrelic-client.d.ts +11 -2
- package/dist/client/newrelic-client.d.ts.map +1 -1
- package/dist/client/newrelic-client.js +11 -10
- package/dist/client/newrelic-client.js.map +1 -1
- package/dist/server.d.ts +5 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +67 -15
- package/dist/server.js.map +1 -1
- package/dist/tools/alert.d.ts +14 -4
- package/dist/tools/alert.d.ts.map +1 -1
- package/dist/tools/alert.js +7 -1
- package/dist/tools/alert.js.map +1 -1
- package/dist/tools/apm.d.ts +3 -1
- package/dist/tools/apm.d.ts.map +1 -1
- package/dist/tools/apm.js.map +1 -1
- package/dist/tools/entity.d.ts +11 -2
- package/dist/tools/entity.d.ts.map +1 -1
- package/dist/tools/entity.js +2 -2
- package/dist/tools/entity.js.map +1 -1
- package/dist/tools/nerdgraph.d.ts +1 -1
- package/dist/tools/nerdgraph.d.ts.map +1 -1
- package/dist/tools/nerdgraph.js +12 -4
- package/dist/tools/nerdgraph.js.map +1 -1
- package/dist/tools/nrql.d.ts +4 -1
- package/dist/tools/nrql.d.ts.map +1 -1
- package/dist/tools/nrql.js.map +1 -1
- package/dist/tools/synthetics.d.ts +11 -2
- package/dist/tools/synthetics.d.ts.map +1 -1
- package/dist/tools/synthetics.js +3 -3
- package/dist/tools/synthetics.js.map +1 -1
- package/package.json +13 -5
package/README.md
CHANGED
|
@@ -50,6 +50,7 @@ Add to your Claude Desktop configuration file:
|
|
|
50
50
|
}
|
|
51
51
|
}
|
|
52
52
|
```
|
|
53
|
+
|
|
53
54
|
</details>
|
|
54
55
|
|
|
55
56
|
<details>
|
|
@@ -72,6 +73,7 @@ Add to your Cline settings in VS Code:
|
|
|
72
73
|
]
|
|
73
74
|
}
|
|
74
75
|
```
|
|
76
|
+
|
|
75
77
|
</details>
|
|
76
78
|
|
|
77
79
|
<details>
|
|
@@ -97,6 +99,7 @@ Add to your Zed configuration file at `~/.config/zed/settings.json`:
|
|
|
97
99
|
}
|
|
98
100
|
}
|
|
99
101
|
```
|
|
102
|
+
|
|
100
103
|
</details>
|
|
101
104
|
|
|
102
105
|
<details>
|
|
@@ -118,24 +121,28 @@ Add to your Windsurf Cascade configuration:
|
|
|
118
121
|
}
|
|
119
122
|
}
|
|
120
123
|
```
|
|
124
|
+
|
|
121
125
|
</details>
|
|
122
126
|
|
|
123
127
|
<details>
|
|
124
128
|
<summary>Local Development</summary>
|
|
125
129
|
|
|
126
130
|
1. Clone the repository:
|
|
131
|
+
|
|
127
132
|
```bash
|
|
128
133
|
git clone https://github.com/cloudbring/newrelic-mcp.git
|
|
129
134
|
cd newrelic-mcp
|
|
130
135
|
```
|
|
131
136
|
|
|
132
137
|
2. Install dependencies and build:
|
|
138
|
+
|
|
133
139
|
```bash
|
|
134
140
|
npm install
|
|
135
141
|
npm run build
|
|
136
142
|
```
|
|
137
143
|
|
|
138
144
|
3. Add to your MCP client configuration:
|
|
145
|
+
|
|
139
146
|
```json
|
|
140
147
|
{
|
|
141
148
|
"mcpServers": {
|
|
@@ -150,6 +157,7 @@ npm run build
|
|
|
150
157
|
}
|
|
151
158
|
}
|
|
152
159
|
```
|
|
160
|
+
|
|
153
161
|
</details>
|
|
154
162
|
|
|
155
163
|
## Configuration
|
|
@@ -161,7 +169,7 @@ npm run build
|
|
|
161
169
|
|
|
162
170
|
### Getting Your New Relic Credentials
|
|
163
171
|
|
|
164
|
-
1. **API Key**:
|
|
172
|
+
1. **API Key**:
|
|
165
173
|
- Log in to [New Relic](https://one.newrelic.com)
|
|
166
174
|
- Navigate to **API Keys** in the left sidebar
|
|
167
175
|
- Create a new User API Key with appropriate permissions
|
|
@@ -177,28 +185,32 @@ For detailed setup instructions, see [docs/new-relic-setup.md](docs/new-relic-se
|
|
|
177
185
|
Once configured, you can interact with New Relic through your MCP client:
|
|
178
186
|
|
|
179
187
|
### Query Your Data
|
|
180
|
-
|
|
188
|
+
|
|
189
|
+
```text
|
|
181
190
|
"Show me the average response time for my web application over the last hour"
|
|
182
191
|
"What are the top 10 slowest database queries today?"
|
|
183
192
|
"Display error rate trends for the production environment"
|
|
184
193
|
```
|
|
185
194
|
|
|
186
195
|
### Monitor Applications
|
|
187
|
-
|
|
196
|
+
|
|
197
|
+
```text
|
|
188
198
|
"List all my APM applications and their current status"
|
|
189
199
|
"Show me the health of my Node.js services"
|
|
190
200
|
"Which applications have active alerts?"
|
|
191
201
|
```
|
|
192
202
|
|
|
193
203
|
### Manage Alerts
|
|
194
|
-
|
|
204
|
+
|
|
205
|
+
```text
|
|
195
206
|
"Show me all open incidents"
|
|
196
207
|
"What critical alerts fired in the last 24 hours?"
|
|
197
208
|
"Acknowledge incident #12345"
|
|
198
209
|
```
|
|
199
210
|
|
|
200
211
|
### Search Infrastructure
|
|
201
|
-
|
|
212
|
+
|
|
213
|
+
```text
|
|
202
214
|
"Find all Redis databases in production"
|
|
203
215
|
"Show me entities with high CPU usage"
|
|
204
216
|
"List all synthetic monitors and their success rates"
|
|
@@ -228,6 +240,7 @@ Once configured, you can interact with New Relic through your MCP client:
|
|
|
228
240
|
If you're having trouble connecting:
|
|
229
241
|
|
|
230
242
|
1. Verify your API key is valid:
|
|
243
|
+
|
|
231
244
|
```bash
|
|
232
245
|
curl -X POST https://api.newrelic.com/graphql \
|
|
233
246
|
-H 'Content-Type: application/json' \
|
|
@@ -238,6 +251,7 @@ If you're having trouble connecting:
|
|
|
238
251
|
2. Check that your Account ID is correct
|
|
239
252
|
3. Ensure your API key has the necessary permissions
|
|
240
253
|
4. Check the MCP client logs for detailed error messages
|
|
254
|
+
|
|
241
255
|
</details>
|
|
242
256
|
|
|
243
257
|
<details>
|
|
@@ -251,13 +265,14 @@ If you receive permission errors:
|
|
|
251
265
|
- For alerts: `Alerts` read/write permissions
|
|
252
266
|
|
|
253
267
|
2. Create a new API key with broader permissions if needed
|
|
268
|
+
|
|
254
269
|
</details>
|
|
255
270
|
|
|
256
271
|
## Development
|
|
257
272
|
|
|
258
273
|
### Project Structure
|
|
259
274
|
|
|
260
|
-
```
|
|
275
|
+
```text
|
|
261
276
|
src/
|
|
262
277
|
├── server.ts # Main MCP server implementation
|
|
263
278
|
├── client/
|
|
@@ -274,23 +289,27 @@ src/
|
|
|
274
289
|
### Setup Development Environment
|
|
275
290
|
|
|
276
291
|
1. Clone the repository:
|
|
292
|
+
|
|
277
293
|
```bash
|
|
278
294
|
git clone https://github.com/cloudbring/newrelic-mcp.git
|
|
279
295
|
cd newrelic-mcp
|
|
280
296
|
```
|
|
281
297
|
|
|
282
298
|
2. Install dependencies:
|
|
299
|
+
|
|
283
300
|
```bash
|
|
284
301
|
npm install
|
|
285
302
|
```
|
|
286
303
|
|
|
287
304
|
3. Create a `.env` file:
|
|
305
|
+
|
|
288
306
|
```bash
|
|
289
307
|
NEW_RELIC_API_KEY=your-api-key-here
|
|
290
308
|
NEW_RELIC_ACCOUNT_ID=your-account-id
|
|
291
309
|
```
|
|
292
310
|
|
|
293
311
|
4. Build the project:
|
|
312
|
+
|
|
294
313
|
```bash
|
|
295
314
|
npm run build
|
|
296
315
|
```
|
|
@@ -323,6 +342,7 @@ npm run test:server
|
|
|
323
342
|
### Testing
|
|
324
343
|
|
|
325
344
|
The project uses Test-Driven Development (TDD) with:
|
|
345
|
+
|
|
326
346
|
- **Vitest** for unit testing
|
|
327
347
|
- **Gherkin** for BDD testing
|
|
328
348
|
- **Evalite** for LLM response validation
|
|
@@ -361,11 +381,13 @@ See [docs/mcp-inspector-setup.md](docs/mcp-inspector-setup.md) for detailed inst
|
|
|
361
381
|
### Architecture
|
|
362
382
|
|
|
363
383
|
The server follows a modular architecture with:
|
|
384
|
+
|
|
364
385
|
- **Client Layer**: Handles New Relic API communication
|
|
365
386
|
- **Tools Layer**: Implements MCP tool specifications
|
|
366
387
|
- **Server Layer**: Manages MCP protocol and tool routing
|
|
367
388
|
|
|
368
389
|
Each tool:
|
|
390
|
+
|
|
369
391
|
- Has a single, focused purpose
|
|
370
392
|
- Validates inputs using Zod schemas
|
|
371
393
|
- Returns structured, typed responses
|
|
@@ -391,6 +413,7 @@ We welcome contributions! Please see our [Contributing Guidelines](CONTRIBUTING.
|
|
|
391
413
|
### Code Style
|
|
392
414
|
|
|
393
415
|
This project uses:
|
|
416
|
+
|
|
394
417
|
- **Biome** for linting and formatting
|
|
395
418
|
- **TypeScript** with strict mode
|
|
396
419
|
- **2 spaces** for indentation
|
|
@@ -427,4 +450,4 @@ This project is not affiliated with, endorsed by, or supported by New Relic, Inc
|
|
|
427
450
|
|
|
428
451
|
---
|
|
429
452
|
|
|
430
|
-
Made with ❤️ by [@cloudbring](https://github.com/cloudbring) using Cursor and Claude Code
|
|
453
|
+
Made with ❤️ by [@cloudbring](https://github.com/cloudbring) using Cursor and Claude Code
|
|
@@ -1,5 +1,13 @@
|
|
|
1
|
+
type GraphQLError = {
|
|
2
|
+
message: string;
|
|
3
|
+
[key: string]: unknown;
|
|
4
|
+
};
|
|
5
|
+
type GraphQLResponse<T> = {
|
|
6
|
+
data?: T;
|
|
7
|
+
errors?: GraphQLError[];
|
|
8
|
+
};
|
|
1
9
|
export interface NrqlQueryResult {
|
|
2
|
-
results:
|
|
10
|
+
results: Array<Record<string, unknown>>;
|
|
3
11
|
metadata: {
|
|
4
12
|
eventTypes?: string[];
|
|
5
13
|
timeWindow?: {
|
|
@@ -35,6 +43,7 @@ export declare class NewRelicClient {
|
|
|
35
43
|
}): Promise<NrqlQueryResult>;
|
|
36
44
|
listApmApplications(accountId?: string): Promise<ApmApplication[]>;
|
|
37
45
|
private parseTags;
|
|
38
|
-
executeNerdGraphQuery(query: string, variables?:
|
|
46
|
+
executeNerdGraphQuery<T = unknown>(query: string, variables?: Record<string, unknown>): Promise<GraphQLResponse<T>>;
|
|
39
47
|
}
|
|
48
|
+
export {};
|
|
40
49
|
//# sourceMappingURL=newrelic-client.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"newrelic-client.d.ts","sourceRoot":"","sources":["../../src/client/newrelic-client.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"newrelic-client.d.ts","sourceRoot":"","sources":["../../src/client/newrelic-client.ts"],"names":[],"mappings":"AAEA,KAAK,YAAY,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,CAAC;AAChE,KAAK,eAAe,CAAC,CAAC,IAAI;IAAE,IAAI,CAAC,EAAE,CAAC,CAAC;IAAC,MAAM,CAAC,EAAE,YAAY,EAAE,CAAA;CAAE,CAAC;AAEhE,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACxC,QAAQ,EAAE;QACR,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;QACtB,UAAU,CAAC,EAAE;YACX,KAAK,EAAE,MAAM,CAAC;YACd,GAAG,EAAE,MAAM,CAAC;SACb,CAAC;QACF,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;QAClB,UAAU,CAAC,EAAE,OAAO,CAAC;KACtB,CAAC;CACH;AAED,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC/B;AAED,qBAAa,cAAc;IACzB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,gBAAgB,CAAC,CAAS;gBAEtB,MAAM,CAAC,EAAE,MAAM,EAAE,gBAAgB,CAAC,EAAE,MAAM;IAKhD,mBAAmB,IAAI,OAAO,CAAC,OAAO,CAAC;IAqBvC,iBAAiB,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IA8B9D,YAAY,CAAC,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,eAAe,CAAC;IA2EnF,mBAAmB,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAkExE,OAAO,CAAC,SAAS;IAaX,qBAAqB,CAAC,CAAC,GAAG,OAAO,EACrC,KAAK,EAAE,MAAM,EACb,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAClC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;CAwB/B"}
|
|
@@ -19,7 +19,7 @@ class NewRelicClient {
|
|
|
19
19
|
}
|
|
20
20
|
}
|
|
21
21
|
}`;
|
|
22
|
-
const response = await this.executeNerdGraphQuery(query);
|
|
22
|
+
const response = (await this.executeNerdGraphQuery(query));
|
|
23
23
|
return !!response.data?.actor?.user;
|
|
24
24
|
}
|
|
25
25
|
catch (_error) {
|
|
@@ -39,7 +39,7 @@ class NewRelicClient {
|
|
|
39
39
|
}
|
|
40
40
|
}
|
|
41
41
|
}`;
|
|
42
|
-
const response = await this.executeNerdGraphQuery(query);
|
|
42
|
+
const response = (await this.executeNerdGraphQuery(query));
|
|
43
43
|
if (!response.data?.actor?.account) {
|
|
44
44
|
throw new Error(`Account ${id} not found`);
|
|
45
45
|
}
|
|
@@ -73,7 +73,7 @@ class NewRelicClient {
|
|
|
73
73
|
}
|
|
74
74
|
}`;
|
|
75
75
|
try {
|
|
76
|
-
const response = await this.executeNerdGraphQuery(query);
|
|
76
|
+
const response = (await this.executeNerdGraphQuery(query));
|
|
77
77
|
if (response.errors) {
|
|
78
78
|
const errorMessage = response.errors[0]?.message || 'NRQL query failed';
|
|
79
79
|
throw new Error(errorMessage);
|
|
@@ -93,10 +93,10 @@ class NewRelicClient {
|
|
|
93
93
|
};
|
|
94
94
|
}
|
|
95
95
|
catch (error) {
|
|
96
|
-
if (error.message.includes('Syntax error')) {
|
|
96
|
+
if (error instanceof Error && error.message.includes('Syntax error')) {
|
|
97
97
|
throw new Error(`NRQL Syntax error: ${error.message}`);
|
|
98
98
|
}
|
|
99
|
-
throw error;
|
|
99
|
+
throw error instanceof Error ? error : new Error(String(error));
|
|
100
100
|
}
|
|
101
101
|
}
|
|
102
102
|
async listApmApplications(accountId) {
|
|
@@ -125,8 +125,8 @@ class NewRelicClient {
|
|
|
125
125
|
}
|
|
126
126
|
}
|
|
127
127
|
}`;
|
|
128
|
-
const response = await this.executeNerdGraphQuery(query);
|
|
129
|
-
const entities = response.data?.actor?.entitySearch?.results?.entities || [];
|
|
128
|
+
const response = (await this.executeNerdGraphQuery(query));
|
|
129
|
+
const entities = (response.data?.actor?.entitySearch?.results?.entities || []);
|
|
130
130
|
return entities.map((entity) => ({
|
|
131
131
|
guid: entity.guid,
|
|
132
132
|
name: entity.name,
|
|
@@ -141,8 +141,9 @@ class NewRelicClient {
|
|
|
141
141
|
return {};
|
|
142
142
|
const result = {};
|
|
143
143
|
tags.forEach((tag) => {
|
|
144
|
-
|
|
145
|
-
|
|
144
|
+
const values = Array.isArray(tag.values) ? tag.values : [];
|
|
145
|
+
if (tag.key && values.length > 0) {
|
|
146
|
+
result[tag.key] = values[0];
|
|
146
147
|
}
|
|
147
148
|
});
|
|
148
149
|
return result;
|
|
@@ -166,7 +167,7 @@ class NewRelicClient {
|
|
|
166
167
|
}
|
|
167
168
|
throw new Error(`NerdGraph API error: ${response.status} ${response.statusText}`);
|
|
168
169
|
}
|
|
169
|
-
return await response.json();
|
|
170
|
+
return (await response.json());
|
|
170
171
|
}
|
|
171
172
|
}
|
|
172
173
|
exports.NewRelicClient = NewRelicClient;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"newrelic-client.js","sourceRoot":"","sources":["../../src/client/newrelic-client.ts"],"names":[],"mappings":";;;AAAA,MAAM,aAAa,GAAG,kCAAkC,CAAC;
|
|
1
|
+
{"version":3,"file":"newrelic-client.js","sourceRoot":"","sources":["../../src/client/newrelic-client.ts"],"names":[],"mappings":"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"}
|
package/dist/server.d.ts
CHANGED
|
@@ -10,7 +10,11 @@ export declare class NewRelicMCPServer {
|
|
|
10
10
|
private registerTools;
|
|
11
11
|
private setupHandlers;
|
|
12
12
|
start(): Promise<void>;
|
|
13
|
-
executeTool(name: string, args:
|
|
13
|
+
executeTool(name: string, args: {
|
|
14
|
+
target_account_id?: string;
|
|
15
|
+
account_id?: string;
|
|
16
|
+
[key: string]: unknown;
|
|
17
|
+
}): Promise<unknown>;
|
|
14
18
|
private requiresAccountId;
|
|
15
19
|
getMetadata(): {
|
|
16
20
|
name: string;
|
package/dist/server.d.ts.map
CHANGED
|
@@ -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;
|
|
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"}
|
package/dist/server.js
CHANGED
|
@@ -18,12 +18,16 @@ class NewRelicMCPServer {
|
|
|
18
18
|
tools;
|
|
19
19
|
defaultAccountId;
|
|
20
20
|
constructor(client) {
|
|
21
|
-
if (!process.env.NEW_RELIC_API_KEY) {
|
|
22
|
-
throw new Error('NEW_RELIC_API_KEY is required');
|
|
23
|
-
}
|
|
24
21
|
this.defaultAccountId = process.env.NEW_RELIC_ACCOUNT_ID;
|
|
25
|
-
|
|
26
|
-
client
|
|
22
|
+
if (client) {
|
|
23
|
+
this.client = client;
|
|
24
|
+
}
|
|
25
|
+
else {
|
|
26
|
+
if (!process.env.NEW_RELIC_API_KEY) {
|
|
27
|
+
throw new Error('NEW_RELIC_API_KEY is required');
|
|
28
|
+
}
|
|
29
|
+
this.client = new newrelic_client_1.NewRelicClient(process.env.NEW_RELIC_API_KEY, this.defaultAccountId);
|
|
30
|
+
}
|
|
27
31
|
this.server = new index_js_1.Server({
|
|
28
32
|
name: 'newrelic-mcp',
|
|
29
33
|
version: '1.0.0',
|
|
@@ -94,7 +98,8 @@ class NewRelicMCPServer {
|
|
|
94
98
|
};
|
|
95
99
|
}
|
|
96
100
|
catch (error) {
|
|
97
|
-
|
|
101
|
+
const message = error instanceof Error ? error.message : 'Tool execution failed';
|
|
102
|
+
throw new types_js_1.McpError(types_js_1.ErrorCode.InternalError, message);
|
|
98
103
|
}
|
|
99
104
|
});
|
|
100
105
|
}
|
|
@@ -135,26 +140,73 @@ class NewRelicMCPServer {
|
|
|
135
140
|
...args,
|
|
136
141
|
target_account_id: accountId,
|
|
137
142
|
});
|
|
138
|
-
case 'acknowledge_incident':
|
|
139
|
-
|
|
140
|
-
|
|
143
|
+
case 'acknowledge_incident': {
|
|
144
|
+
const { incident_id, comment } = args;
|
|
145
|
+
if (typeof incident_id !== 'string' || incident_id.trim() === '') {
|
|
146
|
+
throw new Error('acknowledge_incident: "incident_id" (non-empty string) is required');
|
|
147
|
+
}
|
|
148
|
+
if (comment !== undefined && typeof comment !== 'string') {
|
|
149
|
+
throw new Error('acknowledge_incident: "comment" must be a string when provided');
|
|
150
|
+
}
|
|
151
|
+
return await new alert_1.AlertTool(this.client).acknowledgeIncident({
|
|
152
|
+
incident_id,
|
|
153
|
+
comment: comment,
|
|
154
|
+
});
|
|
155
|
+
}
|
|
156
|
+
case 'search_entities': {
|
|
157
|
+
const { query, entity_types } = args;
|
|
158
|
+
if (typeof query !== 'string' || query.trim() === '') {
|
|
159
|
+
throw new Error('search_entities: "query" (non-empty string) is required');
|
|
160
|
+
}
|
|
161
|
+
let types;
|
|
162
|
+
if (entity_types !== undefined) {
|
|
163
|
+
if (!Array.isArray(entity_types)) {
|
|
164
|
+
throw new Error('search_entities: "entity_types" must be an array of strings');
|
|
165
|
+
}
|
|
166
|
+
types = entity_types.filter((t) => typeof t === 'string');
|
|
167
|
+
}
|
|
141
168
|
return await new entity_1.EntityTool(this.client).searchEntities({
|
|
142
|
-
|
|
169
|
+
query,
|
|
170
|
+
entity_types: types,
|
|
143
171
|
target_account_id: accountId,
|
|
144
172
|
});
|
|
145
|
-
|
|
146
|
-
|
|
173
|
+
}
|
|
174
|
+
case 'get_entity_details': {
|
|
175
|
+
const { entity_guid } = args;
|
|
176
|
+
if (typeof entity_guid !== 'string' || entity_guid.trim() === '') {
|
|
177
|
+
throw new Error('get_entity_details: "entity_guid" (non-empty string) is required');
|
|
178
|
+
}
|
|
179
|
+
return await new entity_1.EntityTool(this.client).getEntityDetails({ entity_guid });
|
|
180
|
+
}
|
|
147
181
|
case 'list_synthetics_monitors':
|
|
148
182
|
return await new synthetics_1.SyntheticsTool(this.client).listSyntheticsMonitors({
|
|
149
183
|
...args,
|
|
150
184
|
target_account_id: accountId,
|
|
151
185
|
});
|
|
152
|
-
case 'create_browser_monitor':
|
|
186
|
+
case 'create_browser_monitor': {
|
|
187
|
+
const { name, url, frequency, locations } = args;
|
|
188
|
+
if (typeof name !== 'string' || name.trim() === '') {
|
|
189
|
+
throw new Error('create_browser_monitor: "name" (non-empty string) is required');
|
|
190
|
+
}
|
|
191
|
+
if (typeof url !== 'string' || url.trim() === '') {
|
|
192
|
+
throw new Error('create_browser_monitor: "url" (non-empty string) is required');
|
|
193
|
+
}
|
|
194
|
+
if (typeof frequency !== 'number' || !Number.isFinite(frequency) || frequency <= 0) {
|
|
195
|
+
throw new Error('create_browser_monitor: "frequency" (positive number) is required');
|
|
196
|
+
}
|
|
197
|
+
if (!Array.isArray(locations) ||
|
|
198
|
+
locations.some((l) => typeof l !== 'string')) {
|
|
199
|
+
throw new Error('create_browser_monitor: "locations" must be an array of strings');
|
|
200
|
+
}
|
|
153
201
|
return await new synthetics_1.SyntheticsTool(this.client).createBrowserMonitor({
|
|
154
|
-
|
|
202
|
+
name,
|
|
203
|
+
url,
|
|
204
|
+
frequency,
|
|
205
|
+
locations: locations,
|
|
155
206
|
target_account_id: accountId,
|
|
156
207
|
});
|
|
157
|
-
|
|
208
|
+
}
|
|
209
|
+
case 'run_nerdgraph_query':
|
|
158
210
|
return await new nerdgraph_1.NerdGraphTool(this.client).execute(args);
|
|
159
211
|
default: {
|
|
160
212
|
const tool = this.tools.get(name);
|
package/dist/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":";;;;AAEA,wEAAmE;AACnE,wEAAiF;AACjF,iEAM4C;AAC5C,8DAA0D;AAC1D,yCAA0C;AAC1C,qCAAsC;AACtC,2CAA4C;AAC5C,iDAAkD;AAClD,uCAAwC;AACxC,mDAAoD;AAEpD,MAAa,iBAAiB;IACpB,MAAM,CAAS;IACf,MAAM,CAAiB;IACvB,KAAK,CAAoB;IACzB,gBAAgB,CAAU;IAElC,YAAY,MAAuB;QACjC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":";;;;AAEA,wEAAmE;AACnE,wEAAiF;AACjF,iEAM4C;AAC5C,8DAA0D;AAC1D,yCAA0C;AAC1C,qCAAsC;AACtC,2CAA4C;AAC5C,iDAAkD;AAClD,uCAAwC;AACxC,mDAAoD;AAEpD,MAAa,iBAAiB;IACpB,MAAM,CAAS;IACf,MAAM,CAAiB;IACvB,KAAK,CAAoB;IACzB,gBAAgB,CAAU;IAElC,YAAY,MAAuB;QACjC,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC;QACzD,IAAI,MAAM,EAAE,CAAC;YACX,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACvB,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,CAAC;gBACnC,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;YACnD,CAAC;YACD,IAAI,CAAC,MAAM,GAAG,IAAI,gCAAc,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;QACzF,CAAC;QAED,IAAI,CAAC,MAAM,GAAG,IAAI,iBAAM,CACtB;YACE,IAAI,EAAE,cAAc;YACpB,OAAO,EAAE,OAAO;SACjB,EACD;YACE,YAAY,EAAE;gBACZ,KAAK,EAAE,EAAE;aACV;SACF,CACF,CAAC;QAEF,IAAI,CAAC,KAAK,GAAG,IAAI,GAAG,EAAE,CAAC;QACvB,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC;IAEO,aAAa;QACnB,MAAM,QAAQ,GAAG,IAAI,eAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC3C,MAAM,OAAO,GAAG,IAAI,aAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACzC,MAAM,UAAU,GAAG,IAAI,mBAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC/C,MAAM,SAAS,GAAG,IAAI,iBAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC7C,MAAM,cAAc,GAAG,IAAI,2BAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACvD,MAAM,aAAa,GAAG,IAAI,yBAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAErD,qBAAqB;QACrB,MAAM,KAAK,GAAG;YACZ,QAAQ,CAAC,iBAAiB,EAAE;YAC5B,OAAO,CAAC,uBAAuB,EAAE;YACjC,UAAU,CAAC,aAAa,EAAE;YAC1B,UAAU,CAAC,cAAc,EAAE;YAC3B,SAAS,CAAC,eAAe,EAAE;YAC3B,SAAS,CAAC,gBAAgB,EAAE;YAC5B,SAAS,CAAC,kBAAkB,EAAE;YAC9B,cAAc,CAAC,mBAAmB,EAAE;YACpC,cAAc,CAAC,oBAAoB,EAAE;YACrC,aAAa,CAAC,YAAY,EAAE;YAC5B;gBACE,IAAI,EAAE,qBAAqB;gBAC3B,WAAW,EAAE,+BAA+B;gBAC5C,WAAW,EAAE;oBACX,IAAI,EAAE,QAAiB;oBACvB,UAAU,EAAE;wBACV,iBAAiB,EAAE;4BACjB,IAAI,EAAE,QAAiB;4BACvB,WAAW,EAAE,wCAAwC;yBACtD;qBACF;iBACF;aACF;SACF,CAAC;QAEF,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YACrB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAClC,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,aAAa;QACnB,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,iCAAsB,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;YACjE,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;SACvC,CAAC,CAAC,CAAC;QAEJ,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,gCAAqB,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;YACrE,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAEjD,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,MAAM,IAAI,mBAAQ,CAAC,oBAAS,CAAC,cAAc,EAAE,QAAQ,OAAO,CAAC,MAAM,CAAC,IAAI,YAAY,CAAC,CAAC;YACxF,CAAC;YAED,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC;gBAE3F,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;yBACtC;qBACF;iBACF,CAAC;YACJ,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,uBAAuB,CAAC;gBACjF,MAAM,IAAI,mBAAQ,CAAC,oBAAS,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;YACvD,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,KAAK;QACT,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,mBAAmB,EAAE,CAAC;QACxD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;QACvD,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,+BAAoB,EAAE,CAAC;QAC7C,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAErC,OAAO,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;IAChD,CAAC;IAED,KAAK,CAAC,WAAW,CACf,IAAY,EACZ,IAAiF;QAEjF,MAAM,SAAS,GACb,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,gBAAgB,CAAC;QAErE,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC;YAC/C,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;QACjD,CAAC;QAED,QAAQ,IAAI,EAAE,CAAC;YACb,KAAK,gBAAgB;gBACnB,OAAO,MAAM,IAAI,eAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC;oBAC7C,GAAG,IAAI;oBACP,iBAAiB,EAAE,SAAS;iBAC7B,CAAC,CAAC;YACL,KAAK,uBAAuB;gBAC1B,OAAO,MAAM,IAAI,aAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC;oBAC5C,GAAG,IAAI;oBACP,iBAAiB,EAAE,SAAS;iBAC7B,CAAC,CAAC;YACL,KAAK,qBAAqB;gBACxB,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;YACxD,KAAK,qBAAqB;gBACxB,OAAO,MAAM,IAAI,iBAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,iBAAiB,CAAC;oBACxD,GAAG,IAAI;oBACP,iBAAiB,EAAE,SAAS;iBAC7B,CAAC,CAAC;YACL,KAAK,qBAAqB;gBACxB,OAAO,MAAM,IAAI,iBAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,iBAAiB,CAAC;oBACxD,GAAG,IAAI;oBACP,iBAAiB,EAAE,SAAS;iBAC7B,CAAC,CAAC;YACL,KAAK,sBAAsB,CAAC,CAAC,CAAC;gBAC5B,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,GAAG,IAA+B,CAAC;gBACjE,IAAI,OAAO,WAAW,KAAK,QAAQ,IAAI,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;oBACjE,MAAM,IAAI,KAAK,CAAC,oEAAoE,CAAC,CAAC;gBACxF,CAAC;gBACD,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;oBACzD,MAAM,IAAI,KAAK,CAAC,gEAAgE,CAAC,CAAC;gBACpF,CAAC;gBACD,OAAO,MAAM,IAAI,iBAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,mBAAmB,CAAC;oBAC1D,WAAW;oBACX,OAAO,EAAE,OAA6B;iBACvC,CAAC,CAAC;YACL,CAAC;YACD,KAAK,iBAAiB,CAAC,CAAC,CAAC;gBACvB,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,GAAG,IAA+B,CAAC;gBAChE,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;oBACrD,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;gBAC7E,CAAC;gBACD,IAAI,KAA2B,CAAC;gBAChC,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;oBAC/B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC;wBACjC,MAAM,IAAI,KAAK,CAAC,6DAA6D,CAAC,CAAC;oBACjF,CAAC;oBACD,KAAK,GAAI,YAA0B,CAAC,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC;gBACxF,CAAC;gBACD,OAAO,MAAM,IAAI,mBAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC;oBACtD,KAAK;oBACL,YAAY,EAAE,KAAK;oBACnB,iBAAiB,EAAE,SAAS;iBAC7B,CAAC,CAAC;YACL,CAAC;YACD,KAAK,oBAAoB,CAAC,CAAC,CAAC;gBAC1B,MAAM,EAAE,WAAW,EAAE,GAAG,IAA+B,CAAC;gBACxD,IAAI,OAAO,WAAW,KAAK,QAAQ,IAAI,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;oBACjE,MAAM,IAAI,KAAK,CAAC,kEAAkE,CAAC,CAAC;gBACtF,CAAC;gBACD,OAAO,MAAM,IAAI,mBAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,gBAAgB,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC;YAC7E,CAAC;YACD,KAAK,0BAA0B;gBAC7B,OAAO,MAAM,IAAI,2BAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,sBAAsB,CAAC;oBAClE,GAAG,IAAI;oBACP,iBAAiB,EAAE,SAAS;iBAC7B,CAAC,CAAC;YACL,KAAK,wBAAwB,CAAC,CAAC,CAAC;gBAC9B,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,IAA+B,CAAC;gBAC5E,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;oBACnD,MAAM,IAAI,KAAK,CAAC,+DAA+D,CAAC,CAAC;gBACnF,CAAC;gBACD,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;oBACjD,MAAM,IAAI,KAAK,CAAC,8DAA8D,CAAC,CAAC;gBAClF,CAAC;gBACD,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,SAAS,IAAI,CAAC,EAAE,CAAC;oBACnF,MAAM,IAAI,KAAK,CAAC,mEAAmE,CAAC,CAAC;gBACvF,CAAC;gBACD,IACE,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC;oBACxB,SAAuB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,EAC3D,CAAC;oBACD,MAAM,IAAI,KAAK,CAAC,iEAAiE,CAAC,CAAC;gBACrF,CAAC;gBACD,OAAO,MAAM,IAAI,2BAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,oBAAoB,CAAC;oBAChE,IAAI;oBACJ,GAAG;oBACH,SAAS;oBACT,SAAS,EAAE,SAAqB;oBAChC,iBAAiB,EAAE,SAAS;iBAC7B,CAAC,CAAC;YACL,CAAC;YACD,KAAK,qBAAqB;gBACxB,OAAO,MAAM,IAAI,yBAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAC5D,OAAO,CAAC,CAAC,CAAC;gBACR,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBAClC,IAAI,CAAC,IAAI,EAAE,CAAC;oBACV,MAAM,IAAI,KAAK,CAAC,QAAQ,IAAI,YAAY,CAAC,CAAC;gBAC5C,CAAC;gBACD,MAAM,IAAI,KAAK,CAAC,oBAAoB,IAAI,kBAAkB,CAAC,CAAC;YAC9D,CAAC;QACH,CAAC;IACH,CAAC;IAEO,iBAAiB,CAAC,QAAgB;QACxC,MAAM,oBAAoB,GAAG;YAC3B,gBAAgB;YAChB,uBAAuB;YACvB,iBAAiB;YACjB,qBAAqB;YACrB,qBAAqB;YACrB,qBAAqB;YACrB,0BAA0B;YAC1B,wBAAwB;SACzB,CAAC;QACF,OAAO,oBAAoB,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACjD,CAAC;IAED,WAAW;QACT,OAAO;YACL,IAAI,EAAE,cAAc;YACpB,OAAO,EAAE,OAAO;YAChB,WAAW,EAAE,6DAA6D;SAC3E,CAAC;IACJ,CAAC;IAED,kBAAkB;QAChB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;IACvC,CAAC;IAED,OAAO,CAAC,IAAY;QAClB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;IAED,mBAAmB;QACjB,OAAO,IAAI,CAAC,gBAAgB,CAAC;IAC/B,CAAC;CACF;AAvQD,8CAuQC;AAED,mBAAmB;AACnB,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;IAC5B,MAAM,MAAM,GAAG,IAAI,iBAAiB,EAAE,CAAC;IACvC,MAAM,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AACtC,CAAC"}
|
package/dist/tools/alert.d.ts
CHANGED
|
@@ -6,9 +6,19 @@ export declare class AlertTool {
|
|
|
6
6
|
getPoliciesTool(): Tool;
|
|
7
7
|
getIncidentsTool(): Tool;
|
|
8
8
|
getAcknowledgeTool(): Tool;
|
|
9
|
-
listAlertPolicies(input:
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
9
|
+
listAlertPolicies(input: {
|
|
10
|
+
target_account_id?: string;
|
|
11
|
+
}): Promise<Array<Record<string, unknown>>>;
|
|
12
|
+
listOpenIncidents(input: {
|
|
13
|
+
target_account_id?: string;
|
|
14
|
+
priority?: 'CRITICAL' | 'HIGH' | 'MEDIUM' | 'LOW';
|
|
15
|
+
}): Promise<Record<string, unknown>[]>;
|
|
16
|
+
acknowledgeIncident(input: {
|
|
17
|
+
incident_id: string;
|
|
18
|
+
comment?: string;
|
|
19
|
+
}): Promise<Record<string, unknown> | null>;
|
|
20
|
+
acknowledgeIncidents(input: {
|
|
21
|
+
incident_ids: string[];
|
|
22
|
+
}): Promise<Record<string, unknown>[]>;
|
|
13
23
|
}
|
|
14
24
|
//# sourceMappingURL=alert.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"alert.d.ts","sourceRoot":"","sources":["../../src/tools/alert.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAC/D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAEhE,qBAAa,SAAS;IACpB,OAAO,CAAC,MAAM,CAAiB;gBAEnB,MAAM,EAAE,cAAc;IAIlC,eAAe,IAAI,IAAI;IAgBvB,gBAAgB,IAAI,IAAI;IAqBxB,kBAAkB,IAAI,IAAI;IAiBpB,iBAAiB,CAAC,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"alert.d.ts","sourceRoot":"","sources":["../../src/tools/alert.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAC/D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAEhE,qBAAa,SAAS;IACpB,OAAO,CAAC,MAAM,CAAiB;gBAEnB,MAAM,EAAE,cAAc;IAIlC,eAAe,IAAI,IAAI;IAgBvB,gBAAgB,IAAI,IAAI;IAqBxB,kBAAkB,IAAI,IAAI;IAiBpB,iBAAiB,CAAC,KAAK,EAAE;QAC7B,iBAAiB,CAAC,EAAE,MAAM,CAAC;KAC5B,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAsCrC,iBAAiB,CAAC,KAAK,EAAE;QAC7B,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAC3B,QAAQ,CAAC,EAAE,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;KACnD,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IA0DhC,mBAAmB,CAAC,KAAK,EAAE;QAC/B,WAAW,EAAE,MAAM,CAAC;QACpB,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAqCrC,oBAAoB,CAAC,KAAK,EAAE;QAChC,YAAY,EAAE,MAAM,EAAE,CAAC;KACxB,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;CAgCvC"}
|
package/dist/tools/alert.js
CHANGED
|
@@ -62,6 +62,9 @@ class AlertTool {
|
|
|
62
62
|
if (!accountId) {
|
|
63
63
|
throw new Error('Account ID must be provided');
|
|
64
64
|
}
|
|
65
|
+
if (!/^\d+$/.test(accountId)) {
|
|
66
|
+
throw new Error('Invalid account ID format');
|
|
67
|
+
}
|
|
65
68
|
const query = `{
|
|
66
69
|
actor {
|
|
67
70
|
account(id: ${accountId}) {
|
|
@@ -90,6 +93,9 @@ class AlertTool {
|
|
|
90
93
|
if (!accountId) {
|
|
91
94
|
throw new Error('Account ID must be provided');
|
|
92
95
|
}
|
|
96
|
+
if (!/^\d+$/.test(accountId)) {
|
|
97
|
+
throw new Error('Invalid account ID format');
|
|
98
|
+
}
|
|
93
99
|
let filter = `accountId = '${accountId}' AND state = 'OPEN'`;
|
|
94
100
|
if (input.priority) {
|
|
95
101
|
filter += ` AND priority = '${input.priority}'`;
|
|
@@ -117,7 +123,7 @@ class AlertTool {
|
|
|
117
123
|
}
|
|
118
124
|
}`;
|
|
119
125
|
const response = await this.client.executeNerdGraphQuery(query);
|
|
120
|
-
const entities = response.data?.actor?.entitySearch?.results?.entities || [];
|
|
126
|
+
const entities = (response.data?.actor?.entitySearch?.results?.entities || []);
|
|
121
127
|
const incidents = [];
|
|
122
128
|
entities.forEach((entity) => {
|
|
123
129
|
if (entity.issues?.issues) {
|
package/dist/tools/alert.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"alert.js","sourceRoot":"","sources":["../../src/tools/alert.ts"],"names":[],"mappings":";;;AAGA,MAAa,SAAS;IACZ,MAAM,CAAiB;IAE/B,YAAY,MAAsB;QAChC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,eAAe;QACb,OAAO;YACL,IAAI,EAAE,qBAAqB;YAC3B,WAAW,EAAE,mDAAmD;YAChE,WAAW,EAAE;gBACX,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACV,iBAAiB,EAAE;wBACjB,IAAI,EAAE,QAAQ;wBACd,WAAW,EAAE,+BAA+B;qBAC7C;iBACF;aACF;SACF,CAAC;IACJ,CAAC;IAED,gBAAgB;QACd,OAAO;YACL,IAAI,EAAE,qBAAqB;YAC3B,WAAW,EAAE,mDAAmD;YAChE,WAAW,EAAE;gBACX,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACV,iBAAiB,EAAE;wBACjB,IAAI,EAAE,QAAQ;wBACd,WAAW,EAAE,+BAA+B;qBAC7C;oBACD,QAAQ,EAAE;wBACR,IAAI,EAAE,QAAQ;wBACd,IAAI,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC;wBAC3C,WAAW,EAAE,6BAA6B;qBAC3C;iBACF;aACF;SACF,CAAC;IACJ,CAAC;IAED,kBAAkB;QAChB,OAAO;YACL,IAAI,EAAE,sBAAsB;YAC5B,WAAW,EAAE,8BAA8B;YAC3C,WAAW,EAAE;gBACX,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACV,WAAW,EAAE;wBACX,IAAI,EAAE,QAAQ;wBACd,WAAW,EAAE,uCAAuC;qBACrD;iBACF;gBACD,QAAQ,EAAE,CAAC,aAAa,CAAC;aAC1B;SACF,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,
|
|
1
|
+
{"version":3,"file":"alert.js","sourceRoot":"","sources":["../../src/tools/alert.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/apm.d.ts
CHANGED
|
@@ -4,6 +4,8 @@ export declare class ApmTool {
|
|
|
4
4
|
private client;
|
|
5
5
|
constructor(client: NewRelicClient);
|
|
6
6
|
getListApplicationsTool(): Tool;
|
|
7
|
-
execute(input:
|
|
7
|
+
execute(input: {
|
|
8
|
+
target_account_id?: string;
|
|
9
|
+
}): Promise<ApmApplication[]>;
|
|
8
10
|
}
|
|
9
11
|
//# sourceMappingURL=apm.d.ts.map
|
package/dist/tools/apm.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"apm.d.ts","sourceRoot":"","sources":["../../src/tools/apm.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAC/D,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAEhF,qBAAa,OAAO;IAClB,OAAO,CAAC,MAAM,CAAiB;gBAEnB,MAAM,EAAE,cAAc;IAIlC,uBAAuB,IAAI,IAAI;IAgBzB,OAAO,CAAC,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"apm.d.ts","sourceRoot":"","sources":["../../src/tools/apm.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAC/D,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAEhF,qBAAa,OAAO;IAClB,OAAO,CAAC,MAAM,CAAiB;gBAEnB,MAAM,EAAE,cAAc;IAIlC,uBAAuB,IAAI,IAAI;IAgBzB,OAAO,CAAC,KAAK,EAAE;QAAE,iBAAiB,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;CAQhF"}
|
package/dist/tools/apm.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"apm.js","sourceRoot":"","sources":["../../src/tools/apm.ts"],"names":[],"mappings":";;;AAGA,MAAa,OAAO;IACV,MAAM,CAAiB;IAE/B,YAAY,MAAsB;QAChC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,uBAAuB;QACrB,OAAO;YACL,IAAI,EAAE,uBAAuB;YAC7B,WAAW,EAAE,qDAAqD;YAClE,WAAW,EAAE;gBACX,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACV,iBAAiB,EAAE;wBACjB,IAAI,EAAE,QAAQ;wBACd,WAAW,EAAE,+BAA+B;qBAC7C;iBACF;aACF;SACF,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"apm.js","sourceRoot":"","sources":["../../src/tools/apm.ts"],"names":[],"mappings":";;;AAGA,MAAa,OAAO;IACV,MAAM,CAAiB;IAE/B,YAAY,MAAsB;QAChC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,uBAAuB;QACrB,OAAO;YACL,IAAI,EAAE,uBAAuB;YAC7B,WAAW,EAAE,qDAAqD;YAClE,WAAW,EAAE;gBACX,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACV,iBAAiB,EAAE;wBACjB,IAAI,EAAE,QAAQ;wBACd,WAAW,EAAE,+BAA+B;qBAC7C;iBACF;aACF;SACF,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,KAAqC;QACjD,IAAI,CAAC,KAAK,CAAC,iBAAiB,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;QACjD,CAAC;QAED,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;QACpF,OAAO,YAAY,CAAC;IACtB,CAAC;CACF;AA/BD,0BA+BC"}
|
package/dist/tools/entity.d.ts
CHANGED
|
@@ -5,7 +5,16 @@ export declare class EntityTool {
|
|
|
5
5
|
constructor(client: NewRelicClient);
|
|
6
6
|
getSearchTool(): Tool;
|
|
7
7
|
getDetailsTool(): Tool;
|
|
8
|
-
searchEntities(input:
|
|
9
|
-
|
|
8
|
+
searchEntities(input: {
|
|
9
|
+
query: string;
|
|
10
|
+
entity_types?: string[];
|
|
11
|
+
target_account_id?: string;
|
|
12
|
+
}): Promise<{
|
|
13
|
+
entities: Array<Record<string, unknown>>;
|
|
14
|
+
nextCursor?: string;
|
|
15
|
+
}>;
|
|
16
|
+
getEntityDetails(input: {
|
|
17
|
+
entity_guid: string;
|
|
18
|
+
}): Promise<Record<string, unknown>>;
|
|
10
19
|
}
|
|
11
20
|
//# sourceMappingURL=entity.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entity.d.ts","sourceRoot":"","sources":["../../src/tools/entity.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAC/D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAEhE,qBAAa,UAAU;IACrB,OAAO,CAAC,MAAM,CAAiB;gBAEnB,MAAM,EAAE,cAAc;IAIlC,aAAa,IAAI,IAAI;IA0BrB,cAAc,IAAI,IAAI;IAiBhB,cAAc,CAAC,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"entity.d.ts","sourceRoot":"","sources":["../../src/tools/entity.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAC/D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAEhE,qBAAa,UAAU;IACrB,OAAO,CAAC,MAAM,CAAiB;gBAEnB,MAAM,EAAE,cAAc;IAIlC,aAAa,IAAI,IAAI;IA0BrB,cAAc,IAAI,IAAI;IAiBhB,cAAc,CAAC,KAAK,EAAE;QAC1B,KAAK,EAAE,MAAM,CAAC;QACd,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;QACxB,iBAAiB,CAAC,EAAE,MAAM,CAAC;KAC5B,GAAG,OAAO,CAAC;QAAE,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IA6CxE,gBAAgB,CAAC,KAAK,EAAE;QAAE,WAAW,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CA6DzF"}
|
package/dist/tools/entity.js
CHANGED
|
@@ -76,7 +76,7 @@ class EntityTool {
|
|
|
76
76
|
}
|
|
77
77
|
}
|
|
78
78
|
}`;
|
|
79
|
-
const response = await this.client.executeNerdGraphQuery(graphqlQuery);
|
|
79
|
+
const response = (await this.client.executeNerdGraphQuery(graphqlQuery));
|
|
80
80
|
return response.data?.actor?.entitySearch?.results || { entities: [] };
|
|
81
81
|
}
|
|
82
82
|
async getEntityDetails(input) {
|
|
@@ -128,7 +128,7 @@ class EntityTool {
|
|
|
128
128
|
}
|
|
129
129
|
}
|
|
130
130
|
}`;
|
|
131
|
-
const response = await this.client.executeNerdGraphQuery(graphqlQuery);
|
|
131
|
+
const response = (await this.client.executeNerdGraphQuery(graphqlQuery));
|
|
132
132
|
const entity = response.data?.actor?.entity;
|
|
133
133
|
if (!entity) {
|
|
134
134
|
throw new Error('Entity not found');
|
package/dist/tools/entity.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entity.js","sourceRoot":"","sources":["../../src/tools/entity.ts"],"names":[],"mappings":";;;AAGA,MAAa,UAAU;IACb,MAAM,CAAiB;IAE/B,YAAY,MAAsB;QAChC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,aAAa;QACX,OAAO;YACL,IAAI,EAAE,iBAAiB;YACvB,WAAW,EAAE,yDAAyD;YACtE,WAAW,EAAE;gBACX,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACV,KAAK,EAAE;wBACL,IAAI,EAAE,QAAQ;wBACd,WAAW,EAAE,2BAA2B;qBACzC;oBACD,YAAY,EAAE;wBACZ,IAAI,EAAE,OAAO;wBACb,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;wBACzB,WAAW,EAAE,kDAAkD;qBAChE;oBACD,iBAAiB,EAAE;wBACjB,IAAI,EAAE,QAAQ;wBACd,WAAW,EAAE,+BAA+B;qBAC7C;iBACF;gBACD,QAAQ,EAAE,CAAC,OAAO,CAAC;aACpB;SACF,CAAC;IACJ,CAAC;IAED,cAAc;QACZ,OAAO;YACL,IAAI,EAAE,oBAAoB;YAC1B,WAAW,EAAE,kDAAkD;YAC/D,WAAW,EAAE;gBACX,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACV,WAAW,EAAE;wBACX,IAAI,EAAE,QAAQ;wBACd,WAAW,EAAE,wBAAwB;qBACtC;iBACF;gBACD,QAAQ,EAAE,CAAC,aAAa,CAAC;aAC1B;SACF,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,
|
|
1
|
+
{"version":3,"file":"entity.js","sourceRoot":"","sources":["../../src/tools/entity.ts"],"names":[],"mappings":";;;AAGA,MAAa,UAAU;IACb,MAAM,CAAiB;IAE/B,YAAY,MAAsB;QAChC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,aAAa;QACX,OAAO;YACL,IAAI,EAAE,iBAAiB;YACvB,WAAW,EAAE,yDAAyD;YACtE,WAAW,EAAE;gBACX,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACV,KAAK,EAAE;wBACL,IAAI,EAAE,QAAQ;wBACd,WAAW,EAAE,2BAA2B;qBACzC;oBACD,YAAY,EAAE;wBACZ,IAAI,EAAE,OAAO;wBACb,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;wBACzB,WAAW,EAAE,kDAAkD;qBAChE;oBACD,iBAAiB,EAAE;wBACjB,IAAI,EAAE,QAAQ;wBACd,WAAW,EAAE,+BAA+B;qBAC7C;iBACF;gBACD,QAAQ,EAAE,CAAC,OAAO,CAAC;aACpB;SACF,CAAC;IACJ,CAAC;IAED,cAAc;QACZ,OAAO;YACL,IAAI,EAAE,oBAAoB;YAC1B,WAAW,EAAE,kDAAkD;YAC/D,WAAW,EAAE;gBACX,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACV,WAAW,EAAE;wBACX,IAAI,EAAE,QAAQ;wBACd,WAAW,EAAE,wBAAwB;qBACtC;iBACF;gBACD,QAAQ,EAAE,CAAC,aAAa,CAAC;aAC1B;SACF,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,KAIpB;QACC,MAAM,SAAS,GAAG,KAAK,CAAC,iBAAiB,CAAC;QAC1C,IAAI,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;QAExB,IAAI,SAAS,EAAE,CAAC;YACd,KAAK,IAAI,qBAAqB,SAAS,GAAG,CAAC;QAC7C,CAAC;QAED,IAAI,KAAK,CAAC,YAAY,IAAI,KAAK,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxD,MAAM,KAAK,GAAG,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACxE,KAAK,IAAI,iBAAiB,KAAK,GAAG,CAAC;QACrC,CAAC;QAED,MAAM,YAAY,GAAG;;+BAEM,KAAK;;;;;;;;;;;;;;;;MAgB9B,CAAC;QAEH,MAAM,QAAQ,GAAG,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,qBAAqB,CAAC,YAAY,CAAC,CAQtE,CAAC;QACF,OAAO,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,YAAY,EAAE,OAAO,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;IACzE,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,KAA8B;QACnD,MAAM,YAAY,GAAG;;wBAED,KAAK,CAAC,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MA6CnC,CAAC;QAEH,MAAM,QAAQ,GAAG,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,qBAAqB,CAAC,YAAY,CAAC,CAEtE,CAAC;QACF,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC;QAE5C,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;QACtC,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;CACF;AAhKD,gCAgKC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nerdgraph.d.ts","sourceRoot":"","sources":["../../src/tools/nerdgraph.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;
|
|
1
|
+
{"version":3,"file":"nerdgraph.d.ts","sourceRoot":"","sources":["../../src/tools/nerdgraph.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAE/D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAEhE,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAiB;gBAEnB,MAAM,EAAE,cAAc;IAIlC,YAAY,IAAI,IAAI;IAqBd,OAAO,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;CAWhD"}
|
package/dist/tools/nerdgraph.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.NerdGraphTool = void 0;
|
|
4
|
+
const zod_1 = require("zod");
|
|
4
5
|
class NerdGraphTool {
|
|
5
6
|
client;
|
|
6
7
|
constructor(client) {
|
|
@@ -17,16 +18,23 @@ class NerdGraphTool {
|
|
|
17
18
|
type: 'string',
|
|
18
19
|
description: 'The GraphQL query to execute',
|
|
19
20
|
},
|
|
21
|
+
variables: {
|
|
22
|
+
type: 'object',
|
|
23
|
+
description: 'Optional GraphQL variables to supply to the query',
|
|
24
|
+
},
|
|
20
25
|
},
|
|
21
26
|
required: ['query'],
|
|
22
27
|
},
|
|
23
28
|
};
|
|
24
29
|
}
|
|
25
30
|
async execute(input) {
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
31
|
+
// Validate input with Zod for consistency
|
|
32
|
+
const schema = zod_1.z.object({
|
|
33
|
+
query: zod_1.z.string().min(1, 'Invalid or empty GraphQL query provided'),
|
|
34
|
+
variables: zod_1.z.record(zod_1.z.any()).optional(),
|
|
35
|
+
});
|
|
36
|
+
const { query, variables } = schema.parse(input);
|
|
37
|
+
return await this.client.executeNerdGraphQuery(query, variables);
|
|
30
38
|
}
|
|
31
39
|
}
|
|
32
40
|
exports.NerdGraphTool = NerdGraphTool;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nerdgraph.js","sourceRoot":"","sources":["../../src/tools/nerdgraph.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"nerdgraph.js","sourceRoot":"","sources":["../../src/tools/nerdgraph.ts"],"names":[],"mappings":";;;AACA,6BAAwB;AAGxB,MAAa,aAAa;IAChB,MAAM,CAAiB;IAE/B,YAAY,MAAsB;QAChC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,YAAY;QACV,OAAO;YACL,IAAI,EAAE,qBAAqB;YAC3B,WAAW,EAAE,0CAA0C;YACvD,WAAW,EAAE;gBACX,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACV,KAAK,EAAE;wBACL,IAAI,EAAE,QAAQ;wBACd,WAAW,EAAE,8BAA8B;qBAC5C;oBACD,SAAS,EAAE;wBACT,IAAI,EAAE,QAAQ;wBACd,WAAW,EAAE,mDAAmD;qBACjE;iBACF;gBACD,QAAQ,EAAE,CAAC,OAAO,CAAC;aACpB;SACF,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,KAAc;QAC1B,0CAA0C;QAC1C,MAAM,MAAM,GAAG,OAAC,CAAC,MAAM,CAAC;YACtB,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,yCAAyC,CAAC;YACnE,SAAS,EAAE,OAAC,CAAC,MAAM,CAAC,OAAC,CAAC,GAAG,EAAE,CAAC,CAAC,QAAQ,EAAE;SACxC,CAAC,CAAC;QAEH,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAEjD,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,qBAAqB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IACnE,CAAC;CACF;AAvCD,sCAuCC"}
|
package/dist/tools/nrql.d.ts
CHANGED
|
@@ -20,6 +20,9 @@ export declare class NrqlTool {
|
|
|
20
20
|
};
|
|
21
21
|
required: string[];
|
|
22
22
|
};
|
|
23
|
-
execute(input:
|
|
23
|
+
execute(input: {
|
|
24
|
+
nrql?: string;
|
|
25
|
+
target_account_id?: string;
|
|
26
|
+
}): Promise<NrqlQueryResult>;
|
|
24
27
|
}
|
|
25
28
|
//# sourceMappingURL=nrql.d.ts.map
|
package/dist/tools/nrql.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nrql.d.ts","sourceRoot":"","sources":["../../src/tools/nrql.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAE/D,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAOjF,qBAAa,QAAQ;IACnB,IAAI,SAAoB;IACxB,WAAW,SAA+E;IAC1F,OAAO,CAAC,MAAM,CAAiB;gBAEnB,MAAM,EAAE,cAAc;IAIlC,iBAAiB,IAAI,IAAI;IAQzB,cAAc;;;;;;;;;;;;;;IAiBR,OAAO,CAAC,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"nrql.d.ts","sourceRoot":"","sources":["../../src/tools/nrql.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAE/D,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAOjF,qBAAa,QAAQ;IACnB,IAAI,SAAoB;IACxB,WAAW,SAA+E;IAC1F,OAAO,CAAC,MAAM,CAAiB;gBAEnB,MAAM,EAAE,cAAc;IAIlC,iBAAiB,IAAI,IAAI;IAQzB,cAAc;;;;;;;;;;;;;;IAiBR,OAAO,CAAC,KAAK,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,iBAAiB,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,eAAe,CAAC;CAqB9F"}
|
package/dist/tools/nrql.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nrql.js","sourceRoot":"","sources":["../../src/tools/nrql.ts"],"names":[],"mappings":";;;AACA,6BAAwB;AAGxB,MAAM,gBAAgB,GAAG,OAAC,CAAC,MAAM,CAAC;IAChC,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB,iBAAiB,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACzC,CAAC,CAAC;AAEH,MAAa,QAAQ;IACnB,IAAI,GAAG,gBAAgB,CAAC;IACxB,WAAW,GAAG,2EAA2E,CAAC;IAClF,MAAM,CAAiB;IAE/B,YAAY,MAAsB;QAChC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,iBAAiB;QACf,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,WAAW,EAAE,IAAI,CAAC,cAAc,EAAE;SACnC,CAAC;IACJ,CAAC;IAED,cAAc;QACZ,OAAO;YACL,IAAI,EAAE,QAAiB;YACvB,UAAU,EAAE;gBACV,IAAI,EAAE;oBACJ,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,2BAA2B;iBACzC;gBACD,iBAAiB,EAAE;oBACjB,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,wCAAwC;iBACtD;aACF;YACD,QAAQ,EAAE,CAAC,MAAM,CAAC;SACnB,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"nrql.js","sourceRoot":"","sources":["../../src/tools/nrql.ts"],"names":[],"mappings":";;;AACA,6BAAwB;AAGxB,MAAM,gBAAgB,GAAG,OAAC,CAAC,MAAM,CAAC;IAChC,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB,iBAAiB,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACzC,CAAC,CAAC;AAEH,MAAa,QAAQ;IACnB,IAAI,GAAG,gBAAgB,CAAC;IACxB,WAAW,GAAG,2EAA2E,CAAC;IAClF,MAAM,CAAiB;IAE/B,YAAY,MAAsB;QAChC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,iBAAiB;QACf,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,WAAW,EAAE,IAAI,CAAC,cAAc,EAAE;SACnC,CAAC;IACJ,CAAC;IAED,cAAc;QACZ,OAAO;YACL,IAAI,EAAE,QAAiB;YACvB,UAAU,EAAE;gBACV,IAAI,EAAE;oBACJ,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,2BAA2B;iBACzC;gBACD,iBAAiB,EAAE;oBACjB,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,wCAAwC;iBACtD;aACF;YACD,QAAQ,EAAE,CAAC,MAAM,CAAC;SACnB,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,KAAoD;QAChE,iBAAiB;QACjB,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;YAC9E,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;QAC1D,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,iBAAiB,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;QACjD,CAAC;QAED,IAAI,KAAK,CAAC,iBAAiB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,EAAE,CAAC;YACtE,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;QAC/C,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC;YAC5C,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,SAAS,EAAE,KAAK,CAAC,iBAAiB;SACnC,CAAC,CAAC;QAEH,OAAO,MAAM,CAAC;IAChB,CAAC;CACF;AAvDD,4BAuDC"}
|
|
@@ -5,8 +5,17 @@ export declare class SyntheticsTool {
|
|
|
5
5
|
constructor(client: NewRelicClient);
|
|
6
6
|
getListMonitorsTool(): Tool;
|
|
7
7
|
getCreateMonitorTool(): Tool;
|
|
8
|
-
listSyntheticsMonitors(input:
|
|
9
|
-
|
|
8
|
+
listSyntheticsMonitors(input: {
|
|
9
|
+
target_account_id?: string;
|
|
10
|
+
monitor_type?: 'SIMPLE' | 'BROWSER' | 'SCRIPT_API' | 'SCRIPT_BROWSER';
|
|
11
|
+
}): Promise<Array<Record<string, unknown>>>;
|
|
12
|
+
createBrowserMonitor(input: {
|
|
13
|
+
target_account_id?: string;
|
|
14
|
+
name: string;
|
|
15
|
+
url: string;
|
|
16
|
+
frequency: number;
|
|
17
|
+
locations: string[];
|
|
18
|
+
}): Promise<Record<string, unknown> | null>;
|
|
10
19
|
private frequencyToPeriod;
|
|
11
20
|
}
|
|
12
21
|
//# sourceMappingURL=synthetics.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"synthetics.d.ts","sourceRoot":"","sources":["../../src/tools/synthetics.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAC/D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAEhE,qBAAa,cAAc;IACzB,OAAO,CAAC,MAAM,CAAiB;gBAEnB,MAAM,EAAE,cAAc;IAIlC,mBAAmB,IAAI,IAAI;IAqB3B,oBAAoB,IAAI,IAAI;IAmCtB,sBAAsB,CAAC,KAAK,EAAE,GAAG,GAAG,
|
|
1
|
+
{"version":3,"file":"synthetics.d.ts","sourceRoot":"","sources":["../../src/tools/synthetics.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAC/D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAEhE,qBAAa,cAAc;IACzB,OAAO,CAAC,MAAM,CAAiB;gBAEnB,MAAM,EAAE,cAAc;IAIlC,mBAAmB,IAAI,IAAI;IAqB3B,oBAAoB,IAAI,IAAI;IAmCtB,sBAAsB,CAAC,KAAK,EAAE;QAClC,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAC3B,YAAY,CAAC,EAAE,QAAQ,GAAG,SAAS,GAAG,YAAY,GAAG,gBAAgB,CAAC;KACvE,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IA6CrC,oBAAoB,CAAC,KAAK,EAAE;QAChC,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAC3B,IAAI,EAAE,MAAM,CAAC;QACb,GAAG,EAAE,MAAM,CAAC;QACZ,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,MAAM,EAAE,CAAC;KACrB,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAoD3C,OAAO,CAAC,iBAAiB;CAW1B"}
|
package/dist/tools/synthetics.js
CHANGED
|
@@ -90,7 +90,7 @@ class SyntheticsTool {
|
|
|
90
90
|
}
|
|
91
91
|
}
|
|
92
92
|
}`;
|
|
93
|
-
const response = await this.client.executeNerdGraphQuery(graphqlQuery);
|
|
93
|
+
const response = (await this.client.executeNerdGraphQuery(graphqlQuery));
|
|
94
94
|
return response.data?.actor?.entitySearch?.results?.entities || [];
|
|
95
95
|
}
|
|
96
96
|
async createBrowserMonitor(input) {
|
|
@@ -128,8 +128,8 @@ class SyntheticsTool {
|
|
|
128
128
|
`;
|
|
129
129
|
const response = await this.client.executeNerdGraphQuery(mutation);
|
|
130
130
|
const result = response.data?.syntheticsCreateSimpleBrowserMonitor;
|
|
131
|
-
if (result?.errors && result.errors.length > 0) {
|
|
132
|
-
throw new Error(`Failed to create monitor: ${result.errors[0]
|
|
131
|
+
if (Array.isArray(result?.errors) && result.errors.length > 0) {
|
|
132
|
+
throw new Error(`Failed to create monitor: ${result.errors[0]?.description || 'Unknown error'}`);
|
|
133
133
|
}
|
|
134
134
|
return result?.monitor || null;
|
|
135
135
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"synthetics.js","sourceRoot":"","sources":["../../src/tools/synthetics.ts"],"names":[],"mappings":";;;AAGA,MAAa,cAAc;IACjB,MAAM,CAAiB;IAE/B,YAAY,MAAsB;QAChC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,mBAAmB;QACjB,OAAO;YACL,IAAI,EAAE,0BAA0B;YAChC,WAAW,EAAE,wDAAwD;YACrE,WAAW,EAAE;gBACX,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACV,iBAAiB,EAAE;wBACjB,IAAI,EAAE,QAAQ;wBACd,WAAW,EAAE,+BAA+B;qBAC7C;oBACD,YAAY,EAAE;wBACZ,IAAI,EAAE,QAAQ;wBACd,IAAI,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,YAAY,EAAE,gBAAgB,CAAC;wBAC3D,WAAW,EAAE,wBAAwB;qBACtC;iBACF;aACF;SACF,CAAC;IACJ,CAAC;IAED,oBAAoB;QAClB,OAAO;YACL,IAAI,EAAE,wBAAwB;YAC9B,WAAW,EAAE,+CAA+C;YAC5D,WAAW,EAAE;gBACX,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACV,IAAI,EAAE;wBACJ,IAAI,EAAE,QAAQ;wBACd,WAAW,EAAE,qBAAqB;qBACnC;oBACD,GAAG,EAAE;wBACH,IAAI,EAAE,QAAQ;wBACd,WAAW,EAAE,gBAAgB;qBAC9B;oBACD,SAAS,EAAE;wBACT,IAAI,EAAE,QAAQ;wBACd,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;wBAC5B,WAAW,EAAE,4BAA4B;qBAC1C;oBACD,SAAS,EAAE;wBACT,IAAI,EAAE,OAAO;wBACb,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;wBACzB,WAAW,EAAE,+BAA+B;qBAC7C;oBACD,iBAAiB,EAAE;wBACjB,IAAI,EAAE,QAAQ;wBACd,WAAW,EAAE,+BAA+B;qBAC7C;iBACF;gBACD,QAAQ,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,WAAW,CAAC;aACpD;SACF,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,sBAAsB,CAAC,
|
|
1
|
+
{"version":3,"file":"synthetics.js","sourceRoot":"","sources":["../../src/tools/synthetics.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.
|
|
3
|
+
"version": "1.1.2",
|
|
4
4
|
"description": "Model Context Protocol server for New Relic observability platform integration",
|
|
5
5
|
"main": "dist/server.js",
|
|
6
6
|
"bin": {
|
|
@@ -29,6 +29,7 @@
|
|
|
29
29
|
"dev": "tsx src/server.ts",
|
|
30
30
|
"start": "node dist/server.js",
|
|
31
31
|
"test": "vitest",
|
|
32
|
+
"test:watch": "vitest",
|
|
32
33
|
"test:ui": "vitest --ui",
|
|
33
34
|
"test:coverage": "vitest --coverage",
|
|
34
35
|
"test:integration": "USE_REAL_ENV=true vitest",
|
|
@@ -37,10 +38,17 @@
|
|
|
37
38
|
"test:eval": "evalite",
|
|
38
39
|
"test:eval:watch": "evalite watch",
|
|
39
40
|
"typecheck": "tsc --noEmit",
|
|
40
|
-
"lint": "
|
|
41
|
-
"lint:fix": "
|
|
42
|
-
"format": "
|
|
43
|
-
"format:check": "
|
|
41
|
+
"lint": "npx ultracite lint",
|
|
42
|
+
"lint:fix": "npx ultracite format",
|
|
43
|
+
"format": "npx ultracite format",
|
|
44
|
+
"format:check": "npx ultracite lint",
|
|
45
|
+
"ai:test": "vitest --run",
|
|
46
|
+
"ai:test:watch": "vitest",
|
|
47
|
+
"ai:lint": "biome lint --max-diagnostics=none --reporter=summary .",
|
|
48
|
+
"ai:check": "biome check --max-diagnostics=none --reporter=summary .",
|
|
49
|
+
"ai:ci": "biome ci --max-diagnostics=none --reporter=summary .",
|
|
50
|
+
"ai:format": "biome format --write .",
|
|
51
|
+
"ai:format:check": "biome format .",
|
|
44
52
|
"inspect": "npx @modelcontextprotocol/inspector node dist/server.js",
|
|
45
53
|
"inspect:dev": "npx @modelcontextprotocol/inspector tsx src/server.ts",
|
|
46
54
|
"inspect:env": "./scripts/run-inspector.sh",
|