MCP server hub and relay
Find a file
Agent fc5fa4e16d Add WebSocket observer endpoint for hub state monitoring
- Add /ws/observe WebSocket path for real-time hub state observation
- Implement setupObserveServer(httpServer) function that:
  - Requires secret authentication via observe handshake
  - Sends immediate snapshot of backends on successful auth
  - Streams all EventBus events to connected observers
  - Maintains read-only connections (ignores post-handshake messages)
  - Properly cleans up listeners on disconnect
- Add OBSERVE_SECRET to .env (generate with crypto.randomBytes)
- Export OBSERVE_SECRET from config.js
- Wire setupObserveServer into index.js alongside existing setupWsServer
- Support multiple simultaneous observers
- Modified ws-server.js to allow other upgrade handlers (ws-observe, etc)
- Add OBSERVE_SECRET to ecosystem.config.js env for pm2

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-03-13 12:26:55 +00:00
.github initial: clean workspace with gitignore 2026-03-12 16:16:53 +00:00
.vscode Add VS Code MCP config for sample-mcp testing 2026-03-13 10:51:54 +00:00
admin-ui feat: add admin UI dashboard with static serving 2026-03-13 12:22:31 +00:00
mcp-bridge feat: add generic mcp-bridge for proxying upstream MCP SSE servers 2026-03-13 10:19:27 +00:00
sample-mcp mcp-hub-007: Auth hardening — per-service secrets and env-based config 2026-03-13 10:17:45 +00:00
src Add WebSocket observer endpoint for hub state monitoring 2026-03-13 12:26:55 +00:00
test mcp-hub-005: End-to-end integration test 2026-03-12 18:25:29 +00:00
.gitignore security: move secrets to .env, never commit secrets to git 2026-03-13 11:17:53 +00:00
ecosystem.config.js Add WebSocket observer endpoint for hub state monitoring 2026-03-13 12:26:55 +00:00
package-lock.json security: move secrets to .env, never commit secrets to git 2026-03-13 11:17:53 +00:00
package.json security: move secrets to .env, never commit secrets to git 2026-03-13 11:17:53 +00:00
req_test.py initial: clean workspace with gitignore 2026-03-12 16:16:53 +00:00
test.py initial: clean workspace with gitignore 2026-03-12 16:16:53 +00:00