{ "name": "infra-lens-mcp", "version": "1.5.2", "packageManager": "pnpm@11.15.1", "mcpName": "io.github.oaslananka/infra-lens-mcp", "description": "MCP server that connects to Linux servers over SSH, collects live metrics, builds statistical baselines, detects anomalies with z-score analysis, and explains infrastructure health in plain English", "homepage": "https://github.com/oaslananka/infra-lens-mcp", "repository": { "type": "git", "url": "https://github.com/oaslananka/infra-lens-mcp.git" }, "bugs": { "url": "https://github.com/oaslananka/infra-lens-mcp/issues" }, "type": "module", "main": "dist/index.js", "exports": { ".": { "import": "./dist/index.js", "types": "./dist/index.d.ts" }, "./http": { "import": "./dist/server-http.js", "types": "./dist/server-http.d.ts" }, "./observability": { "import": "./dist/observe.js", "types": "./dist/observe.d.ts" } }, "bin": { "infra-lens-mcp": "dist/mcp.js", "mcp-infra-lens": "dist/mcp.js", "infra-lens-export": "dist/export-history.js", "infra-lens-observe": "dist/observe.js" }, "files": [ "dist", "README.md", "LICENSE", "CHANGELOG.md", "mcp.json", "server.json", "docs", "LICENSES", "REUSE.toml", "license-policy.json", "package-size-policy.json", "!docs/demo.gif", "!docs/superpowers", "security", "performance-budget.json", "examples" ], "scripts": { "build": "node --eval \"require('node:fs').rmSync('dist',{ recursive: true, force: true })\" && tsc -p tsconfig.json", "start": "node dist/mcp.js", "start:http": "node dist/server-http.js", "start:observe": "node dist/observe.js", "dev": "node --loader ts-node/esm src/mcp.ts", "format": "prettier --write \"src/**/*.ts\" \"test/**/*.ts\" \"scripts/**/*.mjs\"", "format:check": "prettier --check \"src/**/*.ts\" \"test/**/*.ts\" \"scripts/**/*.mjs\"", "typecheck": "tsc --noEmit", "lint": "pnpm run typecheck && eslint \"src/**/*.ts\" \"test/**/*.ts\" \"scripts/**/*.mjs\" && prettier --check \"src/**/*.ts\" \"test/**/*.ts\" \"scripts/**/*.mjs\"", "test": "node --experimental-vm-modules node_modules/jest/bin/jest.js --runInBand --testPathPatterns=unit", "test:coverage": "node --experimental-vm-modules node_modules/jest/bin/jest.js --runInBand --coverage --testPathPatterns=\"(unit|integration)\"", "test:integration": "node --experimental-vm-modules node_modules/jest/bin/jest.js --runInBand --testPathPatterns=integration", "test:e2e": "node scripts/run-ssh-e2e.mjs", "test:perf": "node --expose-gc scripts/check-performance.mjs", "test:observability": "node --experimental-vm-modules node_modules/jest/bin/jest.js --runInBand --runTestsByPath test/unit/observability-metrics.test.ts test/unit/observability-server.test.ts test/unit/otlp-metrics.test.ts test/unit/observability-runtime.test.ts", "test:release-state": "node scripts/check-release-state.mjs", "test:ci": "pnpm run test:coverage", "security": "pnpm run check:threat-model && pnpm run check:audit && pnpm run check:licenses && pnpm run security:semgrep", "check:dead-code": "knip --include files,exports,types", "check:package-size": "node scripts/check-package-size.mjs", "check:metadata": "node scripts/check-metadata.mjs", "check:licenses": "node scripts/check-licenses.mjs", "docs:api": "typedoc --options typedoc.json", "docs:api:check": "pnpm run docs:api && node scripts/check-api-docs.mjs && node scripts/check-doc-links.mjs", "sbom": "node scripts/generate-sbom.mjs", "package:dry-run": "pnpm run build && npm pack --dry-run", "release:dry-run": "node scripts/release-state.mjs --dry-run", "prepare": "pnpm run build", "test:e2e:raw": "node --experimental-vm-modules node_modules/jest/bin/jest.js --runInBand --testPathPatterns=e2e", "docs:links:check": "node scripts/check-doc-links.mjs", "check:renovate": "node scripts/check-renovate-config.mjs", "security:semgrep": "semgrep scan --config .semgrep.yml --error --metrics=off", "hooks:install": "node scripts/install-git-hooks.mjs", "precommit": "pnpm run format:check && pnpm run lint && pnpm run check:threat-model && pnpm run check:renovate && pnpm run check:codecov && pnpm run check:osv && pnpm run check:container-release && pnpm run check:overrides && pnpm run security:semgrep", "prepush": "pnpm run lint && pnpm run test:coverage && pnpm run test:abuse && pnpm run build && pnpm run check:golden && pnpm run check:metadata && pnpm run check:renovate && pnpm run check:codecov && pnpm run check:osv && pnpm run check:container-release && pnpm run check:overrides && pnpm run check:audit && pnpm run security:semgrep", "check:overrides": "node scripts/check-dependency-overrides.mjs", "check:audit": "node scripts/check-audit-policy.mjs", "sonar:secrets": "pre-commit run sonar-secrets --all-files --hook-stage manual", "check:threat-model": "node scripts/check-threat-model.mjs", "test:abuse": "pnpm run check:threat-model && node --experimental-vm-modules node_modules/jest/bin/jest.js --runInBand --runTestsByPath test/unit/http-security.test.ts test/unit/ssh.test.ts test/unit/logging.test.ts test/unit/mcp.test.ts test/unit/observability-metrics.test.ts test/unit/observability-server.test.ts test/unit/otlp-metrics.test.ts test/unit/observability-runtime.test.ts test/unit/incidents.test.ts test/unit/progress-cancellation.test.ts", "golden:update": "pnpm run build && node scripts/update-golden-incidents.mjs", "check:golden": "pnpm run build && node scripts/check-golden-incidents.mjs", "check:codecov": "node scripts/check-codecov-config.mjs", "workflow:lint": "pre-commit run actionlint-system --all-files --hook-stage manual", "workflow:security": "pre-commit run zizmor --all-files --hook-stage manual", "workflow:check": "pnpm run workflow:lint && pnpm run workflow:security", "check:container-release": "node scripts/check-container-release.mjs", "check:osv": "node scripts/check-osv-config.mjs", "test:incidents": "node --experimental-vm-modules node_modules/jest/bin/jest.js --runInBand --runTestsByPath test/unit/incidents.test.ts test/unit/baseline.test.ts test/unit/mcp.test.ts test/integration/tool-flow.test.ts", "test:analysis-lifecycle": "node --experimental-vm-modules node_modules/jest/bin/jest.js --runInBand --runTestsByPath test/unit/progress-cancellation.test.ts test/unit/collector.test.ts test/unit/ssh.test.ts test/unit/mcp.test.ts" }, "engines": { "node": ">=22" }, "keywords": [ "mcp", "model-context-protocol", "infrastructure", "monitoring", "anomaly-detection", "ssh", "devops", "sre", "observability", "ai", "claude", "linux", "metrics", "baseline", "z-score" ], "author": "Osman Aslan ", "license": "MIT", "publishConfig": { "access": "public" }, "dependencies": { "@modelcontextprotocol/sdk": "1.32.1", "better-sqlite3": "12.10.0", "simple-statistics": "7.8.9", "ssh2": "1.17.0", "zod": "4.4.3" }, "devDependencies": { "@eslint/js": "10.0.1", "@jest/globals": "30.4.1", "@types/better-sqlite3": "7.6.13", "@types/jest": "30.0.0", "@types/node": "24.13.3", "@types/ssh2": "1.15.5", "@typescript-eslint/eslint-plugin": "8.60.0", "@typescript-eslint/parser": "8.60.0", "eslint": "10.4.0", "globals": "17.6.0", "jest": "30.4.2", "jest-junit": "17.0.0", "knip": "6.14.2", "prettier": "3.8.3", "ts-jest": "29.4.14", "ts-node": "10.9.2", "typedoc": "0.28.19", "typedoc-plugin-markdown": "4.11.0", "typescript": "6.0.3" }, "funding": { "type": "github", "url": "https://github.com/sponsors/oaslananka" } }