code-engine-mcp-server 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 (43) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +387 -0
  3. package/build/client.d.ts +3 -0
  4. package/build/client.d.ts.map +1 -0
  5. package/build/client.js +194 -0
  6. package/build/client.js.map +1 -0
  7. package/build/context-discovery.d.ts +86 -0
  8. package/build/context-discovery.d.ts.map +1 -0
  9. package/build/context-discovery.js +291 -0
  10. package/build/context-discovery.js.map +1 -0
  11. package/build/deploy-tool-enhanced.d.ts +42 -0
  12. package/build/deploy-tool-enhanced.d.ts.map +1 -0
  13. package/build/deploy-tool-enhanced.js +323 -0
  14. package/build/deploy-tool-enhanced.js.map +1 -0
  15. package/build/deploy-tool.d.ts +27 -0
  16. package/build/deploy-tool.d.ts.map +1 -0
  17. package/build/deploy-tool.js +213 -0
  18. package/build/deploy-tool.js.map +1 -0
  19. package/build/index.d.ts +11 -0
  20. package/build/index.d.ts.map +1 -0
  21. package/build/index.js +1117 -0
  22. package/build/index.js.map +1 -0
  23. package/build/simple-client.d.ts +3 -0
  24. package/build/simple-client.d.ts.map +1 -0
  25. package/build/simple-client.js +275 -0
  26. package/build/simple-client.js.map +1 -0
  27. package/build/test-all-tools.d.ts +3 -0
  28. package/build/test-all-tools.d.ts.map +1 -0
  29. package/build/test-all-tools.js +254 -0
  30. package/build/test-all-tools.js.map +1 -0
  31. package/build/test-integration.d.ts +3 -0
  32. package/build/test-integration.d.ts.map +1 -0
  33. package/build/test-integration.js +484 -0
  34. package/build/test-integration.js.map +1 -0
  35. package/docs/API_CALL_SCENARIOS.md +594 -0
  36. package/docs/CLIENT_README.md +310 -0
  37. package/docs/CLINE_CONFIG_EXAMPLE.json +14 -0
  38. package/docs/CODE_ENGINE_API_REFERENCE.md +764 -0
  39. package/docs/CODE_OF_CONDUCT.md +46 -0
  40. package/docs/CONTRIBUTING.md +38 -0
  41. package/docs/MAINTAINERS.md +15 -0
  42. package/docs/SETUP_INSTRUCTIONS.md +218 -0
  43. package/package.json +44 -0
