@prodisco/k8s-mcp 0.1.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 (79) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +226 -0
  3. package/dist/codegen/generateTypes.d.ts +8 -0
  4. package/dist/codegen/generateTypes.d.ts.map +1 -0
  5. package/dist/codegen/generateTypes.js +96 -0
  6. package/dist/codegen/generateTypes.js.map +1 -0
  7. package/dist/codegen/interfaceGenerator.d.ts +9 -0
  8. package/dist/codegen/interfaceGenerator.d.ts.map +1 -0
  9. package/dist/codegen/interfaceGenerator.js +185 -0
  10. package/dist/codegen/interfaceGenerator.js.map +1 -0
  11. package/dist/codegen/toolMapping.d.ts +11 -0
  12. package/dist/codegen/toolMapping.d.ts.map +1 -0
  13. package/dist/codegen/toolMapping.js +78 -0
  14. package/dist/codegen/toolMapping.js.map +1 -0
  15. package/dist/codegen/typeExtractor.d.ts +23 -0
  16. package/dist/codegen/typeExtractor.d.ts.map +1 -0
  17. package/dist/codegen/typeExtractor.js +112 -0
  18. package/dist/codegen/typeExtractor.js.map +1 -0
  19. package/dist/kube/client.d.ts +37 -0
  20. package/dist/kube/client.d.ts.map +1 -0
  21. package/dist/kube/client.js +161 -0
  22. package/dist/kube/client.js.map +1 -0
  23. package/dist/kube/types.d.ts +27 -0
  24. package/dist/kube/types.d.ts.map +1 -0
  25. package/dist/kube/types.js +2 -0
  26. package/dist/kube/types.js.map +1 -0
  27. package/dist/resources/filesystem.d.ts +15 -0
  28. package/dist/resources/filesystem.d.ts.map +1 -0
  29. package/dist/resources/filesystem.js +54 -0
  30. package/dist/resources/filesystem.js.map +1 -0
  31. package/dist/server.d.ts +3 -0
  32. package/dist/server.d.ts.map +1 -0
  33. package/dist/server.js +127 -0
  34. package/dist/server.js.map +1 -0
  35. package/dist/tools/index.d.ts +3 -0
  36. package/dist/tools/index.d.ts.map +1 -0
  37. package/dist/tools/index.js +3 -0
  38. package/dist/tools/index.js.map +1 -0
  39. package/dist/tools/kubernetes/index.d.ts +5 -0
  40. package/dist/tools/kubernetes/index.d.ts.map +1 -0
  41. package/dist/tools/kubernetes/index.js +6 -0
  42. package/dist/tools/kubernetes/index.js.map +1 -0
  43. package/dist/tools/kubernetes/metadata.d.ts +110 -0
  44. package/dist/tools/kubernetes/metadata.d.ts.map +1 -0
  45. package/dist/tools/kubernetes/metadata.js +19 -0
  46. package/dist/tools/kubernetes/metadata.js.map +1 -0
  47. package/dist/tools/kubernetes/searchTools-old.d.ts +35 -0
  48. package/dist/tools/kubernetes/searchTools-old.d.ts.map +1 -0
  49. package/dist/tools/kubernetes/searchTools-old.js +414 -0
  50. package/dist/tools/kubernetes/searchTools-old.js.map +1 -0
  51. package/dist/tools/kubernetes/searchTools-v2.d.ts +35 -0
  52. package/dist/tools/kubernetes/searchTools-v2.d.ts.map +1 -0
  53. package/dist/tools/kubernetes/searchTools-v2.js +269 -0
  54. package/dist/tools/kubernetes/searchTools-v2.js.map +1 -0
  55. package/dist/tools/kubernetes/searchTools.d.ts +87 -0
  56. package/dist/tools/kubernetes/searchTools.d.ts.map +1 -0
  57. package/dist/tools/kubernetes/searchTools.js +529 -0
  58. package/dist/tools/kubernetes/searchTools.js.map +1 -0
  59. package/dist/tools/kubernetes/typeDefinitions.d.ts +24 -0
  60. package/dist/tools/kubernetes/typeDefinitions.d.ts.map +1 -0
  61. package/dist/tools/kubernetes/typeDefinitions.js +518 -0
  62. package/dist/tools/kubernetes/typeDefinitions.js.map +1 -0
  63. package/dist/tools/types.d.ts +10 -0
  64. package/dist/tools/types.d.ts.map +1 -0
  65. package/dist/tools/types.js +2 -0
  66. package/dist/tools/types.js.map +1 -0
  67. package/dist/util/manifest.d.ts +5 -0
  68. package/dist/util/manifest.d.ts.map +1 -0
  69. package/dist/util/manifest.js +31 -0
  70. package/dist/util/manifest.js.map +1 -0
  71. package/dist/util/paths.d.ts +7 -0
  72. package/dist/util/paths.d.ts.map +1 -0
  73. package/dist/util/paths.js +14 -0
  74. package/dist/util/paths.js.map +1 -0
  75. package/dist/util/summary.d.ts +403 -0
  76. package/dist/util/summary.d.ts.map +1 -0
  77. package/dist/util/summary.js +211 -0
  78. package/dist/util/summary.js.map +1 -0
  79. package/package.json +61 -0
