{"id":2594571,"recorded_at":"2026-11-03T14:19:31.635285Z","observed_at":"2026-11-03T14:19:31.635248Z","subject_kind":"source_record","subject":"mcp_registry:io.github.ni-c/mcp-hub","kind":"listing","method":"sync.mcp_registry/1","body":{"endpoints":[["web","https://mcp-hub.ni-c.de/"]],"name":"mcp-hub","owner_address":null,"raw":{"_meta":{"io.modelcontextprotocol.registry/official":{"isLatest":true,"publishedAt":"2026-11-03T13:46:35.749504Z","status":"active","statusChangedAt":"2026-11-03T13:46:35.749504Z","updatedAt":"2026-11-03T13:46:35.749504Z"}},"server":{"$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","description":"Many stdio MCP servers from one container, published over HTTPS with OAuth 2.1 for any MCP client","name":"io.github.ni-c/mcp-hub","packages":[{"environmentVariables":[{"description":"Path to the mcp.json listing the servers to expose, in Claude Code's mcpServers format (default mcp.json in the working directory)","format":"string","name":"CONFIG_PATH"},{"default":"60","description":"Minutes of inactivity before a server is put to sleep; 0 starts every server at launch and keeps it running (default 60)","format":"number","name":"IDLE_TIMEOUT_MINUTES"},{"description":"Tool snapshots of sleeping servers (default .mcp-hub/tool-cache.json beside the config)","format":"string","name":"TOOL_CACHE_PATH"},{"description":"Mirror the hub's log lines into this file; stdout carries the protocol, so logging goes to stderr otherwise","format":"string","name":"LOG_FILE"}],"identifier":"@ni-c/mcp-hub","packageArguments":[{"type":"positional","value":"--stdio"}],"registryType":"npm","runtimeHint":"npx","transport":{"type":"stdio"},"version":"0.12.0"},{"environmentVariables":[{"description":"Public base URL exactly as clients see it, e.g. https://mcp.example.net (no path)","format":"string","isRequired":true,"name":"EXTERNAL_URL"},{"description":"bcrypt hash of the OAuth login password (htpasswd -bnBC 10 \"\" 'pw' | tr -d ':\\n')","format":"string","isRequired":true,"isSecret":true,"name":"PASSWORD_HASH"},{"description":"Set to totp to ask for a one-time code from an authenticator app at every sign-in. Default off.","format":"string","name":"TWO_FACTOR"},{"description":"Base32 secret the authenticator app was set up with (mcp-hub-admin totp init). Read only when TWO_FACTOR is totp.","format":"string","isSecret":true,"name":"TOTP_SECRET"},{"description":"Comma-separated IPs/CIDRs of the reverse proxy allowed to set X-Forwarded-* headers","format":"string","name":"TRUSTED_PROXIES"},{"default":"cimd,dcr","description":"Which mechanisms a client may use to obtain a client_id: cimd (Client ID Metadata Documents), dcr (RFC 7591 dynamic registration), or both","format":"string","name":"CLIENT_REGISTRATION"},{"description":"Comma-separated https origins whose client ID metadata documents are accepted, e.g. https://chatgpt.com; unset admits every https origin","format":"string","name":"CIMD_ALLOWED_ORIGINS"},{"default":"80","description":"Listen port inside the container","format":"number","name":"PORT"}],"identifier":"ghcr.io/ni-c/mcp-hub:0.12.0","registryType":"oci","transport":{"type":"streamable-http","url":"http://localhost:{PORT}/hub"}}],"repository":{"source":"github","url":"https://github.com/ni-c/mcp-hub"},"title":"mcp-hub","version":"0.12.0","websiteUrl":"https://mcp-hub.ni-c.de"}},"source":"mcp_registry","summary":"Many stdio MCP servers from one container, published over HTTPS with OAuth 2.1 for any MCP client"},"body_sha256":"db271fb106d4417c72007952e05dc4ae357994618a3bd4ac335b4b13c0d724e4","prev_id":506102,"leaf":"0x5cf29accf152aa4c523edf82b9d080b526def1bb6401c49fb8e895989d692916","leaf_text":"{\"body\":\"db271fb106d4417c72007952e05dc4ae357994618a3bd4ac335b4b13c0d724e4\",\"id\":2594571,\"kind\":\"listing\",\"method\":\"sync.mcp_registry/1\",\"observed_us\":1793715571635248,\"prev\":506102,\"subject\":\"mcp_registry:io.github.ni-c/mcp-hub\",\"subject_kind\":\"source_record\"}","day":{"day":"2026-11-03","leaves":425475,"root":"0xb646ffa569e24bf8336b0a15a9d98d0a2f1239f58e10c2b18a9d22e43343566a","chained":"0x35e926359fd19031c6b5e08fb3b44f2524386a57c8fdd353336c185603f53d43","anchor_chain":"eip155:5042002","anchor_tx":"0xa5f9dadba13cde129126b950e64b815e6833cb8ff53b75026c9dbe769c3768c7","anchor_block":70601990},"proof":["0x5cf277f9a98626c93933898123cc69c1df7c11de29de2c1a5da85fda766afda0","0x3c83a83b520ce0f2205ecb4246339bd5f46420ffa4f4b847efc276ac95ba7fc0","0xa7a523b431f0c6a911a1936a08b301727fb3fda45b9022692a8ec3a06f90a67f","0x5196c87475b4a42e16d68fc941b8dd819656507e759277866a46917aab8bb739","0x41e70504678e27bd631ba08567b2ccd3ae4863a3d2ecce545630aadf8097e2f9","0x11738f9819e6de966d6ed3ec9e68f19d5501741bbc18a2fa6db53f5f60508da9","0xc10578828f75bd5a63f56f49663b69030b7d0cfd62d02a09ca5f02d594a80e96","0x82f022ea55feaff3db462bd088f7e1c5644b17507dd0af058423865a3e7203dc","0x3bbf0878ac9121d2473b6f6688b3938d0b5c414f441aa2b4073a5f8c9402325b","0xcca2c8e7aa1f1e5a3f13fb7afdf5428163c1a4f518b7b4f4054669284b5e776d","0x2c9f1ddd5a12b4c2d756fc23e068c113e1b29aaf47e2f1efb756b10a4be3a39a","0xc9cb46de0fb34249d46d050d7b3c6e9eb235979a2c666a5e730bbfb605a8d465","0xcf11475fb1d88adbcfc7a6c6c088c0d1cc115e211d125d8b50181219cb4beecc","0x1fc4191e8f35bfa53de7e0451b776edb79a6c6dcdf333b4de5afdb414a516e3f","0x335134861d623e850e919233efd5afeff49bc2ffa02948458dea325cdabfc928","0xd3872af0d8c282b0d088e008b24701ec7576ad8e40ceab245546a2e300818868","0x3ef2d6c56d2bc5990e646c07605e90ed24d1c642cbcca8f60a35422b8b7981ee","0x717b5d7cbc24826c5b1f7b7433bf30b76e9ba1370476af4e1b494a5211897cc3","0xe35032d4b064b015fe60638756eeb0bc24e7c7943586468d33349341ee0ed3d6"]}