@@ -0,0 +1,254 @@
1
+ #!/usr/bin/env tsx
2
+ /**
3
+ * test-all-tools.ts — Smoke-test all 43 Code Engine MCP tools
4
+ * Author: Markus van Kempen | markus.van.kempen@gmail.com | mvankempen@ca.ibm.com
5
+ * https://markusvankempen.github.io/ — No bug too small, no syntax too weird.
6
+ */
7
+ import { spawn } from 'child_process';
8
+ import { join } from 'path';
9
+ import { fileURLToPath } from 'url';
10
+ import { dirname } from 'path';
11
+ import * as dotenv from 'dotenv';
12
+ const __filename = fileURLToPath(import.meta.url);
13
+ const __dirname = dirname(__filename);
14
+ dotenv.config({ path: join(__dirname, '../../.env') });
15
+ dotenv.config({ path: join(__dirname, '../../../.env') });
16
+ const apiKey = process.env.IBM_CLOUD_API_KEY || process.env.IBMCLOUD_API_KEY;
17
+ if (!apiKey) {
18
+ console.error('ERROR: IBM_CLOUD_API_KEY not set');
19
+ process.exit(1);
20
+ }
21
+ const serverPath = join(__dirname, '..', 'build', 'index.js');
22
+ // ─── MCP call helper ─────────────────────────────────────────────────────────
23
+ function callTool(name, args = {}) {
24
+ return new Promise((resolve) => {
25
+ const proc = spawn('node', [serverPath], {
26
+ stdio: ['pipe', 'pipe', 'pipe'],
27
+ env: { ...process.env, IBM_CLOUD_API_KEY: apiKey, IBMCLOUD_API_KEY: apiKey },
28
+ });
29
+ const request = JSON.stringify({
30
+ jsonrpc: '2.0', id: 1, method: 'tools/call',
31
+ params: { name, arguments: args },
32
+ });
33
+ let resolved = false;
34
+ let stdout = '';
35
+ let stderr = '';
36
+ const tryResolve = () => {
37
+ for (const line of stdout.split('\n')) {
38
+ try {
39
+ const p = JSON.parse(line.trim());
40
+ if (p.result || p.error) {
41
+ if (!resolved) {
42
+ resolved = true;
43
+ proc.kill('SIGTERM');
44
+ resolve(p);
45
+ }
46
+ return;
47
+ }
48
+ }
49
+ catch { }
50
+ }
51
+ };
52
+ proc.stdout.on('data', (d) => { stdout += d.toString(); tryResolve(); });
53
+ proc.stderr.on('data', (d) => { stderr += d.toString(); });
54
+ proc.on('close', () => {
55
+ if (!resolved) {
56
+ tryResolve();
57
+ if (!resolved) {
58
+ const errLine = stderr.split('\n').find(l => l.includes('Error') || l.includes('error')) || 'no response';
59
+ resolve({ error: { message: errLine.trim() } });
60
+ }
61
+ }
62
+ });
63
+ // Keep stdin open — closing it triggers EOF which shuts down the MCP transport
64
+ proc.stdin.write(request + '\n');
65
+ setTimeout(() => {
66
+ if (!resolved) {
67
+ resolved = true;
68
+ proc.kill('SIGTERM');
69
+ resolve({ error: { message: 'timeout (30s)' } });
70
+ }
71
+ }, 30000);
72
+ });
73
+ }
74
+ // ─── Tracking ────────────────────────────────────────────────────────────────
75
+ let pass = 0, fail = 0, skip = 0;
76
+ function ok(label, tool, r) {
77
+ if (r?.result) {
78
+ console.log(` ✅ PASS [${label}] ${tool}`);
79
+ pass++;
80
+ }
81
+ else {
82
+ const msg = r?.error?.message ?? 'unknown';
83
+ console.log(` ❌ FAIL [${label}] ${tool} — ${msg}`);
84
+ fail++;
85
+ }
86
+ }
87
+ function sk(label, tool, reason) {
88
+ console.log(` ⚠️ SKIP [${label}] ${tool} — ${reason}`);
89
+ skip++;
90
+ }
91
+ function extractFirst(resp, listKey) {
92
+ try {
93
+ const text = resp?.result?.content?.[0]?.text ?? '';
94
+ const data = JSON.parse(text);
95
+ const list = Array.isArray(data) ? data : (data[listKey] ?? []);
96
+ if (list.length > 0)
97
+ return list[0].name ?? list[0].id ?? '';
98
+ }
99
+ catch { }
100
+ return '';
101
+ }
102
+ function extractId(resp) {
103
+ try {
104
+ const text = resp?.result?.content?.[0]?.text ?? '';
105
+ const data = JSON.parse(text);
106
+ const list = Array.isArray(data) ? data : (data.projects ?? data.items ?? []);
107
+ if (list.length > 0)
108
+ return list[0].id ?? list[0].guid ?? '';
109
+ }
110
+ catch { }
111
+ // regex fallback for UUID
112
+ const m = JSON.stringify(resp).match(/"id":"([0-9a-f-]{36})"/);
113
+ return m ? m[1] : '';
114
+ }
115
+ // ─── Main ─────────────────────────────────────────────────────────────────────
116
+ async function main() {
117
+ console.log('\n═══════════════════════════════════════════════════════════');
118
+ console.log(' IBM Code Engine MCP Server — Tool Smoke Tests (43 tools)');
119
+ console.log(` Server: ${serverPath}`);
120
+ console.log('═══════════════════════════════════════════════════════════\n');
121
+ // ── 🐳 Container Tools (8) ──────────────────────────────────────────────
122
+ console.log('── 🐳 Container Tools ──────────────────────────────────────');
123
+ ok('container', 'detect_container_runtime', await callTool('detect_container_runtime'));
124
+ ok('container', 'list_local_images', await callTool('list_local_images', { runtime: 'auto' }));
125
+ ok('container', 'list_local_containers', await callTool('list_local_containers', { runtime: 'auto', all: true }));
126
+ sk('container', 'build_container_image', 'requires Dockerfile (run manually)');
127
+ sk('container', 'push_container_image', 'requires registry auth (run manually)');
128
+ sk('container', 'test_container_locally', 'depends on build (run manually)');
129
+ sk('container', 'get_container_logs', 'requires running container (run manually)');
130
+ sk('container', 'stop_local_container', 'requires running container (run manually)');
131
+ console.log();
132
+ // ── ☁️ CE Projects (4) ──────────────────────────────────────────────────
133
+ console.log('── ☁️ Code Engine: Projects ──────────────────────────────');
134
+ const projectsResp = await callTool('ce_list_projects');
135
+ ok('ce-projects', 'ce_list_projects', projectsResp);
136
+ const projectId = extractId(projectsResp);
137
+ if (projectId) {
138
+ console.log(` Using project_id: ${projectId}`);
139
+ ok('ce-projects', 'ce_get_project', await callTool('ce_get_project', { project_id: projectId }));
140
+ }
141
+ else {
142
+ sk('ce-projects', 'ce_get_project', 'no project found');
143
+ }
144
+ sk('ce-projects', 'ce_create_project', 'would create a real project (run manually)');
145
+ sk('ce-projects', 'ce_delete_project', 'destructive (run manually)');
146
+ console.log();
147
+ if (!projectId) {
148
+ console.log(' ⚠️ No project_id — skipping all project-scoped tests');
149
+ skip += 18;
150
+ return summary();
151
+ }
152
+ // ── 🚀 CE Applications (7) ──────────────────────────────────────────────
153
+ console.log('── 🚀 Code Engine: Applications ──────────────────────────');
154
+ const appsResp = await callTool('ce_list_applications', { project_id: projectId });
155
+ ok('ce-apps', 'ce_list_applications', appsResp);
156
+ const appName = extractFirst(appsResp, 'applications');
157
+ if (appName) {
158
+ ok('ce-apps', 'ce_get_application', await callTool('ce_get_application', { project_id: projectId, app_name: appName }));
159
+ ok('ce-apps', 'ce_list_app_instances', await callTool('ce_list_app_instances', { project_id: projectId, app_name: appName }));
160
+ }
161
+ else {
162
+ sk('ce-apps', 'ce_get_application', 'no apps in project');
163
+ sk('ce-apps', 'ce_list_app_instances', 'no apps in project');
164
+ }
165
+ sk('ce-apps', 'ce_get_app_logs', 'requires a running instance name (run manually)');
166
+ sk('ce-apps', 'ce_create_application', 'would deploy a real app (run manually)');
167
+ sk('ce-apps', 'ce_update_application', 'depends on ce_create_application');
168
+ sk('ce-apps', 'ce_delete_application', 'destructive (run manually)');
169
+ console.log();
170
+ // ── 🏗️ CE Builds (7) ────────────────────────────────────────────────────
171
+ console.log('── 🏗️ Code Engine: Builds ────────────────────────────────');
172
+ const buildsResp = await callTool('ce_list_builds', { project_id: projectId });
173
+ ok('ce-builds', 'ce_list_builds', buildsResp);
174
+ const brResp = await callTool('ce_list_build_runs', { project_id: projectId });
175
+ ok('ce-builds', 'ce_list_build_runs', brResp);
176
+ const buildName = extractFirst(buildsResp, 'builds');
177
+ if (buildName) {
178
+ ok('ce-builds', 'ce_get_build', await callTool('ce_get_build', { project_id: projectId, build_name: buildName }));
179
+ }
180
+ else {
181
+ sk('ce-builds', 'ce_get_build', 'no builds found');
182
+ }
183
+ const buildRunName = extractFirst(brResp, 'build_runs');
184
+ if (buildRunName) {
185
+ ok('ce-builds', 'ce_get_build_run', await callTool('ce_get_build_run', { project_id: projectId, build_run_name: buildRunName }));
186
+ }
187
+ else {
188
+ sk('ce-builds', 'ce_get_build_run', 'no build runs found');
189
+ }
190
+ sk('ce-builds', 'ce_create_build', 'would create a real build config (run manually)');
191
+ sk('ce-builds', 'ce_create_build_run', 'depends on ce_create_build');
192
+ sk('ce-builds', 'ce_delete_build', 'destructive (run manually)');
193
+ sk('ce-builds', 'ce_delete_build_run', 'destructive (run manually)');
194
+ console.log();
195
+ // ── ⚙️ CE Jobs (8) ──────────────────────────────────────────────
196
+ console.log('── ⚙️ Code Engine: Jobs ───────────────────────────────────────');
197
+ const jobsResp = await callTool('ce_list_jobs', { project_id: projectId });
198
+ ok('ce-jobs', 'ce_list_jobs', jobsResp);
199
+ const jobRunsResp = await callTool('ce_list_job_runs', { project_id: projectId });
200
+ ok('ce-jobs', 'ce_list_job_runs', jobRunsResp);
201
+ const jobName = extractFirst(jobsResp, 'jobs');
202
+ if (jobName) {
203
+ ok('ce-jobs', 'ce_get_job', await callTool('ce_get_job', { project_id: projectId, job_name: jobName }));
204
+ }
205
+ else {
206
+ sk('ce-jobs', 'ce_get_job', 'no jobs found');
207
+ }
208
+ const jobRunName = extractFirst(jobRunsResp, 'job_runs');
209
+ if (jobRunName) {
210
+ ok('ce-jobs', 'ce_get_job_run', await callTool('ce_get_job_run', { project_id: projectId, job_run_name: jobRunName }));
211
+ }
212
+ else {
213
+ sk('ce-jobs', 'ce_get_job_run', 'no job runs found');
214
+ }
215
+ sk('ce-jobs', 'ce_create_job', 'would create a real job (run manually)');
216
+ sk('ce-jobs', 'ce_create_job_run', 'depends on ce_create_job');
217
+ sk('ce-jobs', 'ce_delete_job', 'destructive (run manually)');
218
+ sk('ce-jobs', 'ce_delete_job_run', 'destructive (run manually)');
219
+ console.log();
220
+ // ── 🔐 CE Secrets & ConfigMaps (8) ───────────────────────────────
221
+ console.log('── 🔐 Code Engine: Secrets & ConfigMaps ───────────────────────');
222
+ const secretsResp = await callTool('ce_list_secrets', { project_id: projectId });
223
+ ok('ce-secrets', 'ce_list_secrets', secretsResp);
224
+ const configMapsResp = await callTool('ce_list_config_maps', { project_id: projectId });
225
+ ok('ce-configmaps', 'ce_list_config_maps', configMapsResp);
226
+ const secretName = extractFirst(secretsResp, 'secrets');
227
+ if (secretName) {
228
+ ok('ce-secrets', 'ce_get_secret', await callTool('ce_get_secret', { project_id: projectId, secret_name: secretName }));
229
+ }
230
+ else {
231
+ sk('ce-secrets', 'ce_get_secret', 'no secrets found');
232
+ }
233
+ const configMapName = extractFirst(configMapsResp, 'config_maps');
234
+ if (configMapName) {
235
+ ok('ce-configmaps', 'ce_get_config_map', await callTool('ce_get_config_map', { project_id: projectId, config_map_name: configMapName }));
236
+ }
237
+ else {
238
+ sk('ce-configmaps', 'ce_get_config_map', 'no configmaps found');
239
+ }
240
+ sk('ce-secrets', 'ce_create_secret', 'would create a real secret (run manually)');
241
+ sk('ce-configmaps', 'ce_create_config_map', 'would create a real configmap (run manually)');
242
+ sk('ce-secrets', 'ce_delete_secret', 'destructive (run manually)');
243
+ sk('ce-configmaps', 'ce_delete_config_map', 'destructive (run manually)');
244
+ console.log();
245
+ summary();
246
+ }
247
+ function summary() {
248
+ console.log('═══════════════════════════════════════════════════════════');
249
+ console.log(` Results: ✅ ${pass} passed ❌ ${fail} failed ⚠️ ${skip} skipped`);
250
+ console.log('═══════════════════════════════════════════════════════════\n');
251
+ process.exit(fail > 0 ? 1 : 0);
252
+ }
253
+ main().catch((e) => { console.error(e); process.exit(1); });
254
+ //# sourceMappingURL=test-all-tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-all-tools.js","sourceRoot":"","sources":["../src/test-all-tools.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env tsx
2
+ export {};
3
+ //# sourceMappingURL=test-integration.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-integration.d.ts","sourceRoot":"","sources":["../src/test-integration.ts"],"names":[],"mappings":""}