{"_id":"@ibm/ibmi-mcp-server","_rev":"29-13a858819597ba0889f3d10c1f4192e8","name":"@ibm/ibmi-mcp-server","dist-tags":{"latest":"0.6.1"},"versions":{"0.1.0":{"name":"@ibm/ibmi-mcp-server","version":"0.1.0","keywords":["typescript","template","mcp","model-context-protocol","agent","autonomous-agent","agent-framework","architecture","error-handling","llm","ai-integration","mcp-server","mcp-client","hono","stdio","http","authentication","oauth","jwt","openrouter","duckdb","zod","opentelemetry","observability","tracing","metrics"],"author":{"url":"https://github.com/ajshedivy/ibmi-mcp-server#readme","name":"ajshedivy","email":"adam.shedivy@ibm.com"},"license":"Apache-2.0","_id":"@ibm/ibmi-mcp-server@0.1.0","maintainers":[{"name":"gcattan","email":"gregoire.cattan@ibm.com"},{"name":"carbon-design-system","email":"carbon@us.ibm.com"},{"name":"alisonjoseph","email":"alisonejoseph@gmail.com"},{"name":"bjost","email":"bjost@de.ibm.com"},{"name":"sanjula.ganepola.ibm","email":"sanjula.ganepola@ibm.com"},{"name":"jonnyzak32","email":"Jonathan.Zak@ibm.com"},{"name":"phaumer","email":"phaumer@us.ibm.com"},{"name":"tay1orjones","email":"taylor.jones826@gmail.com"},{"name":"mmcelaney","email":"mmcelaney@us.ibm.com"},{"name":"aifound","email":"aifound@us.ibm.com"},{"name":"michael.froend","email":"michael.froend2@ibm.com"},{"name":"odfbackuprestore","email":"odfbackuprestore@ibm.com"},{"name":"calanais","email":"matthew@mh-white.com"},{"name":"ibm-bamoeci","email":"bamoe.ci@ibm.com"},{"name":"joesepi","email":"sepi@joesepi.com"},{"name":"edmund.reinhardt","email":"edmund.reinhardt@ca.ibm.com"},{"name":"jjasghar","email":"jjasghar@gmail.com"},{"name":"yihongwang","email":"yh.wang@ibm.com"},{"name":"cmarcink","email":"cmarcink@us.ibm.com"},{"name":"adamshedivy","email":"ajshedivyaj@gmail.com"},{"name":"idan_ibm","email":"idan.zohar@ibm.com"}],"homepage":"https://github.com/IBM/ibmi-mcp-server.git#readme","bugs":{"url":"https://github.com/IBM/ibmi-mcp-server.git/issues"},"bin":{"ibmi-mcp-server":"dist/index.js"},"dist":{"shasum":"c5ace8dc01418a6e2dd3b631e48ed486774f1c61","tarball":"https://registry.npmjs.org/@ibm/ibmi-mcp-server/-/ibmi-mcp-server-0.1.0.tgz","fileCount":482,"integrity":"sha512-A6XbMhBk4C3UYBnNU8NmulaAVRvb4/PiSZreNgLUp7nYGOfNNnWrcmdKLgjDjcXI+bG8XS6gcLDeAceOc/OQTg==","signatures":[{"sig":"MEUCIBTLTaBm1VMOn71L4k+vkIJKDnJABoNU7hV8i70NVQXCAiEA95YTgijg0JDzRAaLo/YaZsu/TR5EeUo5gprtfLsWsjw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1409365},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"4880b74d1f9cedca62a303ca1a9329a9206f68b7","scripts":{"lint":"tsx scripts/lint.ts","test":"vitest run","tree":"tsx scripts/tree.ts","audit":"npm audit --production","build":"tsc && tsc-alias","start":"node dist/index.js","format":"prettier --write \"**/*.{ts,js,json,md,html,css}\"","mcpjam":"npx @mcpjam/cli","devdocs":"ts-node --esm scripts/devdocs.ts","rebuild":"tsx scripts/clean.ts && npm run build","release":"standard-version","depcheck":"npx depcheck","validate":"tsx scripts/validate-config.ts","audit:fix":"npm audit fix --production","inspector":"npx @modelcontextprotocol/inspector --config mcp.json --server default-server","pack:full":"rm -rf release && npm ci && npm run build && mkdir -p release/app && cp -R dist package.json package-lock.json node_modules release/app && tar -C release -czf release/ibmi-mcp-server-${npm_package_version}-full.tgz app","postbuild":"tsx scripts/make-executable.ts dist/index.js","typecheck":"tsc --noEmit","fetch-spec":"tsx scripts/fetch-openapi-spec.ts","start:http":"MCP_LOG_LEVEL=debug MCP_TRANSPORT_TYPE=http node dist/index.js","test:watch":"vitest","start:agent":"MCP_LOG_LEVEL=debug node dist/agent/cli/boot.js","start:stdio":"MCP_LOG_LEVEL=debug MCP_TRANSPORT_TYPE=stdio node dist/index.js","docs:generate":"typedoc --tsconfig ./tsconfig.typedoc.json","list-toolsets":"node dist/index.js --list-toolsets --tools ../tools","release:first":"standard-version --first-release","release:major":"standard-version --release-as major","release:minor":"standard-version --release-as minor","release:patch":"standard-version --release-as patch","test:coverage":"vitest run --coverage","prepublishOnly":"npm run typecheck && npm run lint && npm run test && npm run build","generate-schemas":"tsx scripts/generate-json-schemas.ts","db:duckdb-example":"MCP_LOG_LEVEL=debug tsc && node dist/storage/duckdbExample.js"},"_npmUser":{"name":"jjasghar","email":"jjasghar@gmail.com"},"repository":{"url":"git+https://github.com/IBM/ibmi-mcp-server.git","type":"git"},"_npmVersion":"11.6.4","description":"A production-grade TypeScript template for building robust Model Context Protocol (MCP) servers, featuring built-in observability with OpenTelemetry, advanced error handling, comprehensive utilities, and a modular architecture.","directories":{},"_nodeVersion":"23.11.0","dependencies":{"zod":"^3.25.76","hono":"^4.8.9","jose":"^6.0.13","pino":"^9.9.0","vite":"^6.3.5","axios":"^1.11.0","dotenv":"^16.6.1","ignore":"^7.0.5","openai":"^5.15.0","js-yaml":"^4.1.0","ts-node":"^10.9.2","tiktoken":"^1.0.22","node-cron":"^4.2.1","validator":"^13.15.23","chrono-node":"^2.8.0","partial-json":"^0.1.7","sanitize-html":"^2.17.0","node-sql-parser":"^5.3.12","@duckdb/node-api":"^1.3.2-alpha.26","@ibm/mapepire-js":"^0.6.0","reflect-metadata":"^0.2.2","@hono/node-server":"^1.17.1","zod-to-json-schema":"^3.24.6","@supabase/supabase-js":"^2.56.0","@modelcontextprotocol/sdk":"^1.17.4"},"_hasShrinkwrap":false,"devDependencies":{"msw":"^2.10.5","tsx":"^4.20.4","chalk":"^5.6.0","execa":"^9.6.0","eslint":"^9.34.0","vitest":"^3.2.4","globals":"^16.3.0","typedoc":"^0.28.10","depcheck":"^1.4.7","prettier":"^3.6.2","pino-roll":"^1.1.0","tsc-alias":"^1.8.16","@eslint/js":"^9.34.0","typescript":"^5.8.3","@types/node":"^24.3.0","pino-pretty":"^13.0.0","@types/js-yaml":"^4.0.9","@faker-js/faker":"^9.9.0","@types/node-cron":"^3.0.11","@types/validator":"13.15.2","standard-version":"^9.5.0","@anatine/zod-mock":"^3.14.0","typescript-eslint":"^8.40.0","@opentelemetry/api":"^1.9.0","@vitest/coverage-v8":"^3.2.4","vite-tsconfig-paths":"^5.1.4","@types/sanitize-html":"^2.16.0","@types/node-sql-parser":"^1.0.0","@opentelemetry/sdk-node":"^0.203.0","@opentelemetry/resources":"^2.0.1","@opentelemetry/sdk-metrics":"^2.0.1","@opentelemetry/sdk-trace-node":"^2.0.1","@opentelemetry/semantic-conventions":"^1.36.0","@opentelemetry/exporter-trace-otlp-http":"^0.203.0","@opentelemetry/auto-instrumentations-node":"^0.62.1","@opentelemetry/exporter-metrics-otlp-http":"^0.203.0"},"_npmOperationalInternal":{"tmp":"tmp/ibmi-mcp-server_0.1.0_1764798449645_0.6501803752732576","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@ibm/ibmi-mcp-server","version":"0.1.1","keywords":["typescript","template","mcp","model-context-protocol","agent","autonomous-agent","agent-framework","architecture","error-handling","llm","ai-integration","mcp-server","mcp-client","hono","stdio","http","authentication","oauth","jwt","openrouter","duckdb","zod","opentelemetry","observability","tracing","metrics"],"author":{"url":"https://github.com/ajshedivy/ibmi-mcp-server#readme","name":"ajshedivy","email":"adam.shedivy@ibm.com"},"license":"Apache-2.0","_id":"@ibm/ibmi-mcp-server@0.1.1","maintainers":[{"name":"gcattan","email":"gregoire.cattan@ibm.com"},{"name":"carbon-design-system","email":"carbon@us.ibm.com"},{"name":"alisonjoseph","email":"alisonejoseph@gmail.com"},{"name":"bjost","email":"bjost@de.ibm.com"},{"name":"sanjula.ganepola.ibm","email":"sanjula.ganepola@ibm.com"},{"name":"jonnyzak32","email":"Jonathan.Zak@ibm.com"},{"name":"phaumer","email":"phaumer@us.ibm.com"},{"name":"tay1orjones","email":"taylor.jones826@gmail.com"},{"name":"mmcelaney","email":"mmcelaney@us.ibm.com"},{"name":"aifound","email":"aifound@us.ibm.com"},{"name":"michael.froend","email":"michael.froend2@ibm.com"},{"name":"odfbackuprestore","email":"odfbackuprestore@ibm.com"},{"name":"calanais","email":"matthew@mh-white.com"},{"name":"ibm-bamoeci","email":"bamoe.ci@ibm.com"},{"name":"joesepi","email":"sepi@joesepi.com"},{"name":"edmund.reinhardt","email":"edmund.reinhardt@ca.ibm.com"},{"name":"jjasghar","email":"jjasghar@gmail.com"},{"name":"yihongwang","email":"yh.wang@ibm.com"},{"name":"cmarcink","email":"cmarcink@us.ibm.com"},{"name":"adamshedivy","email":"ajshedivyaj@gmail.com"},{"name":"idan_ibm","email":"idan.zohar@ibm.com"}],"homepage":"https://github.com/IBM/ibmi-mcp-server.git#readme","bugs":{"url":"https://github.com/IBM/ibmi-mcp-server.git/issues"},"bin":{"ibmi-mcp-server":"dist/index.js"},"dist":{"shasum":"ec1dede08c1098ebc207f8b5153a5853028c621a","tarball":"https://registry.npmjs.org/@ibm/ibmi-mcp-server/-/ibmi-mcp-server-0.1.1.tgz","fileCount":482,"integrity":"sha512-NhxARAV+4zF4/dmQO1rkWKVjymxnSfzwRHnbjq7vgj3D7dfATN75K8kLgQ9Eld/m/RxFONlwamtuOP+fS6oQcA==","signatures":[{"sig":"MEYCIQCPYnv6wNXJppw+n9zTHI2fNJAE6yGK1yunKdWQ1mFT0wIhAOdGWybtOvPTrraX1EGPjMkMvnb3SeZaMmLYsP1i/BxO","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1410875},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"5ed85318e002eca5722db19d0994b5fbde91122d","scripts":{"lint":"tsx scripts/lint.ts","test":"vitest run","tree":"tsx scripts/tree.ts","audit":"npm audit --production","build":"tsc && tsc-alias","start":"node dist/index.js","format":"prettier --write \"**/*.{ts,js,json,md,html,css}\"","mcpjam":"npx @mcpjam/cli","devdocs":"ts-node --esm scripts/devdocs.ts","rebuild":"tsx scripts/clean.ts && npm run build","release":"standard-version","depcheck":"npx depcheck","validate":"tsx scripts/validate-config.ts","audit:fix":"npm audit fix --production","inspector":"npx @modelcontextprotocol/inspector --config mcp.json --server default-server","pack:full":"rm -rf release && npm ci && npm run build && mkdir -p release/app && cp -R dist package.json package-lock.json node_modules release/app && tar -C release -czf release/ibmi-mcp-server-${npm_package_version}-full.tgz app","postbuild":"tsx scripts/make-executable.ts dist/index.js","typecheck":"tsc --noEmit","fetch-spec":"tsx scripts/fetch-openapi-spec.ts","start:http":"MCP_LOG_LEVEL=debug MCP_TRANSPORT_TYPE=http node dist/index.js","test:watch":"vitest","start:agent":"MCP_LOG_LEVEL=debug node dist/agent/cli/boot.js","start:stdio":"MCP_LOG_LEVEL=debug MCP_TRANSPORT_TYPE=stdio node dist/index.js","docs:generate":"typedoc --tsconfig ./tsconfig.typedoc.json","list-toolsets":"node dist/index.js --list-toolsets --tools ../tools","release:first":"standard-version --first-release","release:major":"standard-version --release-as major","release:minor":"standard-version --release-as minor","release:patch":"standard-version --release-as patch","test:coverage":"vitest run --coverage","prepublishOnly":"npm run typecheck && npm run lint && npm run test && npm run build","generate-schemas":"tsx scripts/generate-json-schemas.ts","db:duckdb-example":"MCP_LOG_LEVEL=debug tsc && node dist/storage/duckdbExample.js"},"_npmUser":{"name":"adamshedivy","email":"ajshedivyaj@gmail.com"},"repository":{"url":"git+https://github.com/IBM/ibmi-mcp-server.git","type":"git"},"_npmVersion":"10.8.2","description":"A production-grade TypeScript template for building robust Model Context Protocol (MCP) servers, featuring built-in observability with OpenTelemetry, advanced error handling, comprehensive utilities, and a modular architecture.","directories":{},"_nodeVersion":"22.6.0","dependencies":{"zod":"^3.25.76","hono":"^4.8.9","jose":"^6.0.13","pino":"^9.9.0","vite":"^6.3.5","axios":"^1.11.0","dotenv":"^16.6.1","ignore":"^7.0.5","openai":"^5.15.0","js-yaml":"^4.1.0","ts-node":"^10.9.2","tiktoken":"^1.0.22","node-cron":"^4.2.1","validator":"^13.15.23","chrono-node":"^2.8.0","partial-json":"^0.1.7","sanitize-html":"^2.17.0","node-sql-parser":"^5.3.12","@duckdb/node-api":"^1.3.2-alpha.26","@ibm/mapepire-js":"^0.6.0","reflect-metadata":"^0.2.2","@hono/node-server":"^1.17.1","@opentelemetry/api":"^1.9.0","zod-to-json-schema":"^3.24.6","@supabase/supabase-js":"^2.56.0","@opentelemetry/sdk-node":"^0.203.0","@opentelemetry/resources":"^2.0.1","@modelcontextprotocol/sdk":"^1.17.4","@opentelemetry/sdk-metrics":"^2.0.1","@opentelemetry/sdk-trace-node":"^2.0.1","@opentelemetry/semantic-conventions":"^1.36.0","@opentelemetry/exporter-trace-otlp-http":"^0.203.0","@opentelemetry/auto-instrumentations-node":"^0.62.1","@opentelemetry/exporter-metrics-otlp-http":"^0.203.0"},"_hasShrinkwrap":false,"devDependencies":{"msw":"^2.10.5","tsx":"^4.20.4","chalk":"^5.6.0","execa":"^9.6.0","eslint":"^9.34.0","vitest":"^3.2.4","globals":"^16.3.0","typedoc":"^0.28.10","depcheck":"^1.4.7","prettier":"^3.6.2","pino-roll":"^1.1.0","tsc-alias":"^1.8.16","@eslint/js":"^9.34.0","typescript":"^5.8.3","@types/node":"^24.3.0","pino-pretty":"^13.0.0","@types/js-yaml":"^4.0.9","@faker-js/faker":"^9.9.0","@types/node-cron":"^3.0.11","@types/validator":"13.15.2","standard-version":"^9.5.0","@anatine/zod-mock":"^3.14.0","typescript-eslint":"^8.40.0","@vitest/coverage-v8":"^3.2.4","vite-tsconfig-paths":"^5.1.4","@types/sanitize-html":"^2.16.0","@types/node-sql-parser":"^1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/ibmi-mcp-server_0.1.1_1765494166932_0.1571010486238491","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@ibm/ibmi-mcp-server","version":"0.1.2","keywords":["typescript","template","mcp","model-context-protocol","agent","autonomous-agent","agent-framework","architecture","error-handling","llm","ai-integration","mcp-server","mcp-client","hono","stdio","http","authentication","oauth","jwt","openrouter","duckdb","zod","opentelemetry","observability","tracing","metrics"],"author":{"url":"https://github.com/ajshedivy/ibmi-mcp-server#readme","name":"ajshedivy","email":"adam.shedivy@ibm.com"},"license":"Apache-2.0","_id":"@ibm/ibmi-mcp-server@0.1.2","maintainers":[{"name":"gcattan","email":"gregoire.cattan@ibm.com"},{"name":"carbon-design-system","email":"carbon@us.ibm.com"},{"name":"alisonjoseph","email":"alisonejoseph@gmail.com"},{"name":"bjost","email":"bjost@de.ibm.com"},{"name":"sanjula.ganepola.ibm","email":"sanjula.ganepola@ibm.com"},{"name":"jonnyzak32","email":"Jonathan.Zak@ibm.com"},{"name":"phaumer","email":"phaumer@us.ibm.com"},{"name":"tay1orjones","email":"taylor.jones826@gmail.com"},{"name":"mmcelaney","email":"mmcelaney@us.ibm.com"},{"name":"aifound","email":"aifound@us.ibm.com"},{"name":"michael.froend","email":"michael.froend2@ibm.com"},{"name":"odfbackuprestore","email":"odfbackuprestore@ibm.com"},{"name":"calanais","email":"matthew@mh-white.com"},{"name":"ibm-bamoeci","email":"bamoe.ci@ibm.com"},{"name":"joesepi","email":"sepi@joesepi.com"},{"name":"edmund.reinhardt","email":"edmund.reinhardt@ca.ibm.com"},{"name":"jjasghar","email":"jjasghar@gmail.com"},{"name":"yihongwang","email":"yh.wang@ibm.com"},{"name":"cmarcink","email":"cmarcink@us.ibm.com"},{"name":"adamshedivy","email":"ajshedivyaj@gmail.com"},{"name":"idan_ibm","email":"idan.zohar@ibm.com"}],"homepage":"https://github.com/IBM/ibmi-mcp-server.git#readme","bugs":{"url":"https://github.com/IBM/ibmi-mcp-server.git/issues"},"bin":{"ibmi-mcp-server":"dist/index.js"},"dist":{"shasum":"480975539ef61a6f2c15ad1453d69263c3eebe86","tarball":"https://registry.npmjs.org/@ibm/ibmi-mcp-server/-/ibmi-mcp-server-0.1.2.tgz","fileCount":482,"integrity":"sha512-AH/niMlNmnTdPeJ9covgDomAdDHnfFAoTfMJcZs21CkkGXL/T9nZnMB1WVtY/TznH3LfSeJimbuEY884XU2HVQ==","signatures":[{"sig":"MEYCIQCx3og7swXs3cD6Xfh7pHz4MWXbVvb2ANPm6jTmYzmAzAIhANDkUuhdjXjTXH/UO/xA1OWp7XxjDcb6v5gXwnhKI5Kd","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@ibm%2fibmi-mcp-server@0.1.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1410815},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"d1efeb08047f8766332209709e42db32c9bc4958","scripts":{"lint":"tsx scripts/lint.ts","test":"vitest run","tree":"tsx scripts/tree.ts","audit":"npm audit --production","build":"tsc && tsc-alias","start":"node dist/index.js","format":"prettier --write \"**/*.{ts,js,json,md,html,css}\"","mcpjam":"npx @mcpjam/cli","devdocs":"ts-node --esm scripts/devdocs.ts","rebuild":"tsx scripts/clean.ts && npm run build","release":"standard-version","depcheck":"npx depcheck","validate":"tsx scripts/validate-config.ts","audit:fix":"npm audit fix --production","inspector":"npx @modelcontextprotocol/inspector --config mcp.json --server default-server","pack:full":"rm -rf release && npm ci && npm run build && mkdir -p release/app && cp -R dist package.json package-lock.json node_modules release/app && tar -C release -czf release/ibmi-mcp-server-${npm_package_version}-full.tgz app","postbuild":"tsx scripts/make-executable.ts dist/index.js","typecheck":"tsc --noEmit","fetch-spec":"tsx scripts/fetch-openapi-spec.ts","start:http":"MCP_LOG_LEVEL=debug MCP_TRANSPORT_TYPE=http node dist/index.js","test:watch":"vitest","start:agent":"MCP_LOG_LEVEL=debug node dist/agent/cli/boot.js","start:stdio":"MCP_LOG_LEVEL=debug MCP_TRANSPORT_TYPE=stdio node dist/index.js","docs:generate":"typedoc --tsconfig ./tsconfig.typedoc.json","list-toolsets":"node dist/index.js --list-toolsets --tools ../tools","release:first":"standard-version --first-release","release:major":"standard-version --release-as major","release:minor":"standard-version --release-as minor","release:patch":"standard-version --release-as patch","test:coverage":"vitest run --coverage","prepublishOnly":"npm run typecheck && npm run lint && npm run test && npm run build","generate-schemas":"tsx scripts/generate-json-schemas.ts","db:duckdb-example":"MCP_LOG_LEVEL=debug tsc && node dist/storage/duckdbExample.js"},"_npmUser":{"name":"adamshedivy","email":"ajshedivyaj@gmail.com"},"repository":{"url":"git+https://github.com/IBM/ibmi-mcp-server.git","type":"git"},"_npmVersion":"10.8.2","description":"A production-grade TypeScript template for building robust Model Context Protocol (MCP) servers, featuring built-in observability with OpenTelemetry, advanced error handling, comprehensive utilities, and a modular architecture.","directories":{},"_nodeVersion":"20.19.6","dependencies":{"zod":"^3.25.76","hono":"^4.8.9","jose":"^6.0.13","pino":"^9.9.0","vite":"^6.3.5","axios":"^1.11.0","dotenv":"^16.6.1","ignore":"^7.0.5","openai":"^5.15.0","js-yaml":"^4.1.0","ts-node":"^10.9.2","tiktoken":"^1.0.22","node-cron":"^4.2.1","pino-roll":"^1.1.0","validator":"^13.15.23","chrono-node":"^2.8.0","pino-pretty":"^13.0.0","partial-json":"^0.1.7","sanitize-html":"^2.17.0","node-sql-parser":"^5.3.12","@duckdb/node-api":"^1.3.2-alpha.26","@ibm/mapepire-js":"^0.6.0","reflect-metadata":"^0.2.2","@hono/node-server":"^1.17.1","@opentelemetry/api":"^1.9.0","zod-to-json-schema":"^3.24.6","@supabase/supabase-js":"^2.56.0","@opentelemetry/sdk-node":"^0.203.0","@opentelemetry/resources":"^2.0.1","@modelcontextprotocol/sdk":"^1.17.4","@opentelemetry/sdk-metrics":"^2.0.1","@opentelemetry/sdk-trace-node":"^2.0.1","@opentelemetry/semantic-conventions":"^1.36.0","@opentelemetry/exporter-trace-otlp-http":"^0.203.0","@opentelemetry/auto-instrumentations-node":"^0.62.1","@opentelemetry/exporter-metrics-otlp-http":"^0.203.0"},"_hasShrinkwrap":false,"devDependencies":{"msw":"^2.10.5","tsx":"^4.20.4","chalk":"^5.6.0","execa":"^9.6.0","eslint":"^9.34.0","vitest":"^3.2.4","globals":"^16.3.0","typedoc":"^0.28.10","depcheck":"^1.4.7","prettier":"^3.6.2","tsc-alias":"^1.8.16","@eslint/js":"^9.34.0","typescript":"^5.8.3","@types/node":"^24.3.0","@types/js-yaml":"^4.0.9","@faker-js/faker":"^9.9.0","@types/node-cron":"^3.0.11","@types/validator":"13.15.2","standard-version":"^9.5.0","@anatine/zod-mock":"^3.14.0","typescript-eslint":"^8.40.0","@vitest/coverage-v8":"^3.2.4","vite-tsconfig-paths":"^5.1.4","@types/sanitize-html":"^2.16.0","@types/node-sql-parser":"^1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/ibmi-mcp-server_0.1.2_1765496257224_0.8495940764679881","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@ibm/ibmi-mcp-server","version":"0.2.0","keywords":["typescript","template","mcp","model-context-protocol","agent","autonomous-agent","agent-framework","architecture","error-handling","llm","ai-integration","mcp-server","mcp-client","hono","stdio","http","authentication","oauth","jwt","openrouter","duckdb","zod","opentelemetry","observability","tracing","metrics"],"author":{"url":"https://github.com/ajshedivy/ibmi-mcp-server#readme","name":"ajshedivy","email":"adam.shedivy@ibm.com"},"license":"Apache-2.0","_id":"@ibm/ibmi-mcp-server@0.2.0","maintainers":[{"name":"gcattan","email":"gregoire.cattan@ibm.com"},{"name":"carbon-design-system","email":"carbon@us.ibm.com"},{"name":"alisonjoseph","email":"alisonejoseph@gmail.com"},{"name":"bjost","email":"bjost@de.ibm.com"},{"name":"sanjula.ganepola.ibm","email":"sanjula.ganepola@ibm.com"},{"name":"jonnyzak32","email":"Jonathan.Zak@ibm.com"},{"name":"phaumer","email":"phaumer@us.ibm.com"},{"name":"tay1orjones","email":"taylor.jones826@gmail.com"},{"name":"mmcelaney","email":"mmcelaney@us.ibm.com"},{"name":"aifound","email":"aifound@us.ibm.com"},{"name":"michael.froend","email":"michael.froend2@ibm.com"},{"name":"odfbackuprestore","email":"odfbackuprestore@ibm.com"},{"name":"calanais","email":"matthew@mh-white.com"},{"name":"ibm-bamoeci","email":"bamoe.ci@ibm.com"},{"name":"joesepi","email":"sepi@joesepi.com"},{"name":"edmund.reinhardt","email":"edmund.reinhardt@ca.ibm.com"},{"name":"jjasghar","email":"jjasghar@gmail.com"},{"name":"yihongwang","email":"yh.wang@ibm.com"},{"name":"cmarcink","email":"cmarcink@us.ibm.com"},{"name":"adamshedivy","email":"ajshedivyaj@gmail.com"},{"name":"idan_ibm","email":"idan.zohar@ibm.com"}],"homepage":"https://github.com/IBM/ibmi-mcp-server.git#readme","bugs":{"url":"https://github.com/IBM/ibmi-mcp-server.git/issues"},"bin":{"ibmi-mcp-server":"dist/index.js"},"dist":{"shasum":"09139816853b195f3b6660cfa70d43a2bd2f6b1c","tarball":"https://registry.npmjs.org/@ibm/ibmi-mcp-server/-/ibmi-mcp-server-0.2.0.tgz","fileCount":482,"integrity":"sha512-i/s8bX3cUwc6c6sGY7/IUOeQ0+4102i7AvV34rdmNZiEVAItXuBdDTSyCdW5ieEEaxO5bP5X1l3T94n+stiTkA==","signatures":[{"sig":"MEUCIHRPdqVPvDW39SPTfEA+8KaOhDT23pJuN2yhYJJe2HtOAiEApQ7f5t/RgLmFJ2sd/IyHS/fEItbJ6vs5N3YslLuYpsw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@ibm%2fibmi-mcp-server@0.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1474346},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"9a434eec469af85781533b8dbf61ab34b3cf5de2","scripts":{"lint":"tsx scripts/lint.ts","test":"vitest run","tree":"tsx scripts/tree.ts","audit":"npm audit --production","build":"tsc && tsc-alias","start":"node dist/index.js","format":"prettier --write \"**/*.{ts,js,json,md,html,css}\"","mcpjam":"npx @mcpjam/cli","devdocs":"ts-node --esm scripts/devdocs.ts","rebuild":"tsx scripts/clean.ts && npm run build","release":"standard-version","depcheck":"npx depcheck","validate":"tsx scripts/validate-config.ts","audit:fix":"npm audit fix --production","inspector":"npx @modelcontextprotocol/inspector --config mcp.json --server default-server","pack:full":"rm -rf release && npm ci && npm run build && mkdir -p release/app && cp -R dist package.json package-lock.json node_modules release/app && tar -C release -czf release/ibmi-mcp-server-${npm_package_version}-full.tgz app","postbuild":"tsx scripts/make-executable.ts dist/index.js","typecheck":"tsc --noEmit","fetch-spec":"tsx scripts/fetch-openapi-spec.ts","start:http":"MCP_LOG_LEVEL=debug MCP_TRANSPORT_TYPE=http node dist/index.js","test:watch":"vitest","start:agent":"MCP_LOG_LEVEL=debug node dist/agent/cli/boot.js","start:stdio":"MCP_LOG_LEVEL=debug MCP_TRANSPORT_TYPE=stdio node dist/index.js","release:undo":"./scripts/release-undo.sh","docs:generate":"typedoc --tsconfig ./tsconfig.typedoc.json","list-toolsets":"node dist/index.js --list-toolsets --tools ../tools","release:first":"standard-version --first-release","release:major":"standard-version --release-as major","release:minor":"standard-version --release-as minor","release:patch":"standard-version --release-as patch","test:coverage":"vitest run --coverage","prepublishOnly":"npm run typecheck && npm run lint && npm run test && npm run build","release:prepare":"./scripts/release-prepare.sh","generate-schemas":"tsx scripts/generate-json-schemas.ts","release:finalize":"./scripts/release-finalize.sh","db:duckdb-example":"MCP_LOG_LEVEL=debug tsc && node dist/storage/duckdbExample.js","release:prepare:major":"./scripts/release-prepare.sh major","release:prepare:minor":"./scripts/release-prepare.sh minor","release:prepare:patch":"./scripts/release-prepare.sh patch"},"_npmUser":{"name":"adamshedivy","email":"ajshedivyaj@gmail.com"},"repository":{"url":"git+https://github.com/IBM/ibmi-mcp-server.git","type":"git"},"_npmVersion":"10.8.2","description":"A production-grade MCP server for IBM i","directories":{},"_nodeVersion":"20.19.6","dependencies":{"zod":"^3.25.76","glob":"^10.5.0","hono":"^4.8.9","jose":"^6.0.13","pino":"^9.9.0","axios":"^1.11.0","dotenv":"^16.6.1","ignore":"^7.0.5","openai":"^5.15.0","js-yaml":"^4.1.0","ts-node":"^10.9.2","tiktoken":"^1.0.22","node-cron":"^4.2.1","pino-roll":"^1.1.0","validator":"^13.15.23","chrono-node":"^2.8.0","pino-pretty":"^13.0.0","partial-json":"^0.1.7","sanitize-html":"^2.17.0","node-sql-parser":"^5.3.12","@duckdb/node-api":"^1.3.2-alpha.26","@ibm/mapepire-js":"^0.6.0","reflect-metadata":"^0.2.2","@hono/node-server":"^1.17.1","@opentelemetry/api":"^1.9.0","zod-to-json-schema":"^3.24.6","@supabase/supabase-js":"^2.56.0","@opentelemetry/sdk-node":"^0.203.0","@opentelemetry/resources":"^2.0.1","@modelcontextprotocol/sdk":"^1.17.4","@opentelemetry/sdk-metrics":"^2.0.1","@opentelemetry/sdk-trace-node":"^2.0.1","@opentelemetry/semantic-conventions":"^1.36.0","@opentelemetry/exporter-trace-otlp-http":"^0.203.0","@opentelemetry/auto-instrumentations-node":"^0.62.1","@opentelemetry/exporter-metrics-otlp-http":"^0.203.0"},"_hasShrinkwrap":false,"devDependencies":{"msw":"^2.10.5","tsx":"^4.20.4","vite":"^6.3.5","chalk":"^5.6.0","execa":"^9.6.0","eslint":"^9.34.0","vitest":"^3.2.4","globals":"^16.3.0","typedoc":"^0.28.10","depcheck":"^1.4.7","prettier":"^3.6.2","tsc-alias":"^1.8.16","@eslint/js":"^9.34.0","typescript":"^5.8.3","@types/node":"^24.3.0","@types/js-yaml":"^4.0.9","@faker-js/faker":"^9.9.0","@types/node-cron":"^3.0.11","@types/validator":"13.15.2","standard-version":"^9.5.0","@anatine/zod-mock":"^3.14.0","typescript-eslint":"^8.40.0","@vitest/coverage-v8":"^3.2.4","vite-tsconfig-paths":"^5.1.4","@types/sanitize-html":"^2.16.0","@types/node-sql-parser":"^1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/ibmi-mcp-server_0.2.0_1766075500656_0.8266441502132742","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@ibm/ibmi-mcp-server","version":"0.3.0","keywords":["typescript","template","mcp","model-context-protocol","agent","autonomous-agent","agent-framework","architecture","error-handling","llm","ai-integration","mcp-server","mcp-client","hono","stdio","http","authentication","oauth","jwt","openrouter","duckdb","zod","opentelemetry","observability","tracing","metrics"],"author":{"url":"https://github.com/ajshedivy/ibmi-mcp-server#readme","name":"ajshedivy","email":"adam.shedivy@ibm.com"},"license":"Apache-2.0","_id":"@ibm/ibmi-mcp-server@0.3.0","maintainers":[{"name":"carbon-design-system","email":"carbon@us.ibm.com"},{"name":"alisonjoseph","email":"alisonejoseph@gmail.com"},{"name":"bjost","email":"bjost@de.ibm.com"},{"name":"sanjula.ganepola.ibm","email":"sanjula.ganepola@ibm.com"},{"name":"jonnyzak32","email":"Jonathan.Zak@ibm.com"},{"name":"phaumer","email":"phaumer@us.ibm.com"},{"name":"tay1orjones","email":"taylor.jones826@gmail.com"},{"name":"mmcelaney","email":"mmcelaney@us.ibm.com"},{"name":"aifound","email":"aifound@us.ibm.com"},{"name":"michael.froend","email":"michael.froend2@ibm.com"},{"name":"odfbackuprestore","email":"odfbackuprestore@ibm.com"},{"name":"calanais","email":"matthew@mh-white.com"},{"name":"ibm-bamoeci","email":"bamoe.ci@ibm.com"},{"name":"joesepi","email":"sepi@joesepi.com"},{"name":"edmund.reinhardt","email":"edmund.reinhardt@ca.ibm.com"},{"name":"jjasghar","email":"jjasghar@gmail.com"},{"name":"yihongwang","email":"yh.wang@ibm.com"},{"name":"cmarcink","email":"cmarcink@us.ibm.com"},{"name":"adamshedivy","email":"ajshedivyaj@gmail.com"},{"name":"gcattan","email":"gregoire.cattan@ibm.com"},{"name":"idan_ibm","email":"idan.zohar@ibm.com"}],"homepage":"https://github.com/IBM/ibmi-mcp-server.git#readme","bugs":{"url":"https://github.com/IBM/ibmi-mcp-server.git/issues"},"bin":{"ibmi-mcp-server":"dist/index.js"},"dist":{"shasum":"119b376000c8863bf8fc1107bce08f9cd0a78ade","tarball":"https://registry.npmjs.org/@ibm/ibmi-mcp-server/-/ibmi-mcp-server-0.3.0.tgz","fileCount":434,"integrity":"sha512-gT5nnhTL/ffNBsV+2FAtPPMPQVTQITm9sfBZ5e43yUU9qFys3WiExq+UmBda1k0WVQTukj5+vBoMKxe3ee2m0g==","signatures":[{"sig":"MEQCICCHBl/9dNREiTb0eWrvWyZrPdFCmIgRl3NNpnvOTjpvAiBQGhn2afJnXn28dHffeANnK7UUzNr+XUz/pZyrPLoAAA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@ibm%2fibmi-mcp-server@0.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1494405},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"49efe58621e5583607cd0a7f924cdf1bafb5c0fc","scripts":{"lint":"tsx scripts/lint.ts","test":"vitest run","tree":"tsx scripts/tree.ts","audit":"npm audit --production","build":"tsc && tsc-alias","start":"node dist/index.js","format":"prettier --write \"**/*.{ts,js,json,html,css}\"","mcpjam":"npx @mcpjam/cli","devdocs":"ts-node --esm scripts/devdocs.ts","rebuild":"tsx scripts/clean.ts && npm run build","release":"standard-version","depcheck":"npx depcheck","validate":"tsx scripts/validate-config.ts","audit:fix":"npm audit fix --production","inspector":"npx @modelcontextprotocol/inspector --config mcp.json --server default-server","pack:full":"rm -rf release && npm ci && npm run build && mkdir -p release/app && cp -R dist package.json package-lock.json node_modules release/app && tar -C release -czf release/ibmi-mcp-server-${npm_package_version}-full.tgz app","postbuild":"tsx scripts/make-executable.ts dist/index.js","typecheck":"tsc --noEmit","fetch-spec":"tsx scripts/fetch-openapi-spec.ts","start:http":"MCP_LOG_LEVEL=debug MCP_TRANSPORT_TYPE=http node dist/index.js","test:watch":"vitest","start:agent":"MCP_LOG_LEVEL=debug node dist/agent/cli/boot.js","start:stdio":"MCP_LOG_LEVEL=debug MCP_TRANSPORT_TYPE=stdio node dist/index.js","deploy:debug":"./scripts/debug-deploy.sh","release:undo":"./scripts/release-undo.sh","docs:generate":"typedoc --tsconfig ./tsconfig.typedoc.json","list-toolsets":"node dist/index.js --list-toolsets --tools ../tools","release:first":"standard-version --first-release","release:major":"standard-version --release-as major","release:minor":"standard-version --release-as minor","release:patch":"standard-version --release-as patch","test:coverage":"vitest run --coverage","prepublishOnly":"npm run typecheck && npm run lint && npm run test && npm run build","release:prepare":"./scripts/release-prepare.sh","generate-schemas":"tsx scripts/generate-json-schemas.ts","release:finalize":"./scripts/release-finalize.sh","db:duckdb-example":"MCP_LOG_LEVEL=debug tsc && node dist/storage/duckdbExample.js","deploy:debug:fast":"./scripts/debug-deploy.sh --skip-validation --skip-build","deploy:debug:safe":"./scripts/debug-deploy.sh --skip-modules","release:prepare:major":"./scripts/release-prepare.sh major","release:prepare:minor":"./scripts/release-prepare.sh minor","release:prepare:patch":"./scripts/release-prepare.sh patch"},"_npmUser":{"name":"adamshedivy","email":"ajshedivyaj@gmail.com"},"repository":{"url":"git+https://github.com/IBM/ibmi-mcp-server.git","type":"git"},"_npmVersion":"10.8.2","description":"A production-grade MCP server for IBM i","directories":{},"_nodeVersion":"20.20.0","dependencies":{"zod":"^3.25.76","glob":"^10.5.0","hono":"^4.8.9","jose":"^6.0.13","pino":"^9.9.0","axios":"^1.11.0","dotenv":"^16.6.1","ignore":"^7.0.5","openai":"^5.15.0","js-yaml":"^4.1.0","ts-node":"^1.7.1","tiktoken":"^1.0.22","node-cron":"^4.2.1","pino-roll":"^1.1.0","validator":"^13.15.23","chrono-node":"^2.8.0","pino-pretty":"^13.0.0","partial-json":"^0.1.7","sanitize-html":"^2.17.0","@ibm/mapepire-js":"^0.6.0","reflect-metadata":"^0.2.2","@hono/node-server":"^1.17.1","@opentelemetry/api":"^1.9.0","zod-to-json-schema":"^3.24.6","@opentelemetry/sdk-node":"^0.203.0","@opentelemetry/resources":"^2.0.1","@modelcontextprotocol/sdk":"^1.25.2","@opentelemetry/sdk-metrics":"^2.0.1","@opentelemetry/sdk-trace-node":"^2.0.1","@opentelemetry/semantic-conventions":"^1.36.0","@opentelemetry/exporter-trace-otlp-http":"^0.203.0","@opentelemetry/auto-instrumentations-node":"^0.62.1","@opentelemetry/exporter-metrics-otlp-http":"^0.203.0"},"_hasShrinkwrap":false,"devDependencies":{"msw":"^2.10.5","tsx":"^4.20.4","vite":"^6.3.5","chalk":"^5.6.0","execa":"^9.6.0","eslint":"^9.34.0","vitest":"^3.2.4","globals":"^16.3.0","typedoc":"^0.28.10","depcheck":"^1.4.7","prettier":"^3.6.2","tsc-alias":"^1.8.16","@eslint/js":"^9.34.0","typescript":"^5.8.3","@types/node":"^24.3.0","@types/js-yaml":"^4.0.9","@faker-js/faker":"^9.9.0","@types/node-cron":"^3.0.11","@types/validator":"13.15.2","standard-version":"^9.5.0","@anatine/zod-mock":"^3.14.0","typescript-eslint":"^8.40.0","@vitest/coverage-v8":"^3.2.4","vite-tsconfig-paths":"^5.1.4","@types/sanitize-html":"^2.16.0"},"_npmOperationalInternal":{"tmp":"tmp/ibmi-mcp-server_0.3.0_1769464685607_0.6845509271206602","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"@ibm/ibmi-mcp-server","version":"0.3.1","keywords":["typescript","template","mcp","model-context-protocol","agent","autonomous-agent","agent-framework","architecture","error-handling","llm","ai-integration","mcp-server","mcp-client","hono","stdio","http","authentication","oauth","jwt","openrouter","duckdb","zod","opentelemetry","observability","tracing","metrics"],"author":{"url":"https://github.com/ajshedivy/ibmi-mcp-server#readme","name":"ajshedivy","email":"adam.shedivy@ibm.com"},"license":"Apache-2.0","_id":"@ibm/ibmi-mcp-server@0.3.1","maintainers":[{"name":"carbon-design-system","email":"carbon@us.ibm.com"},{"name":"alisonjoseph","email":"alisonejoseph@gmail.com"},{"name":"bjost","email":"bjost@de.ibm.com"},{"name":"sanjula.ganepola.ibm","email":"sanjula.ganepola@ibm.com"},{"name":"jonnyzak32","email":"Jonathan.Zak@ibm.com"},{"name":"phaumer","email":"phaumer@us.ibm.com"},{"name":"tay1orjones","email":"taylor.jones826@gmail.com"},{"name":"mmcelaney","email":"mmcelaney@us.ibm.com"},{"name":"aifound","email":"aifound@us.ibm.com"},{"name":"michael.froend","email":"michael.froend2@ibm.com"},{"name":"odfbackuprestore","email":"odfbackuprestore@ibm.com"},{"name":"calanais","email":"matthew@mh-white.com"},{"name":"ibm-bamoeci","email":"bamoe.ci@ibm.com"},{"name":"joesepi","email":"sepi@joesepi.com"},{"name":"edmund.reinhardt","email":"edmund.reinhardt@ca.ibm.com"},{"name":"jjasghar","email":"jjasghar@gmail.com"},{"name":"yihongwang","email":"yh.wang@ibm.com"},{"name":"cmarcink","email":"cmarcink@us.ibm.com"},{"name":"adamshedivy","email":"ajshedivyaj@gmail.com"},{"name":"gcattan","email":"gregoire.cattan@ibm.com"},{"name":"idan_ibm","email":"idan.zohar@ibm.com"}],"homepage":"https://github.com/IBM/ibmi-mcp-server.git#readme","bugs":{"url":"https://github.com/IBM/ibmi-mcp-server.git/issues"},"bin":{"ibmi-mcp-server":"dist/index.js"},"dist":{"shasum":"656d8a1633b85521b2fcaf4dcc3acfa40cbc49e6","tarball":"https://registry.npmjs.org/@ibm/ibmi-mcp-server/-/ibmi-mcp-server-0.3.1.tgz","fileCount":434,"integrity":"sha512-nW2oA8JwJUa2O3jVhiOA6/tnVzgAf1RF65WF9GVlNsrPgcJWRYNTTJseqHsEjN7zgZ0oBi6sHC9rFA9bccdecg==","signatures":[{"sig":"MEYCIQDly+ciMd0tolDJdVyion6bJCcYpG7RjSsbx4NkkyRS5gIhAKsfcZObzeKEPFQP1XFC1MMhrisBboOTtRtSlOHXgtio","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@ibm%2fibmi-mcp-server@0.3.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1502807},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"4b3fbc497086df8950d64f3eebcc262f56eec561","scripts":{"lint":"tsx scripts/lint.ts","test":"vitest run","tree":"tsx scripts/tree.ts","audit":"npm audit --production","build":"tsc && tsc-alias","start":"node dist/index.js","format":"prettier --write \"**/*.{ts,js,json,html,css}\"","mcpjam":"npx @mcpjam/cli","devdocs":"ts-node --esm scripts/devdocs.ts","rebuild":"tsx scripts/clean.ts && npm run build","release":"standard-version","depcheck":"npx depcheck","validate":"tsx scripts/validate-config.ts","audit:fix":"npm audit fix --production","inspector":"npx @modelcontextprotocol/inspector --config mcp.json --server default-server","pack:full":"rm -rf release && npm ci && npm run build && mkdir -p release/app && cp -R dist package.json package-lock.json node_modules release/app && tar -C release -czf release/ibmi-mcp-server-${npm_package_version}-full.tgz app","postbuild":"tsx scripts/make-executable.ts dist/index.js","typecheck":"tsc --noEmit","fetch-spec":"tsx scripts/fetch-openapi-spec.ts","start:http":"MCP_LOG_LEVEL=debug MCP_TRANSPORT_TYPE=http node dist/index.js","test:watch":"vitest","start:agent":"MCP_LOG_LEVEL=debug node dist/agent/cli/boot.js","start:stdio":"MCP_LOG_LEVEL=debug MCP_TRANSPORT_TYPE=stdio node dist/index.js","deploy:debug":"./scripts/debug-deploy.sh","release:undo":"./scripts/release-undo.sh","docs:generate":"typedoc --tsconfig ./tsconfig.typedoc.json","list-toolsets":"node dist/index.js --list-toolsets --tools ../tools","release:first":"standard-version --first-release","release:major":"standard-version --release-as major","release:minor":"standard-version --release-as minor","release:patch":"standard-version --release-as patch","test:coverage":"vitest run --coverage","prepublishOnly":"npm run typecheck && npm run lint && npm run test && npm run build","release:prepare":"./scripts/release-prepare.sh","generate-schemas":"tsx scripts/generate-json-schemas.ts","release:finalize":"./scripts/release-finalize.sh","db:duckdb-example":"MCP_LOG_LEVEL=debug tsc && node dist/storage/duckdbExample.js","deploy:debug:fast":"./scripts/debug-deploy.sh --skip-validation --skip-build","deploy:debug:safe":"./scripts/debug-deploy.sh --skip-modules","release:prepare:major":"./scripts/release-prepare.sh major","release:prepare:minor":"./scripts/release-prepare.sh minor","release:prepare:patch":"./scripts/release-prepare.sh patch"},"_npmUser":{"name":"adamshedivy","email":"ajshedivyaj@gmail.com"},"repository":{"url":"git+https://github.com/IBM/ibmi-mcp-server.git","type":"git"},"_npmVersion":"10.8.2","description":"A production-grade MCP server for IBM i","directories":{},"_nodeVersion":"20.20.0","dependencies":{"zod":"^3.25.76","glob":"^10.5.0","hono":"^4.8.9","jose":"^6.0.13","pino":"^9.9.0","axios":"^1.11.0","dotenv":"^16.6.1","ignore":"^7.0.5","openai":"^5.15.0","js-yaml":"^4.1.0","ts-node":"^1.7.1","tiktoken":"^1.0.22","node-cron":"^4.2.1","pino-roll":"^1.1.0","validator":"^13.15.23","chrono-node":"^2.8.0","pino-pretty":"^13.0.0","partial-json":"^0.1.7","sanitize-html":"^2.17.0","@ibm/mapepire-js":"^0.6.0","reflect-metadata":"^0.2.2","@hono/node-server":"^1.17.1","@opentelemetry/api":"^1.9.0","zod-to-json-schema":"^3.24.6","@opentelemetry/sdk-node":"^0.203.0","@opentelemetry/resources":"^2.0.1","@modelcontextprotocol/sdk":"^1.25.2","@opentelemetry/sdk-metrics":"^2.0.1","@opentelemetry/sdk-trace-node":"^2.0.1","@opentelemetry/semantic-conventions":"^1.36.0","@opentelemetry/exporter-trace-otlp-http":"^0.203.0","@opentelemetry/auto-instrumentations-node":"^0.62.1","@opentelemetry/exporter-metrics-otlp-http":"^0.203.0"},"_hasShrinkwrap":false,"devDependencies":{"msw":"^2.10.5","tsx":"^4.20.4","vite":"^6.3.5","chalk":"^5.6.0","execa":"^9.6.0","eslint":"^9.34.0","vitest":"^3.2.4","globals":"^16.3.0","typedoc":"^0.28.10","depcheck":"^1.4.7","prettier":"^3.6.2","tsc-alias":"^1.8.16","@eslint/js":"^9.34.0","typescript":"^5.8.3","@types/node":"^24.3.0","@types/js-yaml":"^4.0.9","@faker-js/faker":"^9.9.0","@types/node-cron":"^3.0.11","@types/validator":"13.15.2","standard-version":"^9.5.0","@anatine/zod-mock":"^3.14.0","typescript-eslint":"^8.40.0","@vitest/coverage-v8":"^3.2.4","vite-tsconfig-paths":"^5.1.4","@types/sanitize-html":"^2.16.0"},"_npmOperationalInternal":{"tmp":"tmp/ibmi-mcp-server_0.3.1_1771795136953_0.5178715953146025","host":"s3://npm-registry-packages-npm-production"}},"0.3.2":{"name":"@ibm/ibmi-mcp-server","version":"0.3.2","keywords":["typescript","template","mcp","model-context-protocol","agent","autonomous-agent","agent-framework","architecture","error-handling","llm","ai-integration","mcp-server","mcp-client","hono","stdio","http","authentication","oauth","jwt","openrouter","duckdb","zod","opentelemetry","observability","tracing","metrics"],"author":{"url":"https://github.com/ajshedivy/ibmi-mcp-server#readme","name":"ajshedivy","email":"adam.shedivy@ibm.com"},"license":"Apache-2.0","_id":"@ibm/ibmi-mcp-server@0.3.2","maintainers":[{"name":"carbon-design-system","email":"carbon@us.ibm.com"},{"name":"alisonjoseph","email":"alisonejoseph@gmail.com"},{"name":"bjost","email":"bjost@de.ibm.com"},{"name":"sanjula.ganepola.ibm","email":"sanjula.ganepola@ibm.com"},{"name":"jonnyzak32","email":"Jonathan.Zak@ibm.com"},{"name":"phaumer","email":"phaumer@us.ibm.com"},{"name":"tay1orjones","email":"taylor.jones826@gmail.com"},{"name":"mmcelaney","email":"mmcelaney@us.ibm.com"},{"name":"aifound","email":"aifound@us.ibm.com"},{"name":"michael.froend","email":"michael.froend2@ibm.com"},{"name":"odfbackuprestore","email":"odfbackuprestore@ibm.com"},{"name":"calanais","email":"matthew@mh-white.com"},{"name":"ibm-bamoeci","email":"bamoe.ci@ibm.com"},{"name":"joesepi","email":"sepi@joesepi.com"},{"name":"edmund.reinhardt","email":"edmund.reinhardt@ca.ibm.com"},{"name":"jjasghar","email":"jjasghar@gmail.com"},{"name":"yihongwang","email":"yh.wang@ibm.com"},{"name":"cmarcink","email":"cmarcink@us.ibm.com"},{"name":"adamshedivy","email":"ajshedivyaj@gmail.com"},{"name":"gcattan","email":"gregoire.cattan@ibm.com"},{"name":"idan_ibm","email":"idan.zohar@ibm.com"}],"homepage":"https://github.com/IBM/ibmi-mcp-server.git#readme","bugs":{"url":"https://github.com/IBM/ibmi-mcp-server.git/issues"},"bin":{"ibmi-mcp-server":"dist/index.js"},"dist":{"shasum":"c2ae92668340eeec6fb5d6915ae6acde49af490f","tarball":"https://registry.npmjs.org/@ibm/ibmi-mcp-server/-/ibmi-mcp-server-0.3.2.tgz","fileCount":434,"integrity":"sha512-PCFZZ9KK/4NrjbtgiYvDVZhNndXYSSVqNcx7xSYndV7zsAGcepCD2D/MNWzIiEpBIAYDZtcrlrf9Gz4IHjMhOQ==","signatures":[{"sig":"MEYCIQDoTi8G3aFTohjIcwQRFMWvXvstFfpfuX6RuK1t2Y3Y0gIhALFGwKcMiSutcL7FPCiCl6UWv9l06qpPhK4VTOwlsW+7","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@ibm%2fibmi-mcp-server@0.3.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1522888},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"7afffa9909e875cbd82668c975cd770cf2951c64","scripts":{"lint":"tsx scripts/lint.ts","test":"vitest run","tree":"tsx scripts/tree.ts","audit":"npm audit --production","build":"tsc && tsc-alias","start":"node dist/index.js","format":"prettier --write \"**/*.{ts,js,json,html,css}\"","mcpjam":"npx @mcpjam/cli","devdocs":"ts-node --esm scripts/devdocs.ts","rebuild":"tsx scripts/clean.ts && npm run build","release":"standard-version","depcheck":"npx depcheck","validate":"tsx scripts/validate-config.ts","audit:fix":"npm audit fix --production","inspector":"npx @modelcontextprotocol/inspector --config mcp.json --server default-server","pack:full":"rm -rf release && npm ci && npm run build && mkdir -p release/app && cp -R dist package.json package-lock.json node_modules release/app && tar -C release -czf release/ibmi-mcp-server-${npm_package_version}-full.tgz app","postbuild":"tsx scripts/make-executable.ts dist/index.js","typecheck":"tsc --noEmit","fetch-spec":"tsx scripts/fetch-openapi-spec.ts","start:http":"MCP_LOG_LEVEL=debug MCP_TRANSPORT_TYPE=http node dist/index.js","test:watch":"vitest","start:agent":"MCP_LOG_LEVEL=debug node dist/agent/cli/boot.js","start:stdio":"MCP_LOG_LEVEL=debug MCP_TRANSPORT_TYPE=stdio node dist/index.js","deploy:debug":"./scripts/debug-deploy.sh","release:undo":"./scripts/release-undo.sh","docs:generate":"typedoc --tsconfig ./tsconfig.typedoc.json","list-toolsets":"node dist/index.js --list-toolsets --tools ../tools","release:first":"standard-version --first-release","release:major":"standard-version --release-as major","release:minor":"standard-version --release-as minor","release:patch":"standard-version --release-as patch","test:coverage":"vitest run --coverage","prepublishOnly":"npm run typecheck && npm run lint && npm run test && npm run build","release:prepare":"./scripts/release-prepare.sh","generate-schemas":"tsx scripts/generate-json-schemas.ts","release:finalize":"./scripts/release-finalize.sh","db:duckdb-example":"MCP_LOG_LEVEL=debug tsc && node dist/storage/duckdbExample.js","deploy:debug:fast":"./scripts/debug-deploy.sh --skip-validation --skip-build","deploy:debug:safe":"./scripts/debug-deploy.sh --skip-modules","release:prepare:major":"./scripts/release-prepare.sh major","release:prepare:minor":"./scripts/release-prepare.sh minor","release:prepare:patch":"./scripts/release-prepare.sh patch"},"_npmUser":{"name":"adamshedivy","email":"ajshedivyaj@gmail.com"},"repository":{"url":"git+https://github.com/IBM/ibmi-mcp-server.git","type":"git"},"_npmVersion":"10.8.2","description":"A production-grade MCP server for IBM i","directories":{},"_nodeVersion":"20.20.0","dependencies":{"zod":"^3.25.76","glob":"^10.5.0","hono":"^4.8.9","jose":"^6.0.13","pino":"^9.9.0","axios":"^1.11.0","dotenv":"^16.6.1","ignore":"^7.0.5","openai":"^5.15.0","js-yaml":"^4.1.0","ts-node":"^1.7.1","tiktoken":"^1.0.22","node-cron":"^4.2.1","pino-roll":"^1.1.0","validator":"^13.15.23","chrono-node":"^2.8.0","pino-pretty":"^13.0.0","partial-json":"^0.1.7","sanitize-html":"^2.17.0","@ibm/mapepire-js":"^0.6.0","reflect-metadata":"^0.2.2","@hono/node-server":"^1.17.1","@opentelemetry/api":"^1.9.0","zod-to-json-schema":"^3.24.6","@opentelemetry/sdk-node":"^0.203.0","@opentelemetry/resources":"^2.0.1","@modelcontextprotocol/sdk":"^1.25.2","@opentelemetry/sdk-metrics":"^2.0.1","@opentelemetry/sdk-trace-node":"^2.0.1","@opentelemetry/semantic-conventions":"^1.36.0","@opentelemetry/exporter-trace-otlp-http":"^0.203.0","@opentelemetry/auto-instrumentations-node":"^0.62.1","@opentelemetry/exporter-metrics-otlp-http":"^0.203.0"},"_hasShrinkwrap":false,"devDependencies":{"msw":"^2.10.5","tsx":"^4.20.4","vite":"^6.3.5","chalk":"^5.6.0","execa":"^9.6.0","eslint":"^9.34.0","vitest":"^3.2.4","globals":"^16.3.0","typedoc":"^0.28.10","depcheck":"^1.4.7","prettier":"^3.6.2","tsc-alias":"^1.8.16","@eslint/js":"^9.34.0","typescript":"^5.8.3","@types/node":"^24.3.0","@types/js-yaml":"^4.0.9","@faker-js/faker":"^9.9.0","@types/node-cron":"^3.0.11","@types/validator":"13.15.2","standard-version":"^9.5.0","@anatine/zod-mock":"^3.14.0","typescript-eslint":"^8.40.0","@vitest/coverage-v8":"^3.2.4","vite-tsconfig-paths":"^5.1.4","@types/sanitize-html":"^2.16.0"},"_npmOperationalInternal":{"tmp":"tmp/ibmi-mcp-server_0.3.2_1772641822031_0.7940675966758795","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@ibm/ibmi-mcp-server","version":"0.4.0","keywords":["typescript","template","mcp","model-context-protocol","agent","autonomous-agent","agent-framework","architecture","error-handling","llm","ai-integration","mcp-server","mcp-client","hono","stdio","http","authentication","oauth","jwt","openrouter","duckdb","zod","opentelemetry","observability","tracing","metrics"],"author":{"url":"https://github.com/ajshedivy/ibmi-mcp-server#readme","name":"ajshedivy","email":"adam.shedivy@ibm.com"},"license":"Apache-2.0","_id":"@ibm/ibmi-mcp-server@0.4.0","maintainers":[{"name":"carbon-design-system","email":"carbon@us.ibm.com"},{"name":"alisonjoseph","email":"alisonejoseph@gmail.com"},{"name":"bjost","email":"bjost@de.ibm.com"},{"name":"sanjula.ganepola.ibm","email":"sanjula.ganepola@ibm.com"},{"name":"jonnyzak32","email":"Jonathan.Zak@ibm.com"},{"name":"phaumer","email":"phaumer@us.ibm.com"},{"name":"tay1orjones","email":"taylor.jones826@gmail.com"},{"name":"mmcelaney","email":"mmcelaney@us.ibm.com"},{"name":"aifound","email":"aifound@us.ibm.com"},{"name":"michael.froend","email":"michael.froend2@ibm.com"},{"name":"odfbackuprestore","email":"odfbackuprestore@ibm.com"},{"name":"calanais","email":"matthew@mh-white.com"},{"name":"ibm-bamoeci","email":"bamoe.ci@ibm.com"},{"name":"joesepi","email":"sepi@joesepi.com"},{"name":"edmund.reinhardt","email":"edmund.reinhardt@ca.ibm.com"},{"name":"jjasghar","email":"jjasghar@gmail.com"},{"name":"yihongwang","email":"yh.wang@ibm.com"},{"name":"cmarcink","email":"cmarcink@us.ibm.com"},{"name":"adamshedivy","email":"ajshedivyaj@gmail.com"},{"name":"gcattan","email":"gregoire.cattan@ibm.com"},{"name":"idan_ibm","email":"idan.zohar@ibm.com"}],"homepage":"https://github.com/IBM/ibmi-mcp-server.git#readme","bugs":{"url":"https://github.com/IBM/ibmi-mcp-server.git/issues"},"bin":{"ibmi":"dist/cli/index.js","ibmi-mcp-server":"dist/index.js"},"dist":{"shasum":"db96b2860227f0b60805d337ff4f9af3b15e2714","tarball":"https://registry.npmjs.org/@ibm/ibmi-mcp-server/-/ibmi-mcp-server-0.4.0.tgz","fileCount":546,"integrity":"sha512-pS3+Wvx1ZGl+cYHppC/ljFlINb/JWPfI12uDRtsIN0TEMrZIXkuXjfLh8dkdbT5K8uUvj7BJgZnFTTY64kUMMw==","signatures":[{"sig":"MEUCIC74vl7cwwFR1Zc9gbI45w820osk5ny5ENAJ1wqClJc2AiEAj5QSUFXOBDz8gD7yqh9tx1vAgwvPR9pN4pmNOtidqpU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@ibm%2fibmi-mcp-server@0.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1849862},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"f4bfe454f071a44db4af544357a6198c0d271037","scripts":{"lint":"tsx scripts/lint.ts","test":"vitest run","tree":"tsx scripts/tree.ts","audit":"npm audit --production","build":"tsc && tsc-alias","start":"node dist/index.js","format":"prettier --write \"**/*.{ts,js,json,html,css}\"","mcpjam":"npx @mcpjam/cli","devdocs":"ts-node --esm scripts/devdocs.ts","rebuild":"tsx scripts/clean.ts && npm run build","release":"standard-version","depcheck":"npx depcheck","validate":"tsx scripts/validate-config.ts","audit:fix":"npm audit fix --production","inspector":"npx @modelcontextprotocol/inspector --config mcp.json --server default-server","pack:full":"rm -rf release && npm ci && npm run build && mkdir -p release/app && cp -R dist package.json package-lock.json node_modules release/app && tar -C release -czf release/ibmi-mcp-server-${npm_package_version}-full.tgz app","postbuild":"tsx scripts/make-executable.ts dist/index.js dist/cli/index.js","typecheck":"tsc --noEmit","fetch-spec":"tsx scripts/fetch-openapi-spec.ts","start:http":"MCP_LOG_LEVEL=debug MCP_TRANSPORT_TYPE=http node dist/index.js","test:watch":"vitest","start:agent":"MCP_LOG_LEVEL=debug node dist/agent/cli/boot.js","start:stdio":"MCP_LOG_LEVEL=debug MCP_TRANSPORT_TYPE=stdio node dist/index.js","deploy:debug":"./scripts/debug-deploy.sh","release:undo":"./scripts/release-undo.sh","docs:generate":"typedoc --tsconfig ./tsconfig.typedoc.json","list-toolsets":"node dist/index.js --list-toolsets --tools ../tools","release:first":"standard-version --first-release","release:major":"standard-version --release-as major","release:minor":"standard-version --release-as minor","release:patch":"standard-version --release-as patch","test:coverage":"vitest run --coverage","prepublishOnly":"npm run typecheck && npm run lint && npm run test && npm run build","release:prepare":"./scripts/release-prepare.sh","generate-schemas":"tsx scripts/generate-json-schemas.ts","release:finalize":"./scripts/release-finalize.sh","db:duckdb-example":"MCP_LOG_LEVEL=debug tsc && node dist/storage/duckdbExample.js","deploy:debug:fast":"./scripts/debug-deploy.sh --skip-validation --skip-build","deploy:debug:safe":"./scripts/debug-deploy.sh --skip-modules","release:prepare:major":"./scripts/release-prepare.sh major","release:prepare:minor":"./scripts/release-prepare.sh minor","release:prepare:patch":"./scripts/release-prepare.sh patch"},"_npmUser":{"name":"adamshedivy","email":"ajshedivyaj@gmail.com"},"repository":{"url":"git+https://github.com/IBM/ibmi-mcp-server.git","type":"git"},"_npmVersion":"10.8.2","description":"A production-grade MCP server for IBM i","directories":{},"_nodeVersion":"20.20.0","dependencies":{"zod":"^3.25.76","glob":"^10.5.0","hono":"^4.8.9","jose":"^6.0.13","pino":"^9.9.0","axios":"^1.11.0","dotenv":"^16.6.1","ignore":"^7.0.5","openai":"^5.15.0","js-yaml":"^4.1.0","tiktoken":"^1.0.22","commander":"^14.0.3","node-cron":"^4.2.1","pino-roll":"^1.1.0","validator":"^13.15.23","chrono-node":"^2.8.0","pino-pretty":"^13.0.0","partial-json":"^0.1.7","sanitize-html":"^2.17.0","@ibm/mapepire-js":"^0.6.0","reflect-metadata":"^0.2.2","@hono/node-server":"^1.17.1","@opentelemetry/api":"^1.9.0","zod-to-json-schema":"^3.24.6","@opentelemetry/sdk-node":"^0.203.0","@opentelemetry/resources":"^2.0.1","@modelcontextprotocol/sdk":"^1.25.2","@opentelemetry/sdk-metrics":"^2.0.1","@opentelemetry/sdk-trace-node":"^2.0.1","@opentelemetry/semantic-conventions":"^1.36.0","@opentelemetry/exporter-trace-otlp-http":"^0.203.0","@opentelemetry/auto-instrumentations-node":"^0.62.1","@opentelemetry/exporter-metrics-otlp-http":"^0.203.0"},"_hasShrinkwrap":false,"devDependencies":{"msw":"^2.10.5","tsx":"^4.20.4","vite":"^6.3.5","chalk":"^5.6.0","execa":"^9.6.0","eslint":"^9.34.0","vitest":"^3.2.4","globals":"^16.3.0","ts-node":"^1.7.1","typedoc":"^0.28.10","depcheck":"^1.4.7","prettier":"^3.6.2","tsc-alias":"^1.8.16","@eslint/js":"^9.34.0","typescript":"^5.8.3","@types/node":"^24.3.0","@types/js-yaml":"^4.0.9","@faker-js/faker":"^9.9.0","@types/node-cron":"^3.0.11","@types/validator":"13.15.2","standard-version":"^9.5.0","@anatine/zod-mock":"^3.14.0","typescript-eslint":"^8.40.0","@vitest/coverage-v8":"^3.2.4","vite-tsconfig-paths":"^5.1.4","@types/sanitize-html":"^2.16.0"},"_npmOperationalInternal":{"tmp":"tmp/ibmi-mcp-server_0.4.0_1772834519167_0.48128774827045806","host":"s3://npm-registry-packages-npm-production"}},"0.4.1":{"name":"@ibm/ibmi-mcp-server","version":"0.4.1","keywords":["typescript","template","mcp","model-context-protocol","agent","autonomous-agent","agent-framework","architecture","error-handling","llm","ai-integration","mcp-server","mcp-client","hono","stdio","http","authentication","oauth","jwt","openrouter","duckdb","zod","opentelemetry","observability","tracing","metrics"],"author":{"url":"https://github.com/ajshedivy/ibmi-mcp-server#readme","name":"ajshedivy","email":"adam.shedivy@ibm.com"},"license":"Apache-2.0","_id":"@ibm/ibmi-mcp-server@0.4.1","maintainers":[{"name":"carbon-design-system","email":"carbon@us.ibm.com"},{"name":"alisonjoseph","email":"alisonejoseph@gmail.com"},{"name":"bjost","email":"bjost@de.ibm.com"},{"name":"sanjula.ganepola.ibm","email":"sanjula.ganepola@ibm.com"},{"name":"jonnyzak32","email":"Jonathan.Zak@ibm.com"},{"name":"phaumer","email":"phaumer@us.ibm.com"},{"name":"tay1orjones","email":"taylor.jones826@gmail.com"},{"name":"mmcelaney","email":"mmcelaney@us.ibm.com"},{"name":"aifound","email":"aifound@us.ibm.com"},{"name":"michael.froend","email":"michael.froend2@ibm.com"},{"name":"odfbackuprestore","email":"odfbackuprestore@ibm.com"},{"name":"calanais","email":"matthew@mh-white.com"},{"name":"ibm-bamoeci","email":"bamoe.ci@ibm.com"},{"name":"joesepi","email":"sepi@joesepi.com"},{"name":"edmund.reinhardt","email":"edmund.reinhardt@ca.ibm.com"},{"name":"jjasghar","email":"jjasghar@gmail.com"},{"name":"yihongwang","email":"yh.wang@ibm.com"},{"name":"cmarcink","email":"cmarcink@us.ibm.com"},{"name":"adamshedivy","email":"ajshedivyaj@gmail.com"},{"name":"gcattan","email":"gregoire.cattan@ibm.com"},{"name":"idan_ibm","email":"idan.zohar@ibm.com"}],"homepage":"https://github.com/IBM/ibmi-mcp-server.git#readme","bugs":{"url":"https://github.com/IBM/ibmi-mcp-server.git/issues"},"bin":{"ibmi":"dist/cli/index.js","ibmi-mcp-server":"dist/index.js"},"dist":{"shasum":"e5a0557b3b8b70598b0cf0d7396294c1441e731d","tarball":"https://registry.npmjs.org/@ibm/ibmi-mcp-server/-/ibmi-mcp-server-0.4.1.tgz","fileCount":546,"integrity":"sha512-fUc6uq+I2C4UPqJDHT+8kXOirGgqvJoSXqCo9QDg7hg9cRO8DkvJdrPipBDuzJS7RwTalHXO/tN8n7puddqhqg==","signatures":[{"sig":"MEQCIDMuVeAB2AljW4o3QFX02rNjszhNWkt46T/HUq+Tx7j4AiA2qGV46w60W6XGXcSw1L4X1Wy4QQEoSKcOQA42zMyYwA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@ibm%2fibmi-mcp-server@0.4.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1853186},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"8a656361dee2c6edf41f10af83c11daf45dfa6db","scripts":{"lint":"tsx scripts/lint.ts","test":"vitest run","tree":"tsx scripts/tree.ts","audit":"npm audit --production","build":"tsc && tsc-alias","start":"node dist/index.js","format":"prettier --write \"**/*.{ts,js,json,html,css}\"","mcpjam":"npx @mcpjam/cli","devdocs":"ts-node --esm scripts/devdocs.ts","rebuild":"tsx scripts/clean.ts && npm run build","release":"standard-version","depcheck":"npx depcheck","validate":"tsx scripts/validate-config.ts","audit:fix":"npm audit fix --production","inspector":"npx @modelcontextprotocol/inspector --config mcp.json --server default-server","pack:full":"rm -rf release && npm ci && npm run build && mkdir -p release/app && cp -R dist package.json package-lock.json node_modules release/app && tar -C release -czf release/ibmi-mcp-server-${npm_package_version}-full.tgz app","postbuild":"tsx scripts/make-executable.ts dist/index.js dist/cli/index.js","typecheck":"tsc --noEmit","fetch-spec":"tsx scripts/fetch-openapi-spec.ts","start:http":"MCP_LOG_LEVEL=debug MCP_TRANSPORT_TYPE=http node dist/index.js","test:watch":"vitest","start:agent":"MCP_LOG_LEVEL=debug node dist/agent/cli/boot.js","start:stdio":"MCP_LOG_LEVEL=debug MCP_TRANSPORT_TYPE=stdio node dist/index.js","deploy:debug":"./scripts/debug-deploy.sh","release:undo":"./scripts/release-undo.sh","docs:generate":"typedoc --tsconfig ./tsconfig.typedoc.json","list-toolsets":"node dist/index.js --list-toolsets --tools ../tools","release:first":"standard-version --first-release","release:major":"standard-version --release-as major","release:minor":"standard-version --release-as minor","release:patch":"standard-version --release-as patch","test:coverage":"vitest run --coverage","prepublishOnly":"npm run typecheck && npm run lint && npm run test && npm run build","release:prepare":"./scripts/release-prepare.sh","generate-schemas":"tsx scripts/generate-json-schemas.ts","release:finalize":"./scripts/release-finalize.sh","db:duckdb-example":"MCP_LOG_LEVEL=debug tsc && node dist/storage/duckdbExample.js","deploy:debug:fast":"./scripts/debug-deploy.sh --skip-validation --skip-build","deploy:debug:safe":"./scripts/debug-deploy.sh --skip-modules","release:prepare:major":"./scripts/release-prepare.sh major","release:prepare:minor":"./scripts/release-prepare.sh minor","release:prepare:patch":"./scripts/release-prepare.sh patch"},"_npmUser":{"name":"adamshedivy","email":"ajshedivyaj@gmail.com"},"repository":{"url":"git+https://github.com/IBM/ibmi-mcp-server.git","type":"git"},"_npmVersion":"10.8.2","description":"A production-grade MCP server for IBM i","directories":{},"_nodeVersion":"20.20.0","dependencies":{"zod":"^3.25.76","glob":"^10.5.0","hono":"^4.8.9","jose":"^6.0.13","pino":"^9.9.0","axios":"^1.11.0","dotenv":"^16.6.1","ignore":"^7.0.5","openai":"^5.15.0","js-yaml":"^4.1.0","tiktoken":"^1.0.22","commander":"^14.0.3","node-cron":"^4.2.1","pino-roll":"^1.1.0","validator":"^13.15.23","chrono-node":"^2.8.0","pino-pretty":"^13.0.0","partial-json":"^0.1.7","sanitize-html":"^2.17.0","@ibm/mapepire-js":"^0.6.0","reflect-metadata":"^0.2.2","@hono/node-server":"^1.17.1","@opentelemetry/api":"^1.9.0","zod-to-json-schema":"^3.24.6","@opentelemetry/sdk-node":"^0.203.0","@opentelemetry/resources":"^2.0.1","@modelcontextprotocol/sdk":"^1.25.2","@opentelemetry/sdk-metrics":"^2.0.1","@opentelemetry/sdk-trace-node":"^2.0.1","@opentelemetry/semantic-conventions":"^1.36.0","@opentelemetry/exporter-trace-otlp-http":"^0.203.0","@opentelemetry/auto-instrumentations-node":"^0.62.1","@opentelemetry/exporter-metrics-otlp-http":"^0.203.0"},"_hasShrinkwrap":false,"devDependencies":{"msw":"^2.10.5","tsx":"^4.20.4","vite":"^6.3.5","chalk":"^5.6.0","execa":"^9.6.0","eslint":"^9.34.0","vitest":"^3.2.4","globals":"^16.3.0","ts-node":"^1.7.1","typedoc":"^0.28.10","depcheck":"^1.4.7","prettier":"^3.6.2","tsc-alias":"^1.8.16","@eslint/js":"^9.34.0","typescript":"^5.8.3","@types/node":"^24.3.0","@types/js-yaml":"^4.0.9","@faker-js/faker":"^9.9.0","@types/node-cron":"^3.0.11","@types/validator":"13.15.2","standard-version":"^9.5.0","@anatine/zod-mock":"^3.14.0","typescript-eslint":"^8.40.0","@vitest/coverage-v8":"^3.2.4","vite-tsconfig-paths":"^5.1.4","@types/sanitize-html":"^2.16.0"},"_npmOperationalInternal":{"tmp":"tmp/ibmi-mcp-server_0.4.1_1772836187342_0.9588636488472413","host":"s3://npm-registry-packages-npm-production"}},"0.4.2":{"name":"@ibm/ibmi-mcp-server","version":"0.4.2","keywords":["typescript","template","mcp","model-context-protocol","agent","autonomous-agent","agent-framework","architecture","error-handling","llm","ai-integration","mcp-server","mcp-client","hono","stdio","http","authentication","oauth","jwt","openrouter","duckdb","zod","opentelemetry","observability","tracing","metrics"],"author":{"url":"https://github.com/ajshedivy/ibmi-mcp-server#readme","name":"ajshedivy","email":"adam.shedivy@ibm.com"},"license":"Apache-2.0","_id":"@ibm/ibmi-mcp-server@0.4.2","maintainers":[{"name":"carbon-design-system","email":"carbon@us.ibm.com"},{"name":"alisonjoseph","email":"alisonejoseph@gmail.com"},{"name":"bjost","email":"bjost@de.ibm.com"},{"name":"sanjula.ganepola.ibm","email":"sanjula.ganepola@ibm.com"},{"name":"jonnyzak32","email":"Jonathan.Zak@ibm.com"},{"name":"phaumer","email":"phaumer@us.ibm.com"},{"name":"tay1orjones","email":"taylor.jones826@gmail.com"},{"name":"mmcelaney","email":"mmcelaney@us.ibm.com"},{"name":"aifound","email":"aifound@us.ibm.com"},{"name":"michael.froend","email":"michael.froend2@ibm.com"},{"name":"odfbackuprestore","email":"odfbackuprestore@ibm.com"},{"name":"calanais","email":"matthew@mh-white.com"},{"name":"ibm-bamoeci","email":"bamoe.ci@ibm.com"},{"name":"joesepi","email":"sepi@joesepi.com"},{"name":"edmund.reinhardt","email":"edmund.reinhardt@ca.ibm.com"},{"name":"jjasghar","email":"jjasghar@gmail.com"},{"name":"yihongwang","email":"yh.wang@ibm.com"},{"name":"cmarcink","email":"cmarcink@us.ibm.com"},{"name":"adamshedivy","email":"ajshedivyaj@gmail.com"},{"name":"gcattan","email":"gregoire.cattan@ibm.com"},{"name":"idan_ibm","email":"idan.zohar@ibm.com"}],"homepage":"https://github.com/IBM/ibmi-mcp-server.git#readme","bugs":{"url":"https://github.com/IBM/ibmi-mcp-server.git/issues"},"bin":{"ibmi":"dist/cli/index.js","ibmi-mcp-server":"dist/index.js"},"dist":{"shasum":"7de2e8db1f4992a45670b6050da9280ffb82459b","tarball":"https://registry.npmjs.org/@ibm/ibmi-mcp-server/-/ibmi-mcp-server-0.4.2.tgz","fileCount":546,"integrity":"sha512-+uiGw6mhRv4JAk7q/Mctg7Ot8aUngiSI02MjxcmXmbwRcB6nDGHLlPPO/Cjd7mgCeRNTV28EsjC9UVHacWfc4g==","signatures":[{"sig":"MEYCIQCCHsf0e0BPLKXf+MuHUybUqISkdXoekfBuFrzXYRidCQIhAJIk2mNihAgTVzM3uAOywgkszN1tGQtl5lOCjUNE7GaT","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@ibm%2fibmi-mcp-server@0.4.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1857290},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"b367f523178471c22dfce4c81b589c216359c0a4","scripts":{"lint":"tsx scripts/lint.ts","test":"vitest run","tree":"tsx scripts/tree.ts","audit":"npm audit --production","build":"tsc && tsc-alias","start":"node dist/index.js","format":"prettier --write \"**/*.{ts,js,json,html,css}\"","mcpjam":"npx @mcpjam/cli","devdocs":"ts-node --esm scripts/devdocs.ts","rebuild":"tsx scripts/clean.ts && npm run build","release":"standard-version","depcheck":"npx depcheck","validate":"tsx scripts/validate-config.ts","audit:fix":"npm audit fix --production","inspector":"npx @modelcontextprotocol/inspector --config mcp.json --server default-server","pack:full":"rm -rf release && npm ci && npm run build && mkdir -p release/app && cp -R dist package.json package-lock.json node_modules release/app && tar -C release -czf release/ibmi-mcp-server-${npm_package_version}-full.tgz app","postbuild":"tsx scripts/make-executable.ts dist/index.js dist/cli/index.js","typecheck":"tsc --noEmit","fetch-spec":"tsx scripts/fetch-openapi-spec.ts","start:http":"MCP_LOG_LEVEL=debug MCP_TRANSPORT_TYPE=http node dist/index.js","test:watch":"vitest","start:agent":"MCP_LOG_LEVEL=debug node dist/agent/cli/boot.js","start:stdio":"MCP_LOG_LEVEL=debug MCP_TRANSPORT_TYPE=stdio node dist/index.js","deploy:debug":"./scripts/debug-deploy.sh","release:undo":"./scripts/release-undo.sh","docs:generate":"typedoc --tsconfig ./tsconfig.typedoc.json","list-toolsets":"node dist/index.js --list-toolsets --tools ../tools","release:first":"standard-version --first-release","release:major":"standard-version --release-as major","release:minor":"standard-version --release-as minor","release:patch":"standard-version --release-as patch","test:coverage":"vitest run --coverage","prepublishOnly":"npm run typecheck && npm run lint && npm run test && npm run build","release:prepare":"./scripts/release-prepare.sh","generate-schemas":"tsx scripts/generate-json-schemas.ts","release:finalize":"./scripts/release-finalize.sh","db:duckdb-example":"MCP_LOG_LEVEL=debug tsc && node dist/storage/duckdbExample.js","deploy:debug:fast":"./scripts/debug-deploy.sh --skip-validation --skip-build","deploy:debug:safe":"./scripts/debug-deploy.sh --skip-modules","release:prepare:major":"./scripts/release-prepare.sh major","release:prepare:minor":"./scripts/release-prepare.sh minor","release:prepare:patch":"./scripts/release-prepare.sh patch"},"_npmUser":{"name":"adamshedivy","email":"ajshedivyaj@gmail.com"},"repository":{"url":"git+https://github.com/IBM/ibmi-mcp-server.git","type":"git"},"_npmVersion":"10.8.2","description":"A production-grade MCP server for IBM i","directories":{},"_nodeVersion":"20.20.0","dependencies":{"zod":"^3.25.76","glob":"^10.5.0","hono":"^4.8.9","jose":"^6.0.13","pino":"^9.9.0","axios":"^1.11.0","dotenv":"^16.6.1","ignore":"^7.0.5","openai":"^5.15.0","js-yaml":"^4.1.0","tiktoken":"^1.0.22","commander":"^14.0.3","node-cron":"^4.2.1","pino-roll":"^1.1.0","validator":"^13.15.23","chrono-node":"^2.8.0","pino-pretty":"^13.0.0","partial-json":"^0.1.7","sanitize-html":"^2.17.0","@ibm/mapepire-js":"^0.6.0","reflect-metadata":"^0.2.2","@hono/node-server":"^1.17.1","@opentelemetry/api":"^1.9.0","zod-to-json-schema":"^3.24.6","@opentelemetry/sdk-node":"^0.203.0","@opentelemetry/resources":"^2.0.1","@modelcontextprotocol/sdk":"^1.25.2","@opentelemetry/sdk-metrics":"^2.0.1","@opentelemetry/sdk-trace-node":"^2.0.1","@opentelemetry/semantic-conventions":"^1.36.0","@opentelemetry/exporter-trace-otlp-http":"^0.203.0","@opentelemetry/auto-instrumentations-node":"^0.62.1","@opentelemetry/exporter-metrics-otlp-http":"^0.203.0"},"_hasShrinkwrap":false,"devDependencies":{"msw":"^2.10.5","tsx":"^4.20.4","vite":"^6.3.5","chalk":"^5.6.0","execa":"^9.6.0","eslint":"^9.34.0","vitest":"^3.2.4","globals":"^16.3.0","ts-node":"^1.7.1","typedoc":"^0.28.10","depcheck":"^1.4.7","prettier":"^3.6.2","tsc-alias":"^1.8.16","@eslint/js":"^9.34.0","typescript":"^5.8.3","@types/node":"^24.3.0","@types/js-yaml":"^4.0.9","@faker-js/faker":"^9.9.0","@types/node-cron":"^3.0.11","@types/validator":"13.15.2","standard-version":"^9.5.0","@anatine/zod-mock":"^3.14.0","typescript-eslint":"^8.40.0","@vitest/coverage-v8":"^3.2.4","vite-tsconfig-paths":"^5.1.4","@types/sanitize-html":"^2.16.0"},"_npmOperationalInternal":{"tmp":"tmp/ibmi-mcp-server_0.4.2_1773068632456_0.3731222716850078","host":"s3://npm-registry-packages-npm-production"}},"0.4.3":{"name":"@ibm/ibmi-mcp-server","version":"0.4.3","keywords":["typescript","template","mcp","model-context-protocol","agent","autonomous-agent","agent-framework","architecture","error-handling","llm","ai-integration","mcp-server","mcp-client","hono","stdio","http","authentication","oauth","jwt","openrouter","duckdb","zod","opentelemetry","observability","tracing","metrics"],"author":{"url":"https://github.com/ajshedivy/ibmi-mcp-server#readme","name":"ajshedivy","email":"adam.shedivy@ibm.com"},"license":"Apache-2.0","_id":"@ibm/ibmi-mcp-server@0.4.3","maintainers":[{"name":"carbon-design-system","email":"carbon@us.ibm.com"},{"name":"alisonjoseph","email":"alisonejoseph@gmail.com"},{"name":"bjost","email":"bjost@de.ibm.com"},{"name":"sanjula.ganepola.ibm","email":"sanjula.ganepola@ibm.com"},{"name":"jonnyzak32","email":"Jonathan.Zak@ibm.com"},{"name":"phaumer","email":"phaumer@us.ibm.com"},{"name":"tay1orjones","email":"taylor.jones826@gmail.com"},{"name":"mmcelaney","email":"mmcelaney@us.ibm.com"},{"name":"aifound","email":"aifound@us.ibm.com"},{"name":"michael.froend","email":"michael.froend2@ibm.com"},{"name":"odfbackuprestore","email":"odfbackuprestore@ibm.com"},{"name":"calanais","email":"matthew@mh-white.com"},{"name":"ibm-bamoeci","email":"bamoe.ci@ibm.com"},{"name":"joesepi","email":"sepi@joesepi.com"},{"name":"edmund.reinhardt","email":"edmund.reinhardt@ca.ibm.com"},{"name":"jjasghar","email":"jjasghar@gmail.com"},{"name":"yihongwang","email":"yh.wang@ibm.com"},{"name":"cmarcink","email":"cmarcink@us.ibm.com"},{"name":"adamshedivy","email":"ajshedivyaj@gmail.com"},{"name":"gcattan","email":"gregoire.cattan@ibm.com"},{"name":"idan_ibm","email":"idan.zohar@ibm.com"}],"homepage":"https://github.com/IBM/ibmi-mcp-server.git#readme","bugs":{"url":"https://github.com/IBM/ibmi-mcp-server.git/issues"},"bin":{"ibmi":"dist/cli/index.js","ibmi-mcp-server":"dist/index.js"},"dist":{"shasum":"7d9126638fd8bfa62b0a21188f21cc268825c918","tarball":"https://registry.npmjs.org/@ibm/ibmi-mcp-server/-/ibmi-mcp-server-0.4.3.tgz","fileCount":550,"integrity":"sha512-UWj5FlqgLtWL5K/wkShRRAk3uivFXDqDXMM4TxgXIdqoAZRdDpcgLIQMwmgL+EARFoWL87pgmXfxe21RKmG8kg==","signatures":[{"sig":"MEYCIQDkZ5HRrDkNLlQ1iC4zFw3mt/1MRM1ON1O7TvB/4jU7dwIhAOUsn98xUq3mvTdkAZCzqfCy/FiZmhPf/+sbVljwpexy","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@ibm%2fibmi-mcp-server@0.4.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1869991},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"db25371bcfc3f98c0a63eaa897b6962529cf3188","scripts":{"lint":"tsx scripts/lint.ts","test":"vitest run","tree":"tsx scripts/tree.ts","audit":"npm audit --production","build":"tsc && tsc-alias","start":"node dist/index.js","format":"prettier --write \"**/*.{ts,js,json,html,css}\"","mcpjam":"npx @mcpjam/cli","devdocs":"ts-node --esm scripts/devdocs.ts","rebuild":"tsx scripts/clean.ts && npm run build","release":"standard-version","depcheck":"npx depcheck","validate":"tsx scripts/validate-config.ts","audit:fix":"npm audit fix --production","inspector":"npx @modelcontextprotocol/inspector --config mcp.json --server default-server","pack:full":"rm -rf release && npm ci && npm run build && mkdir -p release/app && cp -R dist package.json package-lock.json node_modules release/app && tar -C release -czf release/ibmi-mcp-server-${npm_package_version}-full.tgz app","postbuild":"tsx scripts/make-executable.ts dist/index.js dist/cli/index.js","typecheck":"tsc --noEmit","fetch-spec":"tsx scripts/fetch-openapi-spec.ts","start:http":"MCP_LOG_LEVEL=debug MCP_TRANSPORT_TYPE=http node dist/index.js","test:watch":"vitest","start:agent":"MCP_LOG_LEVEL=debug node dist/agent/cli/boot.js","start:stdio":"MCP_LOG_LEVEL=debug MCP_TRANSPORT_TYPE=stdio node dist/index.js","deploy:debug":"./scripts/debug-deploy.sh","release:undo":"./scripts/release-undo.sh","docs:generate":"typedoc --tsconfig ./tsconfig.typedoc.json","list-toolsets":"node dist/index.js --list-toolsets --tools ../tools","release:first":"standard-version --first-release","release:major":"standard-version --release-as major","release:minor":"standard-version --release-as minor","release:patch":"standard-version --release-as patch","test:coverage":"vitest run --coverage","prepublishOnly":"npm run typecheck && npm run lint && npm run test && npm run build","release:prepare":"./scripts/release-prepare.sh","generate-schemas":"tsx scripts/generate-json-schemas.ts","release:finalize":"./scripts/release-finalize.sh","db:duckdb-example":"MCP_LOG_LEVEL=debug tsc && node dist/storage/duckdbExample.js","deploy:debug:fast":"./scripts/debug-deploy.sh --skip-validation --skip-build","deploy:debug:safe":"./scripts/debug-deploy.sh --skip-modules","release:prepare:major":"./scripts/release-prepare.sh major","release:prepare:minor":"./scripts/release-prepare.sh minor","release:prepare:patch":"./scripts/release-prepare.sh patch"},"_npmUser":{"name":"adamshedivy","email":"ajshedivyaj@gmail.com"},"repository":{"url":"git+https://github.com/IBM/ibmi-mcp-server.git","type":"git"},"_npmVersion":"10.8.2","description":"A production-grade MCP server for IBM i","directories":{},"_nodeVersion":"20.20.1","dependencies":{"zod":"^3.25.76","glob":"^10.5.0","hono":"^4.8.9","jose":"^6.0.13","pino":"^9.9.0","axios":"^1.11.0","dotenv":"^16.6.1","ignore":"^7.0.5","openai":"^5.15.0","js-yaml":"^4.1.0","tiktoken":"^1.0.22","commander":"^14.0.3","node-cron":"^4.2.1","pino-roll":"^1.1.0","validator":"^13.15.23","chrono-node":"^2.8.0","pino-pretty":"^13.0.0","partial-json":"^0.1.7","sanitize-html":"^2.17.0","@ibm/mapepire-js":"^0.6.0","reflect-metadata":"^0.2.2","@hono/node-server":"^1.17.1","@opentelemetry/api":"^1.9.0","zod-to-json-schema":"^3.24.6","@opentelemetry/sdk-node":"^0.203.0","@opentelemetry/resources":"^2.0.1","@modelcontextprotocol/sdk":"^1.25.2","@opentelemetry/sdk-metrics":"^2.0.1","@opentelemetry/sdk-trace-node":"^2.0.1","@opentelemetry/semantic-conventions":"^1.36.0","@opentelemetry/exporter-trace-otlp-http":"^0.203.0","@opentelemetry/auto-instrumentations-node":"^0.62.1","@opentelemetry/exporter-metrics-otlp-http":"^0.203.0"},"_hasShrinkwrap":false,"devDependencies":{"msw":"^2.10.5","tsx":"^4.20.4","vite":"^6.3.5","chalk":"^5.6.0","execa":"^9.6.0","eslint":"^9.34.0","vitest":"^3.2.4","globals":"^16.3.0","ts-node":"^1.7.1","typedoc":"^0.28.10","depcheck":"^1.4.7","prettier":"^3.6.2","tsc-alias":"^1.8.16","@eslint/js":"^9.34.0","typescript":"^5.8.3","@types/node":"^24.3.0","@types/js-yaml":"^4.0.9","@faker-js/faker":"^9.9.0","@types/node-cron":"^3.0.11","@types/validator":"13.15.2","standard-version":"^9.5.0","@anatine/zod-mock":"^3.14.0","typescript-eslint":"^8.40.0","@vitest/coverage-v8":"^3.2.4","vite-tsconfig-paths":"^5.1.4","@types/sanitize-html":"^2.16.0"},"_npmOperationalInternal":{"tmp":"tmp/ibmi-mcp-server_0.4.3_1773592764137_0.585515675199785","host":"s3://npm-registry-packages-npm-production"}},"0.4.4":{"name":"@ibm/ibmi-mcp-server","version":"0.4.4","keywords":["typescript","template","mcp","model-context-protocol","agent","autonomous-agent","agent-framework","architecture","error-handling","llm","ai-integration","mcp-server","mcp-client","hono","stdio","http","authentication","oauth","jwt","openrouter","duckdb","zod","opentelemetry","observability","tracing","metrics"],"author":{"url":"https://github.com/ajshedivy/ibmi-mcp-server#readme","name":"ajshedivy","email":"adam.shedivy@ibm.com"},"license":"Apache-2.0","_id":"@ibm/ibmi-mcp-server@0.4.4","maintainers":[{"name":"carbon-design-system","email":"carbon@us.ibm.com"},{"name":"alisonjoseph","email":"alisonejoseph@gmail.com"},{"name":"bjost","email":"bjost@de.ibm.com"},{"name":"sanjula.ganepola.ibm","email":"sanjula.ganepola@ibm.com"},{"name":"jonnyzak32","email":"Jonathan.Zak@ibm.com"},{"name":"phaumer","email":"phaumer@us.ibm.com"},{"name":"tay1orjones","email":"taylor.jones826@gmail.com"},{"name":"mmcelaney","email":"mmcelaney@us.ibm.com"},{"name":"aifound","email":"aifound@us.ibm.com"},{"name":"michael.froend","email":"michael.froend2@ibm.com"},{"name":"odfbackuprestore","email":"odfbackuprestore@ibm.com"},{"name":"calanais","email":"matthew@mh-white.com"},{"name":"ibm-bamoeci","email":"bamoe.ci@ibm.com"},{"name":"joesepi","email":"sepi@joesepi.com"},{"name":"edmund.reinhardt","email":"edmund.reinhardt@ca.ibm.com"},{"name":"jjasghar","email":"jjasghar@gmail.com"},{"name":"yihongwang","email":"yh.wang@ibm.com"},{"name":"cmarcink","email":"cmarcink@us.ibm.com"},{"name":"adamshedivy","email":"ajshedivyaj@gmail.com"},{"name":"gcattan","email":"gregoire.cattan@ibm.com"},{"name":"idan_ibm","email":"idan.zohar@ibm.com"}],"homepage":"https://github.com/IBM/ibmi-mcp-server.git#readme","bugs":{"url":"https://github.com/IBM/ibmi-mcp-server.git/issues"},"bin":{"ibmi":"dist/cli/index.js","ibmi-mcp-server":"dist/index.js"},"dist":{"shasum":"47f7e9d85c42084448d75d5bf482c63c67d3e78c","tarball":"https://registry.npmjs.org/@ibm/ibmi-mcp-server/-/ibmi-mcp-server-0.4.4.tgz","fileCount":550,"integrity":"sha512-6g+uMjf6dDXB2Cs6YscP9wy3e9jUspVIUPRxtUrTaqdNnyYdCwaT2ftRKRg6PFB6OqaZqYS0Ibcu3fitI63XbQ==","signatures":[{"sig":"MEQCICKSuPDiAFmo7uHuDiEIXm8Ph2eyTwb47aUkecuKVhzIAiBNvj+FDmOL52m9+P0sPDMbqMaGZPleQoFjS5Y8C0fXVQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@ibm%2fibmi-mcp-server@0.4.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1870984},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"deb9050c63f609708c72bccb4e6eacc0b7b30a78","scripts":{"lint":"tsx scripts/lint.ts","test":"vitest run","tree":"tsx scripts/tree.ts","audit":"npm audit --production","build":"tsc && tsc-alias","start":"node dist/index.js","format":"prettier --write \"**/*.{ts,js,json,html,css}\"","mcpjam":"npx @mcpjam/cli","devdocs":"ts-node --esm scripts/devdocs.ts","rebuild":"tsx scripts/clean.ts && npm run build","release":"standard-version","depcheck":"npx depcheck","validate":"tsx scripts/validate-config.ts","audit:fix":"npm audit fix --production","inspector":"npx @modelcontextprotocol/inspector --config mcp.json --server default-server","pack:full":"rm -rf release && npm ci && npm run build && mkdir -p release/app && cp -R dist package.json package-lock.json node_modules release/app && tar -C release -czf release/ibmi-mcp-server-${npm_package_version}-full.tgz app","postbuild":"tsx scripts/make-executable.ts dist/index.js dist/cli/index.js","typecheck":"tsc --noEmit","fetch-spec":"tsx scripts/fetch-openapi-spec.ts","start:http":"MCP_LOG_LEVEL=debug MCP_TRANSPORT_TYPE=http node dist/index.js","test:watch":"vitest","start:agent":"MCP_LOG_LEVEL=debug node dist/agent/cli/boot.js","start:stdio":"MCP_LOG_LEVEL=debug MCP_TRANSPORT_TYPE=stdio node dist/index.js","deploy:debug":"./scripts/debug-deploy.sh","release:undo":"./scripts/release-undo.sh","docs:generate":"typedoc --tsconfig ./tsconfig.typedoc.json","list-toolsets":"node dist/index.js --list-toolsets --tools ../tools","release:first":"standard-version --first-release","release:major":"standard-version --release-as major","release:minor":"standard-version --release-as minor","release:patch":"standard-version --release-as patch","test:coverage":"vitest run --coverage","prepublishOnly":"npm run typecheck && npm run lint && npm run test && npm run build","release:prepare":"./scripts/release-prepare.sh","generate-schemas":"tsx scripts/generate-json-schemas.ts","release:finalize":"./scripts/release-finalize.sh","db:duckdb-example":"MCP_LOG_LEVEL=debug tsc && node dist/storage/duckdbExample.js","deploy:debug:fast":"./scripts/debug-deploy.sh --skip-validation --skip-build","deploy:debug:safe":"./scripts/debug-deploy.sh --skip-modules","release:prepare:major":"./scripts/release-prepare.sh major","release:prepare:minor":"./scripts/release-prepare.sh minor","release:prepare:patch":"./scripts/release-prepare.sh patch"},"_npmUser":{"name":"adamshedivy","email":"ajshedivyaj@gmail.com"},"repository":{"url":"git+https://github.com/IBM/ibmi-mcp-server.git","type":"git"},"_npmVersion":"10.8.2","description":"A production-grade MCP server for IBM i","directories":{},"_nodeVersion":"20.20.0","dependencies":{"zod":"^3.25.76","glob":"^10.5.0","hono":"^4.8.9","jose":"^6.0.13","pino":"^9.9.0","axios":"^1.11.0","dotenv":"^16.6.1","ignore":"^7.0.5","openai":"^5.15.0","js-yaml":"^4.1.0","tiktoken":"^1.0.22","commander":"^14.0.3","node-cron":"^4.2.1","pino-roll":"^1.1.0","validator":"^13.15.23","chrono-node":"^2.8.0","pino-pretty":"^13.0.0","partial-json":"^0.1.7","sanitize-html":"^2.17.0","@ibm/mapepire-js":"^0.6.0","reflect-metadata":"^0.2.2","@hono/node-server":"^1.17.1","@opentelemetry/api":"^1.9.0","zod-to-json-schema":"^3.24.6","@opentelemetry/sdk-node":"^0.203.0","@opentelemetry/resources":"^2.0.1","@modelcontextprotocol/sdk":"^1.25.2","@opentelemetry/sdk-metrics":"^2.0.1","@opentelemetry/sdk-trace-node":"^2.0.1","@opentelemetry/semantic-conventions":"^1.36.0","@opentelemetry/exporter-trace-otlp-http":"^0.203.0","@opentelemetry/auto-instrumentations-node":"^0.62.1","@opentelemetry/exporter-metrics-otlp-http":"^0.203.0"},"_hasShrinkwrap":false,"devDependencies":{"msw":"^2.10.5","tsx":"^4.20.4","vite":"^6.3.5","chalk":"^5.6.0","execa":"^9.6.0","eslint":"^9.34.0","vitest":"^3.2.4","globals":"^16.3.0","ts-node":"^1.7.1","typedoc":"^0.28.10","depcheck":"^1.4.7","prettier":"^3.6.2","tsc-alias":"^1.8.16","@eslint/js":"^9.34.0","typescript":"^5.8.3","@types/node":"^24.3.0","@types/js-yaml":"^4.0.9","@faker-js/faker":"^9.9.0","@types/node-cron":"^3.0.11","@types/validator":"13.15.2","standard-version":"^9.5.0","@anatine/zod-mock":"^3.14.0","typescript-eslint":"^8.40.0","@vitest/coverage-v8":"^3.2.4","vite-tsconfig-paths":"^5.1.4","@types/sanitize-html":"^2.16.0"},"_npmOperationalInternal":{"tmp":"tmp/ibmi-mcp-server_0.4.4_1773595225281_0.9404514173657139","host":"s3://npm-registry-packages-npm-production"}},"0.4.5":{"name":"@ibm/ibmi-mcp-server","version":"0.4.5","keywords":["typescript","template","mcp","model-context-protocol","agent","autonomous-agent","agent-framework","architecture","error-handling","llm","ai-integration","mcp-server","mcp-client","hono","stdio","http","authentication","oauth","jwt","openrouter","duckdb","zod","opentelemetry","observability","tracing","metrics"],"author":{"url":"https://github.com/ajshedivy/ibmi-mcp-server#readme","name":"ajshedivy","email":"adam.shedivy@ibm.com"},"license":"Apache-2.0","_id":"@ibm/ibmi-mcp-server@0.4.5","maintainers":[{"name":"carbon-design-system","email":"carbon@us.ibm.com"},{"name":"alisonjoseph","email":"alisonejoseph@gmail.com"},{"name":"bjost","email":"bjost@de.ibm.com"},{"name":"sanjula.ganepola.ibm","email":"sanjula.ganepola@ibm.com"},{"name":"jonnyzak32","email":"Jonathan.Zak@ibm.com"},{"name":"phaumer","email":"phaumer@us.ibm.com"},{"name":"tay1orjones","email":"taylor.jones826@gmail.com"},{"name":"mmcelaney","email":"mmcelaney@us.ibm.com"},{"name":"aifound","email":"aifound@us.ibm.com"},{"name":"michael.froend","email":"michael.froend2@ibm.com"},{"name":"odfbackuprestore","email":"odfbackuprestore@ibm.com"},{"name":"calanais","email":"matthew@mh-white.com"},{"name":"ibm-bamoeci","email":"bamoe.ci@ibm.com"},{"name":"joesepi","email":"sepi@joesepi.com"},{"name":"edmund.reinhardt","email":"edmund.reinhardt@ca.ibm.com"},{"name":"jjasghar","email":"jjasghar@gmail.com"},{"name":"yihongwang","email":"yh.wang@ibm.com"},{"name":"cmarcink","email":"cmarcink@us.ibm.com"},{"name":"adamshedivy","email":"ajshedivyaj@gmail.com"},{"name":"gcattan","email":"gregoire.cattan@ibm.com"},{"name":"idan_ibm","email":"idan.zohar@ibm.com"}],"homepage":"https://github.com/IBM/ibmi-mcp-server.git#readme","bugs":{"url":"https://github.com/IBM/ibmi-mcp-server.git/issues"},"bin":{"ibmi":"dist/cli/index.js","ibmi-mcp-server":"dist/index.js"},"dist":{"shasum":"f9814864c31a5a774539fb57a53da4b111088aa4","tarball":"https://registry.npmjs.org/@ibm/ibmi-mcp-server/-/ibmi-mcp-server-0.4.5.tgz","fileCount":558,"integrity":"sha512-rd2hWQeoDCjfY2bdr+aDmIJYIrySeOl64ExynYbj5E2mJHXHIlU/kNKkSKUwPGtshGHf6+Ys7MYVQbSo2B665w==","signatures":[{"sig":"MEYCIQDtU4Xl0JTVI/xOyE3FRlh4Bezo00nE/5xg5HDz+RBUUAIhAJyEeDhc25VLD29bddLcgUV2OOUzACY6+Pjr6KrjO/79","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@ibm%2fibmi-mcp-server@0.4.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1899546},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"3306beb21012f3654943aa21a7e327cd21c075ee","scripts":{"lint":"tsx scripts/lint.ts","test":"vitest run","tree":"tsx scripts/tree.ts","audit":"npm audit --production","build":"tsc && tsc-alias","start":"node dist/index.js","format":"prettier --write \"**/*.{ts,js,json,html,css}\"","mcpjam":"npx @mcpjam/cli","devdocs":"ts-node --esm scripts/devdocs.ts","rebuild":"tsx scripts/clean.ts && npm run build","release":"standard-version","depcheck":"npx depcheck","validate":"tsx scripts/validate-config.ts","audit:fix":"npm audit fix --production","inspector":"npx @modelcontextprotocol/inspector --config mcp.json --server default-server","pack:full":"rm -rf release && npm ci && npm run build && mkdir -p release/app && cp -R dist package.json package-lock.json node_modules release/app && tar -C release -czf release/ibmi-mcp-server-${npm_package_version}-full.tgz app","postbuild":"tsx scripts/make-executable.ts dist/index.js dist/cli/index.js","typecheck":"tsc --noEmit","fetch-spec":"tsx scripts/fetch-openapi-spec.ts","start:http":"MCP_LOG_LEVEL=debug MCP_TRANSPORT_TYPE=http node dist/index.js","test:watch":"vitest","start:agent":"MCP_LOG_LEVEL=debug node dist/agent/cli/boot.js","start:stdio":"MCP_LOG_LEVEL=debug MCP_TRANSPORT_TYPE=stdio node dist/index.js","deploy:debug":"./scripts/debug-deploy.sh","release:undo":"./scripts/release-undo.sh","docs:generate":"typedoc --tsconfig ./tsconfig.typedoc.json","list-toolsets":"node dist/index.js --list-toolsets --tools ../tools","release:first":"standard-version --first-release","release:major":"standard-version --release-as major","release:minor":"standard-version --release-as minor","release:patch":"standard-version --release-as patch","test:coverage":"vitest run --coverage","prepublishOnly":"npm run typecheck && npm run lint && npm run test && npm run build","release:prepare":"./scripts/release-prepare.sh","generate-schemas":"tsx scripts/generate-json-schemas.ts","release:finalize":"./scripts/release-finalize.sh","db:duckdb-example":"MCP_LOG_LEVEL=debug tsc && node dist/storage/duckdbExample.js","deploy:debug:fast":"./scripts/debug-deploy.sh --skip-validation --skip-build","deploy:debug:safe":"./scripts/debug-deploy.sh --skip-modules","release:prepare:major":"./scripts/release-prepare.sh major","release:prepare:minor":"./scripts/release-prepare.sh minor","release:prepare:patch":"./scripts/release-prepare.sh patch"},"_npmUser":{"name":"adamshedivy","email":"ajshedivyaj@gmail.com"},"overrides":{"flatted":"3.4.0"},"repository":{"url":"git+https://github.com/IBM/ibmi-mcp-server.git","type":"git"},"_npmVersion":"10.8.2","description":"A production-grade MCP server for IBM i","directories":{},"_nodeVersion":"20.20.1","dependencies":{"zod":"^3.25.76","glob":"^10.5.0","hono":"^4.8.9","jose":"^6.0.13","pino":"^9.9.0","axios":"^1.11.0","dotenv":"^16.6.1","ignore":"^7.0.5","openai":"^5.15.0","js-yaml":"^4.1.0","tiktoken":"^1.0.22","commander":"^14.0.3","node-cron":"^4.2.1","pino-roll":"^1.1.0","validator":"^13.15.23","chrono-node":"^2.8.0","pino-pretty":"^13.0.0","partial-json":"^0.1.7","sanitize-html":"^2.17.0","@ibm/mapepire-js":"^0.6.0","reflect-metadata":"^0.2.2","@hono/node-server":"^1.17.1","@opentelemetry/api":"^1.9.0","zod-to-json-schema":"^3.24.6","@opentelemetry/sdk-node":"^0.203.0","@opentelemetry/resources":"^2.0.1","@modelcontextprotocol/sdk":"^1.25.2","@opentelemetry/sdk-metrics":"^2.0.1","@opentelemetry/sdk-trace-node":"^2.0.1","@opentelemetry/semantic-conventions":"^1.36.0","@opentelemetry/exporter-trace-otlp-http":"^0.203.0","@opentelemetry/auto-instrumentations-node":"^0.62.1","@opentelemetry/exporter-metrics-otlp-http":"^0.203.0"},"_hasShrinkwrap":false,"devDependencies":{"msw":"^2.10.5","tsx":"^4.20.4","vite":"^6.3.5","chalk":"^5.6.0","execa":"^9.6.0","eslint":"^9.34.0","vitest":"^3.2.4","globals":"^16.3.0","ts-node":"^1.7.1","typedoc":"^0.28.10","depcheck":"^1.4.7","prettier":"^3.6.2","tsc-alias":"^1.8.16","@eslint/js":"^9.34.0","typescript":"^5.8.3","@types/node":"^24.3.0","@types/js-yaml":"^4.0.9","@faker-js/faker":"^9.9.0","@types/node-cron":"^3.0.11","@types/validator":"13.15.2","standard-version":"^9.5.0","@anatine/zod-mock":"^3.14.0","typescript-eslint":"^8.40.0","@vitest/coverage-v8":"^3.2.4","vite-tsconfig-paths":"^5.1.4","@types/sanitize-html":"^2.16.0"},"_npmOperationalInternal":{"tmp":"tmp/ibmi-mcp-server_0.4.5_1774395882576_0.7969863016593808","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@ibm/ibmi-mcp-server","version":"0.5.0","keywords":["typescript","template","mcp","model-context-protocol","agent","autonomous-agent","agent-framework","architecture","error-handling","llm","ai-integration","mcp-server","mcp-client","hono","stdio","http","authentication","oauth","jwt","openrouter","duckdb","zod","opentelemetry","observability","tracing","metrics"],"author":{"url":"https://github.com/ajshedivy/ibmi-mcp-server#readme","name":"ajshedivy","email":"adam.shedivy@ibm.com"},"license":"Apache-2.0","_id":"@ibm/ibmi-mcp-server@0.5.0","maintainers":[{"name":"carbon-design-system","email":"carbon@us.ibm.com"},{"name":"alisonjoseph","email":"alisonejoseph@gmail.com"},{"name":"bjost","email":"bjost@de.ibm.com"},{"name":"sanjula.ganepola.ibm","email":"sanjula.ganepola@ibm.com"},{"name":"jonnyzak32","email":"Jonathan.Zak@ibm.com"},{"name":"phaumer","email":"phaumer@us.ibm.com"},{"name":"tay1orjones","email":"taylor.jones826@gmail.com"},{"name":"mmcelaney","email":"mmcelaney@us.ibm.com"},{"name":"aifound","email":"aifound@us.ibm.com"},{"name":"michael.froend","email":"michael.froend2@ibm.com"},{"name":"odfbackuprestore","email":"odfbackuprestore@ibm.com"},{"name":"calanais","email":"matthew@mh-white.com"},{"name":"ibm-bamoeci","email":"bamoe.ci@ibm.com"},{"name":"joesepi","email":"sepi@joesepi.com"},{"name":"edmund.reinhardt","email":"edmund.reinhardt@ca.ibm.com"},{"name":"jjasghar","email":"jjasghar@gmail.com"},{"name":"yihongwang","email":"yh.wang@ibm.com"},{"name":"cmarcink","email":"cmarcink@us.ibm.com"},{"name":"adamshedivy","email":"ajshedivyaj@gmail.com"},{"name":"gcattan","email":"gregoire.cattan@ibm.com"},{"name":"idan_ibm","email":"idan.zohar@ibm.com"}],"homepage":"https://github.com/IBM/ibmi-mcp-server.git#readme","bugs":{"url":"https://github.com/IBM/ibmi-mcp-server.git/issues"},"bin":{"ibmi-mcp-server":"dist/index.js"},"dist":{"shasum":"2e6417e845a8c9b1db06026f13aec05642e62925","tarball":"https://registry.npmjs.org/@ibm/ibmi-mcp-server/-/ibmi-mcp-server-0.5.0.tgz","fileCount":470,"integrity":"sha512-5//z44ziHSZo0AitLnok6pL9qSZ3Rz3AIGL8vxfi+jtjDxQ2oeAKNxet6X3uMNQ5UiFaQr3EEcGYkJ7pTFILAQ==","signatures":[{"sig":"MEUCIQDkWGDyc1pF/ey68MHK7NwvAeSGn+ZkwalksQEZinlRgAIgVsxQaLzuCMWn6Gjnfxanbmiw+Zt/rUp5OkNNXptUPCA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@ibm%2fibmi-mcp-server@0.5.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1681130},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./tools":{"types":"./dist/public/tools.d.ts","import":"./dist/public/tools.js"},"./context":{"types":"./dist/public/context.d.ts","import":"./dist/public/context.js"},"./services":{"types":"./dist/public/services.d.ts","import":"./dist/public/services.js"},"./formatting":{"types":"./dist/public/formatting.d.ts","import":"./dist/public/formatting.js"}},"gitHead":"40c6e588f9213c0a350aef63d05fbc1db4288e45","scripts":{"lint":"tsx scripts/lint.ts","test":"vitest run","tree":"tsx scripts/tree.ts","audit":"npm audit --production","build":"tsc && tsc-alias","start":"node dist/index.js","format":"prettier --write \"**/*.{ts,js,json,html,css}\"","mcpjam":"npx @mcpjam/cli","devdocs":"ts-node --esm scripts/devdocs.ts","rebuild":"tsx scripts/clean.ts && npm run build","depcheck":"npx depcheck","validate":"tsx scripts/validate-config.ts","audit:fix":"npm audit fix --production","inspector":"npx @modelcontextprotocol/inspector --config mcp.json --server default-server","pack:full":"rm -rf release && npm ci && npm run build && mkdir -p release/app && cp -R dist package.json package-lock.json node_modules release/app && tar -C release -czf release/ibmi-mcp-server-${npm_package_version}-full.tgz app","postbuild":"tsx scripts/make-executable.ts dist/index.js","typecheck":"tsc --noEmit","fetch-spec":"tsx scripts/fetch-openapi-spec.ts","start:http":"MCP_LOG_LEVEL=debug MCP_TRANSPORT_TYPE=http node dist/index.js","test:watch":"vitest","start:agent":"MCP_LOG_LEVEL=debug node dist/agent/cli/boot.js","start:stdio":"MCP_LOG_LEVEL=debug MCP_TRANSPORT_TYPE=stdio node dist/index.js","deploy:debug":"./scripts/debug-deploy.sh","docs:generate":"typedoc --tsconfig ./tsconfig.typedoc.json","list-toolsets":"node dist/index.js --list-toolsets --tools ../tools","test:coverage":"vitest run --coverage","prepublishOnly":"npm run typecheck && npm run lint && npm run test && npm run build","generate-schemas":"tsx scripts/generate-json-schemas.ts","db:duckdb-example":"MCP_LOG_LEVEL=debug tsc && node dist/storage/duckdbExample.js","deploy:debug:fast":"./scripts/debug-deploy.sh --skip-validation --skip-build","deploy:debug:safe":"./scripts/debug-deploy.sh --skip-modules"},"_npmUser":{"name":"adamshedivy","email":"ajshedivyaj@gmail.com"},"overrides":{"flatted":"3.4.0"},"repository":{"url":"git+https://github.com/IBM/ibmi-mcp-server.git","type":"git"},"_npmVersion":"10.8.2","description":"A production-grade MCP server for IBM i","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^3.25.76","glob":"^10.5.0","hono":"^4.8.9","jose":"^6.0.13","pino":"^9.9.0","axios":"^1.11.0","dotenv":"^16.6.1","ignore":"^7.0.5","openai":"^5.15.0","js-yaml":"^4.1.0","tiktoken":"^1.0.22","commander":"^14.0.3","node-cron":"^4.2.1","pino-roll":"^1.1.0","validator":"^13.15.23","chrono-node":"^2.8.0","pino-pretty":"^13.0.0","partial-json":"^0.1.7","sanitize-html":"^2.17.0","@ibm/mapepire-js":"^0.6.0","reflect-metadata":"^0.2.2","@hono/node-server":"^1.17.1","@opentelemetry/api":"^1.9.0","zod-to-json-schema":"^3.24.6","@opentelemetry/sdk-node":"^0.203.0","@opentelemetry/resources":"^2.0.1","@modelcontextprotocol/sdk":"^1.25.2","@opentelemetry/sdk-metrics":"^2.0.1","@opentelemetry/sdk-trace-node":"^2.0.1","@opentelemetry/semantic-conventions":"^1.36.0","@opentelemetry/exporter-trace-otlp-http":"^0.203.0","@opentelemetry/auto-instrumentations-node":"^0.62.1","@opentelemetry/exporter-metrics-otlp-http":"^0.203.0"},"_hasShrinkwrap":false,"devDependencies":{"msw":"^2.10.5","tsx":"^4.20.4","vite":"^6.3.5","chalk":"^5.6.0","execa":"^9.6.0","eslint":"^9.34.0","vitest":"^3.2.4","globals":"^16.3.0","ts-node":"^1.7.1","typedoc":"^0.28.10","depcheck":"^1.4.7","prettier":"^3.6.2","tsc-alias":"^1.8.16","@eslint/js":"^9.34.0","typescript":"^5.8.3","@types/node":"^24.3.0","@types/js-yaml":"^4.0.9","@faker-js/faker":"^9.9.0","@types/node-cron":"^3.0.11","@types/validator":"13.15.2","@anatine/zod-mock":"^3.14.0","typescript-eslint":"^8.40.0","@vitest/coverage-v8":"^3.2.4","vite-tsconfig-paths":"^5.1.4","@types/sanitize-html":"^2.16.0"},"_npmOperationalInternal":{"tmp":"tmp/ibmi-mcp-server_0.5.0_1776713743323_0.7488131070045783","host":"s3://npm-registry-packages-npm-production"}},"0.5.1":{"name":"@ibm/ibmi-mcp-server","version":"0.5.1","keywords":["typescript","template","mcp","model-context-protocol","agent","autonomous-agent","agent-framework","architecture","error-handling","llm","ai-integration","mcp-server","mcp-client","hono","stdio","http","authentication","oauth","jwt","openrouter","duckdb","zod","opentelemetry","observability","tracing","metrics"],"author":{"url":"https://github.com/ajshedivy/ibmi-mcp-server#readme","name":"ajshedivy","email":"adam.shedivy@ibm.com"},"license":"Apache-2.0","_id":"@ibm/ibmi-mcp-server@0.5.1","maintainers":[{"name":"carbon-design-system","email":"carbon@us.ibm.com"},{"name":"alisonjoseph","email":"alisonejoseph@gmail.com"},{"name":"bjost","email":"bjost@de.ibm.com"},{"name":"sanjula.ganepola.ibm","email":"sanjula.ganepola@ibm.com"},{"name":"jonnyzak32","email":"Jonathan.Zak@ibm.com"},{"name":"phaumer","email":"phaumer@us.ibm.com"},{"name":"tay1orjones","email":"taylor.jones826@gmail.com"},{"name":"mmcelaney","email":"mmcelaney@us.ibm.com"},{"name":"aifound","email":"aifound@us.ibm.com"},{"name":"michael.froend","email":"michael.froend2@ibm.com"},{"name":"odfbackuprestore","email":"odfbackuprestore@ibm.com"},{"name":"calanais","email":"matthew@mh-white.com"},{"name":"ibm-bamoeci","email":"bamoe.ci@ibm.com"},{"name":"joesepi","email":"sepi@joesepi.com"},{"name":"edmund.reinhardt","email":"edmund.reinhardt@ca.ibm.com"},{"name":"jjasghar","email":"jjasghar@gmail.com"},{"name":"yihongwang","email":"yh.wang@ibm.com"},{"name":"cmarcink","email":"cmarcink@us.ibm.com"},{"name":"adamshedivy","email":"ajshedivyaj@gmail.com"},{"name":"gcattan","email":"gregoire.cattan@ibm.com"},{"name":"idan_ibm","email":"idan.zohar@ibm.com"}],"homepage":"https://github.com/IBM/ibmi-mcp-server.git#readme","bugs":{"url":"https://github.com/IBM/ibmi-mcp-server.git/issues"},"bin":{"ibmi-mcp-server":"dist/index.js"},"dist":{"shasum":"1be93b47dbbdb0158c60c1cc57b6715a2c10eeb7","tarball":"https://registry.npmjs.org/@ibm/ibmi-mcp-server/-/ibmi-mcp-server-0.5.1.tgz","fileCount":470,"integrity":"sha512-utflHIdbgPSxUgx67wTe5lUGlKsGcTLw4yKJUDJYnNWPAGOqiklL4ILzxkOh2Ue0n9WPpsG7bwHYqHJfTMBlcw==","signatures":[{"sig":"MEQCIDqvYiwHW+BeF2Xx+SEr4chXZn2EyqSgQ0jT7d5eRE0MAiBjPm6uIIBwfcA3v0dCQ/4s0d6arZCze4s5jaQCAIcnfg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@ibm%2fibmi-mcp-server@0.5.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1686749},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./tools":{"types":"./dist/public/tools.d.ts","import":"./dist/public/tools.js"},"./context":{"types":"./dist/public/context.d.ts","import":"./dist/public/context.js"},"./services":{"types":"./dist/public/services.d.ts","import":"./dist/public/services.js"},"./formatting":{"types":"./dist/public/formatting.d.ts","import":"./dist/public/formatting.js"}},"gitHead":"51255e9c33a95bdec1f572980d7893ed303d51e5","scripts":{"lint":"tsx scripts/lint.ts","test":"vitest run","tree":"tsx scripts/tree.ts","audit":"npm audit --production","build":"tsc && tsc-alias","start":"node dist/index.js","format":"prettier --write \"**/*.{ts,js,json,html,css}\"","mcpjam":"npx @mcpjam/cli","devdocs":"ts-node --esm scripts/devdocs.ts","rebuild":"tsx scripts/clean.ts && npm run build","depcheck":"npx depcheck","validate":"tsx scripts/validate-config.ts","audit:fix":"npm audit fix --production","inspector":"npx @modelcontextprotocol/inspector --config mcp.json --server default-server","pack:full":"rm -rf release && npm ci && npm run build && mkdir -p release/app && cp -R dist package.json package-lock.json node_modules release/app && tar -C release -czf release/ibmi-mcp-server-${npm_package_version}-full.tgz app","postbuild":"tsx scripts/make-executable.ts dist/index.js","typecheck":"tsc --noEmit","fetch-spec":"tsx scripts/fetch-openapi-spec.ts","start:http":"MCP_LOG_LEVEL=debug MCP_TRANSPORT_TYPE=http node dist/index.js","test:watch":"vitest","start:agent":"MCP_LOG_LEVEL=debug node dist/agent/cli/boot.js","start:stdio":"MCP_LOG_LEVEL=debug MCP_TRANSPORT_TYPE=stdio node dist/index.js","deploy:debug":"./scripts/debug-deploy.sh","docs:generate":"typedoc --tsconfig ./tsconfig.typedoc.json","list-toolsets":"node dist/index.js --list-toolsets --tools ../tools","test:coverage":"vitest run --coverage","prepublishOnly":"npm run typecheck && npm run lint && npm run test && npm run build","generate-schemas":"tsx scripts/generate-json-schemas.ts","db:duckdb-example":"MCP_LOG_LEVEL=debug tsc && node dist/storage/duckdbExample.js","deploy:debug:fast":"./scripts/debug-deploy.sh --skip-validation --skip-build","deploy:debug:safe":"./scripts/debug-deploy.sh --skip-modules"},"_npmUser":{"name":"adamshedivy","email":"ajshedivyaj@gmail.com"},"overrides":{"flatted":"3.4.0"},"repository":{"url":"git+https://github.com/IBM/ibmi-mcp-server.git","type":"git"},"_npmVersion":"10.8.2","description":"A production-grade MCP server for IBM i","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^3.25.76","glob":"^10.5.0","hono":"^4.8.9","jose":"^6.0.13","pino":"^9.9.0","axios":"^1.11.0","dotenv":"^16.6.1","ignore":"^7.0.5","openai":"^5.15.0","js-yaml":"^4.1.0","tiktoken":"^1.0.22","commander":"^14.0.3","node-cron":"^4.2.1","pino-roll":"^1.1.0","validator":"^13.15.23","chrono-node":"^2.8.0","pino-pretty":"^13.0.0","partial-json":"^0.1.7","sanitize-html":"^2.17.0","@ibm/mapepire-js":"^0.6.0","reflect-metadata":"^0.2.2","@hono/node-server":"^1.17.1","@opentelemetry/api":"^1.9.0","zod-to-json-schema":"^3.24.6","@opentelemetry/sdk-node":"^0.203.0","@opentelemetry/resources":"^2.0.1","@modelcontextprotocol/sdk":"^1.25.2","@opentelemetry/sdk-metrics":"^2.0.1","@opentelemetry/sdk-trace-node":"^2.0.1","@opentelemetry/semantic-conventions":"^1.36.0","@opentelemetry/exporter-trace-otlp-http":"^0.203.0","@opentelemetry/auto-instrumentations-node":"^0.62.1","@opentelemetry/exporter-metrics-otlp-http":"^0.203.0"},"_hasShrinkwrap":false,"devDependencies":{"msw":"^2.10.5","tsx":"^4.20.4","vite":"^6.3.5","chalk":"^5.6.0","execa":"^9.6.0","eslint":"^9.34.0","vitest":"^3.2.4","globals":"^16.3.0","ts-node":"^1.7.1","typedoc":"^0.28.10","depcheck":"^1.4.7","prettier":"^3.6.2","tsc-alias":"^1.8.16","@eslint/js":"^9.34.0","typescript":"^5.8.3","@types/node":"^24.3.0","@types/js-yaml":"^4.0.9","@faker-js/faker":"^9.9.0","@types/node-cron":"^3.0.11","@types/validator":"13.15.2","@anatine/zod-mock":"^3.14.0","typescript-eslint":"^8.40.0","@vitest/coverage-v8":"^3.2.4","vite-tsconfig-paths":"^5.1.4","@types/sanitize-html":"^2.16.0"},"_npmOperationalInternal":{"tmp":"tmp/ibmi-mcp-server_0.5.1_1776724682546_0.825455503015057","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"@ibm/ibmi-mcp-server","version":"0.6.0","keywords":["typescript","template","mcp","model-context-protocol","agent","autonomous-agent","agent-framework","architecture","error-handling","llm","ai-integration","mcp-server","mcp-client","hono","stdio","http","authentication","oauth","jwt","openrouter","duckdb","zod","opentelemetry","observability","tracing","metrics"],"author":{"url":"https://github.com/ajshedivy/ibmi-mcp-server#readme","name":"ajshedivy","email":"adam.shedivy@ibm.com"},"license":"Apache-2.0","_id":"@ibm/ibmi-mcp-server@0.6.0","maintainers":[{"name":"carbon-design-system","email":"carbon@us.ibm.com"},{"name":"sanjula.ganepola.ibm","email":"sanjula.ganepola@ibm.com"},{"name":"jonnyzak32","email":"Jonathan.Zak@ibm.com"},{"name":"phaumer","email":"phaumer@us.ibm.com"},{"name":"mmcelaney","email":"mmcelaney@us.ibm.com"},{"name":"aifound","email":"aifound@us.ibm.com"},{"name":"michael.froend","email":"michael.froend2@ibm.com"},{"name":"odfbackuprestore","email":"odfbackuprestore@ibm.com"},{"name":"calanais","email":"matthew@mh-white.com"},{"name":"ibm-bamoeci","email":"bamoe.ci@ibm.com"},{"name":"joesepi","email":"sepi@joesepi.com"},{"name":"edmund.reinhardt","email":"edmund.reinhardt@ca.ibm.com"},{"name":"jjasghar","email":"jjasghar@gmail.com"},{"name":"yihongwang","email":"yh.wang@ibm.com"},{"name":"cmarcink","email":"cmarcink@us.ibm.com"},{"name":"adamshedivy","email":"ajshedivyaj@gmail.com"},{"name":"gcattan","email":"gregoire.cattan@ibm.com"},{"name":"idan_ibm","email":"idan.zohar@ibm.com"}],"homepage":"https://github.com/IBM/ibmi-mcp-server.git#readme","bugs":{"url":"https://github.com/IBM/ibmi-mcp-server.git/issues"},"bin":{"ibmi-mcp-server":"dist/index.js"},"dist":{"shasum":"81155374810604fd8491414902ad587396bbe18e","tarball":"https://registry.npmjs.org/@ibm/ibmi-mcp-server/-/ibmi-mcp-server-0.6.0.tgz","fileCount":474,"integrity":"sha512-Zj26FqV+TGQQvQ6N1PLpEktuE3D0zmX4W7bueUTEzvAVtGld+Z2e91EUQubzOPkrvJAVgURnIdiowFqbpmqZAQ==","signatures":[{"sig":"MEUCIE0onwR36O7Cz7idSHz6+980kJ7qeqv6+c+SNm6PsRqnAiEAhWXJB67kM599Rf/8KNaocyDDxgL0vX6tESpo+ikAvjk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@ibm%2fibmi-mcp-server@0.6.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1716541},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./tools":{"types":"./dist/public/tools.d.ts","import":"./dist/public/tools.js"},"./context":{"types":"./dist/public/context.d.ts","import":"./dist/public/context.js"},"./services":{"types":"./dist/public/services.d.ts","import":"./dist/public/services.js"},"./formatting":{"types":"./dist/public/formatting.d.ts","import":"./dist/public/formatting.js"}},"gitHead":"62b31295ed251a16ce0052ecc2dc9548d9dd0fd7","scripts":{"lint":"tsx scripts/lint.ts","test":"vitest run","tree":"tsx scripts/tree.ts","audit":"npm audit --production","build":"tsc && tsc-alias","start":"node dist/index.js","format":"prettier --write \"**/*.{ts,js,json,html,css}\"","mcpjam":"npx @mcpjam/cli","devdocs":"ts-node --esm scripts/devdocs.ts","rebuild":"tsx scripts/clean.ts && npm run build","depcheck":"npx depcheck","validate":"tsx scripts/validate-config.ts","audit:fix":"npm audit fix --production","inspector":"npx @modelcontextprotocol/inspector --config mcp.json --server default-server","pack:full":"rm -rf release && npm ci && npm run build && mkdir -p release/app && cp -R dist package.json package-lock.json node_modules release/app && tar -C release -czf release/ibmi-mcp-server-${npm_package_version}-full.tgz app","postbuild":"tsx scripts/make-executable.ts dist/index.js","typecheck":"tsc --noEmit","fetch-spec":"tsx scripts/fetch-openapi-spec.ts","start:http":"MCP_LOG_LEVEL=debug MCP_TRANSPORT_TYPE=http node dist/index.js","test:watch":"vitest","start:agent":"MCP_LOG_LEVEL=debug node dist/agent/cli/boot.js","start:stdio":"MCP_LOG_LEVEL=debug MCP_TRANSPORT_TYPE=stdio node dist/index.js","deploy:debug":"./scripts/debug-deploy.sh","docs:generate":"typedoc --tsconfig ./tsconfig.typedoc.json","list-toolsets":"node dist/index.js --list-toolsets --tools ../tools","test:coverage":"vitest run --coverage","prepublishOnly":"npm run typecheck && npm run lint && npm run test && npm run build","generate-schemas":"tsx scripts/generate-json-schemas.ts","db:duckdb-example":"MCP_LOG_LEVEL=debug tsc && node dist/storage/duckdbExample.js","deploy:debug:fast":"./scripts/debug-deploy.sh --skip-validation --skip-build","deploy:debug:safe":"./scripts/debug-deploy.sh --skip-modules"},"_npmUser":{"name":"adamshedivy","email":"ajshedivyaj@gmail.com"},"overrides":{"flatted":"3.4.0"},"repository":{"url":"git+https://github.com/IBM/ibmi-mcp-server.git","type":"git"},"_npmVersion":"10.8.2","description":"A production-grade MCP server for IBM i","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^3.25.76","glob":"^10.5.0","hono":"^4.8.9","jose":"^6.0.13","pino":"^9.9.0","axios":"^1.11.0","dotenv":"^16.6.1","ignore":"^7.0.5","openai":"^5.15.0","js-yaml":"^4.1.0","tiktoken":"^1.0.22","commander":"^14.0.3","node-cron":"^4.2.1","pino-roll":"^1.1.0","validator":"^13.15.23","chrono-node":"^2.8.0","pino-pretty":"^13.0.0","partial-json":"^0.1.7","sanitize-html":"^2.17.0","@ibm/mapepire-js":"^0.6.0","reflect-metadata":"^0.2.2","@hono/node-server":"^2.1.0","@opentelemetry/api":"^1.9.0","zod-to-json-schema":"^3.24.6","@opentelemetry/sdk-node":"^0.221.0","@opentelemetry/resources":"^2.0.1","@modelcontextprotocol/sdk":"^1.25.2","@opentelemetry/sdk-metrics":"^2.0.1","@opentelemetry/sdk-trace-node":"^2.0.1","@opentelemetry/semantic-conventions":"^1.36.0","@opentelemetry/exporter-trace-otlp-http":"^0.221.0","@opentelemetry/auto-instrumentations-node":"^0.79.0","@opentelemetry/exporter-metrics-otlp-http":"^0.221.0"},"_hasShrinkwrap":false,"devDependencies":{"msw":"^2.10.5","tsx":"^4.20.4","vite":"^6.3.5","chalk":"^5.6.0","execa":"^9.6.0","eslint":"^9.34.0","vitest":"^3.2.7","globals":"^16.3.0","ts-node":"^1.7.1","typedoc":"^0.28.10","depcheck":"^1.4.7","prettier":"^3.6.2","tsc-alias":"^1.8.16","@eslint/js":"^9.34.0","typescript":"^5.8.3","@types/node":"^24.3.0","@types/js-yaml":"^4.0.9","@faker-js/faker":"^9.9.0","@types/node-cron":"^3.0.11","@types/validator":"13.15.2","@anatine/zod-mock":"^3.14.0","typescript-eslint":"^8.40.0","@vitest/coverage-v8":"^3.2.7","vite-tsconfig-paths":"^5.1.4","@types/sanitize-html":"^2.16.0"},"_npmOperationalInternal":{"tmp":"tmp/ibmi-mcp-server_0.6.0_1787763689313_0.8904857084165128","host":"s3://npm-registry-packages-npm-production"}},"0.6.1":{"name":"@ibm/ibmi-mcp-server","version":"0.6.1","keywords":["typescript","template","mcp","model-context-protocol","agent","autonomous-agent","agent-framework","architecture","error-handling","llm","ai-integration","mcp-server","mcp-client","hono","stdio","http","authentication","oauth","jwt","openrouter","duckdb","zod","opentelemetry","observability","tracing","metrics"],"author":{"url":"https://github.com/ajshedivy/ibmi-mcp-server#readme","name":"ajshedivy","email":"adam.shedivy@ibm.com"},"license":"Apache-2.0","_id":"@ibm/ibmi-mcp-server@0.6.1","maintainers":[{"name":"carbon-design-system","email":"carbon@us.ibm.com"},{"name":"sanjula.ganepola.ibm","email":"sanjula.ganepola@ibm.com"},{"name":"jonnyzak32","email":"Jonathan.Zak@ibm.com"},{"name":"phaumer","email":"phaumer@us.ibm.com"},{"name":"mmcelaney","email":"mmcelaney@us.ibm.com"},{"name":"aifound","email":"aifound@us.ibm.com"},{"name":"michael.froend","email":"michael.froend2@ibm.com"},{"name":"odfbackuprestore","email":"odfbackuprestore@ibm.com"},{"name":"calanais","email":"matthew@mh-white.com"},{"name":"ibm-bamoeci","email":"bamoe.ci@ibm.com"},{"name":"edmund.reinhardt","email":"edmund.reinhardt@ca.ibm.com"},{"name":"jjasghar","email":"jjasghar@gmail.com"},{"name":"yihongwang","email":"yh.wang@ibm.com"},{"name":"cmarcink","email":"cmarcink@us.ibm.com"},{"name":"arvidott","email":"aottenbe@de.ibm.com"},{"name":"pascalhusz","email":"pascal.huszar@ibm.com"},{"name":"adamshedivy","email":"ajshedivyaj@gmail.com"},{"name":"gcattan","email":"gregoire.cattan@ibm.com"},{"name":"idan_ibm","email":"idan.zohar@ibm.com"}],"homepage":"https://github.com/IBM/ibmi-mcp-server.git#readme","bugs":{"url":"https://github.com/IBM/ibmi-mcp-server.git/issues"},"bin":{"ibmi-mcp-server":"dist/index.js"},"dist":{"shasum":"5cf0ec14c1bc3328cdb0c88bbbf5c8d06ecdda3a","tarball":"https://registry.npmjs.org/@ibm/ibmi-mcp-server/-/ibmi-mcp-server-0.6.1.tgz","fileCount":482,"integrity":"sha512-DLkSP5/qYCRCcDuVsVpd+vXLg7LekfUdrtc4NTjXd+u4eYwRKI2+VJUELRQOzSljOWuPB+7nwK+clG91FxN2HQ==","signatures":[{"sig":"MEUCIHBeKpVPza7Bsag5wopicm5wickJvbY1jBip6D6rIrzoAiEApotPixC6/245iH8Bagl/ia72cWu/e3IfrghMHrdOvuc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQD8t/qlLkJkY49r8vrWMw3e9NFEl98T85oB9DXDuBRZigIgWLT0+LbzkFBLP64ypV87UVDeUX1qNE0kKlV6oAAN0bA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@ibm%2fibmi-mcp-server@0.6.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1730045},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./tools":{"types":"./dist/public/tools.d.ts","import":"./dist/public/tools.js"},"./context":{"types":"./dist/public/context.d.ts","import":"./dist/public/context.js"},"./services":{"types":"./dist/public/services.d.ts","import":"./dist/public/services.js"},"./formatting":{"types":"./dist/public/formatting.d.ts","import":"./dist/public/formatting.js"}},"gitHead":"a9a4a41131291917881e03bebfa34dea1fc18173","scripts":{"lint":"tsx scripts/lint.ts","test":"vitest run","tree":"tsx scripts/tree.ts","audit":"npm audit --production","build":"tsc && tsc-alias","start":"node dist/index.js","format":"prettier --write \"**/*.{ts,js,json,html,css}\"","mcpjam":"npx @mcpjam/cli","devdocs":"ts-node --esm scripts/devdocs.ts","rebuild":"tsx scripts/clean.ts && npm run build","depcheck":"npx depcheck","validate":"tsx scripts/validate-config.ts","audit:fix":"npm audit fix --production","inspector":"npx @modelcontextprotocol/inspector --config mcp.json --server default-server","pack:full":"rm -rf release && npm ci && npm run build && mkdir -p release/app && cp -R dist package.json package-lock.json node_modules release/app && tar -C release -czf release/ibmi-mcp-server-${npm_package_version}-full.tgz app","postbuild":"tsx scripts/make-executable.ts dist/index.js","typecheck":"tsc --noEmit","fetch-spec":"tsx scripts/fetch-openapi-spec.ts","start:http":"MCP_LOG_LEVEL=debug MCP_TRANSPORT_TYPE=http node dist/index.js","test:watch":"vitest","start:agent":"MCP_LOG_LEVEL=debug node dist/agent/cli/boot.js","start:stdio":"MCP_LOG_LEVEL=debug MCP_TRANSPORT_TYPE=stdio node dist/index.js","deploy:debug":"./scripts/debug-deploy.sh","docs:generate":"typedoc --tsconfig ./tsconfig.typedoc.json","list-toolsets":"node dist/index.js --list-toolsets --tools ../tools","test:coverage":"vitest run --coverage","prepublishOnly":"npm run typecheck && npm run lint && npm run test && npm run build","generate-schemas":"tsx scripts/generate-json-schemas.ts","db:duckdb-example":"MCP_LOG_LEVEL=debug tsc && node dist/storage/duckdbExample.js","deploy:debug:fast":"./scripts/debug-deploy.sh --skip-validation --skip-build","deploy:debug:safe":"./scripts/debug-deploy.sh --skip-modules"},"_npmUser":{"name":"adamshedivy","email":"ajshedivyaj@gmail.com"},"overrides":{"flatted":"3.4.0"},"repository":{"url":"git+https://github.com/IBM/ibmi-mcp-server.git","type":"git"},"_npmVersion":"10.8.2","description":"A production-grade MCP server for IBM i","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^3.25.76","glob":"^10.5.0","hono":"^4.8.9","jose":"^6.0.13","pino":"^9.9.0","axios":"^1.11.0","dotenv":"^16.6.1","ignore":"^7.0.5","openai":"^5.15.0","js-yaml":"^4.1.0","tiktoken":"^1.0.22","commander":"^14.0.3","node-cron":"^4.2.1","pino-roll":"^1.1.0","validator":"^13.15.23","chrono-node":"^2.8.0","pino-pretty":"^13.0.0","partial-json":"^0.1.7","sanitize-html":"^2.17.0","@ibm/mapepire-js":"^0.6.0","reflect-metadata":"^0.2.2","@hono/node-server":"^2.1.0","@opentelemetry/api":"^1.9.0","zod-to-json-schema":"^3.24.6","@opentelemetry/sdk-node":"^0.221.0","@opentelemetry/resources":"^2.0.1","@modelcontextprotocol/sdk":"^1.25.2","@opentelemetry/sdk-metrics":"^2.0.1","@opentelemetry/sdk-trace-node":"^2.0.1","@opentelemetry/instrumentation-http":"^0.221.0","@opentelemetry/instrumentation-pino":"^0.67.0","@opentelemetry/semantic-conventions":"^1.36.0","@opentelemetry/instrumentation-undici":"^0.31.0","@opentelemetry/exporter-trace-otlp-http":"^0.221.0","@opentelemetry/exporter-metrics-otlp-http":"^0.221.0"},"_hasShrinkwrap":false,"devDependencies":{"msw":"^2.10.5","tsx":"^4.20.4","vite":"^6.3.5","chalk":"^5.6.0","execa":"^9.6.0","eslint":"^9.34.0","vitest":"^3.2.7","globals":"^16.3.0","ts-node":"^1.7.1","typedoc":"^0.28.10","depcheck":"^1.4.7","prettier":"^3.6.2","tsc-alias":"^1.8.16","@eslint/js":"^9.34.0","typescript":"^5.8.3","@types/node":"^24.3.0","@types/js-yaml":"^4.0.9","@faker-js/faker":"^9.9.0","@types/node-cron":"^3.0.11","@types/validator":"13.15.2","@anatine/zod-mock":"^3.14.0","typescript-eslint":"^8.40.0","@vitest/coverage-v8":"^3.2.7","vite-tsconfig-paths":"^5.1.4","@types/sanitize-html":"^2.16.0"},"_npmOperationalInternal":{"tmp":"tmp/ibmi-mcp-server_0.6.1_1789417552629_0.8226854205575691","host":"s3://npm-registry-packages-npm-production"}}},"time":{"created":"2025-12-03T21:47:29.579Z","modified":"2026-09-29T17:31:19.212Z","0.1.0":"2025-12-03T21:47:29.890Z","0.1.1":"2025-12-11T23:02:47.179Z","0.1.2":"2025-12-11T23:37:37.376Z","0.2.0":"2025-12-18T16:31:40.849Z","0.3.0":"2026-01-26T21:58:05.758Z","0.3.1":"2026-02-22T21:18:57.116Z","0.3.2":"2026-03-04T16:30:22.234Z","0.4.0":"2026-03-06T22:01:59.393Z","0.4.1":"2026-03-06T22:29:47.513Z","0.4.2":"2026-03-09T15:03:52.740Z","0.4.3":"2026-03-15T16:39:24.338Z","0.4.4":"2026-03-15T17:20:25.469Z","0.4.5":"2026-03-24T23:44:42.900Z","0.5.0":"2026-04-20T19:35:43.574Z","0.5.1":"2026-04-20T22:38:02.736Z","0.6.0":"2026-08-26T17:01:29.527Z","0.6.1":"2026-09-14T20:25:52.764Z"},"bugs":{"url":"https://github.com/IBM/ibmi-mcp-server.git/issues"},"author":{"url":"https://github.com/ajshedivy/ibmi-mcp-server#readme","name":"ajshedivy","email":"adam.shedivy@ibm.com"},"license":"Apache-2.0","homepage":"https://github.com/IBM/ibmi-mcp-server.git#readme","keywords":["typescript","template","mcp","model-context-protocol","agent","autonomous-agent","agent-framework","architecture","error-handling","llm","ai-integration","mcp-server","mcp-client","hono","stdio","http","authentication","oauth","jwt","openrouter","duckdb","zod","opentelemetry","observability","tracing","metrics"],"repository":{"url":"git+https://github.com/IBM/ibmi-mcp-server.git","type":"git"},"description":"A production-grade MCP server for IBM i","maintainers":[{"email":"carbon@us.ibm.com","name":"carbon-design-system"},{"email":"sanjula.ganepola@ibm.com","name":"sanjula.ganepola.ibm"},{"email":"Jonathan.Zak@ibm.com","name":"jonnyzak32"},{"email":"phaumer@us.ibm.com","name":"phaumer"},{"email":"aifound@us.ibm.com","name":"aifound"},{"email":"michael.froend2@ibm.com","name":"michael.froend"},{"email":"odfbackuprestore@ibm.com","name":"odfbackuprestore"},{"email":"matthew@mh-white.com","name":"calanais"},{"email":"bamoe.ci@ibm.com","name":"ibm-bamoeci"},{"email":"edmund.reinhardt@ca.ibm.com","name":"edmund.reinhardt"},{"email":"jjasghar@gmail.com","name":"jjasghar"},{"email":"yh.wang@ibm.com","name":"yihongwang"},{"email":"cmarcink@us.ibm.com","name":"cmarcink"},{"email":"aottenbe@de.ibm.com","name":"arvidott"},{"email":"pascal.huszar@ibm.com","name":"pascalhusz"},{"email":"maureen.mcelaney@gmail.com","name":"mmcelaney"},{"email":"anas.badaoud@ibm.com","name":"anas.badaoud"},{"email":"ajshedivyaj@gmail.com","name":"adamshedivy"},{"email":"bobdev@ibm.com","name":"bobdev"},{"email":"gregoire.cattan@ibm.com","name":"gcattan"},{"email":"idan.zohar@ibm.com","name":"idan_ibm"}],"readme":"# IBM i MCP Server\n\n> **Note — CLI moved.** The `ibmi` command-line interface used to ship with this package. As of v0.5.0 it's a separate package: install it with `npm i -g @ibm/ibmi-cli`. This package continues to provide the `ibmi-mcp-server` binary. See [packages/cli](../cli/README.md).\n\n<details>\n\n<summary><strong>Table of Contents</strong></summary>\n\n- [IBM i MCP Server](#ibm-i-mcp-server)\n  - [⚡ Quickstart](#-quickstart)\n    - [1. Create Configuration File](#1-create-configuration-file)\n    - [2. Create a Simple SQL Tool](#2-create-a-simple-sql-tool)\n    - [3. Set Configuration Path](#3-set-configuration-path)\n    - [4. Run the Server](#4-run-the-server)\n    - [5. Verify Server is Running](#5-verify-server-is-running)\n    - [6. Test with Python Client (Optional)](#6-test-with-python-client-optional)\n  - [🎯 What's Next?](#-whats-next)\n  - [CLI Reference](#cli-reference)\n    - [Basic Usage](#basic-usage)\n    - [Available Options](#available-options)\n  - [🔌 Installing in MCP Clients](#-installing-in-mcp-clients)\n    - [Prerequisites: Local Installation](#prerequisites-local-installation)\n    - [Remote Server Setup](#remote-server-setup)\n    - [Client Configurations](#client-configurations)\n  - [🧩 SQL Tool Configuration](#-sql-tool-configuration)\n    - [Sources](#sources)\n    - [Tools](#tools)\n    - [Toolsets](#toolsets)\n  - [🤖 IBM i Agents](#-ibm-i-agents)\n    - [Key Features](#key-features)\n    - [Getting Started](#getting-started)\n  - [⚙️ Configuration](#️-configuration)\n    - [General Authentication](#general-authentication)\n    - [JWT Authentication](#jwt-authentication)\n    - [OAuth Authentication](#oauth-authentication)\n    - [IBM i HTTP Authentication](#ibm-i-http-authentication)\n    - [Tool Loading](#tool-loading)\n    - [Configuration Merging](#configuration-merging)\n    - [Configuration Best Practices](#configuration-best-practices)\n  - [🔐 IBM i HTTP Authentication (Beta)](#-ibm-i-http-authentication-beta)\n    - [Authentication Flow](#authentication-flow)\n    - [Configuration](#configuration)\n    - [Getting Access Tokens](#getting-access-tokens)\n      - [Option 1: Using the Token Script (Recommended)](#option-1-using-the-token-script-recommended)\n      - [Sequence Overview](#sequence-overview)\n    - [Client Integration](#client-integration)\n    - [Security Considerations](#security-considerations)\n    - [Authentication Endpoints](#authentication-endpoints)\n  - [🛠️ Running the Server (Development)](#️-running-the-server-development)\n    - [Building from Source](#building-from-source)\n    - [Transport Modes](#transport-modes)\n      - [HTTP Transport (Recommended for Development)](#http-transport-recommended-for-development)\n      - [Stdio Transport (for CLI tools and MCP Inspector)](#stdio-transport-for-cli-tools-and-mcp-inspector)\n    - [Session Modes (HTTP Only)](#session-modes-http-only)\n    - [CLI Options](#cli-options)\n    - [Common Development Scenarios](#common-development-scenarios)\n    - [Development Tips](#development-tips)\n    - [Troubleshooting](#troubleshooting)\n  - [🕵️‍♂️ MCP Inspector](#️️-mcp-inspector)\n  - [Deployment](#deployment)\n  - [🏗️ Built With MCP TypeScript Template](#️-built-with-mcp-typescript-template)\n    - [Template Features Used](#template-features-used)\n    - [Why This Template?](#why-this-template)\n    - [Customizations for IBM i](#customizations-for-ibm-i)\n    - [Get Started with the Template](#get-started-with-the-template)\n\n</details>\n\n---\n\n## ⚡ Quickstart\n\nGet started with the IBM i MCP Server using the official npm package.\n\n### 1. Create Configuration File\n\nCreate a `.env` file with your IBM i connection details:\n\n```bash\ncat > .env << 'EOF'\n# IBM i DB2 for i Connection Settings\nDB2i_HOST=your-ibmi-host.com\nDB2i_USER=your-username\nDB2i_PASS=your-password\nDB2i_PORT=8076\nDB2i_IGNORE_UNAUTHORIZED=true\n\n# MCP Server Settings\nMCP_TRANSPORT_TYPE=http\nMCP_HTTP_PORT=3010\nMCP_LOG_LEVEL=info\n\n# Tools Configuration\nTOOLS_YAML_PATH=./tools\nEOF\n```\n\n> **📖 Configuration Guide:** See the complete [Configuration](#⚙️-configuration) section for all available settings.\n\n### 2. Create a Simple SQL Tool\n\nCreate a `tools` directory and a basic tool configuration file:\n\n```bash\nmkdir -p tools\n```\n\n<details>\n<summary><strong>📄 Click to copy: tools/quickstart.yaml</strong></summary>\n\n```yaml\nsources:\n  ibmi-system:\n    host: ${DB2i_HOST}\n    user: ${DB2i_USER}\n    password: ${DB2i_PASS}\n    port: 8076\n    ignore-unauthorized: true\n\ntools:\n  system_status:\n    source: ibmi-system\n    description: \"Overall system performance statistics with CPU, memory, and I/O metrics\"\n    parameters: []\n    statement: |\n      SELECT * FROM TABLE(QSYS2.SYSTEM_STATUS(RESET_STATISTICS=>'YES',DETAILED_INFO=>'ALL')) X\n\n  system_activity:\n    source: ibmi-system\n    description: \"Current system activity information including active jobs and resource utilization\"\n    parameters: []\n    statement: |\n      SELECT * FROM TABLE(QSYS2.SYSTEM_ACTIVITY_INFO())\n\n  active_job_info:\n    source: ibmi-system\n    description: \"Find the top 10 consumers of CPU in the QUSRWRK and QSYSWRK subsystems\"\n    parameters:\n      - name: limit\n        type: integer\n        default: 10\n        description: \"Number of top CPU consumers to return\"\n    statement: |\n      SELECT CPU_TIME, A.* FROM\n      TABLE(QSYS2.ACTIVE_JOB_INFO(SUBSYSTEM_LIST_FILTER => 'QUSRWRK,QSYSWRK')) A\n      ORDER BY CPU_TIME DESC\n      FETCH FIRST :limit ROWS ONLY\n\ntoolsets:\n  performance:\n    tools:\n      - system_status\n      - system_activity\n      - active_job_info\n```\n\n</details>\n\nCreate the file:\n\n```bash\ncat > tools/quickstart.yaml << 'EOF'\nsources:\n  ibmi-system:\n    host: ${DB2i_HOST}\n    user: ${DB2i_USER}\n    password: ${DB2i_PASS}\n    port: 8076\n    ignore-unauthorized: true\n\ntools:\n  system_status:\n    source: ibmi-system\n    description: \"Overall system performance statistics with CPU, memory, and I/O metrics\"\n    parameters: []\n    statement: |\n      SELECT * FROM TABLE(QSYS2.SYSTEM_STATUS(RESET_STATISTICS=>'YES',DETAILED_INFO=>'ALL')) X\n\n  system_activity:\n    source: ibmi-system\n    description: \"Current system activity information including active jobs and resource utilization\"\n    parameters: []\n    statement: |\n      SELECT * FROM TABLE(QSYS2.SYSTEM_ACTIVITY_INFO())\n\n  active_job_info:\n    source: ibmi-system\n    description: \"Find the top 10 consumers of CPU in the QUSRWRK and QSYSWRK subsystems\"\n    parameters:\n      - name: limit\n        type: integer\n        default: 10\n        description: \"Number of top CPU consumers to return\"\n    statement: |\n      SELECT CPU_TIME, A.* FROM\n      TABLE(QSYS2.ACTIVE_JOB_INFO(SUBSYSTEM_LIST_FILTER => 'QUSRWRK,QSYSWRK')) A\n      ORDER BY CPU_TIME DESC\n      FETCH FIRST :limit ROWS ONLY\n\ntoolsets:\n  performance:\n    tools:\n      - system_status\n      - system_activity\n      - active_job_info\nEOF\n```\n\nThis creates three tools:\n- **`system_status`** - System performance metrics\n- **`system_activity`** - Current activity information\n- **`active_job_info`** - Top CPU consumers (with customizable limit parameter)\n\n> [!NOTE] \n> **📖 More Tools:** The repository includes many ready-to-use tools in the [`tools/`](../tools/) directory covering performance monitoring, security, job management, and more. See [SQL Tool Configuration](#-sql-tool-configuration) to create your own custom tools.\n\n### 3. Set Configuration Path\n\nPoint the server to your configuration file using the `MCP_SERVER_CONFIG` environment variable:\n\n```bash\n# Set configuration file path\nexport MCP_SERVER_CONFIG=.env\n```\n\n> **Note:** CLI arguments override settings in the configuration file.\n\n### 4. Run the Server\n\nStart the server in HTTP mode with your new tools:\n\n```bash\n# Start the server with HTTP transport\nnpx -y @ibm/ibmi-mcp-server@latest --transport http --tools ./tools/quckstart.yaml\n```\n\nThe server will:\n- Load configuration from `.env` (via `MCP_SERVER_CONFIG`)\n- Connect to your IBM i system via Mapepire\n- Start on `http://localhost:3010/mcp`\n- Load the SQL tools from `tools/quickstart.yaml`\n\n\n\n### 5. Verify Server is Running\n\nTest the server endpoint:\n\n```bash\n# Check health\ncurl http://localhost:3010/healthz\n\n# List available tools (requires running server)\ncurl -X POST http://localhost:3010/mcp \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"jsonrpc\":\"2.0\",\"method\":\"tools/list\",\"params\":{},\"id\":1}'\n```\n\n### 6. Test with Python Client (Optional)\n\nInstall and run the example Python client:\n\n```bash\n# Navigate to client directory\ncd client/\n\n# Install dependencies with uv\nuv sync\n\n# List available tools\nuv run mcp_client.py\n\n# Run agent with LLM (requires API key)\nexport OPENAI_API_KEY=your-api-key\nuv run agent.py -p \"What is my system status?\"\n```\n\n> **📖 Client Documentation:** See [client/README.md](../client/README.md) for detailed setup instructions.\n\n> [!TIP]\n> **Explore More SQL Tools:** The `tools/` directory contains many ready-to-use SQL tool configurations for common IBM i tasks. Browse the collection and customize them for your needs. See the [Tools Guide](../tools/README.md) for more details.\n\n---\n\n## 🎯 What's Next?\n\nChoose your path based on what you want to accomplish:\n\n| Path | Guide | Description |\n|------|-------|-------------|\n| **MCP Client Integration** | [Installing in MCP Clients](#-installing-in-mcp-clients) | Connect to Claude Desktop, VSCode, Cursor, and other MCP clients |\n| **Custom SQL Tools** | [SQL Tool Configuration](#-sql-tool-configuration) | Create YAML-based SQL tools for your IBM i use cases |\n| **Server Configuration** | [Configuration Guide](#️-configuration) | Explore authentication, transport modes, and environment variables |\n| **Production Deployment** | [Deployment Options](../deployment/README.md) | Deploy with Docker, Podman, or OpenShift |\n| **AI Agent Development** | [IBM i Agents](#-ibm-i-agents) | Build custom AI agents that interact with IBM i systems |\n| **Development & Contributing** | [Running the Server (Development)](#️-running-the-server-development) | Build from source, run tests, and contribute |\n\n---\n\n## CLI Reference\n\nThe IBM i MCP Server provides a command-line interface with flexible options for running and configuring the server.\n\n### Basic Usage\n\n```bash\nnpx -y @ibm/ibmi-mcp-server@latest [options]\n```\n\n> **Note:** The `-y` flag automatically accepts the npm package installation prompt.\n\n### Available Options\n\n| Option | Description |\n|--------|-------------|\n| `--tools <path>` | Path to YAML tools (file, directory, or glob pattern) |\n| `--toolsets <list>` | Comma-separated list of toolsets to load |\n| `--list-toolsets` | List all available toolsets and exit |\n| `--transport <type>` | Transport type: `stdio` (default) or `http` |\n| `--builtin-tools` | Enable built-in schema discovery tools (`list_schemas`, `list_tables_in_schema`, `get_table_columns`, `get_related_objects`, `validate_query`) |\n| `--execute-sql` | Enable the `execute_sql` tool for ad-hoc queries |\n| `--help` | Show help message |\n\n<details>\n<summary><strong>Common Examples</strong></summary>\n\n**Full text-to-SQL workflow (schema discovery + query execution):**\n```bash\nnpx -y @ibm/ibmi-mcp-server@latest --builtin-tools --execute-sql --transport http\n```\n\n**Schema discovery only (agents explore but can't run arbitrary SQL):**\n```bash\nnpx -y @ibm/ibmi-mcp-server@latest --builtin-tools --tools ./tools\n```\n\n**Run server with YAML tools only:**\n```bash\nnpx -y @ibm/ibmi-mcp-server@latest --transport http --tools ./tools\n```\n\n**Load specific toolsets only:**\n```bash\nnpx -y @ibm/ibmi-mcp-server@latest --toolsets performance,security --tools ./tools\n```\n\n**List available toolsets:**\n```bash\nnpx -y @ibm/ibmi-mcp-server@latest --list-toolsets --tools ./tools\n```\n\n</details>\n\n---\n\n## 🔌 Installing in MCP Clients\n\nThis server can be integrated into any MCP-compatible client using either **local** (stdio) or **remote** (HTTP) connections.\n\n### Prerequisites: Local Installation\n\nThe server is available as an npm package and can be used directly with `npx`:\n\n```bash\n# Test the server is available\nnpx -y @ibm/ibmi-mcp-server@latest --help\n```\n\n> **Note:** The `-y` flag automatically accepts the npm package installation prompt.\n> `TOOLS_YAML_PATH` must be an **absolute path** to your tools configuration directory (e.g., `/full/path/to/tools`).\n\n### Remote Server Setup\n\nFor HTTP remote connections, you need to:\n\n1. **Start the server with IBM i authentication enabled:**\n\n   ```bash\n   # Ensure your .env has these settings:\n   MCP_AUTH_MODE=ibmi\n   IBMI_HTTP_AUTH_ENABLED=true\n   IBMI_AUTH_ALLOW_HTTP=true  # For development only!\n\n   npm run start:http\n   ```\n\n2. **Obtain an access token:**\n\n   ```bash\n   # Use the token script to authenticate\n   node get-access-token.js --verbose\n\n   # Or set it directly in your environment\n   export IBMI_MCP_ACCESS_TOKEN=\"your-token-here\"\n   ```\n\n   See [IBM i HTTP Authentication](#ibm-i-http-authentication-beta) for detailed authentication setup.\n\n3. **Configure your client** with the server URL and Bearer token (examples below).\n\n> **⚠️ Production Note:** Replace `http://localhost:3010` with your production endpoint URL and ensure HTTPS is enabled (`IBMI_AUTH_ALLOW_HTTP=false`).\n\nIn production environments, it is strongly recommended to deploy the MCP server behind a reverse proxy server such as Nginx, HAProxy, or Caddy. The reverse proxy server can provide TLS/SSL termination for the MCP server to handle HTTPS connections and SSL/TLS certificate management. Below is an example of an Nginx configuration. You may need to adjust it according to your specific networking configuration and security requirements.\n\n```\npid /run/nginx.pid;\nevents {}\nhttp {\n    server {\n        listen 443 ssl;\n        ssl_certificate <path_to_certificate>;\n        ssl_certificate_key <path_to_privatekey>;\n        ssl_protocols TLSv1.3;\n        ssl_ciphers HIGH:!aNULL:!MD5;\n        ssl_session_cache shared:SSL:50m;\n        ssl_prefer_server_ciphers on;\n        # This is needed for getting access token when IBM i HTTP authentication enabled with HTTPS only\n        proxy_set_header X-Forwarded-Proto https;\n        location / {\n            proxy_pass http://mcp_server;\n        }\n    }\n    upstream mcp_server {\n        server 127.0.0.1:3010;\n    }\n}\n```\n\n---\n\n### Client Configurations\n\n<details>\n<summary><strong>Claude Code</strong></summary>\n\nClaude Code supports both local (stdio) and remote (HTTP) MCP server connections. You can configure servers using the CLI or by editing `.mcp.json` directly.\n\n#### Option 1: Local Stdio Server (Recommended)\n\n**Using CLI:**\n```bash\n# Add local stdio server\nclaude mcp add ibmi-mcp \\\n  --env DB2i_HOST=your-ibmi-host.com \\\n  --env DB2i_USER=your-username \\\n  --env DB2i_PASS=your-password \\\n  --env DB2i_PORT=8076 \\\n  --env MCP_TRANSPORT_TYPE=stdio \\\n  -- npx -y @ibm/ibmi-mcp-server@latest --transport stdio --tools /absolute/path/to/tools\n```\n\n**Using `.mcp.json`:**\n```json\n{\n  \"mcpServers\": {\n    \"ibmi-mcp\": {\n      \"command\": \"npx\",\n      \"args\": [\"@ibm/ibmi-mcp-server@latest\", \"-y\", \"--transport\", \"stdio\", \"--tools\", \"/absolute/path/to/tools\"],\n      \"env\": {\n        \"DB2i_HOST\": \"your-ibmi-host.com\",\n        \"DB2i_USER\": \"your-username\",\n        \"DB2i_PASS\": \"your-password\",\n        \"DB2i_PORT\": \"8076\",\n        \"NODE_OPTIONS\": \"--no-deprecation\"\n      }\n    }\n  }\n}\n```\n\n#### Option 2: Remote HTTP Server\n\n**Using CLI:**\n```bash\n# Add remote HTTP server with authentication\nclaude mcp add --transport http ibmi-mcp http://localhost:3010/mcp \\\n  --header \"Authorization: Bearer YOUR_ACCESS_TOKEN_HERE\"\n```\n\n**Using `.mcp.json`:**\n```json\n{\n  \"mcpServers\": {\n    \"ibmi-mcp\": {\n      \"url\": \"http://localhost:3010/mcp\",\n      \"type\": \"http\",\n      \"headers\": {\n        \"Authorization\": \"Bearer YOUR_ACCESS_TOKEN_HERE\"\n      }\n    }\n  }\n}\n```\n\n#### Environment Variable Expansion\n\nClaude Code supports environment variable expansion in `.mcp.json` files, allowing you to keep credentials secure:\n\n```json\n{\n  \"mcpServers\": {\n    \"ibmi-mcp\": {\n      \"command\": \"npx\",\n      \"args\": [\"@ibm/ibmi-mcp-server@latest\", \"-y\", \"--transport\", \"stdio\", \"--tools\", \"${IBMI_TOOLS_PATH}\"],\n      \"env\": {\n        \"DB2i_HOST\": \"${DB2i_HOST}\",\n        \"DB2i_USER\": \"${DB2i_USER}\",\n        \"DB2i_PASS\": \"${DB2i_PASS}\",\n        \"DB2i_PORT\": \"${DB2i_PORT:-8076}\"\n      }\n    }\n  }\n}\n```\n\n**Supported syntax:**\n- `${VAR}` - Expands to the value of environment variable `VAR`\n- `${VAR:-default}` - Expands to `VAR` if set, otherwise uses `default`\n\n#### Managing Servers\n\n```bash\n# List configured servers\nclaude mcp list\n\n# Get server details\nclaude mcp get ibmi-mcp\n\n# Remove a server\nclaude mcp remove ibmi-mcp\n\n# Check server status in Claude Code\n/mcp\n```\n\n> 📖 [Claude Code MCP Documentation](https://docs.claude.com/en/docs/claude-code/mcp)\n\n</details>\n\n<details>\n<summary><strong>Claude Desktop</strong></summary>\n\n#### Local (Stdio)\n\nEdit `~/Library/Application Support/Claude/claude_desktop_config.json` (macOS) or `%APPDATA%\\Claude\\claude_desktop_config.json` (Windows):\n\n```json\n{\n  \"mcpServers\": {\n    \"ibmi-mcp\": {\n      \"command\": \"npx\",\n      \"args\": [\"@ibm/ibmi-mcp-server@latest\", \"-y\", \"--transport\", \"stdio\", \"--tools\", \"/absolute/path/to/tools\"],\n      \"env\": {\n        \"DB2i_HOST\": \"your-ibmi-host.com\",\n        \"DB2i_USER\": \"your-username\",\n        \"DB2i_PASS\": \"your-password\",\n        \"DB2i_PORT\": \"8076\"\n      }\n    }\n  }\n}\n```\n\n#### Remote (HTTP)\n\n```json\n{\n  \"mcpServers\": {\n    \"ibmi-mcp\": {\n      \"url\": \"http://localhost:3010/mcp\",\n      \"type\": \"http\",\n      \"headers\": {\n        \"Authorization\": \"Bearer YOUR_ACCESS_TOKEN_HERE\"\n      }\n    }\n  }\n}\n```\n\n> 📖 [Claude Desktop MCP Setup](https://modelcontextprotocol.io/quickstart/user)\n\n</details>\n\n<details>\n<summary><strong>VSCode</strong></summary>\n\nVSCode supports MCP servers through Copilot Chat. You can configure servers at the user or workspace level using configuration files or the CLI.\n\n**Prerequisites:** Ensure [GitHub Copilot](https://marketplace.visualstudio.com/items?itemName=GitHub.copilot) is installed and enabled.\n\n#### Configuration File Locations\n\n- **Workspace:** `.vscode/mcp.json` (shared with team via version control)\n- **User:** `mcp.json` in your user profile directory\n  - macOS/Linux: `~/.config/Code/User/globalStorage/modelcontextprotocol.mcp/mcp.json`\n  - Windows: `%APPDATA%\\Code\\User\\globalStorage\\modelcontextprotocol.mcp\\mcp.json`\n\n#### Option 1: Local Stdio Server\n\n**Using CLI:**\n```bash\n# Add local stdio server\ncode --add-mcp '{\n  \"name\": \"ibmiMcp\",\n  \"type\": \"stdio\",\n  \"command\": \"npx\",\n  \"args\": [\"@ibm/ibmi-mcp-server@latest\", \"-y\", \"--transport\", \"stdio\", \"--tools\", \"/absolute/path/to/tools\"],\n  \"env\": {\n    \"DB2i_HOST\": \"your-ibmi-host.com\",\n    \"DB2i_USER\": \"your-username\",\n    \"DB2i_PASS\": \"your-password\",\n    \"DB2i_PORT\": \"8076\"\n  }\n}'\n```\n\n**Using `mcp.json`:**\n```json\n{\n  \"servers\": {\n    \"ibmiMcp\": {\n      \"type\": \"stdio\",\n      \"command\": \"npx\",\n      \"args\": [\"@ibm/ibmi-mcp-server@latest\", \"-y\", \"--transport\", \"stdio\", \"--tools\", \"/absolute/path/to/tools\"],\n      \"env\": {\n        \"DB2i_HOST\": \"your-ibmi-host.com\",\n        \"DB2i_USER\": \"your-username\",\n        \"DB2i_PASS\": \"your-password\",\n        \"DB2i_PORT\": \"8076\"\n      }\n    }\n  }\n}\n```\n\n#### Option 2: Remote HTTP Server\n\n**Using CLI:**\n```bash\n# Add remote HTTP server\ncode --add-mcp '{\n  \"name\": \"ibmiMcp\",\n  \"type\": \"http\",\n  \"url\": \"http://localhost:3010/mcp\",\n  \"headers\": {\n    \"Authorization\": \"Bearer YOUR_ACCESS_TOKEN_HERE\"\n  }\n}'\n```\n\n**Using `mcp.json`:**\n```json\n{\n  \"servers\": {\n    \"ibmiMcp\": {\n      \"type\": \"http\",\n      \"url\": \"http://localhost:3010/mcp\",\n      \"headers\": {\n        \"Authorization\": \"Bearer YOUR_ACCESS_TOKEN_HERE\"\n      }\n    }\n  }\n}\n```\n\n#### Secure Credentials with Input Variables\n\nVSCode supports input variables to avoid hardcoding sensitive credentials:\n\n```json\n{\n  \"inputs\": [\n    {\n      \"id\": \"db2iHost\",\n      \"type\": \"promptString\",\n      \"description\": \"IBM i DB2 host address\"\n    },\n    {\n      \"id\": \"db2iUser\",\n      \"type\": \"promptString\",\n      \"description\": \"IBM i username\"\n    },\n    {\n      \"id\": \"db2iPass\",\n      \"type\": \"promptString\",\n      \"description\": \"IBM i password\",\n      \"password\": true\n    }\n  ],\n  \"servers\": {\n    \"ibmiMcp\": {\n      \"type\": \"stdio\",\n      \"command\": \"npx\",\n      \"args\": [\"@ibm/ibmi-mcp-server@latest\", \"-y\", \"--transport\", \"stdio\", \"--tools\", \"/absolute/path/to/tools\"],\n      \"env\": {\n        \"DB2i_HOST\": \"${input:db2iHost}\",\n        \"DB2i_USER\": \"${input:db2iUser}\",\n        \"DB2i_PASS\": \"${input:db2iPass}\",\n        \"DB2i_PORT\": \"8076\"\n      }\n    }\n  }\n}\n```\n\nVSCode will prompt for these values when the server starts, keeping credentials secure.\n\n#### Managing Servers\n\n- **View servers:** Check the Copilot Chat view in the Activity Bar\n- **Restart server:** Use Command Palette (`Cmd/Ctrl+Shift+P`) → \"MCP: Restart Server\"\n- **Disable server:** Remove from `mcp.json` or disable in settings\n\n> 📖 [VSCode MCP Documentation](https://code.visualstudio.com/docs/copilot/customization/mcp-servers)\n\n</details>\n\n<details>\n<summary><strong>Cursor</strong></summary>\n\n#### Local (Stdio)\n\nAdd to Cursor settings or `.cursor/mcp.json`:\n\n```json\n{\n  \"mcpServers\": {\n    \"ibmi-mcp\": {\n      \"command\": \"npx\",\n      \"args\": [\"@ibm/ibmi-mcp-server@latest\", \"-y\", \"--transport\", \"stdio\", \"--tools\", \"/absolute/path/to/tools\"],\n      \"env\": {\n        \"DB2i_HOST\": \"your-ibmi-host.com\",\n        \"DB2i_USER\": \"your-username\",\n        \"DB2i_PASS\": \"your-password\",\n        \"DB2i_PORT\": \"8076\"\n      }\n    }\n  }\n}\n```\n\n#### Remote (HTTP)\n\n```json\n{\n  \"mcpServers\": {\n    \"ibmi-mcp\": {\n      \"url\": \"http://localhost:3010/mcp\",\n      \"type\": \"http\",\n      \"headers\": {\n        \"Authorization\": \"Bearer YOUR_ACCESS_TOKEN_HERE\"\n      }\n    }\n  }\n}\n```\n\n> 📖 [Cursor MCP Documentation](https://docs.cursor.com/context/model-context-protocol)\n\n</details>\n\n<details>\n<summary><strong>Windsurf</strong></summary>\n\n#### Local (Stdio)\n\nAdd to Windsurf configuration:\n\n```json\n{\n  \"mcpServers\": {\n    \"ibmi-mcp\": {\n      \"command\": \"npx\",\n      \"args\": [\"@ibm/ibmi-mcp-server@latest\", \"-y\", \"--transport\", \"stdio\", \"--tools\", \"/absolute/path/to/tools\"],\n      \"env\": {\n        \"DB2i_HOST\": \"your-ibmi-host.com\",\n        \"DB2i_USER\": \"your-username\",\n        \"DB2i_PASS\": \"your-password\",\n        \"DB2i_PORT\": \"8076\"\n      }\n    }\n  }\n}\n```\n\n#### Remote (HTTP)\n\n```json\n{\n  \"mcpServers\": {\n    \"ibmi-mcp\": {\n      \"url\": \"http://localhost:3010/mcp\",\n      \"type\": \"http\",\n      \"headers\": {\n        \"Authorization\": \"Bearer YOUR_ACCESS_TOKEN_HERE\"\n      }\n    }\n  }\n}\n```\n\n> 📖 [Windsurf MCP Documentation](https://docs.windsurf.com/windsurf/cascade/mcp)\n\n</details>\n\n<details>\n<summary><strong>Roo Code</strong></summary>\n\n#### Local (Stdio)\n\nConfigure in Roo Code settings:\n\n```json\n{\n  \"mcpServers\": {\n    \"ibmi-mcp\": {\n      \"command\": \"npx\",\n      \"args\": [\"@ibm/ibmi-mcp-server@latest\", \"-y\", \"--transport\", \"stdio\", \"--tools\", \"/absolute/path/to/tools\"],\n      \"env\": {\n        \"DB2i_HOST\": \"your-ibmi-host.com\",\n        \"DB2i_USER\": \"your-username\",\n        \"DB2i_PASS\": \"your-password\",\n        \"DB2i_PORT\": \"8076\"\n      }\n    }\n  }\n}\n```\n\n#### Remote (HTTP)\n\n```json\n{\n  \"mcpServers\": {\n    \"ibmi-mcp\": {\n      \"url\": \"http://localhost:3010/mcp\",\n      \"type\": \"http\",\n      \"headers\": {\n        \"Authorization\": \"Bearer YOUR_ACCESS_TOKEN_HERE\"\n      }\n    }\n  }\n}\n```\n\n> 📖 [Roo Code MCP Documentation](https://docs.roocode.com/features/mcp/using-mcp-in-roo)\n\n</details>\n\n<details>\n<summary><strong>LM Studio</strong></summary>\n\n#### Local (Stdio)\n\n```json\n{\n  \"mcpServers\": {\n    \"ibmi-mcp\": {\n      \"command\": \"npx\",\n      \"args\": [\"@ibm/ibmi-mcp-server@latest\", \"-y\", \"--transport\", \"stdio\", \"--tools\", \"/absolute/path/to/tools\"],\n      \"env\": {\n        \"DB2i_HOST\": \"your-ibmi-host.com\",\n        \"DB2i_USER\": \"your-username\",\n        \"DB2i_PASS\": \"your-password\",\n        \"DB2i_PORT\": \"8076\",\n        \"NODE_OPTIONS\": \"--no-deprecation\"\n      }\n    }\n  }\n}\n```\n\n#### Remote (HTTP)\n\n```json\n{\n  \"mcpServers\": {\n    \"ibmi-mcp\": {\n      \"url\": \"http://localhost:3010/mcp\",\n      \"type\": \"http\",\n      \"headers\": {\n        \"Authorization\": \"Bearer YOUR_ACCESS_TOKEN_HERE\"\n      }\n    }\n  }\n}\n```\n\n> 📖 [LM Studio MCP Support](https://lmstudio.ai/blog/lmstudio-v0.3.17)\n\n</details>\n\n<details>\n<summary><strong>OpenCode</strong></summary>\n\n#### Local (Stdio)\n\nAdd local MCP servers using \"type\": \"local\" within the MCP object. Multiple MCP servers can be added. The key string for each server can be any arbitrary name.\n\n**opencode.json**:\n```json\n{\n  \"$schema\": \"https://opencode.ai/config.json\",\n  \"mcp\": {\n    \"ibmi-mcp\": {\n      \"type\": \"local\",\n      \"enabled\": true,\n      \"command\": [\"npx\", \"@ibm/ibmi-mcp-server@latest\", \"-y\", \"--transport\", \"stdio\", \"--tools\", \"/absolute/path/to/tools\"],\n      \"environment\": {\n        \"DB2i_HOST\": \"your-ibmi-host.com\",\n        \"DB2i_USER\": \"your-username\",\n        \"DB2i_PASS\": \"your-password\",\n        \"DB2i_PORT\": \"8076\"\n      },\n      \"enabled\": true\n    }\n  }\n}\n```\n\nYou can also disable a server by setting enabled to false. This is useful if you want to temporarily disable a server without removing it from your config.\n\n#### Remote (HTTP)\n\n```json\n{\n  \"$schema\": \"https://opencode.ai/config.json\",\n  \"mcp\": {\n    \"ibmi-mcp\": {\n      \"type\": \"remote\",\n      \"enabled\": true,\n      \"url\": \"http://localhost:3010/mcp\",\n      \"headers\": {\n        \"Authorization\": \"Bearer YOUR_ACCESS_TOKEN_HERE\"\n      }\n    }\n  }\n}\n```\n\n> 📖 [OpenCode MCP Documentation](https://opencode.ai/docs/mcp-servers)\n\n</details>\n\n<details>\n<summary><strong>Gemini CLI</strong></summary>\n\nSee [Gemini CLI Configuration](https://google-gemini.github.io/gemini-cli/docs/tools/mcp-server.html) for details.\n1.  Open the Gemini CLI settings file. The location is `~/.gemini/settings.json` (where `~` is your home directory).\n2.  Add the following to the `mcpServers` object in your `settings.json` file:\n\n#### Local (Stdio)\n\nConfigure in Gemini CLI settings:\n\n```json\n{\n  \"mcpServers\": {\n    \"ibmi-mcp\": {\n      \"command\": \"npx\",\n      \"args\": [\"@ibm/ibmi-mcp-server@latest\", \"-y\", \"--transport\", \"stdio\", \"--tools\", \"/absolute/path/to/tools\"],\n      \"env\": {\n        \"DB2i_HOST\": \"your-ibmi-host.com\",\n        \"DB2i_USER\": \"your-username\",\n        \"DB2i_PASS\": \"your-password\",\n        \"DB2i_PORT\": \"8076\"\n      }\n    }\n  }\n}\n```\n\n#### Remote (HTTP)\n\n```json\n{\n  \"mcpServers\": {\n    \"ibmi-mcp\": {\n      \"url\": \"http://localhost:3010/mcp\",\n      \"type\": \"http\",\n      \"headers\": {\n        \"Authorization\": \"Bearer YOUR_ACCESS_TOKEN_HERE\"\n      }\n    }\n  }\n}\n```\n\n> 📖 [Gemini CLI MCP Documentation](https://google-gemini.github.io/gemini-cli/docs/tools/mcp-server.html)\n\n</details>\n\n<details>\n<summary><strong>Cline</strong></summary>\n\nCline supports MCP servers through both the marketplace and manual configuration.\n\n**Prerequisites:** Ensure [Cline](https://marketplace.visualstudio.com/items?itemName=saoudrizwan.claude-dev) is installed in VSCode.\n\n#### Option 1: Manual Configuration\n\n**For Local (Stdio) Server:**\n\n1. Open **Cline**\n2. Click the hamburger menu icon (☰) → **MCP Servers**\n3. Choose **Local Servers** tab\n4. Click **Edit Configuration**\n5. Add the configuration:\n\n```json\n{\n  \"mcpServers\": {\n    \"ibmi-mcp\": {\n      \"command\": \"npx\",\n      \"args\": [\"@ibm/ibmi-mcp-server@latest\", \"-y\", \"--transport\", \"stdio\", \"--tools\", \"/absolute/path/to/tools\"],\n      \"env\": {\n        \"DB2i_HOST\": \"your-ibmi-host.com\",\n        \"DB2i_USER\": \"your-username\",\n        \"DB2i_PASS\": \"your-password\",\n        \"DB2i_PORT\": \"8076\"\n      }\n    }\n  }\n}\n```\n\n**For Remote (HTTP) Server:**\n\n1. Open **Cline**\n2. Click the hamburger menu icon (☰) → **MCP Servers**\n3. Choose **Remote Servers** tab\n4. Click **Edit Configuration**\n5. Add the configuration:\n\n```json\n{\n  \"mcpServers\": {\n    \"ibmi-mcp\": {\n      \"url\": \"http://localhost:3010/mcp\",\n      \"type\": \"streamableHttp\",\n      \"headers\": {\n        \"Authorization\": \"Bearer YOUR_ACCESS_TOKEN_HERE\"\n      }\n    }\n  }\n}\n```\n\n> 📖 [Cline MCP Documentation](https://docs.cline.bot/mcp/mcp-overview#mcp-overview) | [Cline MCP Marketplace](https://cline.bot/mcp-marketplace)\n\n</details>\n\n<details>\n<summary><strong>Python Clients (Agno, Official MCP SDK)</strong></summary>\n\n#### Remote (HTTP) with Agno\n\n```python\nimport asyncio\nimport os\nfrom agno.agent import Agent\nfrom agno.tools.mcp import MCPTools, StreamableHTTPClientParams\n\n# Get access token from environment\ntoken = os.environ.get('IBMI_MCP_ACCESS_TOKEN')\nif not token:\n    raise ValueError(\"IBMI_MCP_ACCESS_TOKEN not set\")\n\nurl = \"http://localhost:3010/mcp\"\nserver_params = StreamableHTTPClientParams(\n    url=url,\n    headers={\"Authorization\": f\"Bearer {token}\"}\n)\n\nasync def main():\n    async with MCPTools(\n        url=url,\n        server_params=server_params,\n        transport=\"streamable-http\"\n    ) as tools:\n        # List available tools\n        result = await tools.session.list_tools()\n        print(f\"Available tools: {[t.name for t in result.tools]}\")\n\n        # Create agent\n        agent = Agent(\n            model=\"openai:gpt-4o\",  # or your preferred model\n            tools=[tools],\n            name=\"ibmi-agent\",\n            show_tool_calls=True\n        )\n\n        # Run query\n        await agent.aprint_response(\"What is the system status?\")\n\nif __name__ == \"__main__\":\n    asyncio.run(main())\n```\n\n#### Remote (HTTP) with Official MCP SDK\n\n```python\nimport asyncio\nimport os\nfrom mcp import ClientSession\nfrom mcp.client.streamable_http import streamablehttp_client\n\nasync def main():\n    token = os.environ.get('IBMI_MCP_ACCESS_TOKEN')\n    if not token:\n        raise ValueError(\"IBMI_MCP_ACCESS_TOKEN not set\")\n\n    headers = {\"Authorization\": f\"Bearer {token}\"}\n\n    async with streamablehttp_client(\n        \"http://localhost:3010/mcp\",\n        headers=headers\n    ) as (read_stream, write_stream, _):\n        async with ClientSession(read_stream, write_stream) as session:\n            await session.initialize()\n\n            # List tools\n            tools = await session.list_tools()\n            print(f\"Tools: {[t.name for t in tools.tools]}\")\n\n            # Execute a tool\n            result = await session.call_tool(\"system_status\", {})\n            print(result)\n\nif __name__ == \"__main__\":\n    asyncio.run(main())\n```\n\n> 📖 [MCP Python SDK](https://github.com/modelcontextprotocol/python-sdk) | [Agno Framework](https://github.com/agno-agi/agno)\n\n</details>\n\n<details>\n<summary><strong>IBM watsonx Orchestrate</strong></summary>\n\nMCP servers can be added directly in IBM watsonx Orchestrate GUI or using the Agent Development Kit (ADK). Refer to [Adding MCP servers in IBM watsonx Orchestrate](https://www.ibm.com/docs/en/watsonx/watson-orchestrate/base?topic=tools-mcp-servers#adding-mcp-servers) for more details.\n\n#### Local (Stdio)\n\nIt's not supported to run a local IBM i MCP server in IBM watsonx Orchestrate for now. Support will be added in a later release.\n\n#### Remote (HTTP)\n\nThe example below shows how to add a remote IBM i MCP server in IBM watsonx Orchestrate using using the Agent Development Kit (ADK). Refer to [Adding remote MCP server in IBM watsonx Orchestrate](https://developer.watson-orchestrate.ibm.com/tools/toolkits/remote_mcp_toolkits) for more details.\n\n1. Create **Connections** to contain the environment variables and authentication token for the MCP server\n\n    ```bash\n    # create connection for environment variables\n    orchestrate connections add -a <application_id>\n    orchestrate connections configure -a <application_id> --env draft -t team -k key_value\n    orchestrate connections set-credentials -a application_id --env draft -e \"DB2i_HOST=your-ibmi-host.com\" -e \"DB2i_USER=your-username\" -e \"DB2i_PASS=your-password\" -e \"DB2i_PORT=8076\"\n    # create connection for credential user for authentication if authentication is enabled on the MCP server\n    orchestrate connections add -a <application_id>\n    orchestrate connections configure -a <application_id> --env draft --type team --kind bearer\n    orchestrate connections set-credentials -a <application_id> --env draft --token <bearer_token>\n    ```\n\n2. Import remote IBM i MCP server by **Importing remote MCP toolkits**\n\n    ```bash\n    orchestrate toolkits add \\\n    --kind mcp \\\n    --name <toolkit_name> \\\n    --description \"toolkit description\"  \\\n    --url \"<mcp_url>\"  \\\n    --transport \"streamable_http\" \\\n    --tools \"*\" \\\n    --app-id \"<connection_application_id>\"\n    ```\n\n3. Create an agent to use the imported toolkit\n\n    ```bash\n    orchestrate agents create \\\n    --name <agent_name> \\\n    --kind native \\\n    --description \"agent description\" \\\n    --llm groq/openai/gpt-oss-120b \\\n    --style default \\\n    --tools <toolkit_name> \\\n    --output \"agent_name.agent.yaml\n    ```\n\n> **Network Configuration for On-Premises Deployments:** If the MCP server is deployed on an on-premises IBM i system behind an enterprise firewall, proper network configuration must be implemented to ensure accessibility from IBM watsonx Orchestrate. IBM Cloud Satellite Connector provides a secure solution for this scenario by establishing connectivity between on-premises resources and IBM Cloud services. For detailed information, refer to the [IBM Cloud Satellite Connector documentation](https://cloud.ibm.com/docs/satellite?topic=satellite-understand-connectors).\n\n</details>\n\n---\n\n## 🧩 SQL Tool Configuration\n\nThe primary way to configure tools used by this MCP server is through `tools.yaml` files (see `tools/` for examples). There are 3 main sections to each yaml file: `sources`, `tools`, and `toolsets`. Below is a breakdown of each section.\n\n### Sources\n\nThe sources section of your `tools.yaml` defines the data sources the MCP server has access to:\n\n```yaml\nsources:\n  ibmi-system:\n    host: ${DB2i_HOST}\n    user: ${DB2i_USER}\n    password: ${DB2i_PASS}\n    port: 8076\n    ignore-unauthorized: true\n```\n\n> [!NOTE]\n> Set `DB2i_HOST`, `DB2i_USER`, and `DB2i_PASS` in the server `.env` file (or reference them in YAML as `${DB2i_*}`). **`DB2i_PORT`** applies to the singleton pool (built-in tools) and to YAML sources that use `port: ${DB2i_PORT}`; the example above uses literal `port: 8076`, so changing `.env` alone does not retarget YAML tools unless you switch to `${DB2i_PORT}`. Use hostname-only values for `DB2i_HOST` — do not embed `:port` in the host. See [Configuration](#️-configuration) for all available settings.\n\n### Tools\n\nThe tools section of your `tools.yaml` defines the actions your agent can take: what kind of tool it is, which source(s) it affects, what parameters it uses, etc.\n\n```yaml\ntools:\n  system_status:\n    source: ibmi-system\n    description: \"Overall system performance statistics with CPU, memory, and I/O metrics\"\n    parameters: []\n    statement: |\n      SELECT * FROM TABLE(QSYS2.SYSTEM_STATUS(RESET_STATISTICS=>'YES',DETAILED_INFO=>'ALL')) X\n```\n\n### Toolsets\n\nThe toolsets section of your `tools.yaml` allows you to define groups of tools that you want to be able to load together. This can be useful for defining different sets for different agents or different applications.\n\n```yaml\ntoolsets:\n  performance:\n    tools:\n      - system_status\n      - system_activity\n      - remote_connections\n      - memory_pools\n      - temp_storage_buckets\n      - unnamed_temp_storage\n      - http_server\n      - system_values\n      - collection_services\n      - collection_categories\n      - active_job_info\n```\n\n> [!TIP]\n> **Advanced Tool Configuration:** For detailed documentation on creating custom SQL tools, parameter validation, advanced queries, and more, see [tools/README.md](../tools/README.md).\n\n---\n\n## 🤖 IBM i Agents\n\nIBM i Agents are specialized components designed to interact with the IBM i system, providing capabilities such as monitoring, management, and automation.\n\n### Key Features\n- **Integration with IBM i:** Seamless integration with IBM i system APIs and tools.\n- **Modular Architecture:** Easily extendable and customizable to fit specific use cases.\n- **Real-time Monitoring:** Continuous monitoring of system performance and health.\n\n### Getting Started\n\nNavigate to the `agents` directory and follow the setup instructions in the [README](../agents/README.md). This includes details on configuration, running agents, and examples. Most agent examples require the MCP server to be running in HTTP mode. Read the docs for each agent example for details.\n\n  \n\n\n\n## ⚙️ Configuration\n\nThe server is configured using environment variables, typically set in a `.env` file at the project root. Configuration is organized into logical groups for easier management.\n\n**Quick Start:**\n```bash\ncp .env.example .env\ncode .env  # Edit with your settings\n```\n\n---\n\n<details>\n<summary><strong>🖥️ MCP Server Settings</strong></summary>\n\nCore server configuration including server identity, transport mode, and logging.\n\n| Variable | Description | Default | Required |\n|----------|-------------|---------|----------|\n| `MCP_SERVER_NAME` | Server name identifier for MCP protocol | Package name from `package.json` | No |\n| `MCP_SERVER_VERSION` | Server version for MCP protocol | Version from `package.json` | No |\n| `MCP_TRANSPORT_TYPE` | Transport protocol: `stdio` (local) or `http` (remote) | `stdio` | No |\n| `MCP_LOG_LEVEL` | Logging verbosity: `error`, `warn`, `info`, `debug` | `debug` | No |\n| `LOGS_DIR` | Directory for log files (relative to project root) | `logs` | No |\n| `NODE_ENV` | Node environment: `development`, `production`, `test` | `development` | No |\n\n**Examples:**\n```bash\n# Development with verbose logging\nMCP_SERVER_NAME=ibmi-mcp-dev\nMCP_TRANSPORT_TYPE=http\nMCP_LOG_LEVEL=debug\nNODE_ENV=development\n\n# Production with minimal logging\nMCP_SERVER_NAME=ibmi-mcp-prod\nMCP_TRANSPORT_TYPE=stdio\nMCP_LOG_LEVEL=warn\nNODE_ENV=production\n```\n\n</details>\n\n<details>\n<summary><strong>🌐 HTTP Transport Settings</strong></summary>\n\nConfiguration for HTTP transport mode, including network settings, session management, and CORS.\n\n| Variable | Description | Default | Required |\n|----------|-------------|---------|----------|\n| `MCP_HTTP_PORT` | HTTP server port | `3010` | No |\n| `MCP_HTTP_HOST` | HTTP server bind address | `127.0.0.1` | No |\n| `MCP_HTTP_ENDPOINT_PATH` | MCP endpoint path | `/mcp` | No |\n| `MCP_SESSION_MODE` | Session handling: `stateless`, `stateful`, or `auto` | `auto` | No |\n| `MCP_STATEFUL_SESSION_STALE_TIMEOUT_MS` | Timeout for idle stateful sessions (milliseconds) | `1800000` (30 min) | No |\n| `MCP_HTTP_MAX_PORT_RETRIES` | Max attempts to find available port if default is in use | `15` | No |\n| `MCP_HTTP_PORT_RETRY_DELAY_MS` | Delay between port retry attempts (milliseconds) | `50` | No |\n| `MCP_ALLOWED_ORIGINS` | Comma-separated CORS allowed origins | None (all origins blocked) | No |\n| `MCP_ALLOWED_HOSTS` | Comma-separated `Host` header allowlist (extends the always-allowed loopback set); `*` disables Host checking only, not Origin checking | None (loopback only) | No |\n| `MCP_ALLOW_UNAUTHENTICATED_HTTP` | Explicitly permit unauthenticated HTTP on a non-loopback bind with IBM i credentials present | `false` | No |\n\n**Session Modes:**\n- **`auto`**: Automatically detects client capabilities and uses the best session mode\n- **`stateful`**: Maintains persistent sessions with connection state (best for long-running interactions)\n- **`stateless`**: Each request is independent (best for load balancing and horizontal scaling)\n\n**Examples:**\n```bash\n# Development server with CORS for local web clients (loopback-only bind)\nMCP_HTTP_PORT=3010\nMCP_HTTP_HOST=127.0.0.1\nMCP_SESSION_MODE=auto\nMCP_ALLOWED_ORIGINS=http://localhost:3000,http://localhost:5173\n\n# Production server with strict security\nMCP_HTTP_PORT=443\nMCP_HTTP_HOST=0.0.0.0                       # non-loopback bind requires MCP_AUTH_MODE != none\nMCP_SESSION_MODE=stateful\nMCP_ALLOWED_HOSTS=mcp.example.com           # public hostname(s) this server is reached at\nMCP_ALLOWED_ORIGINS=https://app.example.com,https://dashboard.example.com\nMCP_STATEFUL_SESSION_STALE_TIMEOUT_MS=3600000  # 1 hour\n```\n\n</details>\n\n<details>\n<summary><strong>🛡️ Rate Limiting (HTTP Only)</strong></summary>\n\nControls request rate limiting for the HTTP transport. Rate limiting prevents abuse and manages server load. For agentic AI workflows with parallel tool calls, increase the limit or disable rate limiting entirely.\n\n| Variable | Description | Default | Required |\n|----------|-------------|---------|----------|\n| `MCP_RATE_LIMIT_ENABLED` | Enable or disable HTTP rate limiting | `true` | No |\n| `MCP_RATE_LIMIT_MAX_REQUESTS` | Maximum requests allowed per window | `100` | No |\n| `MCP_RATE_LIMIT_WINDOW_MS` | Rate limit window in milliseconds | `900000` (15 min) | No |\n| `MCP_RATE_LIMIT_SKIP_DEV` | Skip rate limiting when `NODE_ENV=development` | `false` | No |\n\n**Examples:**\n```bash\n# Default: 100 requests per 15 minutes\nMCP_RATE_LIMIT_ENABLED=true\nMCP_RATE_LIMIT_MAX_REQUESTS=100\nMCP_RATE_LIMIT_WINDOW_MS=900000\n\n# Agentic workflows: higher limit, shorter window\nMCP_RATE_LIMIT_MAX_REQUESTS=1000\nMCP_RATE_LIMIT_WINDOW_MS=60000\n\n# Disable rate limiting entirely (trusted environments)\nMCP_RATE_LIMIT_ENABLED=false\n```\n\n> **Docker / Reverse Proxy**: The server reads `X-Forwarded-For` and `X-Real-IP` headers for client identification. When these are absent (e.g., behind Docker without proxy header forwarding), it falls back to the TCP socket's remote address. Configure your reverse proxy to forward these headers for accurate per-client rate limiting.\n\n</details>\n\n<details>\n<summary><strong>🔄 Connection Pool Timeouts</strong></summary>\n\nControls automatic cleanup of idle Mapepire connection pools and query execution timeouts. Essential for cloud deployments (Railway, Heroku, etc.) where reverse proxies silently kill idle TCP connections, causing queries on stale WebSocket connections to hang indefinitely.\n\n| Variable | Description | Default | Required |\n|----------|-------------|---------|----------|\n| `MCP_POOL_IDLE_TIMEOUT_MS` | Idle timeout for connection pools (ms). Pools closed after inactivity. Fresh connections established automatically on next request. Set to `0` to disable. | `300000` (5 min) | No |\n| `MCP_POOL_QUERY_TIMEOUT_MS` | Query execution timeout (ms). Queries aborted after this period. Pool re-initialized on next request after timeout. Set to `0` to disable. | `30000` (30s) | No |\n\n**Examples:**\n```bash\n# Default: 5-minute idle timeout, 30-second query timeout\nMCP_POOL_IDLE_TIMEOUT_MS=300000\nMCP_POOL_QUERY_TIMEOUT_MS=30000\n\n# Cloud deployment: shorter idle timeout for aggressive proxies\nMCP_POOL_IDLE_TIMEOUT_MS=60000\nMCP_POOL_QUERY_TIMEOUT_MS=30000\n\n# Disable both timeouts (stable network environments only)\nMCP_POOL_IDLE_TIMEOUT_MS=0\nMCP_POOL_QUERY_TIMEOUT_MS=0\n```\n\n> **How it works:** The idle timer checks pools at an interval of `max(10s, timeout/2)`. When a pool exceeds the idle timeout, it is closed — the next query triggers transparent re-initialization via the existing lazy-init path. The query timeout wraps `pool.execute()` with `Promise.race()`, so dead connections fail fast instead of hanging. On timeout, the pool is marked unhealthy and closed for re-initialization.\n\n</details>\n\n<details>\n<summary><strong>🔐 Authentication & Authorization</strong></summary>\n\nSecurity configuration for protecting the MCP server and authenticating clients.\n\n### General Authentication\n\n| Variable | Description | Default | Required |\n|----------|-------------|---------|----------|\n| `MCP_AUTH_MODE` | Authentication mode: `none`, `jwt`, `oauth`, `ibmi` | `none` | No |\n\n### JWT Authentication\n\nRequired when `MCP_AUTH_MODE=jwt`.\n\n| Variable | Description | Default | Required |\n|----------|-------------|---------|----------|\n| `MCP_AUTH_SECRET_KEY` | Secret key for signing/verifying JWT tokens (min 32 characters) | None | ✅ Yes (for JWT mode) |\n\n### OAuth Authentication\n\nRequired when `MCP_AUTH_MODE=oauth`.\n\n| Variable | Description | Default | Required |\n|----------|-------------|---------|----------|\n| `OAUTH_ISSUER_URL` | OAuth authorization server issuer URL | None | ✅ Yes (for OAuth mode) |\n| `OAUTH_JWKS_URI` | OAuth JWKS endpoint for public key verification | None | No |\n| `OAUTH_AUDIENCE` | Expected audience identifier for this MCP server | None | ✅ Yes (for OAuth mode) |\n\n### IBM i HTTP Authentication\n\nRequired when `MCP_AUTH_MODE=ibmi`. See [IBM i HTTP Authentication](#ibm-i-http-authentication-beta) for detailed setup.\n\n| Variable | Description | Default | Required |\n|----------|-------------|---------|----------|\n| `IBMI_HTTP_AUTH_ENABLED` | Enable IBM i authentication endpoints | `false` | ✅ Yes (for IBM i mode) |\n| `IBMI_AUTH_ALLOW_HTTP` | Allow HTTP (non-HTTPS) authentication requests | `false` | No |\n| `IBMI_AUTH_TOKEN_EXPIRY_SECONDS` | Token lifetime in seconds | `3600` (1 hour) | No |\n| `IBMI_AUTH_CLEANUP_INTERVAL_SECONDS` | How often to clean up expired tokens (seconds) | `300` (5 minutes) | No |\n| `IBMI_AUTH_MAX_CONCURRENT_SESSIONS` | Maximum concurrent authenticated sessions | `100` | No |\n| `IBMI_AUTH_PRIVATE_KEY_PATH` | Path to RSA private key for encryption | None | ✅ Yes (for IBM i mode) |\n| `IBMI_AUTH_PUBLIC_KEY_PATH` | Path to RSA public key for encryption | None | ✅ Yes (for IBM i mode) |\n| `IBMI_AUTH_KEY_ID` | Identifier for the RSA keypair | None | ✅ Yes (for IBM i mode) |\n\n**Examples:**\n```bash\n# No authentication (development only)\nMCP_AUTH_MODE=none\n\n# JWT authentication\nMCP_AUTH_MODE=jwt\nMCP_AUTH_SECRET_KEY=\"your-very-secret-key-at-least-32-characters-long\"\n\n# OAuth authentication\nMCP_AUTH_MODE=oauth\nOAUTH_ISSUER_URL=https://auth.example.com\nOAUTH_AUDIENCE=https://api.example.com/mcp\nOAUTH_JWKS_URI=https://auth.example.com/.well-known/jwks.json\n\n# IBM i authentication (see docs for keypair generation)\nMCP_AUTH_MODE=ibmi\nIBMI_HTTP_AUTH_ENABLED=true\nIBMI_AUTH_KEY_ID=production\nIBMI_AUTH_PRIVATE_KEY_PATH=secrets/private.pem\nIBMI_AUTH_PUBLIC_KEY_PATH=secrets/public.pem\nIBMI_AUTH_ALLOW_HTTP=false  # HTTPS only in production\nIBMI_AUTH_TOKEN_EXPIRY_SECONDS=7200  # 2 hours\n```\n\n**⚠️ Security Notes:**\n- **Never** use `MCP_AUTH_MODE=none` in production\n- **Always** use `IBMI_AUTH_ALLOW_HTTP=false` in production (requires HTTPS)\n- Generate strong secret keys (32+ characters) for JWT mode\n- Rotate keys regularly for enhanced security\n\n</details>\n\n<details>\n<summary><strong>🗄️ IBM i Database Connection</strong></summary>\n\nConfiguration for connecting to IBM i Db2 for i databases via Mapepire.\n\n| Variable | Description | Default | Required |\n|----------|-------------|---------|----------|\n| `DB2i_HOST` | IBM i system hostname or IP address | None | ✅ Yes (for SQL tools) |\n| `DB2i_USER` | IBM i user profile for database connections | None | ✅ Yes (for SQL tools) |\n| `DB2i_PASS` | Password for IBM i user profile | None | ✅ Yes (for SQL tools) |\n| `DB2i_PORT` | Mapepire daemon/gateway port | `8076` | No (empty/unset also defaults to `8076`) |\n| `DB2i_IGNORE_UNAUTHORIZED` | Skip TLS certificate verification (for self-signed certs) | `true` | No |\n\n**Connection Flow:**\n1. Server connects to Mapepire daemon/gateway at `DB2i_HOST:DB2i_PORT`\n2. Authenticates using `DB2i_USER` and `DB2i_PASS`\n3. Executes SQL tools through authenticated connection pool\n\n**`DB2i_PORT` scope:** Applies to the singleton connection pool (built-in tools such as `execute_sql`, shared credentials) and the CLI. YAML SQL tools use each source's `port` field — literal value, `${DB2i_PORT}`, or omit for Mapepire default **8076**. Shipped YAML packs use literal `8076`; env alone does not override unless the YAML references `${DB2i_PORT}`. Restart the server after changing `.env` (YAML hot-reload does not re-read env vars).\n\n**Examples:**\n```bash\n# Development connection with self-signed certs\nDB2i_HOST=ibmi-dev.example.com\nDB2i_USER=DEVUSER\nDB2i_PASS=devpassword\nDB2i_PORT=8076\nDB2i_IGNORE_UNAUTHORIZED=true\n\n# Production connection with verified SSL\nDB2i_HOST=ibmi-prod.example.com\nDB2i_USER=PRODUSER\nDB2i_PASS=strongProductionPassword123\nDB2i_PORT=8076\nDB2i_IGNORE_UNAUTHORIZED=false  # Require valid SSL cert\n\n# Connecting to Mapepire gateway\nDB2i_HOST=mapepire-gateway.example.com\nDB2i_USER=APIUSER\nDB2i_PASS=apiPassword456\nDB2i_PORT=443  # Gateway on HTTPS\nDB2i_IGNORE_UNAUTHORIZED=false\n```\n\n**⚠️ Security Notes:**\n- Store credentials securely (use secrets management in production)\n- Use read-only accounts when possible\n- Set `DB2i_IGNORE_UNAUTHORIZED=false` with valid SSL certificates in production\n- Consider using IBM i authentication mode for per-user connection pooling\n\n</details>\n\n<details>\n<summary><strong>🧩 SQL YAML Tool Configuration</strong></summary>\n\nSettings for loading and managing SQL tools defined in YAML configuration files. See [Tools Documentation](../tools/README.md) for YAML tool development.\n\n### Tool Loading\n\n| Variable | Description | Default | Required |\n|----------|-------------|---------|----------|\n| `TOOLS_YAML_PATH` | Path to YAML tool configurations (file, directory, or glob) | None | No |\n| `SELECTED_TOOLSETS` | Comma-separated list of toolsets to load (filters available tools) | None (load all) | No |\n| `YAML_AUTO_RELOAD` | Automatically reload tools when YAML files change | `true` | No |\n\n### Configuration Merging\n\nWhen loading multiple YAML files, these settings control merge behavior:\n\n| Variable | Description | Default | Required |\n|----------|-------------|---------|----------|\n| `YAML_MERGE_ARRAYS` | Merge arrays from multiple files (`true`) or replace them (`false`) | `true` | No |\n| `YAML_ALLOW_DUPLICATE_TOOLS` | Allow duplicate tool names across files | `false` | No |\n| `YAML_ALLOW_DUPLICATE_SOURCES` | Allow duplicate source names across files | `false` | No |\n| `YAML_VALIDATE_MERGED` | Validate merged configuration before loading tools | `true` | No |\n\n**Path Resolution:**\n- **File**: `TOOLS_YAML_PATH=tools/performance.yaml`\n- **Directory**: `TOOLS_YAML_PATH=tools/` (loads all .yaml/.yml files)\n- **Glob pattern**: `TOOLS_YAML_PATH=tools/**/*.yaml`\n- **Multiple sources**: Use CLI `--tools` to override at runtime\n\n**Examples:**\n```bash\n# Load all tools from a directory\nTOOLS_YAML_PATH=tools/\nYAML_AUTO_RELOAD=true  # Hot reload on file changes\n\n# Load specific tools file\nTOOLS_YAML_PATH=tools/performance-tools.yaml\nSELECTED_TOOLSETS=monitoring,diagnostics\n\n# Advanced merging (multiple config sources)\nTOOLS_YAML_PATH=tools/\nYAML_MERGE_ARRAYS=true  # Combine toolsets from multiple files\nYAML_ALLOW_DUPLICATE_TOOLS=false  # Enforce unique tool names\nYAML_VALIDATE_MERGED=true  # Validate after merging\n\n# Production: disable hot reload\nTOOLS_YAML_PATH=/opt/mcp-tools/production.yaml\nYAML_AUTO_RELOAD=false\n```\n\n**CLI Override:**\n```bash\n# Override TOOLS_YAML_PATH at runtime\nnpx ibmi-mcp-server --tools ./my-custom-tools\n\n# Load specific toolsets only\nnpx ibmi-mcp-server --toolsets performance,security\n```\n\n</details>\n\n<details>\n<summary><strong>🛠️ Built-in Tools Configuration</strong></summary>\n\nSettings for controlling built-in MCP tools compiled into the server. These are separate from YAML-defined tools.\n\n## Built-in Tools Overview\n\nThe IBM i MCP Server includes built-in tools for schema discovery, query validation, and SQL execution. All built-in tools are **disabled by default** (except `describe_sql_object`) and must be explicitly enabled via CLI flags or environment variables.\n\n| Tool | Status | Purpose | CLI Flag | Env Variable |\n|------|--------|---------|----------|-------------|\n| `describe_sql_object` | ✅ Always enabled | Generate DDL for database objects | — | — |\n| `list_schemas` | Disabled by default | List available schemas/libraries | `--builtin-tools` | `IBMI_ENABLE_DEFAULT_TOOLS` |\n| `list_tables_in_schema` | Disabled by default | List tables, views, physical files in a schema | `--builtin-tools` | `IBMI_ENABLE_DEFAULT_TOOLS` |\n| `get_table_columns` | Disabled by default | Get column metadata for a table | `--builtin-tools` | `IBMI_ENABLE_DEFAULT_TOOLS` |\n| `get_related_objects` | Disabled by default | Find dependent objects for impact analysis | `--builtin-tools` | `IBMI_ENABLE_DEFAULT_TOOLS` |\n| `validate_query` | Disabled by default | Validate SQL syntax and verify referenced objects | `--builtin-tools` | `IBMI_ENABLE_DEFAULT_TOOLS` |\n| `execute_sql` | ⚠️ Disabled by default | Execute ad-hoc SQL queries (readonly by default) | `--execute-sql` | `IBMI_ENABLE_EXECUTE_SQL` |\n\n> **Tip:** Use `--builtin-tools --execute-sql` together for the full text-to-SQL workflow. Use `--builtin-tools` alone to let agents discover schema while routing queries through curated YAML tools.\n\n---\n\n### Describe SQL Object Tool\n\nThe `describe_sql_object` tool generates SQL DDL (Data Definition Language) statements for IBM i database objects using the `QSYS2.GENERATE_SQL` procedure. This tool is **always enabled** and extremely useful for providing AI models with detailed object structure information.\n\n**Features:**\n- Generates CREATE statements with full DDL syntax\n- Supports all major database object types (TABLE, VIEW, INDEX, PROCEDURE, FUNCTION, etc.)\n- Read-only operation - only describes objects, never modifies them\n- Returns complete DDL including columns, constraints, indexes, and object-specific properties\n\n**Supported Object Types:**\nALIAS, CONSTRAINT, FUNCTION, INDEX, MASK, PERMISSION, PROCEDURE, SCHEMA, SEQUENCE, TABLE, TRIGGER, TYPE, VARIABLE, VIEW, XSR\n\n**Use Cases:**\n- **Schema Discovery**: Help AI understand database structure before generating queries\n- **Documentation**: Generate CREATE statements for version control or documentation\n- **Migration**: Capture object definitions for recreating in other environments\n- **Debugging**: Understand object structure when troubleshooting issues\n\n**Example Usage:**\n```json\n{\n  \"object_name\": \"CUSTOMER\",\n  \"object_library\": \"SALES\",\n  \"object_type\": \"TABLE\"\n}\n```\n\n**Returns:**\n```sql\nCREATE TABLE SALES.CUSTOMER (\n  CUSTID INTEGER NOT NULL,\n  CUSTNAME VARCHAR(100),\n  EMAIL VARCHAR(255),\n  CREATED_DATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP,\n  PRIMARY KEY (CUSTID)\n);\n```\n\n> **Note:** This tool has no configuration - it's always available as a safe, read-only operation.\n\n---\n\n### Execute SQL Tool\n\nThe `execute_sql` tool allows MCP clients to run ad-hoc SQL queries against your IBM i Db2 database. This tool is **disabled by default** for security reasons.\n\nEnable via CLI flag `--execute-sql` or environment variables:\n\n| Variable | Description | Type | Default | Required |\n|----------|-------------|------|---------|----------|\n| `IBMI_ENABLE_EXECUTE_SQL` | Enable the built-in `execute_sql` tool | boolean | `false` | No |\n| `IBMI_EXECUTE_SQL_READONLY` | Control readonly mode (only SELECT queries) | boolean | `true` | No |\n\n**Security Features:**\nThe execute_sql tool includes multiple layers of protection:\n- **Read-only by default**: When `IBMI_EXECUTE_SQL_READONLY=true` (default), only SELECT/QUERY statements are allowed\n- **PARSE_STATEMENT validation**: Uses IBM i's native SQL parser (`QSYS2.PARSE_STATEMENT`) to validate query syntax and statement types\n- **AST/Regex validation**: Fast pattern matching to catch dangerous SQL keywords before execution\n- **Write operations opt-in**: Set `IBMI_EXECUTE_SQL_READONLY=false` to explicitly enable INSERT, UPDATE, DELETE, and other write operations\n- **Query length limit**: Maximum 10,000 characters per query\n- **Fail-closed security**: All validation failures result in query rejection\n- **Connection pooling**: Uses existing database connection pool with configured credentials\n\n**When to Enable:**\n- ✅ **Development (readonly)**: Enable with `IBMI_EXECUTE_SQL_READONLY=true` for rapid prototyping and debugging with SELECT queries\n- ✅ **Development (write)**: Enable with `IBMI_EXECUTE_SQL_READONLY=false` only when you explicitly need INSERT/UPDATE/DELETE operations\n- ✅ **Trusted environments**: Enable when all MCP clients are trusted\n- ✅ **Read-only use cases**: Safe to enable with default readonly mode for ad-hoc query capabilities\n- ❌ **Production**: Consider using YAML-defined tools with explicit, curated queries instead\n- ❌ **Untrusted clients**: Keep disabled if any client might abuse query capabilities\n- ❌ **Write access in production**: Never enable write mode (`IBMI_EXECUTE_SQL_READONLY=false`) in production without strict authentication and authorization\n\n**Examples:**\n\n```bash\n# Via CLI flags (recommended for development)\nnpx -y @ibm/ibmi-mcp-server@latest --execute-sql --transport http\nnpx -y @ibm/ibmi-mcp-server@latest --builtin-tools --execute-sql --transport http\n\n# Via environment variables\nIBMI_ENABLE_EXECUTE_SQL=true\nIBMI_EXECUTE_SQL_READONLY=true  # Default - only SELECT queries allowed\nDB2i_HOST=ibmi-dev.local\nDB2i_USER=DEVUSER\nDB2i_PASS=devpass\n\n# Enable write operations (INSERT/UPDATE/DELETE)\nIBMI_ENABLE_EXECUTE_SQL=true\nIBMI_EXECUTE_SQL_READONLY=false  # Allow write operations\n\n# Production: Use YAML tools instead (more controlled)\nnpx -y @ibm/ibmi-mcp-server@latest --tools /opt/mcp-tools/production.yaml\n```\n\n> **⚠️ Security Recommendation:** Keep `IBMI_EXECUTE_SQL_READONLY=true` (default) unless you explicitly need write operations. For production use cases requiring write access, consider using YAML-defined tools with parameterized queries instead of ad-hoc SQL.\n\n---\n\n### Comparison: Built-in Tools vs YAML Tools\n\n| Feature | Built-in Tools | YAML SQL Tools |\n|---------|----------------|----------------|\n| **Definition** | Compiled into server (TypeScript) | Defined in YAML files |\n| **Queries** | Ad-hoc (client provides SQL) or fixed logic | Pre-defined (curated by admin) |\n| **Control** | Feature flag + readonly mode | Full query + parameter control |\n| **Security** | PARSE_STATEMENT + AST/Regex validation | Explicit whitelist of queries |\n| **Use Case** | Development & exploration | Production & controlled access |\n| **Configuration** | Environment variables | `TOOLS_YAML_PATH` |\n| **Examples** | `list_schemas`, `get_table_columns`, `execute_sql`, `describe_sql_object` | Custom performance monitoring, security checks |\n\n**Recommendation:**\n- Use **`--builtin-tools`** for schema discovery — safe, read-only catalog queries that help AI understand your database\n- Use **`--execute-sql`** in development for quick ad-hoc query exploration\n- Use **YAML tools** in production for controlled, curated query access\n- Combine **`--builtin-tools` + YAML tools** to let agents discover schema while executing only curated queries\n\nYAML tools allow you to:\n- Curate specific queries with documentation\n- Control parameters and validation\n- Organize tools into logical toolsets\n- Provide explicit descriptions for each query\n\nSee [Tools Documentation](../tools/README.md) for creating YAML SQL tools.\n\n</details>\n\n<details>\n<summary><strong>📊 OpenTelemetry (Observability)</strong></summary>\n\nConfiguration for distributed tracing and metrics using OpenTelemetry.\n\n| Variable | Description | Default | Required |\n|----------|-------------|---------|----------|\n| `OTEL_ENABLED` | Enable OpenTelemetry instrumentation | `false` | No |\n| `OTEL_SERVICE_NAME` | Service name for telemetry data | `MCP_SERVER_NAME` or package name | No |\n| `OTEL_SERVICE_VERSION` | Service version for telemetry data | `MCP_SERVER_VERSION` or package version | No |\n| `OTEL_EXPORTER_OTLP_TRACES_ENDPOINT` | OTLP endpoint for trace export | None (logs to file) | No |\n| `OTEL_EXPORTER_OTLP_METRICS_ENDPOINT` | OTLP endpoint for metrics export | None (not exported) | No |\n| `OTEL_TRACES_SAMPLER_ARG` | Trace sampling ratio (0.0 to 1.0, where 1.0 = sample all) | `1.0` (100%) | No |\n| `OTEL_LOG_LEVEL` | OTel internal diagnostic log level | `INFO` | No |\n\n**Supported OTEL_LOG_LEVEL values:** `NONE`, `ERROR`, `WARN`, `INFO`, `DEBUG`, `VERBOSE`, `ALL`\n\n**Examples:**\n```bash\n# Development: local file logging only\nOTEL_ENABLED=true\nOTEL_SERVICE_NAME=ibmi-mcp-dev\nOTEL_LOG_LEVEL=DEBUG\n# Traces written to logs/traces/ directory\n\n# Production: export to Jaeger\nOTEL_ENABLED=true\nOTEL_SERVICE_NAME=ibmi-mcp-prod\nOTEL_SERVICE_VERSION=1.9.1\nOTEL_EXPORTER_OTLP_TRACES_ENDPOINT=http://jaeger:4318/v1/traces\nOTEL_EXPORTER_OTLP_METRICS_ENDPOINT=http://jaeger:4318/v1/metrics\nOTEL_TRACES_SAMPLER_ARG=0.1  # Sample 10% of traces\nOTEL_LOG_LEVEL=WARN\n\n# Production: export to cloud provider\nOTEL_ENABLED=true\nOTEL_EXPORTER_OTLP_TRACES_ENDPOINT=https://otlp.example.com/v1/traces\nOTEL_EXPORTER_OTLP_METRICS_ENDPOINT=https://otlp.example.com/v1/metrics\nOTEL_TRACES_SAMPLER_ARG=1.0  # Sample all traces\n```\n\n**Instrumentation Coverage:**\n- All MCP tool executions\n- HTTP requests and responses\n- Database queries (SQL tools)\n- Authentication flows\n- Custom spans for critical operations\n\n</details>\n\n<details>\n<summary><strong>🔌 OAuth Proxy (Advanced)</strong></summary>\n\nConfiguration for OAuth proxy endpoints (advanced use cases).\n\n| Variable | Description | Default | Required |\n|----------|-------------|---------|----------|\n| `OAUTH_PROXY_AUTHORIZATION_URL` | OAuth authorization endpoint URL | None | No |\n| `OAUTH_PROXY_TOKEN_URL` | OAuth token endpoint URL | None | No |\n| `OAUTH_PROXY_REVOCATION_URL` | OAuth token revocation endpoint URL | None | No |\n| `OAUTH_PROXY_ISSUER_URL` | OAuth issuer URL for proxy | None | No |\n| `OAUTH_PROXY_SERVICE_DOCUMENTATION_URL` | Service documentation URL | None | No |\n| `OAUTH_PROXY_DEFAULT_CLIENT_REDIRECT_URIS` | Comma-separated default redirect URIs | None | No |\n\n**Example:**\n```bash\nOAUTH_PROXY_AUTHORIZATION_URL=https://auth.example.com/oauth/authorize\nOAUTH_PROXY_TOKEN_URL=https://auth.example.com/oauth/token\nOAUTH_PROXY_REVOCATION_URL=https://auth.example.com/oauth/revoke\nOAUTH_PROXY_ISSUER_URL=https://auth.example.com\nOAUTH_PROXY_SERVICE_DOCUMENTATION_URL=https://docs.example.com/oauth\nOAUTH_PROXY_DEFAULT_CLIENT_REDIRECT_URIS=http://localhost:3000/callback,https://app.example.com/callback\n```\n\n> **Note:** OAuth proxy features are for advanced integration scenarios. Most users should use standard OAuth authentication via `MCP_AUTH_MODE=oauth`.\n\n</details>\n\n---\n\n### Configuration Best Practices\n\n**Development:**\n```bash\n# Recommended development .env\nMCP_TRANSPORT_TYPE=http\nMCP_HTTP_PORT=3010\nMCP_SESSION_MODE=auto\nMCP_LOG_LEVEL=debug\nMCP_AUTH_MODE=none  # Or ibmi with allow HTTP\nNODE_ENV=development\n\nDB2i_HOST=ibmi-dev.local\nDB2i_USER=DEVUSER\nDB2i_PASS=devpass\nDB2i_IGNORE_UNAUTHORIZED=true\n\nTOOLS_YAML_PATH=tools/\nYAML_AUTO_RELOAD=true\nOTEL_ENABLED=true\n```\n\n**Production:**\n```bash\n# Recommended production .env\nMCP_TRANSPORT_TYPE=http\nMCP_HTTP_PORT=3010\nMCP_SESSION_MODE=auto\nMCP_LOG_LEVEL=warn\nMCP_AUTH_MODE=ibmi  # Or jwt/oauth\nNODE_ENV=production\n\nDB2i_HOST=ibmi-prod.example.com\nDB2i_USER=PRODUSER\nDB2i_PASS=${SECURE_PASSWORD_FROM_VAULT}\nDB2i_IGNORE_UNAUTHORIZED=false  # Require valid SSL\n\nTOOLS_YAML_PATH=/opt/mcp-tools/production.yaml\nYAML_AUTO_RELOAD=false\nYAML_VALIDATE_MERGED=true\n\nIBMI_HTTP_AUTH_ENABLED=true\nIBMI_AUTH_ALLOW_HTTP=false  # HTTPS only\nIBMI_AUTH_PRIVATE_KEY_PATH=/opt/secrets/private.pem\nIBMI_AUTH_PUBLIC_KEY_PATH=/opt/secrets/public.pem\n\nOTEL_ENABLED=true\nOTEL_EXPORTER_OTLP_TRACES_ENDPOINT=https://otlp.example.com/v1/traces\n```\n\n**Security Checklist:**\n- ✅ Never commit `.env` files to version control\n- ✅ Use secrets management (Vault, AWS Secrets Manager, etc.) in production\n- ✅ Rotate credentials and keys regularly\n- ✅ Use HTTPS/TLS in production (`IBMI_AUTH_ALLOW_HTTP=false`)\n- ✅ Enable authentication (`MCP_AUTH_MODE != none`)\n- ✅ Use strong passwords (12+ characters, mixed case, numbers, symbols)\n- ✅ Restrict `MCP_ALLOWED_ORIGINS` to known domains\n- ✅ Set appropriate `IBMI_AUTH_MAX_CONCURRENT_SESSIONS` limits\n\n### DNS Rebinding Protection\n\nThe HTTP transport validates the `Host` and `Origin` headers of **every** request (including `/healthz` and `/api/v1/auth`) before any MCP dispatch. By default only loopback hosts (`localhost`, `127.0.0.0/8`, `::1`) are accepted; a non-wildcard `MCP_HTTP_HOST` bind address is accepted automatically, and `MCP_ALLOWED_HOSTS` **extends** the allowlist for deployments reached via a real hostname:\n\n```bash\nMCP_ALLOWED_HOSTS=mcp.example.com,mcp-internal.example.com\n# Behind a proxy that rewrites Host unpredictably (logs a warning at startup):\nMCP_ALLOWED_HOSTS=*\n```\n\nRequests carrying a browser `Origin` header must match `MCP_ALLOWED_ORIGINS` or resolve to an allowlisted hostname; the degenerate `Origin: null` (sandboxed iframes) is always rejected. **`MCP_ALLOWED_HOSTS=*` relaxes the `Host` check only — `Origin` is still enforced**, since a Host-rewriting proxy says nothing about which browser origins should be trusted.\n\n**This is a browser defense, not authentication.** Host validation stops a malicious web page from driving the server via DNS rebinding — it does nothing against an attacker with direct network reach, who can forge any header. For that reason the server **refuses to start** when all of the following hold: HTTP transport, authentication not enforced, a non-loopback bind, and IBM i credentials present (via `DB2i_*` env vars **or** a tools YAML). Enable authentication, bind to loopback, or — only as an explicit, understood risk — set `MCP_ALLOW_UNAUTHENTICATED_HTTP=true`. The published Docker image binds `0.0.0.0`, so containers handed credentials without authentication will hit this guard by design.\n\n> **\"Authentication not enforced\" includes `MCP_AUTH_MODE=jwt` with no `MCP_AUTH_SECRET_KEY`.** Outside production that combination puts the JWT strategy into a development bypass where *any* bearer token is accepted, so the guard treats it as unauthenticated rather than trusting the mode name.\n\nKubernetes liveness probes that target the pod IP will receiv","readmeFilename":"README.md"}