kubeview-mcp 1.5.0 → 1.5.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.
package/CHANGELOG.md CHANGED
@@ -7,6 +7,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [1.5.1] - 2026-01-14
11
+
12
+ ### Changed
13
+ - **Add error logging for ArgoCD API log fetch failure**
14
+
10
15
  ## [1.5.0] - 2025-12-21
11
16
 
12
17
  ### Added
@@ -18,7 +23,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
18
23
  - **Release v1.5.0**
19
24
  - **Update README.md to enhance project description and add link to the article**
20
25
 
21
-
22
26
  ## [1.4.7] - 2025-12-03
23
27
 
24
28
  ### Changed
@@ -1,2 +1,2 @@
1
- export declare const VERSION = "1.5.0";
1
+ export declare const VERSION = "1.5.1";
2
2
  //# sourceMappingURL=version.d.ts.map
@@ -1,3 +1,3 @@
1
1
  // Auto-generated by scripts/build-version.js - DO NOT EDIT
2
- export const VERSION = '1.5.0';
2
+ export const VERSION = '1.5.1';
3
3
  //# sourceMappingURL=version.js.map
@@ -24,10 +24,12 @@ jest.mock('../../../src/plugins/KubernetesToolsPlugin.js', () => {
24
24
  });
25
25
  describe('ArgoCDAppTool - logs operation', () => {
26
26
  let tool;
27
+ let consoleErrorSpy;
27
28
  const executeArgoCDCommandMock = BaseTool.executeArgoCDCommand;
28
29
  const fetchMock = global.fetch;
29
30
  beforeEach(() => {
30
31
  tool = new ArgoCDAppTool();
32
+ consoleErrorSpy = jest.spyOn(console, 'error').mockImplementation(() => { });
31
33
  jest.clearAllMocks();
32
34
  process.env.ARGOCD_AUTH_TOKEN = 'test-token';
33
35
  process.env.ARGOCD_SERVER = 'argocd.example.com';
@@ -62,6 +64,7 @@ describe('ArgoCDAppTool - logs operation', () => {
62
64
  });
63
65
  });
64
66
  afterEach(() => {
67
+ consoleErrorSpy.mockRestore();
65
68
  delete process.env.ARGOCD_AUTH_TOKEN;
66
69
  delete process.env.ARGOCD_SERVER;
67
70
  });
@@ -82,6 +85,12 @@ describe('ArgoCDAppTool - logs operation', () => {
82
85
  transport: 'cli',
83
86
  });
84
87
  });
