@tocharianou/mcp-server-kibana 0.6.1

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 (48) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +530 -0
  3. package/dist/index.d.ts +4 -0
  4. package/dist/index.js +417 -0
  5. package/dist/index.js.map +1 -0
  6. package/dist/kibana-openapi-source.yaml +52597 -0
  7. package/dist/src/analysis-tools.d.ts +6 -0
  8. package/dist/src/analysis-tools.js +134 -0
  9. package/dist/src/analysis-tools.js.map +1 -0
  10. package/dist/src/base-tools.d.ts +2 -0
  11. package/dist/src/base-tools.js +349 -0
  12. package/dist/src/base-tools.js.map +1 -0
  13. package/dist/src/dependency-analyzer.d.ts +65 -0
  14. package/dist/src/dependency-analyzer.js +233 -0
  15. package/dist/src/dependency-analyzer.js.map +1 -0
  16. package/dist/src/health-analyzer.d.ts +60 -0
  17. package/dist/src/health-analyzer.js +301 -0
  18. package/dist/src/health-analyzer.js.map +1 -0
  19. package/dist/src/kibana-openapi-source.yaml +52597 -0
  20. package/dist/src/openapi-simplifier.d.ts +33 -0
  21. package/dist/src/openapi-simplifier.js +122 -0
  22. package/dist/src/openapi-simplifier.js.map +1 -0
  23. package/dist/src/prompts.d.ts +2 -0
  24. package/dist/src/prompts.js +91 -0
  25. package/dist/src/prompts.js.map +1 -0
  26. package/dist/src/resources.d.ts +2 -0
  27. package/dist/src/resources.js +125 -0
  28. package/dist/src/resources.js.map +1 -0
  29. package/dist/src/types.d.ts +150 -0
  30. package/dist/src/types.js +38 -0
  31. package/dist/src/types.js.map +1 -0
  32. package/dist/src/vl_create_tools.d.ts +5 -0
  33. package/dist/src/vl_create_tools.js +264 -0
  34. package/dist/src/vl_create_tools.js.map +1 -0
  35. package/dist/src/vl_delete_tools.d.ts +5 -0
  36. package/dist/src/vl_delete_tools.js +158 -0
  37. package/dist/src/vl_delete_tools.js.map +1 -0
  38. package/dist/src/vl_get_tools.d.ts +5 -0
  39. package/dist/src/vl_get_tools.js +201 -0
  40. package/dist/src/vl_get_tools.js.map +1 -0
  41. package/dist/src/vl_search_tools.d.ts +9 -0
  42. package/dist/src/vl_search_tools.js +290 -0
  43. package/dist/src/vl_search_tools.js.map +1 -0
  44. package/dist/src/vl_update_tools.d.ts +5 -0
  45. package/dist/src/vl_update_tools.js +372 -0
  46. package/dist/src/vl_update_tools.js.map +1 -0
  47. package/kibana-openapi-source.yaml +52597 -0
  48. package/package.json +95 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vl_get_tools.js","sourceRoot":"","sources":["../../src/vl_get_tools.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { ServerBase, KibanaClient } from "./types";
