@us-all/datadog-mcp 1.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.
Files changed (83) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +275 -0
  3. package/dist/client.d.ts +21 -0
  4. package/dist/client.d.ts.map +1 -0
  5. package/dist/client.js +37 -0
  6. package/dist/client.js.map +1 -0
  7. package/dist/config.d.ts +8 -0
  8. package/dist/config.d.ts.map +1 -0
  9. package/dist/config.js +17 -0
  10. package/dist/config.js.map +1 -0
  11. package/dist/index.d.ts +3 -0
  12. package/dist/index.d.ts.map +1 -0
  13. package/dist/index.js +100 -0
  14. package/dist/index.js.map +1 -0
  15. package/dist/tools/account.d.ts +48 -0
  16. package/dist/tools/account.d.ts.map +1 -0
  17. package/dist/tools/account.js +64 -0
  18. package/dist/tools/account.js.map +1 -0
  19. package/dist/tools/apm.d.ts +36 -0
  20. package/dist/tools/apm.d.ts.map +1 -0
  21. package/dist/tools/apm.js +40 -0
  22. package/dist/tools/apm.js.map +1 -0
  23. package/dist/tools/dashboards.d.ts +82 -0
  24. package/dist/tools/dashboards.d.ts.map +1 -0
  25. package/dist/tools/dashboards.js +124 -0
  26. package/dist/tools/dashboards.js.map +1 -0
  27. package/dist/tools/downtimes.d.ts +51 -0
  28. package/dist/tools/downtimes.d.ts.map +1 -0
  29. package/dist/tools/downtimes.js +96 -0
  30. package/dist/tools/downtimes.js.map +1 -0
  31. package/dist/tools/events.d.ts +52 -0
  32. package/dist/tools/events.d.ts.map +1 -0
  33. package/dist/tools/events.js +70 -0
  34. package/dist/tools/events.js.map +1 -0
  35. package/dist/tools/hosts.d.ts +38 -0
  36. package/dist/tools/hosts.d.ts.map +1 -0
  37. package/dist/tools/hosts.js +55 -0
  38. package/dist/tools/hosts.js.map +1 -0
  39. package/dist/tools/incidents.d.ts +23 -0
  40. package/dist/tools/incidents.d.ts.map +1 -0
  41. package/dist/tools/incidents.js +29 -0
  42. package/dist/tools/incidents.js.map +1 -0
  43. package/dist/tools/logs.d.ts +67 -0
  44. package/dist/tools/logs.d.ts.map +1 -0
  45. package/dist/tools/logs.js +98 -0
  46. package/dist/tools/logs.js.map +1 -0
  47. package/dist/tools/metrics.d.ts +61 -0
  48. package/dist/tools/metrics.d.ts.map +1 -0
  49. package/dist/tools/metrics.js +94 -0
  50. package/dist/tools/metrics.js.map +1 -0
  51. package/dist/tools/monitors.d.ts +92 -0
  52. package/dist/tools/monitors.d.ts.map +1 -0
  53. package/dist/tools/monitors.js +157 -0
  54. package/dist/tools/monitors.js.map +1 -0
  55. package/dist/tools/notebooks.d.ts +41 -0
  56. package/dist/tools/notebooks.d.ts.map +1 -0
  57. package/dist/tools/notebooks.js +60 -0
  58. package/dist/tools/notebooks.js.map +1 -0
  59. package/dist/tools/oncall.d.ts +18 -0
  60. package/dist/tools/oncall.d.ts.map +1 -0
  61. package/dist/tools/oncall.js +31 -0
  62. package/dist/tools/oncall.js.map +1 -0
  63. package/dist/tools/rum.d.ts +50 -0
  64. package/dist/tools/rum.d.ts.map +1 -0
  65. package/dist/tools/rum.js +65 -0
  66. package/dist/tools/rum.js.map +1 -0
  67. package/dist/tools/security.d.ts +25 -0
  68. package/dist/tools/security.d.ts.map +1 -0
  69. package/dist/tools/security.js +37 -0
  70. package/dist/tools/security.js.map +1 -0
  71. package/dist/tools/slos.d.ts +59 -0
  72. package/dist/tools/slos.d.ts.map +1 -0
  73. package/dist/tools/slos.js +82 -0
  74. package/dist/tools/slos.js.map +1 -0
  75. package/dist/tools/synthetics.d.ts +115 -0
  76. package/dist/tools/synthetics.d.ts.map +1 -0
  77. package/dist/tools/synthetics.js +185 -0
  78. package/dist/tools/synthetics.js.map +1 -0
  79. package/dist/tools/utils.d.ts +18 -0
  80. package/dist/tools/utils.d.ts.map +1 -0
  81. package/dist/tools/utils.js +97 -0
  82. package/dist/tools/utils.js.map +1 -0
  83. package/package.json +54 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"account.js","sourceRoot":"","sources":["../../src/tools/account.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,36 @@
1
+ import { z } from "zod/v4";
2
+ export declare const searchSpansSchema: z.ZodObject<{
3
+ query: z.ZodString;
4
+ from: z.ZodString;
5
+ to: z.ZodString;
6
+ limit: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
7
+ sort: z.ZodDefault<z.ZodOptional<z.ZodEnum<{
8
+ timestamp: "timestamp";
9
+ "-timestamp": "-timestamp";
10
+ }>>>;
11
+ }, z.core.$strip>;
12
+ export declare function searchSpans(params: z.infer<typeof searchSpansSchema>): Promise<{
13
+ count: number;
14
+ spans: {
15
+ id: string | undefined;
16
+ traceId: string | undefined;
17
+ spanId: string | undefined;
18
+ parentId: string | undefined;
19
+ service: string | undefined;
20
+ resourceName: string | undefined;
21
+ type: string | undefined;
22
+ env: string | undefined;
23
+ host: string | undefined;
24
+ startTimestamp: string | undefined;
25
+ endTimestamp: string | undefined;
26
+ ingestionReason: string | undefined;
27
+ tags: string[] | undefined;
28
+ custom: {
29
+ [key: string]: any;
30
+ } | undefined;
31
+ attributes: {
32
+ [key: string]: any;
33
+ } | undefined;
34
+ }[];
35
+ }>;
36
+ //# sourceMappingURL=apm.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apm.d.ts","sourceRoot":"","sources":["../../src/tools/apm.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAG3B,eAAO,MAAM,iBAAiB;;;;;;;;;iBAM5B,CAAC;AAEH,wBAAsB,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC;;;;;;;;;;;;;;;;;;;;;;;GA8B1E"}
@@ -0,0 +1,40 @@
1
+ import { z } from "zod/v4";
2
+ import { spansApi } from "../client.js";
3
+ export const searchSpansSchema = z.object({
4
+ query: z.string().describe("Span search query. Example: service:api-server resource_name:GET_/users @duration:>5s"),
5
+ from: z.string().describe("Start time (ISO 8601 or relative). Example: 2026-02-26T00:00:00Z or now-1h"),
6
+ to: z.string().describe("End time (ISO 8601 or relative). Example: 2026-02-26T23:59:59Z or now"),
7
+ limit: z.number().optional().default(50).describe("Max results (default 50, max 1000)"),
8
+ sort: z.enum(["timestamp", "-timestamp"]).optional().default("-timestamp").describe("Sort order: -timestamp (newest first) or timestamp (oldest first)"),
9
+ });
10
+ export async function searchSpans(params) {
11
+ const response = await spansApi.listSpansGet({
12
+ filterQuery: params.query,
13
+ filterFrom: params.from,
14
+ filterTo: params.to,
15
+ pageLimit: params.limit,
16
+ sort: params.sort === "timestamp" ? "timestamp" : "-timestamp",
17
+ });
18
+ const spans = response.data ?? [];
19
+ return {
20
+ count: spans.length,
21
+ spans: spans.map((s) => ({
22
+ id: s.id,
23
+ traceId: s.attributes?.traceId,
24
+ spanId: s.attributes?.spanId,
25
+ parentId: s.attributes?.parentId,
26
+ service: s.attributes?.service,
27
+ resourceName: s.attributes?.resourceName,
28
+ type: s.attributes?.type,
29
+ env: s.attributes?.env,
30
+ host: s.attributes?.host,
31
+ startTimestamp: s.attributes?.startTimestamp?.toISOString(),
32
+ endTimestamp: s.attributes?.endTimestamp?.toISOString(),
33
+ ingestionReason: s.attributes?.ingestionReason,
34
+ tags: s.attributes?.tags,
35
+ custom: s.attributes?.custom,
36
+ attributes: s.attributes?.attributes,
37
+ })),
38
+ };
39
+ }
40
+ //# sourceMappingURL=apm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apm.js","sourceRoot":"","sources":["../../src/tools/apm.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAC3B,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAExC,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACxC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,uFAAuF,CAAC;IACnH,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,4EAA4E,CAAC;IACvG,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,uEAAuE,CAAC;IAChG,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,oCAAoC,CAAC;IACvF,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,mEAAmE,CAAC;CACzJ,CAAC,CAAC;AAEH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,MAAyC;IACzE,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,YAAY,CAAC;QAC3C,WAAW,EAAE,MAAM,CAAC,KAAK;QACzB,UAAU,EAAE,MAAM,CAAC,IAAI;QACvB,QAAQ,EAAE,MAAM,CAAC,EAAE;QACnB,SAAS,EAAE,MAAM,CAAC,KAAK;QACvB,IAAI,EAAE,MAAM,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,YAAY;KAC/D,CAAC,CAAC;IAEH,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,IAAI,EAAE,CAAC;IAClC,OAAO;QACL,KAAK,EAAE,KAAK,CAAC,MAAM;QACnB,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACvB,EAAE,EAAE,CAAC,CAAC,EAAE;YACR,OAAO,EAAE,CAAC,CAAC,UAAU,EAAE,OAAO;YAC9B,MAAM,EAAE,CAAC,CAAC,UAAU,EAAE,MAAM;YAC5B,QAAQ,EAAE,CAAC,CAAC,UAAU,EAAE,QAAQ;YAChC,OAAO,EAAE,CAAC,CAAC,UAAU,EAAE,OAAO;YAC9B,YAAY,EAAE,CAAC,CAAC,UAAU,EAAE,YAAY;YACxC,IAAI,EAAE,CAAC,CAAC,UAAU,EAAE,IAAI;YACxB,GAAG,EAAE,CAAC,CAAC,UAAU,EAAE,GAAG;YACtB,IAAI,EAAE,CAAC,CAAC,UAAU,EAAE,IAAI;YACxB,cAAc,EAAE,CAAC,CAAC,UAAU,EAAE,cAAc,EAAE,WAAW,EAAE;YAC3D,YAAY,EAAE,CAAC,CAAC,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE;YACvD,eAAe,EAAE,CAAC,CAAC,UAAU,EAAE,eAAe;YAC9C,IAAI,EAAE,CAAC,CAAC,UAAU,EAAE,IAAI;YACxB,MAAM,EAAE,CAAC,CAAC,UAAU,EAAE,MAAM;YAC5B,UAAU,EAAE,CAAC,CAAC,UAAU,EAAE,UAAU;SACrC,CAAC,CAAC;KACJ,CAAC;AACJ,CAAC"}
@@ -0,0 +1,82 @@
1
+ import { z } from "zod/v4";
2
+ export declare const getDashboardsSchema: z.ZodObject<{
3
+ filterShared: z.ZodOptional<z.ZodBoolean>;
4
+ count: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
5
+ start: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
6
+ }, z.core.$strip>;
7
+ export declare function getDashboards(params: z.infer<typeof getDashboardsSchema>): Promise<{
8
+ total: number;
9
+ dashboards: {
10
+ id: string | undefined;
11
+ title: string | undefined;
12
+ description: string | undefined;
13
+ layoutType: import("@datadog/datadog-api-client/dist/packages/datadog-api-client-v1/index.js").DashboardLayoutType | undefined;
14
+ url: string | undefined;
15
+ author: string | undefined;
16
+ created: string | undefined;
17
+ modified: string | undefined;
18
+ }[];
19
+ }>;
20
+ export declare const getDashboardSchema: z.ZodObject<{
21
+ dashboardId: z.ZodString;
22
+ }, z.core.$strip>;
23
+ export declare function getDashboard(params: z.infer<typeof getDashboardSchema>): Promise<{
24
+ id: string | undefined;
25
+ title: string;
26
+ description: string | undefined;
27
+ layoutType: import("@datadog/datadog-api-client/dist/packages/datadog-api-client-v1/index.js").DashboardLayoutType;
28
+ url: string | undefined;
29
+ author: string | undefined;
30
+ created: string | undefined;
31
+ modified: string | undefined;
32
+ widgets: {
33
+ id: number | undefined;
34
+ definition: import("@datadog/datadog-api-client/dist/packages/datadog-api-client-v1/index.js").WidgetDefinition;
35
+ }[];
36
+ templateVariables: import("@datadog/datadog-api-client/dist/packages/datadog-api-client-v1/index.js").DashboardTemplateVariable[] | undefined;
37
+ notifyList: string[] | undefined;
38
+ }>;
39
+ export declare const createDashboardSchema: z.ZodObject<{
40
+ title: z.ZodString;
41
+ layoutType: z.ZodEnum<{
42
+ ordered: "ordered";
43
+ free: "free";
44
+ }>;
45
+ description: z.ZodOptional<z.ZodString>;
46
+ widgets: z.ZodArray<z.ZodRecord<z.ZodString, z.ZodAny>>;
47
+ tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
48
+ templateVariables: z.ZodOptional<z.ZodArray<z.ZodRecord<z.ZodString, z.ZodAny>>>;
49
+ }, z.core.$strip>;
50
+ export declare function createDashboard(params: z.infer<typeof createDashboardSchema>): Promise<{
51
+ id: string | undefined;
52
+ title: string;
53
+ layoutType: import("@datadog/datadog-api-client/dist/packages/datadog-api-client-v1/index.js").DashboardLayoutType;
54
+ url: string | undefined;
55
+ created: string | undefined;
56
+ }>;
57
+ export declare const updateDashboardSchema: z.ZodObject<{
58
+ dashboardId: z.ZodString;
59
+ title: z.ZodString;
60
+ layoutType: z.ZodEnum<{
61
+ ordered: "ordered";
62
+ free: "free";
63
+ }>;
64
+ description: z.ZodOptional<z.ZodString>;
65
+ widgets: z.ZodArray<z.ZodRecord<z.ZodString, z.ZodAny>>;
66
+ tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
67
+ templateVariables: z.ZodOptional<z.ZodArray<z.ZodRecord<z.ZodString, z.ZodAny>>>;
68
+ }, z.core.$strip>;
69
+ export declare function updateDashboard(params: z.infer<typeof updateDashboardSchema>): Promise<{
70
+ id: string | undefined;
71
+ title: string;
72
+ layoutType: import("@datadog/datadog-api-client/dist/packages/datadog-api-client-v1/index.js").DashboardLayoutType;
73
+ url: string | undefined;
74
+ modified: string | undefined;
75
+ }>;
76
+ export declare const deleteDashboardSchema: z.ZodObject<{
77
+ dashboardId: z.ZodString;
78
+ }, z.core.$strip>;
79
+ export declare function deleteDashboard(params: z.infer<typeof deleteDashboardSchema>): Promise<{
80
+ deletedDashboardId: string | undefined;
81
+ }>;
82
+ //# sourceMappingURL=dashboards.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dashboards.d.ts","sourceRoot":"","sources":["../../src/tools/dashboards.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAI3B,eAAO,MAAM,mBAAmB;;;;iBAI9B,CAAC;AAEH,wBAAsB,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC;;;;;;;;;;;;GAqB9E;AAED,eAAO,MAAM,kBAAkB;;iBAE7B,CAAC;AAEH,wBAAsB,YAAY,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC;;;;;;;;;;;;;;;GAqB5E;AAED,eAAO,MAAM,qBAAqB;;;;;;;;;;iBAOhC,CAAC;AAEH,wBAAsB,eAAe,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC;;;;;;GAoBlF;AAED,eAAO,MAAM,qBAAqB;;;;;;;;;;;iBAQhC,CAAC;AAEH,wBAAsB,eAAe,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC;;;;;;GAqBlF;AAED,eAAO,MAAM,qBAAqB;;iBAEhC,CAAC;AAEH,wBAAsB,eAAe,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC;;GASlF"}
@@ -0,0 +1,124 @@
1
+ import { z } from "zod/v4";
2
+ import { dashboardsApi } from "../client.js";
3
+ import { assertWriteAllowed } from "./utils.js";
4
+ export const getDashboardsSchema = z.object({
5
+ filterShared: z.boolean().optional().describe("Filter shared dashboards only"),
6
+ count: z.number().optional().default(100).describe("Number of dashboards to return"),
7
+ start: z.number().optional().default(0).describe("Pagination offset"),
8
+ });
9
+ export async function getDashboards(params) {
10
+ const response = await dashboardsApi.listDashboards({
11
+ filterShared: params.filterShared,
12
+ count: params.count,
13
+ start: params.start,
14
+ });
15
+ const dashboards = response.dashboards ?? [];
16
+ return {
17
+ total: dashboards.length,
18
+ dashboards: dashboards.map((d) => ({
19
+ id: d.id,
20
+ title: d.title,
21
+ description: d.description,
22
+ layoutType: d.layoutType,
23
+ url: d.url,
24
+ author: d.authorHandle,
25
+ created: d.createdAt?.toISOString(),
26
+ modified: d.modifiedAt?.toISOString(),
27
+ })),
28
+ };
29
+ }
30
+ export const getDashboardSchema = z.object({
31
+ dashboardId: z.string().describe("Dashboard ID. Example: abc-def-ghi"),
32
+ });
33
+ export async function getDashboard(params) {
34
+ const response = await dashboardsApi.getDashboard({
35
+ dashboardId: params.dashboardId,
36
+ });
37
+ return {
38
+ id: response.id,
39
+ title: response.title,
40
+ description: response.description,
41
+ layoutType: response.layoutType,
42
+ url: response.url,
43
+ author: response.authorHandle,
44
+ created: response.createdAt?.toISOString(),
45
+ modified: response.modifiedAt?.toISOString(),
46
+ widgets: response.widgets?.map((w) => ({
47
+ id: w.id,
48
+ definition: w.definition,
49
+ })),
50
+ templateVariables: response.templateVariables,
51
+ notifyList: response.notifyList,
52
+ };
53
+ }
54
+ export const createDashboardSchema = z.object({
55
+ title: z.string().describe("Dashboard title. Example: Production Overview"),
56
+ layoutType: z.enum(["ordered", "free"]).describe("Layout type: ordered (auto-arranged) or free (manual placement)"),
57
+ description: z.string().optional().describe("Dashboard description"),
58
+ widgets: z.array(z.record(z.string(), z.any())).describe("Array of widget definitions (each with a 'definition' key)"),
59
+ tags: z.array(z.string()).optional().describe("Tags for the dashboard. Example: [\"env:prod\"]"),
60
+ templateVariables: z.array(z.record(z.string(), z.any())).optional().describe("Template variables for dynamic filtering"),
61
+ });
62
+ export async function createDashboard(params) {
63
+ assertWriteAllowed();
64
+ const response = await dashboardsApi.createDashboard({
65
+ body: {
66
+ title: params.title,
67
+ layoutType: params.layoutType,
68
+ description: params.description,
69
+ widgets: params.widgets,
70
+ tags: params.tags,
71
+ templateVariables: params.templateVariables,
72
+ },
73
+ });
74
+ return {
75
+ id: response.id,
76
+ title: response.title,
77
+ layoutType: response.layoutType,
78
+ url: response.url,
79
+ created: response.createdAt?.toISOString(),
80
+ };
81
+ }
82
+ export const updateDashboardSchema = z.object({
83
+ dashboardId: z.string().describe("Dashboard ID to update. Example: abc-def-ghi"),
84
+ title: z.string().describe("Dashboard title"),
85
+ layoutType: z.enum(["ordered", "free"]).describe("Layout type"),
86
+ description: z.string().optional().describe("Dashboard description"),
87
+ widgets: z.array(z.record(z.string(), z.any())).describe("Array of widget definitions"),
88
+ tags: z.array(z.string()).optional().describe("Tags"),
89
+ templateVariables: z.array(z.record(z.string(), z.any())).optional().describe("Template variables"),
90
+ });
91
+ export async function updateDashboard(params) {
92
+ assertWriteAllowed();
93
+ const response = await dashboardsApi.updateDashboard({
94
+ dashboardId: params.dashboardId,
95
+ body: {
96
+ title: params.title,
97
+ layoutType: params.layoutType,
98
+ description: params.description,
99
+ widgets: params.widgets,
100
+ tags: params.tags,
101
+ templateVariables: params.templateVariables,
102
+ },
103
+ });
104
+ return {
105
+ id: response.id,
106
+ title: response.title,
107
+ layoutType: response.layoutType,
108
+ url: response.url,
109
+ modified: response.modifiedAt?.toISOString(),
110
+ };
111
+ }
112
+ export const deleteDashboardSchema = z.object({
113
+ dashboardId: z.string().describe("Dashboard ID to delete. Example: abc-def-ghi"),
114
+ });
115
+ export async function deleteDashboard(params) {
116
+ assertWriteAllowed();
117
+ const response = await dashboardsApi.deleteDashboard({
118
+ dashboardId: params.dashboardId,
119
+ });
120
+ return {
121
+ deletedDashboardId: response.deletedDashboardId,
122
+ };
123
+ }
124
+ //# sourceMappingURL=dashboards.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dashboards.js","sourceRoot":"","sources":["../../src/tools/dashboards.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,51 @@
1
+ import { z } from "zod/v4";
2
+ export declare const listDowntimesSchema: z.ZodObject<{
3
+ currentOnly: z.ZodOptional<z.ZodBoolean>;
4
+ include: z.ZodOptional<z.ZodString>;
5
+ pageLimit: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
6
+ pageOffset: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
7
+ }, z.core.$strip>;
8
+ export declare function listDowntimes(params: z.infer<typeof listDowntimesSchema>): Promise<{
9
+ count: number;
10
+ downtimes: {
11
+ id: string | undefined;
12
+ type: import("@datadog/datadog-api-client/dist/packages/datadog-api-client-v2/index.js").DowntimeResourceType | undefined;
13
+ displayTimezone: string | undefined;
14
+ message: string | undefined;
15
+ muteFirstRecoveryNotification: boolean | undefined;
16
+ scope: string | undefined;
17
+ status: import("@datadog/datadog-api-client/dist/packages/datadog-api-client-v2/index.js").DowntimeStatus | undefined;
18
+ schedule: import("@datadog/datadog-api-client/dist/packages/datadog-api-client-v2/index.js").DowntimeScheduleResponse | undefined;
19
+ canceled: string | undefined;
20
+ created: string | undefined;
21
+ modified: string | undefined;
22
+ monitorIdentifier: import("@datadog/datadog-api-client/dist/packages/datadog-api-client-v2/index.js").DowntimeMonitorIdentifier | undefined;
23
+ }[];
24
+ }>;
25
+ export declare const createDowntimeSchema: z.ZodObject<{
26
+ scope: z.ZodString;
27
+ start: z.ZodNumber;
28
+ end: z.ZodOptional<z.ZodNumber>;
29
+ message: z.ZodOptional<z.ZodString>;
30
+ monitorId: z.ZodOptional<z.ZodNumber>;
31
+ monitorTags: z.ZodOptional<z.ZodArray<z.ZodString>>;
32
+ timezone: z.ZodDefault<z.ZodOptional<z.ZodString>>;
33
+ notifyEndStates: z.ZodOptional<z.ZodArray<z.ZodString>>;
34
+ }, z.core.$strip>;
35
+ export declare function createDowntime(params: z.infer<typeof createDowntimeSchema>): Promise<{
36
+ id: string | undefined;
37
+ type: import("@datadog/datadog-api-client/dist/packages/datadog-api-client-v2/index.js").DowntimeResourceType | undefined;
38
+ scope: string | undefined;
39
+ status: import("@datadog/datadog-api-client/dist/packages/datadog-api-client-v2/index.js").DowntimeStatus | undefined;
40
+ schedule: import("@datadog/datadog-api-client/dist/packages/datadog-api-client-v2/index.js").DowntimeScheduleResponse | undefined;
41
+ message: string | undefined;
42
+ created: string | undefined;
43
+ }>;
44
+ export declare const cancelDowntimeSchema: z.ZodObject<{
45
+ downtimeId: z.ZodString;
46
+ }, z.core.$strip>;
47
+ export declare function cancelDowntime(params: z.infer<typeof cancelDowntimeSchema>): Promise<{
48
+ success: boolean;
49
+ downtimeId: string;
50
+ }>;
51
+ //# sourceMappingURL=downtimes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"downtimes.d.ts","sourceRoot":"","sources":["../../src/tools/downtimes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAI3B,eAAO,MAAM,mBAAmB;;;;;iBAK9B,CAAC;AAEH,wBAAsB,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC;;;;;;;;;;;;;;;;GA0B9E;AAED,eAAO,MAAM,oBAAoB;;;;;;;;;iBAS/B,CAAC;AAEH,wBAAsB,cAAc,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC;;;;;;;;GAuChF;AAED,eAAO,MAAM,oBAAoB;;iBAE/B,CAAC;AAEH,wBAAsB,cAAc,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC;;;GAOhF"}
@@ -0,0 +1,96 @@
1
+ import { z } from "zod/v4";
2
+ import { downtimesApi } from "../client.js";
3
+ import { assertWriteAllowed } from "./utils.js";
4
+ export const listDowntimesSchema = z.object({
5
+ currentOnly: z.boolean().optional().describe("Return only currently active downtimes"),
6
+ include: z.string().optional().describe("Comma-separated related resources to include. Example: created_by,monitor"),
7
+ pageLimit: z.number().optional().default(50).describe("Max results per page (default 50)"),
8
+ pageOffset: z.number().optional().default(0).describe("Pagination offset"),
9
+ });
10
+ export async function listDowntimes(params) {
11
+ const response = await downtimesApi.listDowntimes({
12
+ currentOnly: params.currentOnly,
13
+ include: params.include,
14
+ pageLimit: params.pageLimit,
15
+ pageOffset: params.pageOffset,
16
+ });
17
+ const downtimes = response.data ?? [];
18
+ return {
19
+ count: downtimes.length,
20
+ downtimes: downtimes.map((d) => ({
21
+ id: d.id,
22
+ type: d.type,
23
+ displayTimezone: d.attributes?.displayTimezone,
24
+ message: d.attributes?.message,
25
+ muteFirstRecoveryNotification: d.attributes?.muteFirstRecoveryNotification,
26
+ scope: d.attributes?.scope,
27
+ status: d.attributes?.status,
28
+ schedule: d.attributes?.schedule,
29
+ canceled: d.attributes?.canceled?.toISOString(),
30
+ created: d.attributes?.created?.toISOString(),
31
+ modified: d.attributes?.modified?.toISOString(),
32
+ monitorIdentifier: d.attributes?.monitorIdentifier,
33
+ })),
34
+ };
35
+ }
36
+ export const createDowntimeSchema = z.object({
37
+ scope: z.string().describe("Downtime scope. Example: env:prod or host:web-01 or * (all)"),
38
+ start: z.number().describe("Start time as Unix epoch seconds. Example: 1740000000"),
39
+ end: z.number().optional().describe("End time as Unix epoch seconds (omit for indefinite). Example: 1740003600"),
40
+ message: z.string().optional().describe("Notification message. Example: Scheduled maintenance window"),
41
+ monitorId: z.number().optional().describe("Specific monitor ID to mute. Example: 12345678"),
42
+ monitorTags: z.array(z.string()).optional().describe("Mute monitors matching these tags. Example: [\"service:api\"]"),
43
+ timezone: z.string().optional().default("UTC").describe("IANA timezone. Example: UTC or America/New_York"),
44
+ notifyEndStates: z.array(z.string()).optional().describe("States to notify on end. Example: [\"alert\", \"warn\"]"),
45
+ });
46
+ export async function createDowntime(params) {
47
+ assertWriteAllowed();
48
+ let monitorIdentifier;
49
+ if (params.monitorId) {
50
+ monitorIdentifier = { monitorId: params.monitorId };
51
+ }
52
+ else if (params.monitorTags && params.monitorTags.length > 0) {
53
+ monitorIdentifier = { monitorTags: params.monitorTags };
54
+ }
55
+ else {
56
+ monitorIdentifier = { monitorTags: ["*"] };
57
+ }
58
+ const response = await downtimesApi.createDowntime({
59
+ body: {
60
+ data: {
61
+ attributes: {
62
+ scope: params.scope,
63
+ monitorIdentifier,
64
+ schedule: {
65
+ start: new Date(params.start * 1000).toISOString(),
66
+ ...(params.end ? { end: new Date(params.end * 1000).toISOString() } : {}),
67
+ },
68
+ message: params.message,
69
+ displayTimezone: params.timezone,
70
+ ...(params.notifyEndStates ? { notifyEndStates: params.notifyEndStates } : {}),
71
+ },
72
+ type: "downtime",
73
+ },
74
+ },
75
+ });
76
+ return {
77
+ id: response.data?.id,
78
+ type: response.data?.type,
79
+ scope: response.data?.attributes?.scope,
80
+ status: response.data?.attributes?.status,
81
+ schedule: response.data?.attributes?.schedule,
82
+ message: response.data?.attributes?.message,
83
+ created: response.data?.attributes?.created?.toISOString(),
84
+ };
85
+ }
86
+ export const cancelDowntimeSchema = z.object({
87
+ downtimeId: z.string().describe("Downtime ID to cancel. Example: abc123def456"),
88
+ });
89
+ export async function cancelDowntime(params) {
90
+ assertWriteAllowed();
91
+ await downtimesApi.cancelDowntime({
92
+ downtimeId: params.downtimeId,
93
+ });
94
+ return { success: true, downtimeId: params.downtimeId };
95
+ }
96
+ //# sourceMappingURL=downtimes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"downtimes.js","sourceRoot":"","sources":["../../src/tools/downtimes.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,52 @@
1
+ import { z } from "zod/v4";
2
+ export declare const getEventsSchema: z.ZodObject<{
3
+ start: z.ZodNumber;
4
+ end: z.ZodNumber;
5
+ priority: z.ZodOptional<z.ZodEnum<{
6
+ low: "low";
7
+ normal: "normal";
8
+ }>>;
9
+ sources: z.ZodOptional<z.ZodString>;
10
+ tags: z.ZodOptional<z.ZodString>;
11
+ unaggregated: z.ZodOptional<z.ZodBoolean>;
12
+ page: z.ZodOptional<z.ZodNumber>;
13
+ }, z.core.$strip>;
14
+ export declare function getEvents(params: z.infer<typeof getEventsSchema>): Promise<{
15
+ count: number;
16
+ events: {
17
+ id: number | undefined;
18
+ title: string | undefined;
19
+ text: string | undefined;
20
+ dateHappened: string | undefined;
21
+ host: string | undefined;
22
+ priority: import("@datadog/datadog-api-client/dist/packages/datadog-api-client-v1/index.js").EventPriority | undefined;
23
+ source: any;
24
+ tags: string[] | undefined;
25
+ alertType: import("@datadog/datadog-api-client/dist/packages/datadog-api-client-v1/index.js").EventAlertType | undefined;
26
+ }[];
27
+ }>;
28
+ export declare const postEventSchema: z.ZodObject<{
29
+ title: z.ZodString;
30
+ text: z.ZodString;
31
+ tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
32
+ alertType: z.ZodOptional<z.ZodEnum<{
33
+ success: "success";
34
+ error: "error";
35
+ warning: "warning";
36
+ info: "info";
37
+ }>>;
38
+ priority: z.ZodOptional<z.ZodEnum<{
39
+ low: "low";
40
+ normal: "normal";
41
+ }>>;
42
+ host: z.ZodOptional<z.ZodString>;
43
+ aggregationKey: z.ZodOptional<z.ZodString>;
44
+ sourceTypeName: z.ZodOptional<z.ZodString>;
45
+ }, z.core.$strip>;
46
+ export declare function postEvent(params: z.infer<typeof postEventSchema>): Promise<{
47
+ id: number | undefined;
48
+ title: string | undefined;
49
+ url: string | undefined;
50
+ status: string | undefined;
51
+ }>;
52
+ //# sourceMappingURL=events.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/tools/events.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAI3B,eAAO,MAAM,eAAe;;;;;;;;;;;iBAQ1B,CAAC;AAEH,wBAAsB,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC;;;;;;;;;;;;;GA0BtE;AAED,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;iBAS1B,CAAC;AAEH,wBAAsB,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC;;;;;GAqBtE"}
@@ -0,0 +1,70 @@
1
+ import { z } from "zod/v4";
2
+ import { eventsApi } from "../client.js";
3
+ import { assertWriteAllowed } from "./utils.js";
4
+ export const getEventsSchema = z.object({
5
+ start: z.number().describe("Start time as Unix epoch seconds. Example: 1740000000"),
6
+ end: z.number().describe("End time as Unix epoch seconds. Example: 1740003600"),
7
+ priority: z.enum(["low", "normal"]).optional().describe("Event priority filter"),
8
+ sources: z.string().optional().describe("Comma-separated event sources. Example: datadog,nginx"),
9
+ tags: z.string().optional().describe("Comma-separated tags to filter. Example: env:prod,service:api"),
10
+ unaggregated: z.boolean().optional().describe("Return unaggregated events"),
11
+ page: z.number().optional().describe("Page number for pagination"),
12
+ });
13
+ export async function getEvents(params) {
14
+ const response = await eventsApi.listEvents({
15
+ start: params.start,
16
+ end: params.end,
17
+ priority: params.priority,
18
+ sources: params.sources,
19
+ tags: params.tags,
20
+ unaggregated: params.unaggregated,
21
+ page: params.page,
22
+ });
23
+ const events = response.events ?? [];
24
+ return {
25
+ count: events.length,
26
+ events: events.map((e) => ({
27
+ id: e.id,
28
+ title: e.title,
29
+ text: e.text,
30
+ dateHappened: e.dateHappened ? new Date(e.dateHappened * 1000).toISOString() : undefined,
31
+ host: e.host,
32
+ priority: e.priority,
33
+ source: e.source,
34
+ tags: e.tags,
35
+ alertType: e.alertType,
36
+ })),
37
+ };
38
+ }
39
+ export const postEventSchema = z.object({
40
+ title: z.string().describe("Event title. Example: Deployment completed"),
41
+ text: z.string().describe("Event body (supports markdown, max 4000 chars). Example: Deployed v1.2.3 to production"),
42
+ tags: z.array(z.string()).optional().describe("Tags for the event. Example: [\"env:prod\", \"deploy\"]"),
43
+ alertType: z.enum(["error", "warning", "info", "success"]).optional().describe("Alert type"),
44
+ priority: z.enum(["low", "normal"]).optional().describe("Event priority"),
45
+ host: z.string().optional().describe("Associated host name"),
46
+ aggregationKey: z.string().optional().describe("Aggregation key for grouping events"),
47
+ sourceTypeName: z.string().optional().describe("Source type name. Example: my_app"),
48
+ });
49
+ export async function postEvent(params) {
50
+ assertWriteAllowed();
51
+ const response = await eventsApi.createEvent({
52
+ body: {
53
+ title: params.title,
54
+ text: params.text,
55
+ tags: params.tags,
56
+ alertType: params.alertType,
57
+ priority: params.priority,
58
+ host: params.host,
59
+ aggregationKey: params.aggregationKey,
60
+ sourceTypeName: params.sourceTypeName,
61
+ },
62
+ });
63
+ return {
64
+ id: response.event?.id,
65
+ title: response.event?.title,
66
+ url: response.event?.url,
67
+ status: response.status,
68
+ };
69
+ }
70
+ //# sourceMappingURL=events.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/tools/events.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAC3B,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAEhD,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,uDAAuD,CAAC;IACnF,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,qDAAqD,CAAC;IAC/E,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uBAAuB,CAAC;IAChF,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uDAAuD,CAAC;IAChG,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,+DAA+D,CAAC;IACrG,YAAY,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4BAA4B,CAAC;IAC3E,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4BAA4B,CAAC;CACnE,CAAC,CAAC;AAEH,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,MAAuC;IACrE,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,UAAU,CAAC;QAC1C,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,GAAG,EAAE,MAAM,CAAC,GAAG;QACf,QAAQ,EAAE,MAAM,CAAC,QAAe;QAChC,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,YAAY,EAAE,MAAM,CAAC,YAAY;QACjC,IAAI,EAAE,MAAM,CAAC,IAAI;KAClB,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,IAAI,EAAE,CAAC;IACrC,OAAO;QACL,KAAK,EAAE,MAAM,CAAC,MAAM;QACpB,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACzB,EAAE,EAAE,CAAC,CAAC,EAAE;YACR,KAAK,EAAE,CAAC,CAAC,KAAK;YACd,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,YAAY,EAAE,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,SAAS;YACxF,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,QAAQ,EAAE,CAAC,CAAC,QAAQ;YACpB,MAAM,EAAG,CAAS,CAAC,MAAM;YACzB,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,SAAS,EAAE,CAAC,CAAC,SAAS;SACvB,CAAC,CAAC;KACJ,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,4CAA4C,CAAC;IACxE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,wFAAwF,CAAC;IACnH,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,yDAAyD,CAAC;IACxG,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC;IAC5F,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC;IACzE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sBAAsB,CAAC;IAC5D,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qCAAqC,CAAC;IACrF,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mCAAmC,CAAC;CACpF,CAAC,CAAC;AAEH,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,MAAuC;IACrE,kBAAkB,EAAE,CAAC;IACrB,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,WAAW,CAAC;QAC3C,IAAI,EAAE;YACJ,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,SAAS,EAAE,MAAM,CAAC,SAAgB;YAClC,QAAQ,EAAE,MAAM,CAAC,QAAe;YAChC,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,cAAc,EAAE,MAAM,CAAC,cAAc;YACrC,cAAc,EAAE,MAAM,CAAC,cAAc;SACtC;KACF,CAAC,CAAC;IAEH,OAAO;QACL,EAAE,EAAE,QAAQ,CAAC,KAAK,EAAE,EAAE;QACtB,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,KAAK;QAC5B,GAAG,EAAE,QAAQ,CAAC,KAAK,EAAE,GAAG;QACxB,MAAM,EAAE,QAAQ,CAAC,MAAM;KACxB,CAAC;AACJ,CAAC"}