88
+ it('should log k8s errors before CLI fallback', async () => {
89
+ fetchMock.mockRejectedValue(new Error('API Error'));
90
+ executeArgoCDCommandMock.mockResolvedValue({ output: 'log line 1' });
91
+ await tool.execute({ operation: 'logs', appName: 'test-app' });
92
+ expect(consoleErrorSpy).toHaveBeenCalledWith('ArgoCD API log fetch failed, falling back to CLI: ', expect.stringContaining('listPodForAllNamespaces'));
93
+ });
85
94
  it('should return raw text from direct API call when successful', async () => {
86
95
  // Setup Resource Tree response
87
96
  fetchMock.mockResolvedValueOnce({
@@ -1 +1 @@
1
- {"version":3,"file":"ArgoCDAppLogsTool.test.js","sourceRoot":"","sources":["../../../../tests/tools/argocd/ArgoCDAppLogsTool.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ArgoCDAppLogsTool.test.js","sourceRoot":"","sources":["../../../../tests/tools/argocd/ArgoCDAppLogsTool.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,yCAAyC,CAAC;AACxE,OAAO,KAAK,QAAQ,MAAM,oCAAoC,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AAE3E,oBAAoB;AACpB,IAAI,CAAC,IAAI,CAAC,oCAAoC,EAAE,GAAG,EAAE,CAAC,CAAC;IACrD,GAAG,IAAI,CAAC,aAAa,CAAC,oCAAoC,CAAC;IAC3D,oBAAoB,EAAE,IAAI,CAAC,EAAE,EAAE;IAC/B,mBAAmB,EAAE,IAAI,CAAC,aAAa,CAAC,oCAAoC,CAAC,CAAC,mBAAmB;CAClG,CAAC,CAAC,CAAC;AAEJ,oBAAoB;AACpB,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;AAEzB,SAAS,YAAY,CAAC,MAAW;IAC/B,MAAM,IAAI,GAAG,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC;IACxC,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACrD,CAAC;AAED,IAAI,CAAC,IAAI,CAAC,+CAA+C,EAAE,GAAG,EAAE;IAC9D,MAAM,uBAAuB,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;IAC1C,OAAO;QACL,qBAAqB,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC,CAAC;YACzD,mBAAmB,EAAE,uBAAuB;SAC7C,CAAC,CAAC;QACH,gBAAgB,EAAE,EAAE,uBAAuB,EAAE;KAC9C,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,gCAAgC,EAAE,GAAG,EAAE;IAC9C,IAAI,IAAmB,CAAC;IACxB,IAAI,eAAiC,CAAC;IACtC,MAAM,wBAAwB,GAAG,QAAQ,CAAC,oBAAiC,CAAC;IAC5E,MAAM,SAAS,GAAG,MAAM,CAAC,KAAkB,CAAC;IAE5C,UAAU,CAAC,GAAG,EAAE;QACd,IAAI,GAAG,IAAI,aAAa,EAAE,CAAC;QAC3B,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,kBAAkB,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QAC5E,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,OAAO,CAAC,GAAG,CAAC,iBAAiB,GAAG,YAAY,CAAC;QAC7C,OAAO,CAAC,GAAG,CAAC,aAAa,GAAG,oBAAoB,CAAC;IACnD,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,kCAAkC,EAAE,GAAG,EAAE;QAChD,EAAE,CAAC,iGAAiG,EAAE,KAAK,IAAI,EAAE;YAC/G,MAAM,8BAA8B,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;YACjD,MAAM,yBAAyB,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;YAE5C,MAAM,UAAU,GAAG;gBACjB,qBAAqB,EAAE,yBAAyB;gBAChD,aAAa,EAAE;oBACb,0BAA0B,EAAE,8BAA8B;iBAC3D;aACK,CAAC;YAET,MAAM,EAAE,gBAAgB,EAAE,GAAG,IAAI,CAAC,WAAW,CAC3C,+CAA+C,CAChD,CAAC;YACD,gBAAgB,CAAC,uBAAqC,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;YAEtF,MAAM,QAAQ,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC;YAC9D,8BAA8B,CAAC,iBAAiB,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;YAErE,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,cAAc,CAAC,YAAY,EAAE;gBAClE,SAAS,EAAE,MAAM;gBACjB,YAAY,EAAE,MAAM;aACrB,CAAC,CAAC;YAEH,MAAM,CAAC,gBAAgB,CAAC,uBAAuB,CAAC,CAAC,gBAAgB,EAAE,CAAC;YACpE,MAAM,CAAC,yBAAyB,CAAC,CAAC,gBAAgB,EAAE,CAAC;YACrD,MAAM,CAAC,8BAA8B,CAAC,CAAC,oBAAoB,CACzD,MAAM,CAAC,gBAAgB,CAAC;gBACtB,KAAK,EAAE,aAAa;gBACpB,OAAO,EAAE,UAAU;gBACnB,SAAS,EAAE,QAAQ;gBACnB,MAAM,EAAE,cAAc;aACvB,CAAC,CACH,CAAC;YACF,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACb,eAAe,CAAC,WAAW,EAAE,CAAC;QAC9B,OAAO,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC;QACrC,OAAO,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC;IACnC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0DAA0D,EAAE,KAAK,IAAI,EAAE;QACxE,oBAAoB;QACpB,SAAS,CAAC,iBAAiB,CAAC,IAAI,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;QAEpD,+EAA+E;QAC/E,wBAAwB,CAAC,iBAAiB,CAAC,EAAE,MAAM,EAAE,wBAAwB,EAAE,CAAC,CAAC;QAEjF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC;QAE9E,8CAA8C;QAC9C,MAAM,CAAC,SAAS,CAAC,CAAC,gBAAgB,EAAE,CAAC;QAErC,yBAAyB;QACzB,MAAM,CAAC,wBAAwB,CAAC,CAAC,oBAAoB,CACnD,MAAM,CAAC,eAAe,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC,CACpD,CAAC;QAEF,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC;YACzC,OAAO,EAAE,UAAU;YACnB,SAAS,EAAE,CAAC;YACZ,IAAI,EAAE,CAAC,YAAY,EAAE,YAAY,CAAC;YAClC,SAAS,EAAE,KAAK;SACjB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2CAA2C,EAAE,KAAK,IAAI,EAAE;QACzD,SAAS,CAAC,iBAAiB,CAAC,IAAI,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;QACpD,wBAAwB,CAAC,iBAAiB,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC;QAErE,MAAM,IAAI,CAAC,OAAO,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC;QAE/D,MAAM,CAAC,eAAe,CAAC,CAAC,oBAAoB,CAC1C,oDAAoD,EACpD,MAAM,CAAC,gBAAgB,CAAC,yBAAyB,CAAC,CACnD,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6DAA6D,EAAE,KAAK,IAAI,EAAE;QAC3E,+BAA+B;QAC/B,SAAS,CAAC,qBAAqB,CAAC;YAC9B,EAAE,EAAE,IAAI;YACR,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;gBACjB,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,CAAC;aACvE,CAAC;SACH,CAAC,CAAC;QAEH,sBAAsB;QACtB,SAAS,CAAC,qBAAqB,CAAC;YAC9B,EAAE,EAAE,IAAI;YACR,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,gBAAgB;SACnC,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC;QAE9E,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC;YACzC,OAAO,EAAE,UAAU;YACnB,SAAS,EAAE,CAAC;YACZ,IAAI,EAAE,CAAC,gBAAgB,CAAC;YACxB,SAAS,EAAE,KAAK;SACjB,CAAC,CAAC;QACH,MAAM,CAAC,wBAAwB,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;IAC1D,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,7 +1,8 @@
1
1
  {
2
2
  "name": "kubeview-mcp",
3
- "version": "1.5.0",
3
+ "version": "1.5.1",
4
4
  "description": "Read-only MCP server enabling code-driven AI analysis of Kubernetes clusters",
5
+ "homepage": "https://github.com/mikhae1/kubeview-mcp",
5
6
  "mcpName": "io.github.mikhae1/kubeview",
6
7
  "main": "dist/src/index.js",
7
8
  "type": "module",
@@ -36,11 +37,11 @@
36
37
  "command": "node src/cli/run-command.js",
37
38
  "release:qa": "npm run lint && npm run typecheck && npm run test",
38
39
  "release:build": "npm run build",
39
- "release:version": "node scripts/update-version.js",
40
+ "release:version": "node scripts/update-version.js && node scripts/build-version.js",
40
41
  "release": "npm run release:qa && npm run release:version && npm run release:build",
41
42
  "publish:commit": "git commit -m 'Release v$(node -p \"require('./package.json').version\")' || echo 'Commit failed'",
42
43
  "publish:tag": "VERSION=$(node -p \"require('./package.json').version\") && if git rev-parse \"v$VERSION\" >/dev/null 2>&1; then echo \"Tag v$VERSION already exists, skipping\"; else git tag \"v$VERSION\" && echo \"Tagged version v$VERSION\"; fi",
43
- "publish:npm": "npm publish",
44
+ "publish:npm": "npm whoami >/dev/null 2>&1 || npm login && npm publish",
44
45
  "publish:git": "git push origin master --tags",
45
46
  "publish:mcp": "mcp-publisher login github && mcp-publisher publish server.json",
46
47
  "publish": "npm run publish:commit && npm run publish:npm && npm run publish:git && npm run publish:mcp"
package/RELEASE.md DELETED
@@ -1,154 +0,0 @@
1
- # Release Process
2
-
3
- This document describes how to create releases for KubeView MCP.
4
-
5
- ## Quick Release
6
-
7
- For a complete release with all quality checks and tagging:
8
-
9
- ```bash
10
- npm run release
11
- ```
12
-
13
- This single command will:
14
- 1. ✅ **Check git status** - Ensure working directory is clean
15
- 2. ✅ **Run quality assurance** - Lint, typecheck, and test the codebase
16
- 3. ✅ **Build the project** - Compile TypeScript to JavaScript
17
- 4. ✅ **Create git tag** - Tag the current version for release
18
-
19
- ## Step-by-Step Release
20
-
21
- If you need more control, you can run individual release steps:
22
-
23
- ### 1. Pre-release Validation
24
- ```bash
25
- npm run release:check
26
- ```
27
- Ensures your git working directory is clean (no uncommitted changes).
28
-
29
- ### 2. Quality Assurance
30
- ```bash
31
- npm run release:qa
32
- ```
33
- Runs the complete QA pipeline:
34
- - `npm run lint` - ESLint validation
35
- - `npm run typecheck` - TypeScript compilation check
36
- - `npm run test` - Full test suite (261 tests)
37
-
38
- ### 3. Build
39
- ```bash
40
- npm run release:build
41
- ```
42
- Compiles the project with `tsc` to the `dist/` directory.
43
-
44
- ### 4. Create Git Tag
45
- ```bash
46
- npm run release:tag
47
- ```
48
- Creates a git tag with the current version from `package.json` (e.g., `v1.0.0`).
49
-
50
- ## Version Management
51
-
52
- ### Updating Version
53
- Before releasing, update the version in `package.json`:
54
-
55
- ```json
56
- {
57
- "version": "1.0.1"
58
- }
59
- ```
60
-
61
- ### Version Conventions
62
- We follow [Semantic Versioning](https://semver.org/):
63
- - **Major** (1.0.0 → 2.0.0): Breaking changes
64
- - **Minor** (1.0.0 → 1.1.0): New features, backwards compatible
65
- - **Patch** (1.0.0 → 1.0.1): Bug fixes, backwards compatible
66
-
67
- ## Publishing to npm
68
-
69
- The release scripts prepare the project but do not automatically publish to npm.
70
-
71
- To publish manually after a successful release:
72
-
73
- ```bash
74
- # Login to npm (if not already logged in)
75
- npm login
76
-
77
- # Publish the package
78
- npm publish
79
- ```
80
-
81
- ## Release Checklist
82
-
83
- Before running `npm run release`:
84
-
85
- - [ ] Update version in `package.json`
86
- - [ ] Update `CHANGELOG.md` with new features/fixes
87
- - [ ] Ensure all changes are committed to git
88
- - [ ] Verify tests pass: `npm test`
89
- - [ ] Check the build works: `npm run build`
90
-
91
- ## Troubleshooting
92
-
93
- ### "Working directory not clean" Error
94
- If `release:check` fails:
95
- ```bash
96
- # Check what files have changes
97
- git status
98
-
99
- # Either commit the changes
100
- git add .
101
- git commit -m "Prepare for release"
102
-
103
- # Or stash them
104
- git stash
105
- ```
106
-
107
- ### Test Failures
108
- If `release:qa` fails during testing:
109
- ```bash
110
- # Run tests individually to debug
111
- npm run test -- --verbose
112
-
113
- # Fix any failing tests, then retry
114
- npm run release:qa
115
- ```
116
-
117
- ### Build Errors
118
- If `release:build` fails:
119
- ```bash
120
- # Check TypeScript errors
121
- npm run typecheck
122
-
123
- # Fix any compilation issues, then retry
124
- npm run release:build
125
- ```
126
-
127
- ## Advanced Usage
128
-
129
- ### Dry Run
130
- To see what the release would do without making changes:
131
- ```bash
132
- # Check git status (safe to run)
133
- npm run release:check
134
-
135
- # Run QA checks (safe to run)
136
- npm run release:qa
137
-
138
- # Build project (creates dist/ but no tags)
139
- npm run release:build
140
- ```
141
-
142
- ### Manual Tag Creation
143
- If you need to create a tag manually:
144
- ```bash
145
- # Create tag for current version
146
- git tag v$(node -p "require('./package.json').version")
147
-
148
- # Push tag to remote
149
- git push origin v$(node -p "require('./package.json').version")
150
- ```
151
-
152
- ## Release History
153
-
154
- See [CHANGELOG.md](CHANGELOG.md) for detailed release history.