{"name":"io.github.ni-c/mcp-hub","slug":"ni-c-mcp-hub","title":"mcp-hub","description":"Many stdio MCP servers from one container, published over HTTPS with OAuth 2.1 for any MCP client","url":"https://mcp.market/server/ni-c-mcp-hub","rating":null,"grade":"B","score":83,"certified":false,"status":"active","category":"other","tags":[],"presence":{"score":35,"stars":2,"forks":0,"downloads_week":300,"last_push_at":"2026-09-17T20:08:47.000Z","license":"MIT"},"uptime":null,"claimed":false,"transport":"mixed","callable_via_gateway":false,"default_price_micros":0,"repository":"https://github.com/ni-c/mcp-hub","website":"https://mcp-hub.ni-c.de","version":"0.11.3","remotes":[],"packages":[{"registryType":"npm","identifier":"@ni-c/mcp-hub","version":"0.11.3","runtimeHint":"npx","transport":{"type":"stdio"},"packageArguments":[{"value":"--stdio","type":"positional"}],"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"},{"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","default":"60","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"}]},{"registryType":"oci","identifier":"ghcr.io/ni-c/mcp-hub:0.11.3","transport":{"type":"streamable-http","url":"http://localhost:{PORT}/hub"},"environmentVariables":[{"description":"Public base URL exactly as clients see it, e.g. https://mcp.example.net (no path)","isRequired":true,"format":"string","name":"EXTERNAL_URL"},{"description":"bcrypt hash of the OAuth login password (htpasswd -bnBC 10 \"\" 'pw' | tr -d ':\\n')","isRequired":true,"format":"string","isSecret":true,"name":"PASSWORD_HASH"},{"description":"Comma-separated IPs/CIDRs of the reverse proxy allowed to set X-Forwarded-* headers","format":"string","name":"TRUSTED_PROXIES"},{"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","default":"cimd,dcr","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"},{"description":"Listen port inside the container","format":"number","default":"80","name":"PORT"}]}],"tools":[{"name":"call_tool","description":"Call a tool on one of the MCP servers. Arguments must match the schema from get_tool_schema.","write_action":false,"price_micros":0,"input_schema":null},{"name":"describe_connection","description":"Report how you are connected to this hub right now: the protocol era, and whether a server could ask you a question mid-call.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_tool_schema","description":"Get the full description and JSON input schema of one tool, needed to construct arguments for call_tool.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_servers","description":"List all MCP servers available through this hub, with their status. Call this first to see what is available.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_tools","description":"List the tools of one MCP server with one-line descriptions. Use get_tool_schema before calling a tool for the first time.","write_action":false,"price_micros":0,"input_schema":null},{"name":"sleep_server","description":"Stop an on-demand server immediately instead of waiting for its idle timeout. It restarts automatically on the next tool call.","write_action":false,"price_micros":0,"input_schema":null},{"name":"wake_server","description":"Start an on-demand server now so its first tool call is fast. No-op if it is already running.","write_action":false,"price_micros":0,"input_schema":null}],"scan":{"score":83,"grade":"B","scanned_at":"2026-09-19T21:08:30.495Z","report":{"scannerVersion":"0.1.8","scannedAt":"2026-09-19T21:08:30.493Z","components":{"code":{"score":25,"max":25,"notes":["62 source files scanned"]},"reliability":{"score":-1,"max":20,"notes":["no gateway calls yet and no remote to probe"]},"poisoning":{"score":-1,"max":15,"notes":["tools not inspected (local package is not executed); not counted"]},"auth":{"score":6,"max":15,"notes":["static API keys via environment variables"]},"maintenance":{"score":15,"max":15,"notes":["last push 2 days ago"]},"identity":{"score":8,"max":10,"notes":["registry namespace matches repository owner","GitHub account older than a year"]}},"findings":[],"inputs":{"packages":[{"registryType":"npm","identifier":"@ni-c/mcp-hub","version":"0.11.3","found":true,"license":"MIT","hasInstallScripts":false,"dependencyCount":10,"publishedAt":"2026-09-12T11:24:46.955Z","repositoryUrl":"git+https://github.com/ni-c/mcp-hub.git"}],"repo":{"found":true,"owner":"ni-c","repo":"mcp-hub","archived":false,"pushedAt":"2026-09-17T20:08:47Z","stars":2,"forks":0,"openIssues":0,"ownerType":"User","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/283341?v=4","ownerCreatedAt":"2010-05-21T13:00:22Z","license":"MIT"},"icon":{"url":"https://mcp-hub.ni-c.de/favicon.svg","source":"registry"},"presence":{"stars":2,"forks":0,"downloadsWeek":300,"license":"MIT","lastPushAt":"2026-09-17T20:08:47.000Z","score":35}}}},"grade_history":[],"reviews":[]}