package/dist/server.js ADDED
@@ -0,0 +1,127 @@
1
+ #!/usr/bin/env node
2
+ import { createRequire } from 'node:module';
3
+ import * as path from 'node:path';
4
+ import { fileURLToPath } from 'node:url';
5
+ import * as fs from 'node:fs';
6
+ import * as os from 'node:os';
7
+ import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
8
+ import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
9
+ const require = createRequire(import.meta.url);
10
+ const pkg = require('../package.json');
11
+ import { searchToolsTool } from './tools/kubernetes/searchTools.js';
12
+ import { getTypeDefinitionTool } from './tools/kubernetes/typeDefinitions.js';
13
+ import { PUBLIC_GENERATED_ROOT_PATH_WITH_SLASH, listGeneratedFiles, readGeneratedFile, } from './resources/filesystem.js';
14
+ const __filename = fileURLToPath(import.meta.url);
15
+ const __dirname = path.dirname(__filename);
16
+ const GENERATED_DIR = path.resolve(__dirname, 'tools/kubernetes');
17
+ const server = new McpServer({
18
+ name: 'kubernetes-mcp',
19
+ version: typeof pkg.version === 'string' ? pkg.version : '0.0.0',
20
+ }, {
21
+ instructions: 'Kubernetes operations via Progressive Disclosure. Use the kubernetes.searchTools tool to discover available operations. ' +
22
+ 'The tool returns available Kubernetes API methods and includes a "paths" object with: ' +
23
+ '(1) scriptsDirectory: where to write helper scripts (e.g., ~/.prodisco/scripts/cache/), ' +
24
+ '(2) packageDirectory: where dependencies are installed (use for imports). ' +
25
+ 'Write scripts to the scriptsDirectory path and import dependencies from packageDirectory/node_modules/@kubernetes/client-node. ' +
26
+ 'Example: import * as k8s from \'/path/from/packageDirectory/node_modules/@kubernetes/client-node\'. ' +
27
+ 'Always use absolute paths from the paths object to ensure scripts work from any directory.',
28
+ });
29
+ // Expose generated TypeScript files as MCP resources using ResourceTemplate
30
+ import { ResourceTemplate } from '@modelcontextprotocol/sdk/server/mcp.js';
31
+ const resourceTemplate = new ResourceTemplate(`file://${PUBLIC_GENERATED_ROOT_PATH_WITH_SLASH}{path}`, {
32
+ list: async () => {
33
+ const files = await listGeneratedFiles(GENERATED_DIR);
34
+ return {
35
+ resources: files.map((f) => ({
36
+ uri: f.uri,
37
+ name: f.name,
38
+ description: f.description,
39
+ mimeType: f.mimeType,
40
+ })),
41
+ };
42
+ },
43
+ });
44
+ server.registerResource('generated-typescript-files', resourceTemplate, {
45
+ description: 'Generated TypeScript modules for Kubernetes operations',
46
+ }, async (uri) => {
47
+ // Extract relative path from canonical URI
48
+ const requestedPath = decodeURIComponent(uri.pathname);
49
+ const normalizedRoot = PUBLIC_GENERATED_ROOT_PATH_WITH_SLASH;
50
+ if (!requestedPath.startsWith(normalizedRoot)) {
51
+ throw new Error(`Resource ${requestedPath} is outside ${normalizedRoot}`);
52
+ }
53
+ const relativePosixPath = requestedPath.slice(normalizedRoot.length);
54
+ if (!relativePosixPath) {
55
+ throw new Error('Resource path missing');
56
+ }
57
+ const relativePath = relativePosixPath.split('/').join(path.sep);
58
+ const content = await readGeneratedFile(GENERATED_DIR, relativePath);
59
+ return {
60
+ contents: [
61
+ {
62
+ uri: uri.toString(),
63
+ mimeType: 'text/typescript',
64
+ text: content,
65
+ },
66
+ ],
67
+ };
68
+ });
69
+ console.error(`📁 Exposed ${GENERATED_DIR} as MCP resources`);
70
+ // Register kubernetes.searchTools helper as an exposed tool.
71
+ server.registerTool(searchToolsTool.name, {
72
+ title: 'Kubernetes Tool Search',
73
+ description: searchToolsTool.description,
74
+ inputSchema: searchToolsTool.schema,
75
+ }, async (args) => {
76
+ const parsedArgs = await searchToolsTool.schema.parseAsync(args);
77
+ const result = await searchToolsTool.execute(parsedArgs);
78
+ return {
79
+ content: [
80
+ {
81
+ type: 'text',
82
+ text: result.summary,
83
+ },
84
+ {
85
+ type: 'text',
86
+ text: JSON.stringify(result.tools, null, 2),
87
+ },
88
+ ],
89
+ structuredContent: result,
90
+ };
91
+ });
92
+ // Register kubernetes.getTypeDefinition helper as an exposed tool.
93
+ server.registerTool(getTypeDefinitionTool.name, {
94
+ title: 'Kubernetes Type Definition',
95
+ description: getTypeDefinitionTool.description,
96
+ inputSchema: getTypeDefinitionTool.schema,
97
+ }, async (args) => {
98
+ const parsedArgs = await getTypeDefinitionTool.schema.parseAsync(args);
99
+ const result = await getTypeDefinitionTool.execute(parsedArgs);
100
+ return {
101
+ content: [
102
+ {
103
+ type: 'text',
104
+ text: result.summary,
105
+ },
106
+ {
107
+ type: 'text',
108
+ text: JSON.stringify(result.types, null, 2),
109
+ },
110
+ ],
111
+ structuredContent: result,
112
+ };
113
+ });
114
+ async function main() {
115
+ // Ensure ~/.prodisco/scripts/cache/ directory exists
116
+ const scriptsDir = path.join(os.homedir(), '.prodisco', 'scripts', 'cache');
117
+ fs.mkdirSync(scriptsDir, { recursive: true });
118
+ console.error(`📝 Scripts directory: ${scriptsDir}`);
119
+ const transport = new StdioServerTransport();
120
+ await server.connect(transport);
121
+ console.error('Kubernetes MCP server ready on stdio');
122
+ }
123
+ main().catch((error) => {
124
+ console.error('Fatal error starting MCP server', error);
125
+ process.exit(1);
126
+ });
127
+ //# sourceMappingURL=server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { AnyToolDefinition } from './types.js';
2
+ export declare const tools: AnyToolDefinition[];
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAGpD,eAAO,MAAM,KAAK,EAAE,iBAAiB,EAAyB,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { kubernetesTools } from './kubernetes/index.js';
2
+ export const tools = [...kubernetesTools];
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,MAAM,CAAC,MAAM,KAAK,GAAwB,CAAC,GAAG,eAAe,CAAC,CAAC"}
@@ -0,0 +1,5 @@
1
+ import type { AnyToolDefinition } from '../types.js';
2
+ import { kubernetesToolMetadata } from './metadata.js';
3
+ export declare const kubernetesTools: AnyToolDefinition[];
4
+ export { kubernetesToolMetadata };
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tools/kubernetes/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AAEvD,eAAO,MAAM,eAAe,EAAE,iBAAiB,EAE9C,CAAC;AAEF,OAAO,EAAE,sBAAsB,EAAE,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { kubernetesToolMetadata } from './metadata.js';
2
+ export const kubernetesTools = [
3
+ ...kubernetesToolMetadata.map((entry) => entry.tool),
4
+ ];
5
+ export { kubernetesToolMetadata };
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/kubernetes/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AAEvD,MAAM,CAAC,MAAM,eAAe,GAAwB;IAClD,GAAG,sBAAsB,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC;CACrD,CAAC;AAEF,OAAO,EAAE,sBAAsB,EAAE,CAAC"}
@@ -0,0 +1,110 @@
1
+ /**
2
+ * Kubernetes tool metadata
3
+ *
4
+ * Exports searchTools for discovering API methods and getTypeDefinition
5
+ * for getting TypeScript type definitions.
6
+ */
7
+ export declare const kubernetesToolMetadata: ({
8
+ tool: import("../types.js").ToolDefinition<{
9
+ summary: string;
10
+ tools: {
11
+ apiClass: string;
12
+ methodName: string;
13
+ resourceType: string;
14
+ description: string;
15
+ parameters: Array<{
16
+ name: string;
17
+ type: string;
18
+ optional: boolean;
19
+ description?: string;
20
+ }>;
21
+ returnType: string;
22
+ example: string;
23
+ typeDefinitionFile: string;
24
+ inputSchema: {
25
+ type: "object";
26
+ properties: Record<string, {
27
+ type: string;
28
+ description?: string;
29
+ required?: boolean;
30
+ }>;
31
+ required: string[];
32
+ description: string;
33
+ };
34
+ outputSchema: {
35
+ type: "object";
36
+ description: string;
37
+ properties: Record<string, {
38
+ type: string;
39
+ description: string;
40
+ }>;
41
+ };
42
+ typeDefinitions?: {
43
+ input?: string;
44
+ output?: string;
45
+ };
46
+ }[];
47
+ totalMatches: number;
48
+ usage: string;
49
+ paths: {
50
+ scriptsDirectory: string;
51
+ packageDirectory: string;
52
+ };
53
+ cachedScripts: string[];
54
+ }, import("zod").ZodObject<{
55
+ resourceType: import("zod").ZodString;
56
+ action: import("zod").ZodOptional<import("zod").ZodString>;
57
+ scope: import("zod").ZodDefault<import("zod").ZodOptional<import("zod").ZodEnum<["namespaced", "cluster", "all"]>>>;
58
+ exclude: import("zod").ZodOptional<import("zod").ZodObject<{
59
+ actions: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString, "many">>;
60
+ apiClasses: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString, "many">>;
61
+ }, "strip", import("zod").ZodTypeAny, {
62
+ actions?: string[] | undefined;
63
+ apiClasses?: string[] | undefined;
64
+ }, {
65
+ actions?: string[] | undefined;
66
+ apiClasses?: string[] | undefined;
67
+ }>>;
68
+ limit: import("zod").ZodOptional<import("zod").ZodDefault<import("zod").ZodNumber>>;
69
+ }, "strip", import("zod").ZodTypeAny, {
70
+ resourceType: string;
71
+ scope: "namespaced" | "cluster" | "all";
72
+ action?: string | undefined;
73
+ exclude?: {
74
+ actions?: string[] | undefined;
75
+ apiClasses?: string[] | undefined;
76
+ } | undefined;
77
+ limit?: number | undefined;
78
+ }, {
79
+ resourceType: string;
80
+ action?: string | undefined;
81
+ scope?: "namespaced" | "cluster" | "all" | undefined;
82
+ exclude?: {
83
+ actions?: string[] | undefined;
84
+ apiClasses?: string[] | undefined;
85
+ } | undefined;
86
+ limit?: number | undefined;
87
+ }>>;
88
+ sourceModulePath: string;
89
+ } | {
90
+ tool: import("../types.js").ToolDefinition<{
91
+ summary: string;
92
+ types: Record<string, {
93
+ name: string;
94
+ definition: string;
95
+ file: string;
96
+ nestedTypes: string[];
97
+ }>;
98
+ }, import("zod").ZodObject<{
99
+ types: import("zod").ZodArray<import("zod").ZodString, "many">;
100
+ depth: import("zod").ZodOptional<import("zod").ZodDefault<import("zod").ZodNumber>>;
101
+ }, "strip", import("zod").ZodTypeAny, {
102
+ types: string[];
103
+ depth?: number | undefined;
104
+ }, {
105
+ types: string[];
106
+ depth?: number | undefined;
107
+ }>>;
108
+ sourceModulePath: string;
109
+ })[];
110
+ //# sourceMappingURL=metadata.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metadata.d.ts","sourceRoot":"","sources":["../../../src/tools/kubernetes/metadata.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;2BAU0xC,CAAC;;;;;;;;;+BAAmP,CAAC;4BAAkB,CAAC;;;;;;;;;;;;;;qBAAuR,CAAC;sBAAoB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IADj3D,CAAC"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Kubernetes tool metadata
3
+ *
4
+ * Exports searchTools for discovering API methods and getTypeDefinition
5
+ * for getting TypeScript type definitions.
6
+ */
7
+ import { searchToolsTool } from './searchTools.js';
8
+ import { getTypeDefinitionTool } from './typeDefinitions.js';
9
+ export const kubernetesToolMetadata = [
10
+ {
11
+ tool: searchToolsTool,
12
+ sourceModulePath: './searchTools.ts',
13
+ },
14
+ {
15
+ tool: getTypeDefinitionTool,
16
+ sourceModulePath: './typeDefinitions.ts',
17
+ },
18
+ ];
19
+ //# sourceMappingURL=metadata.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metadata.js","sourceRoot":"","sources":["../../../src/tools/kubernetes/metadata.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAE7D,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC;QACE,IAAI,EAAE,eAAe;QACrB,gBAAgB,EAAE,kBAAkB;KACrC;IACD;QACE,IAAI,EAAE,qBAAqB;QAC3B,gBAAgB,EAAE,sBAAsB;KACzC;CACF,CAAC"}
@@ -0,0 +1,35 @@
1
+ import { z } from 'zod';
2
+ import type { ToolDefinition } from '../types.js';
3
+ declare const SearchToolsInputSchema: z.ZodObject<{
4
+ query: z.ZodString;
5
+ limit: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
6
+ }, "strip", z.ZodTypeAny, {
7
+ query: string;
8
+ limit?: number | undefined;
9
+ }, {
10
+ query: string;
11
+ limit?: number | undefined;
12
+ }>;
13
+ type KubernetesApiMethod = {
14
+ apiClass: string;
15
+ methodName: string;
16
+ resourceType: string;
17
+ description: string;
18
+ parameters: Array<{
19
+ name: string;
20
+ type: string;
21
+ optional: boolean;
22
+ description?: string;
23
+ }>;
24
+ returnType: string;
25
+ example: string;
26
+ };
27
+ type SearchToolsResult = {
28
+ summary: string;
29
+ tools: KubernetesApiMethod[];
30
+ totalMatches: number;
31
+ usage: string;
32
+ };
33
+ export declare const searchToolsTool: ToolDefinition<SearchToolsResult, typeof SearchToolsInputSchema>;
34
+ export {};
35
+ //# sourceMappingURL=searchTools-old.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"searchTools-old.d.ts","sourceRoot":"","sources":["../../../src/tools/kubernetes/searchTools-old.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD,QAAA,MAAM,sBAAsB;;;;;;;;;EAY1B,CAAC;AAEH,KAAK,mBAAmB,GAAG;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,KAAK,CAAC;QAChB,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,OAAO,CAAC;QAClB,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC,CAAC;IACH,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,KAAK,iBAAiB,GAAG;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,mBAAmB,EAAE,CAAC;IAC7B,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AA+PF,eAAO,MAAM,eAAe,EAAE,cAAc,CAAC,iBAAiB,EAAE,OAAO,sBAAsB,CA6L5F,CAAC"}