{"_id":"@alsania-io/mcpnyx-u","_rev":"7-b7bb255f05a51231d668f3d091f0ea82","name":"@alsania-io/mcpnyx-u","dist-tags":{"latest":"1.4.0"},"versions":{"1.0.1":{"name":"@alsania-io/mcpnyx-u","version":"1.0.1","keywords":["mcp","nyx","nyx-unified","sse","websocket","server","modelcontextprotocol","http","stream","alsania","proxy"],"author":{"name":"Alsania I/O","email":"admin@alsania-io.com"},"license":"MIT","_id":"@alsania-io/mcpnyx-u@1.0.1","maintainers":[{"name":"sigmasauer07","email":"sigma.sauer07@gmail.com"},{"name":"echo-dev","email":"alsaniasoftware@gmail.com"},{"name":"sigmasauer-dev","email":"sigmasauer.dev@gmail.com"}],"homepage":"https://alsania-io.com","bugs":{"url":"https://github.com/alsania-dev/mcpnyx-unified/issues"},"bin":{"nyx-u":"dist/index.js","mcpnyx-u":"dist/index.js"},"dist":{"shasum":"f492b3dcde08f53bae151e51c628dd5d7e77892b","tarball":"https://registry.npmjs.org/@alsania-io/mcpnyx-u/-/mcpnyx-u-1.0.1.tgz","fileCount":156,"integrity":"sha512-sjUF9ovzVHCDPg87Lz5dev9PnvtiP2oFiUtLLSzh/X8eS0cYpisaTRlkQtSEUMpQTQaHyx2+VQoX6i5JKkAcWA==","signatures":[{"sig":"MEQCIAHGlArVSMRPbApCb3HQNT+ANdE6rPOwmbkk87SBDxE4AiAEwD8u/tNYePXpKQNKWTfyrG7gUtzOCp5sp/vaXffPgQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":733344},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"scripts":{"dev":"tsx src/index.ts","lint":"eslint src/**/*.ts","test":"echo \"No tests yet\" && exit 0","build":"tsc && node copy-gui.js","clean":"rm -rf ./dist && rm -rf ./node_modules","start":"node dist/index.js","format":"prettier --write .","prepare":"husky","lint:fix":"eslint src/**/*.ts --fix","format:check":"prettier --check .","start:dynamic":"nodemon dist/index.js"},"_npmUser":{"name":"sigmasauer07","email":"sigma.sauer07@gmail.com"},"prettier":{"tabWidth":2,"printWidth":120,"singleQuote":true,"trailingComma":"all"},"repository":{"url":"git+https://github.com/alsania-dev/mcpnyx-unified.git","type":"git"},"_npmVersion":"10.9.0","description":"MCPNyx Unified - Advanced MCP server for Nyx & Nyx-Unified extensions. Run multiple MCP stdio-based and SSE-based servers through a unified SSE/HTTP/WebSocket endpoint. Hot swapping config.","directories":{},"lint-staged":{"*.{ts,tsx}":["prettier --write","eslint --fix"]},"_nodeVersion":"22.12.0","dependencies":{"ws":"^8.18.3","zod":"^3.25.76","cors":"^2.8.5","uuid":"^13.0.0","yargs":"^18.0.0","express":"^5.1.0","body-parser":"^2.2.0","@alsania-io/mcpnyx":"1.0.5","@modelcontextprotocol/sdk":"^1.20.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.6","husky":"^9.1.7","eslint":"^9.39.0","ts-node":"^1.7.1","prettier":"^3.6.2","@types/ws":"^8.18.1","typescript":"^5.9.3","@types/cors":"^2.8.17","@types/node":"^24.9.2","@types/uuid":"^10.0.0","lint-staged":"^16.2.6","@types/yargs":"^17.0.34","@types/express":"^5.0.5","@typescript-eslint/parser":"^8.46.2","@typescript-eslint/eslint-plugin":"^8.46.2"},"_npmOperationalInternal":{"tmp":"tmp/mcpnyx-u_1.0.1_1769126914190_0.7123685693678894","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@alsania-io/mcpnyx-u","version":"1.1.0","keywords":["mcp","nyx","streamableHttp","sse","websocket","server","modelcontextprotocol","http","stream","alsania","proxy","remote","bridge"],"author":{"name":"Alsania I/O","email":"admin@alsania-io.com"},"license":"MIT","_id":"@alsania-io/mcpnyx-u@1.1.0","maintainers":[{"name":"sigmasauer07","email":"sigma.sauer07@gmail.com"},{"name":"echo-dev","email":"alsaniasoftware@gmail.com"},{"name":"sigmasauer-dev","email":"sigmasauer.dev@gmail.com"}],"homepage":"https://alsania-io.com","bugs":{"url":"https://github.com/alsania-dev/mcpnyx-unified/issues"},"bin":{"nyx-u":"dist/index.js","mcpnyx-u":"dist/index.js","mcpnyx-bridge":"dist/mcpb-stdio-bridge.js"},"dist":{"shasum":"c08bb7b8fa5f92c89596a513cd3b6265e41b6127","tarball":"https://registry.npmjs.org/@alsania-io/mcpnyx-u/-/mcpnyx-u-1.1.0.tgz","fileCount":162,"integrity":"sha512-bBuh4UxhXZAdE+ue2sYM6pooOkofWQlnWTFpElycXJnnUfIgfazSOK4orYr4VoTwgS+IQi+QnSr9i4i6AOLnTw==","signatures":[{"sig":"MEUCIQDWtKaG0O7VbSQbVVYxYjJLt0DFtZt9ieOL7v333GhZsgIgYUP5yKfoJnmHIkkuZeVFqdy3qm7bGoOuFLLJMB0kRIM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":747948},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"scripts":{"dev":"tsx src/index.ts --config ./config.json","lint":"eslint src/**/*.ts","test":"node test/bridge.test.mjs","build":"tsc && node copy-gui.js","clean":"rm -rf ./dist && rm -rf ./node_modules","start":"node dist/index.js","format":"prettier --write .","prepare":"husky","lint:fix":"eslint src/**/*.ts --fix","inspector":"npx @modelcontextprotocol/inspector dist/index.js","format:check":"prettier --check .","setup:remote":"chmod +x setup-remote.sh && ./setup-remote.sh","start:bridge":"node dist/mcpb-stdio-bridge.js","start:remote":"node dist/index.js --config ./config.json --port 3057 --host 0.0.0.0 --outputTransport streamableHttp --dynamic","connector:linux":"mkdir -p ~/.config/Claude && cp claude-desktop-config.json ~/.config/Claude/claude_desktop_config.json","connector:macos":"mkdir -p ~/Library/Application\\ Support/Claude && cp claude-desktop-config.json ~/Library/Application\\ Support/Claude/claude_desktop_config.json"},"_npmUser":{"name":"sigmasauer07","email":"sigma.sauer07@gmail.com"},"prettier":{"tabWidth":2,"printWidth":120,"singleQuote":true,"trailingComma":"all"},"repository":{"url":"git+https://github.com/alsania-dev/mcpnyx-unified.git","type":"git"},"_npmVersion":"11.10.0","description":"MCPNyx Unified - Advanced MCP server for remote access. Run multiple MCP stdio/SSE servers through unified streamableHttp/SSE/WS endpoint with mcp-remote integration.","directories":{},"lint-staged":{"*.{ts,tsx}":["prettier --write","eslint --fix"]},"_nodeVersion":"22.12.0","dependencies":{"ws":"^8.18.3","zod":"^3.25.76","cors":"^2.8.5","uuid":"^13.0.0","yargs":"^18.0.0","express":"^5.1.0","body-parser":"^2.2.0","@alsania-io/mcpnyx":"1.0.5","@modelcontextprotocol/sdk":"^1.20.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.6","husky":"^9.1.7","eslint":"^9.39.0","ts-node":"^1.7.1","prettier":"^3.6.2","@types/ws":"^8.18.1","typescript":"^5.9.3","@types/cors":"^2.8.17","@types/node":"^24.9.2","@types/uuid":"^10.0.0","lint-staged":"^16.2.6","@types/yargs":"^17.0.34","@types/express":"^5.0.5","@typescript-eslint/parser":"^8.46.2","@typescript-eslint/eslint-plugin":"^8.46.2"},"_npmOperationalInternal":{"tmp":"tmp/mcpnyx-u_1.1.0_1771327904400_0.3699558270049712","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@alsania-io/mcpnyx-u","version":"1.2.0","keywords":["mcp","nyx","streamableHttp","sse","websocket","server","modelcontextprotocol","http","stream","alsania","proxy","remote","bridge"],"author":{"name":"Alsania I/O","email":"admin@alsania-io.com"},"license":"MIT","_id":"@alsania-io/mcpnyx-u@1.2.0","maintainers":[{"name":"sigmasauer07","email":"sigma.sauer07@gmail.com"},{"name":"echo-dev","email":"alsaniasoftware@gmail.com"},{"name":"sigmasauer-dev","email":"sigmasauer.dev@gmail.com"}],"homepage":"https://alsania-io.com","bugs":{"url":"https://github.com/alsania-dev/mcpnyx-unified/issues"},"bin":{"nyx-u":"dist/index.js","mcpnyx-u":"dist/index.js","mcpnyx-bridge":"dist/mcpb-stdio-bridge.js"},"dist":{"shasum":"58f826a759e47060d92e6c8c11237f0a5a60ee87","tarball":"https://registry.npmjs.org/@alsania-io/mcpnyx-u/-/mcpnyx-u-1.2.0.tgz","fileCount":162,"integrity":"sha512-WFaeHaEujTHRKnwcUzygNvsbOgh51wl6JsdeNp2Yfft33CKSDTgxtaSs22BuUQ4yo43qbK4kpdfOkKQwe2Kp5A==","signatures":[{"sig":"MEUCIQC/471gDNuW7/iROSWtvMpNcr30DDHM6v4qF7mSIKjTkQIgJVlm3ujINX01cKs7W9AEH3GZMFlVCwgaKnJtXSxOrLg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":756286},"main":"dist/index.js","type":"module","_from":".","_shasum":"58f826a759e47060d92e6c8c11237f0a5a60ee87","engines":{"node":">=18.0.0"},"scripts":{"dev":"tsx src/index.ts --config ./config.json","lint":"eslint src/**/*.ts","test":"node test/bridge.test.mjs","build":"tsc && node copy-gui.js","clean":"rm -rf ./dist && rm -rf ./node_modules","start":"node dist/index.js","format":"prettier --write .","prepare":"husky","lint:fix":"eslint src/**/*.ts --fix","inspector":"npx @modelcontextprotocol/inspector dist/index.js","format:check":"prettier --check .","setup:remote":"chmod +x setup-remote.sh && ./setup-remote.sh","start:bridge":"node dist/mcpb-stdio-bridge.js","start:remote":"node dist/index.js --config ./config.json --port 3057 --host 0.0.0.0 --outputTransport streamableHttp --dynamic","connector:linux":"mkdir -p ~/.config/Claude && cp claude-desktop-config.json ~/.config/Claude/claude_desktop_config.json","connector:macos":"mkdir -p ~/Library/Application\\ Support/Claude && cp claude-desktop-config.json ~/Library/Application\\ Support/Claude/claude_desktop_config.json"},"_npmUser":{"name":"sigmasauer07","email":"sigma.sauer07@gmail.com"},"prettier":{"tabWidth":2,"printWidth":120,"singleQuote":true,"trailingComma":"all"},"repository":{"url":"git+https://github.com/alsania-dev/mcpnyx-unified.git","type":"git"},"_npmVersion":"2.15.12","description":"MCPNyx Unified - Advanced MCP server for remote access. Run multiple MCP stdio/SSE servers through unified streamableHttp/SSE/WS endpoint with mcp-remote integration.","directories":{},"lint-staged":{"*.{ts,tsx}":["prettier --write","eslint --fix"]},"_nodeVersion":"24.14.0","dependencies":{"ws":"^8.18.3","zod":"^3.25.76","cors":"^2.8.5","uuid":"^13.0.0","yargs":"^18.0.0","express":"^5.1.0","body-parser":"^2.2.0","@alsania-io/mcpnyx":"1.0.5","@modelcontextprotocol/sdk":"^1.20.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.6","husky":"^9.1.7","eslint":"^9.39.0","ts-node":"^1.7.1","prettier":"^3.6.2","@types/ws":"^8.18.1","typescript":"^5.9.3","@types/cors":"^2.8.17","@types/node":"^24.9.2","@types/uuid":"^10.0.0","lint-staged":"^16.2.6","@types/yargs":"^17.0.34","@types/express":"^5.0.5","@typescript-eslint/parser":"^8.46.2","@typescript-eslint/eslint-plugin":"^8.46.2"},"_npmOperationalInternal":{"tmp":"tmp/mcpnyx-u_1.2.0_1776267616596_0.8491562973470703","host":"s3://npm-registry-packages-npm-production"}},"1.2.1":{"name":"@alsania-io/mcpnyx-u","version":"1.2.1","keywords":["mcp","nyx","streamableHttp","sse","websocket","server","modelcontextprotocol","http","stream","alsania","proxy","remote","bridge"],"author":{"name":"Alsania I/O","email":"admin@alsania-io.com"},"license":"MIT","_id":"@alsania-io/mcpnyx-u@1.2.1","maintainers":[{"name":"sigmasauer07","email":"sigma.sauer07@gmail.com"},{"name":"echo-dev","email":"alsaniasoftware@gmail.com"},{"name":"sigmasauer-dev","email":"sigmasauer.dev@gmail.com"}],"homepage":"https://alsania-io.com","bugs":{"url":"https://github.com/alsania-dev/mcpnyx-unified/issues"},"bin":{"nyx-u":"dist/index.js","mcpnyx-u":"dist/index.js","mcpnyx-bridge":"dist/mcpb-stdio-bridge.js"},"dist":{"shasum":"6aaa20fb3431b1ac8c6fd7fa4c4844f4463a404d","tarball":"https://registry.npmjs.org/@alsania-io/mcpnyx-u/-/mcpnyx-u-1.2.1.tgz","fileCount":162,"integrity":"sha512-mGaWAyFhNKFe0PUsCSGRR+3GYtdCtdoFFwzEY4+o1Y9LLIDF5DPlXuM58VJvYCBPApTDHiYb+DbXB9KaDsAZ8Q==","signatures":[{"sig":"MEUCICCtZ6tzH0xzq14ySHzGnh/MYkMCdFvwOwoy9Xi9lhj7AiEAgiQXlYURcF/9WLdTAA6CcuSqId6H7uOF2JGb1zDnwv0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":756286},"main":"dist/index.js","type":"module","_from":".","_shasum":"6aaa20fb3431b1ac8c6fd7fa4c4844f4463a404d","engines":{"node":">=18.0.0"},"scripts":{"dev":"tsx src/index.ts --config ./config.json","lint":"eslint src/**/*.ts","test":"node test/bridge.test.mjs","build":"tsc && node copy-gui.js","clean":"rm -rf ./dist && rm -rf ./node_modules","start":"node dist/index.js","format":"prettier --write .","prepare":"husky","lint:fix":"eslint src/**/*.ts --fix","inspector":"npx @modelcontextprotocol/inspector dist/index.js","format:check":"prettier --check .","setup:remote":"chmod +x setup-remote.sh && ./setup-remote.sh","start:bridge":"node dist/mcpb-stdio-bridge.js","start:remote":"node dist/index.js --config ./config.json --port 3057 --host 0.0.0.0 --outputTransport streamableHttp --dynamic","connector:linux":"mkdir -p ~/.config/Claude && cp claude-desktop-config.json ~/.config/Claude/claude_desktop_config.json","connector:macos":"mkdir -p ~/Library/Application\\ Support/Claude && cp claude-desktop-config.json ~/Library/Application\\ Support/Claude/claude_desktop_config.json"},"_npmUser":{"name":"sigmasauer07","email":"sigma.sauer07@gmail.com"},"prettier":{"tabWidth":2,"printWidth":120,"singleQuote":true,"trailingComma":"all"},"repository":{"url":"git+https://github.com/alsania-dev/mcpnyx-unified.git","type":"git"},"_npmVersion":"2.15.12","description":"MCPNyx Unified - Advanced MCP server for remote access. Run multiple MCP stdio/SSE servers through unified streamableHttp/SSE/WS endpoint with mcp-remote integration.","directories":{},"lint-staged":{"*.{ts,tsx}":["prettier --write","eslint --fix"]},"_nodeVersion":"24.14.0","dependencies":{"ws":"^8.18.3","zod":"^3.25.76","cors":"^2.8.5","uuid":"^13.0.0","yargs":"^18.0.0","express":"^5.1.0","body-parser":"^2.2.0","@alsania-io/mcpnyx":"1.0.5","@modelcontextprotocol/sdk":"^1.20.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.6","husky":"^9.1.7","eslint":"^9.39.0","ts-node":"^1.7.1","prettier":"^3.6.2","@types/ws":"^8.18.1","typescript":"^5.9.3","@types/cors":"^2.8.17","@types/node":"^24.9.2","@types/uuid":"^10.0.0","lint-staged":"^16.2.6","@types/yargs":"^17.0.34","@types/express":"^5.0.5","@typescript-eslint/parser":"^8.46.2","@typescript-eslint/eslint-plugin":"^8.46.2"},"_npmOperationalInternal":{"tmp":"tmp/mcpnyx-u_1.2.1_1776268047197_0.30550715939079787","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"@alsania-io/mcpnyx-u","version":"1.3.0","keywords":["mcp","nyx","streamableHttp","sse","websocket","server","modelcontextprotocol","http","stream","alsania","proxy","remote","bridge"],"author":{"name":"Alsania I/O","email":"admin@alsania-io.com"},"license":"MIT","_id":"@alsania-io/mcpnyx-u@1.3.0","maintainers":[{"name":"sigmasauer07","email":"sigma.sauer07@gmail.com"},{"name":"echo-dev","email":"alsaniasoftware@gmail.com"},{"name":"sigmasauer-dev","email":"sigmasauer.dev@gmail.com"}],"homepage":"https://alsania-io.com","bugs":{"url":"https://github.com/alsania-dev/mcpnyx-unified/issues"},"bin":{"nyx-u":"dist/index.js","mcpnyx-u":"dist/index.js","mcpnyx-bridge":"dist/mcpb-stdio-bridge.js"},"dist":{"shasum":"97b996775b02059a60a486f6a28a5d68e56cc8d1","tarball":"https://registry.npmjs.org/@alsania-io/mcpnyx-u/-/mcpnyx-u-1.3.0.tgz","fileCount":163,"integrity":"sha512-uZOqJqj27FLaNwFkpvGeIhe/BzCjT31rRWodhJ+vXLsNEk9YWkXanpVLDa3HDbXU3bnsYOzo5r4PyIGL8BnGjg==","signatures":[{"sig":"MEQCIEqEdIDddiu8+4xj0gNOeUoLr19LbQ+sLralcxLNDGXNAiBUU2gQbmB5YXhWK5kHhr95Lqbma/8PSzi5ojAmHrmLrw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":760108},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"scripts":{"dev":"tsx src/index.ts --config ./config.json","lint":"eslint src/**/*.ts","test":"node test/bridge.test.mjs","build":"tsc && node copy-gui.js","clean":"rm -rf ./dist && rm -rf ./node_modules","start":"node dist/index.js","format":"prettier --write .","prepare":"husky","lint:fix":"eslint src/**/*.ts --fix","inspector":"npx @modelcontextprotocol/inspector dist/index.js","format:check":"prettier --check .","setup:remote":"chmod +x setup-remote.sh && ./setup-remote.sh","start:bridge":"node dist/mcpb-stdio-bridge.js","start:remote":"node dist/index.js --config ./config.json --port 3057 --host 0.0.0.0 --outputTransport streamableHttp --dynamic","connector:linux":"mkdir -p ~/.config/Claude && cp claude-desktop-config.json ~/.config/Claude/claude_desktop_config.json","connector:macos":"mkdir -p ~/Library/Application\\ Support/Claude && cp claude-desktop-config.json ~/Library/Application\\ Support/Claude/claude_desktop_config.json"},"_npmUser":{"name":"sigmasauer07","email":"sigma.sauer07@gmail.com"},"prettier":{"tabWidth":2,"printWidth":120,"singleQuote":true,"trailingComma":"all"},"repository":{"url":"git+https://github.com/alsania-dev/mcpnyx-unified.git","type":"git"},"_npmVersion":"11.6.3","description":"MCPNyx Unified - Advanced MCP server with API key authentication. Run multiple MCP stdio/SSE servers through unified streamableHttp/SSE/WS endpoint. API key required.","directories":{},"lint-staged":{"*.{ts,tsx}":["prettier --write","eslint --fix"]},"_nodeVersion":"20.19.2","dependencies":{"ws":"^8.18.3","zod":"^3.25.76","cors":"^2.8.5","uuid":"^13.0.0","yargs":"^18.0.0","express":"^5.1.0","body-parser":"^2.2.0","@alsania-io/mcpnyx":"1.0.5","@modelcontextprotocol/sdk":"^1.20.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.6","husky":"^9.1.7","eslint":"^9.39.0","ts-node":"^1.7.1","prettier":"^3.6.2","@types/ws":"^8.18.1","typescript":"^5.9.3","@types/cors":"^2.8.17","@types/node":"^24.9.2","@types/uuid":"^10.0.0","lint-staged":"^16.2.6","@types/yargs":"^17.0.34","@types/express":"^5.0.5","@typescript-eslint/parser":"^8.46.2","@typescript-eslint/eslint-plugin":"^8.46.2"},"_npmOperationalInternal":{"tmp":"tmp/mcpnyx-u_1.3.0_1777512805265_0.26674127466160247","host":"s3://npm-registry-packages-npm-production"}},"1.3.1":{"name":"@alsania-io/mcpnyx-u","version":"1.3.1","keywords":["mcp","nyx","streamableHttp","sse","websocket","server","modelcontextprotocol","http","stream","alsania","proxy","remote","bridge"],"author":{"name":"Alsania I/O","email":"admin@alsania-io.com"},"license":"MIT","_id":"@alsania-io/mcpnyx-u@1.3.1","maintainers":[{"name":"sigmasauer07","email":"sigma.sauer07@gmail.com"},{"name":"echo-dev","email":"alsaniasoftware@gmail.com"},{"name":"sigmasauer-dev","email":"sigmasauer.dev@gmail.com"}],"homepage":"https://alsania-io.com","bugs":{"url":"https://github.com/alsania-dev/mcpnyx-unified/issues"},"bin":{"nyx-u":"dist/index.js","mcpnyx-u":"dist/index.js","mcpnyx-bridge":"dist/mcpb-stdio-bridge.js"},"dist":{"shasum":"a01dfddfb2c250fc5e2369a03fdd8361991f842d","tarball":"https://registry.npmjs.org/@alsania-io/mcpnyx-u/-/mcpnyx-u-1.3.1.tgz","fileCount":162,"integrity":"sha512-aTTVLSzKf0970ifxYQdwAYuTIYuBLXEQAjOdIMVs1bBiEW2w9fDKh10EznHKnE3SD8KeN835OLU4sbtJy8lsCA==","signatures":[{"sig":"MEUCIQD5l34gcA6sReJMjj4YU/hp6CLCB0dEovWVcL94nj1RAwIgcqGUxRwaz/GWT/Pb2FpgGkxPaQihMuLVbxHXVHYHXLI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":758836},"main":"dist/index.js","type":"module","_from":".","_shasum":"a01dfddfb2c250fc5e2369a03fdd8361991f842d","engines":{"node":">=18.0.0"},"scripts":{"dev":"tsx src/index.ts --config ./config.json","lint":"eslint src/**/*.ts","test":"node test/bridge.test.mjs","build":"tsc && node copy-gui.js","clean":"rm -rf ./dist && rm -rf ./node_modules","start":"node dist/index.js","format":"prettier --write .","prepare":"husky","lint:fix":"eslint src/**/*.ts --fix","inspector":"npx @modelcontextprotocol/inspector dist/index.js","format:check":"prettier --check .","setup:remote":"chmod +x setup-remote.sh && ./setup-remote.sh","start:bridge":"node dist/mcpb-stdio-bridge.js","start:remote":"node dist/index.js --config ./config.json --port 3057 --host 0.0.0.0 --outputTransport streamableHttp --dynamic","connector:linux":"mkdir -p ~/.config/Claude && cp claude-desktop-config.json ~/.config/Claude/claude_desktop_config.json","connector:macos":"mkdir -p ~/Library/Application\\ Support/Claude && cp claude-desktop-config.json ~/Library/Application\\ Support/Claude/claude_desktop_config.json"},"_npmUser":{"name":"sigmasauer07","email":"sigma.sauer07@gmail.com"},"prettier":{"tabWidth":2,"printWidth":120,"singleQuote":true,"trailingComma":"all"},"repository":{"url":"git+https://github.com/alsania-dev/mcpnyx-unified.git","type":"git"},"_npmVersion":"2.15.12","description":"MCPNyx Unified - Advanced MCP server with API key authentication. Run multiple MCP stdio/SSE servers through unified streamableHttp/SSE/WS endpoint. API key required.","directories":{},"lint-staged":{"*.{ts,tsx}":["prettier --write","eslint --fix"]},"_nodeVersion":"20.19.2","dependencies":{"ws":"^8.18.3","zod":"^3.25.76","cors":"^2.8.5","uuid":"^13.0.0","yargs":"^18.0.0","express":"^5.1.0","body-parser":"^2.2.0","@alsania-io/mcpnyx":"1.0.5","@modelcontextprotocol/sdk":"^1.20.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.6","husky":"^9.1.7","eslint":"^9.39.0","ts-node":"^1.7.1","prettier":"^3.6.2","@types/ws":"^8.18.1","typescript":"^5.9.3","@types/cors":"^2.8.17","@types/node":"^24.9.2","@types/uuid":"^10.0.0","lint-staged":"^16.2.6","@types/yargs":"^17.0.34","@types/express":"^5.0.5","@typescript-eslint/parser":"^8.46.2","@typescript-eslint/eslint-plugin":"^8.46.2"},"_npmOperationalInternal":{"tmp":"tmp/mcpnyx-u_1.3.1_1777529831491_0.24236891565149388","host":"s3://npm-registry-packages-npm-production"}},"1.4.0":{"_id":"@alsania-io/mcpnyx-u@1.4.0","bin":{"nyx-u":"dist/index.js","mcpnyx-u":"dist/index.js","mcpnyx-bridge":"dist/mcpb-stdio-bridge.js"},"bugs":{"url":"https://github.com/alsania-dev/mcpnyx-unified/issues"},"dist":{"shasum":"32e1cee4eb7d7309a36d2dc7352e9a00df59e721","tarball":"https://registry.npmjs.org/@alsania-io/mcpnyx-u/-/mcpnyx-u-1.4.0.tgz","fileCount":162,"integrity":"sha512-eRE+Upu58N1mRU7+DZaNV6YUQvUCJYRNvUBStNOFx9BDpHsp9LWwUuECkJikh8mrmc670Myj58yJk7k1DEeOSQ==","signatures":[{"sig":"MEUCIQDQHwcQc6Zyj3OoXJYWW8xMH2SBoHMgmdP4tVGKu63MngIgWkfSPlh+pPhuUWBqEKPhlywW9CIAn0lOZPYKVRQbDhs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCH8qwn4oM9mBPp8CrUTODC6OGRvroRZj78RjBwoo6IIwIhAMxmP3GCUA02zY4Tf7aRIwyRGR3G6r5oJ+nuy9VssWAK"}],"unpackedSize":765828},"main":"dist/index.js","name":"@alsania-io/mcpnyx-u","type":"module","types":"./dist/index.d.ts","author":{"name":"Alsania I/O","email":"admin@alsania-io.com"},"engines":{"node":">=18.0.0"},"license":"MIT","mcpName":"@alsania-io/mcpnyx-u","scripts":{"dev":"tsx src/index.ts --config ./config.json","lint":"eslint src/**/*.ts","test":"node test/bridge.test.mjs","build":"tsc && node copy-gui.js","clean":"rm -rf ./dist && rm -rf ./node_modules","start":"node dist/index.js","format":"prettier --write .","prepare":"husky","lint:fix":"eslint src/**/*.ts --fix","inspector":"npx @modelcontextprotocol/inspector dist/index.js","format:check":"prettier --check .","setup:remote":"chmod +x setup-remote.sh && ./setup-remote.sh","start:bridge":"node dist/mcpb-stdio-bridge.js","start:remote":"node dist/index.js --config ./config.json --port 3057 --host 0.0.0.0 --outputTransport streamableHttp --dynamic","connector:linux":"mkdir -p ~/.config/Claude && cp claude-desktop-config.json ~/.config/Claude/claude_desktop_config.json","connector:macos":"mkdir -p ~/Library/Application\\ Support/Claude && cp claude-desktop-config.json ~/Library/Application\\ Support/Claude/claude_desktop_config.json"},"version":"1.4.0","_npmUser":{"name":"sigmasauer07","email":"sigma.sauer07@gmail.com"},"homepage":"https://alsania-io.com","keywords":["mcp","nyx","streamableHttp","sse","websocket","server","modelcontextprotocol","http","stream","alsania","proxy","remote","bridge"],"prettier":{"tabWidth":2,"printWidth":120,"singleQuote":true,"trailingComma":"all"},"repository":{"url":"git+https://github.com/alsania-dev/mcpnyx-unified.git","type":"git"},"_npmVersion":"11.18.0","description":"MCPNyx Unified - Advanced MCP server with API key authentication. Run multiple MCP stdio/SSE servers through unified streamableHttp/SSE/WS endpoint, plus an OpenAI-compatible /v1 facade backed by Alsania and any OpenAI-compatible agent (openclaw, nanoclaw","directories":{},"lint-staged":{"*.{ts,tsx}":["prettier --write","eslint --fix"]},"maintainers":[{"name":"sigmasauer07","email":"sigma.sauer07@gmail.com"},{"name":"echo-dev","email":"alsaniasoftware@gmail.com"},{"name":"sigmasauer-dev","email":"sigmasauer.dev@gmail.com"}],"_nodeVersion":"24.14.0","dependencies":{"ws":"^8.18.3","zod":"^3.25.76","cors":"^2.8.5","uuid":"^13.0.0","yargs":"^18.0.0","express":"^5.1.0","body-parser":"^2.2.0","@alsania-io/mcpnyx":"1.0.5","@modelcontextprotocol/sdk":"^1.20.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.6","husky":"^9.1.7","eslint":"^9.39.0","ts-node":"^1.7.1","prettier":"^3.6.2","@types/ws":"^8.18.1","typescript":"^5.9.3","@types/cors":"^2.8.17","@types/node":"^24.9.2","@types/uuid":"^10.0.0","lint-staged":"^16.2.6","@types/yargs":"^17.0.34","@types/express":"^5.0.5","@typescript-eslint/parser":"^8.46.2","@typescript-eslint/eslint-plugin":"^8.46.2"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/mcpnyx-u_1.4.0_1790287101280_0.8609897028516609"}}},"time":{"created":"2026-01-23T00:08:34.084Z","modified":"2026-09-24T21:58:21.531Z","1.0.1":"2026-01-23T00:08:34.347Z","1.1.0":"2026-02-17T11:31:44.583Z","1.2.0":"2026-04-15T15:40:16.727Z","1.2.1":"2026-04-15T15:47:27.387Z","1.3.0":"2026-04-30T01:33:25.426Z","1.3.1":"2026-04-30T06:17:11.664Z","1.4.0":"2026-09-24T21:58:21.368Z"},"bugs":{"url":"https://github.com/alsania-dev/mcpnyx-unified/issues"},"author":{"name":"Alsania I/O","email":"admin@alsania-io.com"},"license":"MIT","homepage":"https://alsania-io.com","keywords":["mcp","nyx","streamableHttp","sse","websocket","server","modelcontextprotocol","http","stream","alsania","proxy","remote","bridge"],"repository":{"url":"git+https://github.com/alsania-dev/mcpnyx-unified.git","type":"git"},"description":"MCPNyx Unified - Advanced MCP server with API key authentication. Run multiple MCP stdio/SSE servers through unified streamableHttp/SSE/WS endpoint, plus an OpenAI-compatible /v1 facade backed by Alsania and any OpenAI-compatible agent (openclaw, nanoclaw","maintainers":[{"name":"sigmasauer07","email":"sigma.sauer07@gmail.com"},{"name":"echo-dev","email":"alsaniasoftware@gmail.com"},{"name":"sigmasauer-dev","email":"sigmasauer.dev@gmail.com"}],"readme":"# MCPNyx Unified\n\n**MCPNyx Unified** is an advanced MCP (Model Context Protocol) proxy server designed for the Nyx extension. It allows you to run multiple **MCP stdio-based** and **SSE-based** servers and expose them through a single unified SSE/HTTP/WebSocket endpoint. This enables Nyx and other MCP-compatible tools to connect to multiple remote MCP servers and tools via a single proxy.\n\n## Features\n\n- 🔄 **Multiple Transport Protocols**: stdio, SSE, WebSocket, Streamable HTTP\n- 🌐 **Unified Proxy**: Aggregate multiple MCP servers behind a single endpoint\n- 🔌 **Flexible Routing**: Route requests to different MCP servers based on configuration\n- 📡 **Real-time Communication**: SSE and WebSocket support for live updates\n- ��️ **Stateful & Stateless Modes**: Choose between session-based or stateless operation\n- 🎯 **Nyx Integration**: Optimized for use with the Nyx browser extension\n- ⚡ **Dynamic Configuration Switching**: Hot-reload configurations without restart (with `--dynamic` flag)\n\n## 🔑 API Key Authentication (v1.3.0+)\n\nMCPNyx Unified requires API key authentication. Add `apiKeys` to your config:\n\n```json\n{\n  \"apiKeys\": [\n    \"sk-your-generated-key-here\"\n  ],\n  \"mcpServers\": {\n    ...\n  }\n}\n```\n\nGenerate keys using the included key generator:\n\n```bash\npython3 gen-api-keys.py 3\n```\n\nAll requests must include an `Authorization: Bearer <key>` header. Invalid or missing keys receive HTTP 401.\n\n\n\n## 🚀 Quick Start\n\nFor a quick 5-minute setup guide, see [QUICKSTART.md](./QUICKSTART.md)\n\n## Installation & Usage\n\n### Option 1: Run with npx (No Installation)\n\nRun MCPNyx Unified directly without installing:\n\n```bash\nnpx -y @alsania-io/mcpnyx-u@latest --config path/to/config.json\n\n# Default transport is streamableHttp on /mcp endpoint\n# Accessible at: http://localhost:3057/mcp\n```\n\n### Option 2: Global Installation\n\nInstall MCPNyx Unified globally to use the `mcpnyx-u` commands:\n\n```bash\n# Install globally\nnpm install -g @alsania-io/mcpnyx-u\n\n# Run with mcpnyx-u command\nmcpnyx-u --config path/to/config.json\n\n# Or use the nyxmcp-u alias\nnyxmcp-u --config path/to/config.json\n```\n\n### CLI Options\n\n- `--config, -c <path>`: **(required)** Path to a JSON configuration file (see below)\n- `--port <number>`: Port to run the proxy server on (default: `3057`)\n- `--baseUrl <url>`: Base URL for SSE clients (default: `http://localhost:<port>`)\n- `--ssePath <path>`: Path for SSE subscriptions (default: `/sse`)\n- `--messagePath <path>`: Path for SSE messages (default: `/message`)\n- `--logLevel <info|none>`: Set logging level (default: `info`)\n- `--outputTransport stdio | sse | ws | streamableHttp`: Output MCP transport (default: `streamableHttp` with `--config`, `sse` with `--stdio`, `stdio` with `--sse` or `--streamableHttp`)\n- `--streamableHttpPath \"/mcp\"`: Path for Streamable HTTP (default: `/mcp`)\n- `--stateful`: Run StreamableHttp in stateful mode\n- `--sessionTimeout 60000`: Session timeout in milliseconds (stateful StreamableHttp modes only)\n- `--header \"x-user-id: 123\"`: Add one or more custom headers\n- `--dynamic`: Enable dynamic configuration switching without restart (config→SSE/WS/StreamableHttp only) [boolean] [default: false]\n\n## Advanced: Dynamic Configuration Switching\n\nWhen started with the `--dynamic` flag, MCPNyx Unified supports hot-reloading of configurations without restarting the server:\n\n```bash\n# Start with dynamic configuration switching enabled\nmcpnyx-u --config ./config.json --port 3057 --dynamic\n\n# Switch to a different configuration via API\ncurl -X POST http://localhost:3057/api/config/switch \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"config_name\": \"production-config\"}'\n\n# Reload current configuration (e.g., after file changes)\ncurl -X POST http://localhost:3057/api/config/reload\n```\n\n### Supported with all output transports:\n\n- **SSE with dynamic switching**: `--outputTransport sse --dynamic`\n- **WebSocket with dynamic switching**: `--outputTransport ws --dynamic`\n- **Streamable HTTP with dynamic switching**: `--outputTransport streamableHttp --dynamic`\n\n### Dynamic Configuration API Endpoints:\n\n- **List configurations**: `GET http://localhost:3057/api/configs`\n- **Get current config**: `GET http://localhost:3057/api/config/current`\n- **Switch configuration**: `POST http://localhost:3057/api/config/switch`\n- **Reload config**: `POST http://localhost:3057/api/config/reload`\n- **Health check**: `GET http://localhost:3057/api/health`\n\n## Configuration\n\nCreate a JSON configuration file to define your MCP servers:\n\n```json\n{\n  \"mcpServers\": {\n    \"filesystem\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@modelcontextprotocol/server-filesystem\", \"/path/to/directory\"]\n    },\n    \"database\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@modelcontextprotocol/server-database\", \"postgresql://...\"]\n    },\n    \"remote-sse\": {\n      \"url\": \"https://remote-mcp-server.example.com/sse\",\n      \"transport\": \"sse\"\n    }\n  }\n}\n```\n\n## Endpoints\n\nOnce running, MCPNyx Unified exposes the following endpoints:\n\n### MCP Protocol Endpoints\n\n- **SSE endpoint**: `http://localhost:3057/sse`\n- **POST messages**: `http://localhost:3057/message`\n- **Streamable HTTP endpoint**: `http://localhost:3057/mcp`\n- **WebSocket endpoint**: `ws://localhost:3057/message`\n\n### Web Configuration GUI (when using `--dynamic` flag)\n\nWhen running with the `--dynamic` flag, MCPNyx Unified provides a modern web interface for easy configuration management:\n\n- **Web GUI**: `http://localhost:3057/` - Visual interface for configuration management\n- **Real-time Status**: View system health and current configuration\n- **One-click Switching**: Switch configurations with a single click\n- **Configuration Preview**: See available configurations and server counts\n- **Auto-refresh**: Real-time updates every 30 seconds\n\n### Dynamic Configuration API (when using `--dynamic` flag)\n\n- **List configurations**: `GET http://localhost:3057/api/configs`\n- **Get current config**: `GET http://localhost:3057/api/config/current`\n- **Switch configuration**: `POST http://localhost:3057/api/config/switch`\n- **Reload config**: `POST http://localhost:3057/api/config/reload`\n- **Health check**: `GET http://localhost:3057/api/health`\n\n(You can customize the paths with `--ssePath`, `--messagePath`, and `--streamableHttpPath`.)\n\n## Example Usage\n\n### Dynamic Configuration Example\n\nRun with dynamic configuration switching enabled to allow hot-reloading of MCP servers:\n\n```bash\n# Start with dynamic switching\nmcpnyx-u --config ./config.json --port 3057 --dynamic --outputTransport streamableHttp\n\n# In another terminal, switch configurations without restarting\ncurl -X POST http://localhost:3057/api/config/switch \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"config_name\": \"alternative-config\"}'\n\n# Check current configuration\ncurl http://localhost:3057/api/config/current\n```\n\n### Basic Configuration\n\n1. **Create a config file** (e.g., `nyx-config.json`):\n\n```json\n{\n  \"mcpServers\": {\n    \"filesystem\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@modelcontextprotocol/server-filesystem\", \"/home/user/documents\"]\n    },\n    \"alsaniamcp\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@alsania-io/mcp@latest\", \"server\", \"start\", \"-c\", \"/home/user/.mcp/config.json\"]\n    }\n  }\n}\n```\n\n2. **Run MCPNyx Unified**:\n\n```bash\nnpx -y @alsania-io/mcpnyx-u@latest --config nyx-config.json --port 3057\n```\n\n### Advanced Usage\n\n#### stdio → SSE\n\nConvert a stdio MCP server to SSE:\n\n```bash\nnpx -y @alsania-io/mcpnyx-u --stdio \"npx -y @modelcontextprotocol/server-filesystem /\" \\\n                          --port 3057 --baseUrl http://localhost:3057\n```\n\n#### SSE → stdio\n\nConvert an SSE MCP server to stdio:\n\n```bash\nnpx -y @alsania-io/mcpnyx-u --sse \"https://remote-mcp-server.example.com/sse\"\n```\n\n#### Config → Streamable HTTP (Stateful)\n\nRun multiple servers with stateful Streamable HTTP:\n\n```bash\nnpx -y @alsania-io/mcpnyx-u --config ./config.json \\\n                          --outputTransport streamableHttp \\\n                          --port 3057 \\\n                          --stateful \\\n                          --sessionTimeout 300000\n```\n\n## Why MCP?\n\n[Model Context Protocol](https://spec.modelcontextprotocol.io/) standardizes how AI tools exchange data. If your MCP server only speaks stdio, MCPNyx Unified exposes an SSE/HTTP/WebSocket interface so remote clients (like the Nyx extension, MCP Inspector, or Claude Desktop) can connect without extra server changes. It also allows you to aggregate multiple MCP servers behind a single endpoint.\n\n## Advanced Features\n\nMCPNyx Unified is designed with modularity and flexibility in mind:\n\n- ✅ Supports both stdio and SSE MCP servers in one config\n- ✅ Automatically derives the JSON-RPC version from incoming requests\n- ✅ Package information (name and version) is retransmitted where possible\n- ✅ Stdio-to-SSE mode uses standard logs; SSE-to-stdio mode logs via stderr\n- ✅ SSE-to-SSE mode provides automatic reconnection with exponential backoff\n- ✅ Health endpoints can be added for monitoring\n- ✅ CORS support for cross-origin requests\n- ✅ Custom headers for authentication and routing\n\n## Integration with Nyx\n\nMCPNyx Unified is optimized for use with the **Nyx browser extension**, providing:\n\n- 🎯 **Seamless MCP Integration**: Connect Nyx to multiple MCP servers\n- 🔄 **Real-time Updates**: SSE support for live tool and resource updates\n- 🛡️ **Secure Communication**: Support for authentication headers\n- 📊 **Session Management**: Stateful mode for persistent connections\n\n## Development\n\n### Building from Source\n\n```bash\n# Clone the repository\ngit clone https://github.com/alsania-io/mcpnyx-unified.git\ncd mcpnyx-unified\n\n# Install dependencies\nnpm install\n\n# Build\nnpm run build\n\n# Run locally\nnpm start -- --config ./config.json\n```\n\n### Development Mode\n\n```bash\nnpm run dev -- --config ./config.json\n```\n\n## Troubleshooting\n\n### Port Already in Use\n\nIf port 3057 is already in use, specify a different port:\n\n```bash\nnpx -y @alsania-io/mcpnyx-u --config config.json --port 3007\n```\n\n### Connection Issues\n\n- Ensure your MCP servers are properly configured in the config file\n- Check that stdio commands are executable and have correct paths\n- Verify SSE URLs are accessible and return proper SSE responses\n- Check firewall settings if connecting to remote servers\n\n### Logging\n\nEnable detailed logging:\n\n```bash\nnpx -y @alsania-io/mcpnyx-u --config config.json --logLevel info\n```\n\n## MCPB Bridge (Claude Desktop Integration)\n\nMCPNyx Unified supports a two-process architecture for Claude Desktop via the bundled `mcpb-stdio-bridge`:\n\n**Architecture:**\n```\nClaude Desktop  ──(stdio)──►  mcpb-stdio-bridge  ──(HTTP)──►  MCPNyx-U :3059  ──►  downstream servers\n```\n\n**Step 1: Start the MCPNyx-U HTTP server** (background service):\n```bash\nnode dist/index.js \\\n  --config ~/mcpconfig.json \\\n  --port 3059 --host 127.0.0.1 \\\n  --outputTransport streamableHttp \\\n  --streamableHttpPath /mcp \\\n  --logLevel none\n```\n\n**Step 2: Configure Claude Desktop** (`~/.config/Claude/claude_desktop_config.json`):\n```json\n{\n  \"mcpServers\": {\n    \"MCPNyx Unified\": {\n      \"command\": \"node\",\n      \"args\": [\"/path/to/dist/mcpb-stdio-bridge.js\"],\n      \"env\": {\n        \"MCPNYX_URL\": \"http://127.0.0.1:3059/mcp\"\n      }\n    }\n  }\n}\n```\n\nOr install as an MCPB bundle — see [MCPB_BUNDLE_GUIDE.md](./MCPB_BUNDLE_GUIDE.md).\n\n**Notes:**\n- The bridge handles both `application/json` and `text/event-stream` responses.\n- Tool names containing `.` are automatically sanitized to `_` for Claude Desktop compatibility and reverse-mapped on call.\n- Set `DEBUG=true` in env for bridge debug output (goes to stderr).\n\n## Contributing\n\nContributions are welcome! Please feel free to submit a Pull Request.\n\n## License\n\nMIT License - see LICENSE file for details\n\n## Links\n\n- **Homepage**: [alsania-io.com](https://alsania-io.com)\n- **Repository**: [github.com/alsania-io/mcpnyx](https://github.com/alsania-io/mcpnyx)\n- **Issues**: [github.com/alsania-io/mcpnyx/issues](https://github.com/alsania-io/mcpnyx/issues)\n- **MCP Specification**: [modelcontextprotocol.io](https://modelcontextprotocol.io/)\n\n## Acknowledgments\n\nMCPNyx Unified is part of the **Alsania I/O** ecosystem, built with the Alsania sovereign vision and purpose in mind. It is designed for the Nyx extension.\n\n---\n\n**Aligned with the Alsania AI Protocol v1.0**\n_Imagined by Sigma. Powered by Echo._\n","readmeFilename":"README.md"}