2
+ /**
3
+ * Register all visualization tools with the MCP server
4
+ *
5
+ * @param server - MCP server instance
6
+ * @param kibanaClient - Kibana client instance
7
+ * @param defaultSpace - Default Kibana space
8
+ */
9
+ export declare function registerVlTools(server: ServerBase, kibanaClient: KibanaClient, defaultSpace: string): void;
@@ -0,0 +1,290 @@
1
+ import { z } from "zod";
2
+ /**
3
+ * Visualization Tools (vl_*) - Kibana Data Visualization Tools
4
+ *
5
+ * This module provides comprehensive tools for managing Kibana visualizations,
6
+ * dashboards, and saved objects. All tools are based on the official Kibana
7
+ * OpenAPI specification and follow strict type safety.
8
+ */
9
+ // ============================================================================
10
+ // SEARCH AND DISCOVERY TOOLS (vl_search_*)
11
+ // ============================================================================
12
+ /**
13
+ * Search for Kibana saved objects using the saved objects API
14
+ * @param kibanaClient - Kibana client instance
15
+ * @param search - Search query string (optional)
16
+ * @param types - Saved object types to include (optional, defaults to all types)
17
+ * @param perPage - Number of results per page (optional)
18
+ * @param page - Page number (optional)
19
+ * @param fields - Fields to return (optional)
20
+ * @param filter - KQL filter (optional)
21
+ * @param sortField - Field to sort by (optional)
22
+ * @param sortOrder - Sort order: 'asc' for ascending, 'desc' for descending (optional)
23
+ * @param defaultSearchOperator - Default operator for simple_query_string (optional)
24
+ * @param searchFields - Fields to perform the search query against (optional)
25
+ * @param hasReference - Filter to objects that have a relationship with the type and ID combination (optional)
26
+ * @param hasNoReference - Filter to objects that do not have a relationship with the type and identifier combination (optional)
27
+ * @param hasReferenceOperator - Operator for has_reference parameter (optional)
28
+ * @param hasNoReferenceOperator - Operator for has_no_reference parameter (optional)
29
+ * @param aggs - Aggregation structure (optional)
30
+ * @param space - Target Kibana space (optional, defaults to configured space)
31
+ * @returns Promise<ToolResponse> - MCP tool response
32
+ */
33
+ async function vl_search_saved_objects_impl(kibanaClient, search, types, perPage, page, fields, filter, sortField, sortOrder, defaultSearchOperator, searchFields, hasReference, hasNoReference, hasReferenceOperator, hasNoReferenceOperator, aggs, space) {
34
+ const params = new URLSearchParams();
35
+ // Core search parameters
36
+ if (search) {
37
+ params.append('search', search);
38
+ }
39
+ // Type filtering - support both single type and multiple types (REQUIRED)
40
+ if (types) {
41
+ // Apply the same transform logic as in Zod schema
42
+ let typesArray;
43
+ if (Array.isArray(types)) {
44
+ typesArray = types;
45
+ }
46
+ else if (typeof types === 'string') {
47
+ try {
48
+ const parsed = JSON.parse(types);
49
+ typesArray = Array.isArray(parsed) ? parsed : [parsed];
50
+ }
51
+ catch {
52
+ typesArray = types.split(',').map(s => s.trim()).filter(s => s);
53
+ }
54
+ }
55
+ else {
56
+ typesArray = [types];
57
+ }
58
+ typesArray.forEach(type => params.append('type', type));
59
+ }
60
+ // Pagination
61
+ if (perPage !== undefined) {
62
+ params.append('per_page', perPage.toString());
63
+ }
64
+ if (page !== undefined) {
65
+ params.append('page', page.toString());
66
+ }
67
+ // Response filtering
68
+ if (fields) {
69
+ // Apply the same transform logic as in Zod schema
70
+ let fieldsArray;
71
+ if (Array.isArray(fields)) {
72
+ fieldsArray = fields;
73
+ }
74
+ else if (typeof fields === 'string') {
75
+ try {
76
+ const parsed = JSON.parse(fields);
77
+ fieldsArray = Array.isArray(parsed) ? parsed : [parsed];
78
+ }
79
+ catch {
80
+ fieldsArray = fields.split(',').map(s => s.trim()).filter(s => s);
81
+ }
82
+ }
83
+ else {
84
+ fieldsArray = [fields];
85
+ }
86
+ fieldsArray.forEach(field => params.append('fields', field));
87
+ }
88
+ // Advanced filtering
89
+ if (filter) {
90
+ params.append('filter', filter);
91
+ }
92
+ // Sorting
93
+ if (sortField) {
94
+ params.append('sort_field', sortField);
95
+ }
96
+ if (sortOrder) {
97
+ params.append('sort_order', sortOrder);
98
+ }
99
+ // Search behavior
100
+ if (defaultSearchOperator) {
101
+ params.append('default_search_operator', defaultSearchOperator);
102
+ }
103
+ // if (searchFields) {
104
+ // // Apply the same transform logic as in Zod schema
105
+ // let searchFieldsArray: string[];
106
+ // if (Array.isArray(searchFields)) {
107
+ // searchFieldsArray = searchFields;
108
+ // } else if (typeof searchFields === 'string') {
109
+ // try {
110
+ // const parsed = JSON.parse(searchFields);
111
+ // searchFieldsArray = Array.isArray(parsed) ? parsed : [parsed];
112
+ // } catch {
113
+ // searchFieldsArray = searchFields.split(',').map(s => s.trim()).filter(s => s);
114
+ // }
115
+ // } else {
116
+ // searchFieldsArray = [searchFields];
117
+ // }
118
+ // searchFieldsArray.forEach(field => params.append('search_fields', field));
119
+ // }
120
+ // Reference filtering
121
+ if (hasReference) {
122
+ params.append('has_reference', JSON.stringify(hasReference));
123
+ }
124
+ if (hasNoReference) {
125
+ params.append('has_no_reference', JSON.stringify(hasNoReference));
126
+ }
127
+ if (hasReferenceOperator) {
128
+ params.append('has_reference_operator', hasReferenceOperator);
129
+ }
130
+ if (hasNoReferenceOperator) {
131
+ params.append('has_no_reference_operator', hasNoReferenceOperator);
132
+ }
133
+ // Aggregations
134
+ if (aggs) {
135
+ params.append('aggs', aggs);
136
+ }
137
+ try {
138
+ const url = `/api/saved_objects/_find?${params.toString()}`;
139
+ const response = await kibanaClient.get(url, { space });
140
+ const savedObjects = response.saved_objects || [];
141
+ // Format the response to be more user-friendly
142
+ const formattedSavedObjects = savedObjects.map((savedObject) => {
143
+ const result = {
144
+ id: savedObject.id,
145
+ type: savedObject.type,
146
+ updated_at: savedObject.updated_at,
147
+ created_at: savedObject.created_at,
148
+ managed: savedObject.managed || false,
149
+ namespaces: savedObject.namespaces || [],
150
+ };
151
+ // Only include attributes if they exist (handles fields parameter)
152
+ if (savedObject.attributes) {
153
+ // Include common attributes that are likely to be useful
154
+ if (savedObject.attributes.title !== undefined) {
155
+ result.title = savedObject.attributes.title;
156
+ }
157
+ if (savedObject.attributes.description !== undefined) {
158
+ result.description = savedObject.attributes.description;
159
+ }
160
+ if (savedObject.attributes.version !== undefined) {
161
+ result.version = savedObject.attributes.version;
162
+ }
163
+ // Include type-specific attributes
164
+ if (savedObject.type === 'index-pattern' && savedObject.attributes.timeFieldName !== undefined) {
165
+ result.timeFieldName = savedObject.attributes.timeFieldName;
166
+ }
167
+ if (savedObject.type === 'visualization' && savedObject.attributes.visState !== undefined) {
168
+ try {
169
+ const visState = JSON.parse(savedObject.attributes.visState);
170
+ if (visState.type) {
171
+ result.visualizationType = visState.type;
172
+ }
173
+ }
174
+ catch {
175
+ // Ignore parsing errors
176
+ }
177
+ }
178
+ }
179
+ // Include references if they exist
180
+ if (savedObject.references && savedObject.references.length > 0) {
181
+ result.references = savedObject.references.map((ref) => ({
182
+ id: ref.id,
183
+ type: ref.type,
184
+ name: ref.name
185
+ }));
186
+ }
187
+ // Only include score and sort if they exist (for debugging)
188
+ if (savedObject.score) {
189
+ result.score = savedObject.score;
190
+ }
191
+ if (savedObject.sort) {
192
+ result.sort = savedObject.sort;
193
+ }
194
+ return result;
195
+ });
196
+ return {
197
+ content: [
198
+ {
199
+ type: "text",
200
+ text: `Found ${savedObjects.length} saved object(s):\n\n${JSON.stringify(formattedSavedObjects, null, 2)}`
201
+ }
202
+ ]
203
+ };
204
+ }
205
+ catch (error) {
206
+ const errorMessage = error instanceof Error ? error.message : String(error);
207
+ return {
208
+ content: [
209
+ {
210
+ type: "text",
211
+ text: `Failed to search saved objects: ${errorMessage}`
212
+ }
213
+ ],
214
+ isError: true
215
+ };
216
+ }
217
+ }
218
+ // ============================================================================
219
+ // REGISTRATION FUNCTION
220
+ // ============================================================================
221
+ /**
222
+ * Register all visualization tools with the MCP server
223
+ *
224
+ * @param server - MCP server instance
225
+ * @param kibanaClient - Kibana client instance
226
+ * @param defaultSpace - Default Kibana space
227
+ */
228
+ export function registerVlTools(server, kibanaClient, defaultSpace) {
229
+ // Tool: Search for Kibana dashboards - Optimized for dashboard search
230
+ // Tool: Search for Kibana saved objects - Universal saved objects search
231
+ server.tool("vl_search_saved_objects", "Search for Kibana saved objects using Elasticsearch query syntax. This is a universal tool that can search across all saved object types (dashboard, visualization, index-pattern, search, config, lens, map, tag, canvas-workpad, canvas-element, etc.). IMPORTANT: You must specify the 'types' parameter - it is required by the Kibana API. PERFORMANCE TIPS: Always use 'fields' parameter to specify only needed fields (e.g., ['title', 'description']) for faster responses. Use 'perPage' 5-20 for optimal speed. PAGINATION: To get all results, make multiple requests with incrementing 'page' numbers (page=1, page=2, etc.) until you receive fewer results than 'perPage'. Don't stop at the first page - iterate through all pages for complete data. Returns formatted saved object information including type, title, description, and timestamps.", z.object({
232
+ search: z.string().optional().describe("Search query to filter saved objects. Supports boolean operators (AND, OR), wildcards (*), and phrases in quotes. Example: 'nginx AND logs' or 'web*'."),
233
+ types: z.union([z.string(), z.array(z.string())]).transform(val => {
234
+ if (Array.isArray(val))
235
+ return val;
236
+ if (typeof val === 'string') {
237
+ try {
238
+ const parsed = JSON.parse(val);
239
+ return Array.isArray(parsed) ? parsed : [parsed];
240
+ }
241
+ catch {
242
+ return val.split(',').map(s => s.trim()).filter(s => s);
243
+ }
244
+ }
245
+ return [val];
246
+ }).describe("REQUIRED: Saved object types to include. Common types: 'dashboard', 'visualization', 'index-pattern', 'search', 'config', 'lens', 'map', 'tag', 'canvas-workpad', 'canvas-element'. Use ['dashboard', 'visualization'] to search both types. You must specify at least one type."),
247
+ perPage: z.number().optional().describe("Number of saved objects per page (default: 20). PERFORMANCE TIP: Use 5-20 for faster responses. Large values (>50) can be slow and may timeout. Always combine with 'fields' parameter to limit data when using large perPage values."),
248
+ page: z.number().optional().describe("Page number to return (starts from 1). Use with perPage for pagination. Example: page=1 gets first 20 results, page=2 gets results 21-40, etc. IMPORTANT: To get all results, you need to make multiple requests with incrementing page numbers until you receive fewer results than perPage. Don't stop at page 1 - iterate through all pages to get complete data."),
249
+ fields: z.union([z.string(), z.array(z.string())]).transform(val => {
250
+ if (Array.isArray(val))
251
+ return val;
252
+ if (typeof val === 'string') {
253
+ try {
254
+ const parsed = JSON.parse(val);
255
+ return Array.isArray(parsed) ? parsed : [parsed];
256
+ }
257
+ catch {
258
+ return val.split(',').map(s => s.trim()).filter(s => s);
259
+ }
260
+ }
261
+ return [val];
262
+ }).optional().describe("PERFORMANCE OPTIMIZATION: Specify which fields to return in the attributes key. Examples: ['title', 'description'] for basic info, ['title', 'description', 'updated_at'] for metadata. IMPORTANT: Using this parameter dramatically improves response speed and reduces data size. Without it, all object data is returned which can be very slow for large objects."),
263
+ filter: z.string().optional().describe("KQL string filter (e.g., 'dashboard.attributes.title: \"My Dashboard\"')"),
264
+ sortField: z.string().optional().describe("Field to sort by (e.g., 'updated_at', 'created_at', 'type', 'dashboard.attributes.title')"),
265
+ sortOrder: z.enum(['asc', 'desc']).optional().describe("Sort order: 'asc' for ascending, 'desc' for descending (default: 'desc')"),
266
+ defaultSearchOperator: z.string().optional().describe("Default operator for simple_query_string (OR/AND, default: OR)"),
267
+ // searchFields: z.union([z.string(), z.array(z.string())]).transform(val => {
268
+ // if (Array.isArray(val)) return val;
269
+ // if (typeof val === 'string') {
270
+ // try {
271
+ // const parsed = JSON.parse(val);
272
+ // return Array.isArray(parsed) ? parsed : [parsed];
273
+ // } catch {
274
+ // return val.split(',').map(s => s.trim()).filter(s => s);
275
+ // }
276
+ // }
277
+ // return [val];
278
+ // }).optional().describe("Fields to perform the search query against. Default: searches in title and description. Use ['dashboard.attributes.title'] to search only titles."),
279
+ hasReference: z.any().optional().describe("Filter to objects that have a relationship with the type and ID combination. Example: {type: 'index-pattern', id: 'my-pattern-id'}"),
280
+ hasNoReference: z.any().optional().describe("Filter to objects that do not have a relationship with the type and identifier combination. Example: {type: 'index-pattern', id: 'my-pattern-id'}"),
281
+ hasReferenceOperator: z.string().optional().describe("Operator for has_reference parameter (OR/AND, default: OR)"),
282
+ hasNoReferenceOperator: z.string().optional().describe("Operator for has_no_reference parameter (OR/AND, default: OR)"),
283
+ aggs: z.string().optional().describe("Aggregation structure, serialized as a string. Use for advanced analytics on saved objects."),
284
+ space: z.string().optional().describe("Target Kibana space (optional, defaults to configured space)")
285
+ }), async (params) => {
286
+ return await vl_search_saved_objects_impl(kibanaClient, params.search, params.types, params.perPage, params.page, params.fields, params.filter, params.sortField, params.sortOrder, params.defaultSearchOperator, undefined, // params.searchFields - commented out
287
+ params.hasReference, params.hasNoReference, params.hasReferenceOperator, params.hasNoReferenceOperator, params.aggs, params.space);
288
+ });
289
+ }
290
+ //# sourceMappingURL=vl_search_tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vl_search_tools.js","sourceRoot":"","sources":["../../src/vl_search_tools.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import { ServerBase, KibanaClient } from './types.js';
2
+ /**
3
+ * Register VL (Visualization Layer) update tools with the MCP server
4
+ */
5
+ export declare function registerVLUpdateTools(server: ServerBase, kibanaClient: KibanaClient): void;