# hatago-mcp-hub

Puts several MCP servers behind a single endpoint. You describe them in hatago.config.json, and your editor talks to the hub instead of each server on its own.

- MCP server · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed, Gemini CLI · ★ 27
- Author: himorishige
- License: MIT · policy=link-only · description only; the file stays with the author
- Source: https://github.com/himorishige/hatago-mcp-hub
- Updated: 2025-09-14
- HTML: https://affpapa.org/en/nevibecode/mcp/hatago-mcp-hub

## What it does

The hub spawns child MCP servers and exposes their tools to the client. Transports cover STDIO, HTTP and SSE, plus proxying to remote HTTP servers and managing npm packages through `npx`. Running `npx @himorishige/hatago-mcp-hub serve --http` starts a demo without any config file, on port 3535.

The `hatago` CLI has `init` and `serve` commands. Configs are validated against Zod schemas, `${VAR}` and `${VAR:-default}` expansion works, servers can be grouped by tags, and an `extends` field lets one config build on another. The `hatago://servers` resource returns a JSON snapshot of connected servers with status, tools and prompts. Progress notifications from child servers are passed through, so long operations stay visible.

Config edits apply only after a restart. The README points to `nodemon --exec "hatago serve --http" --watch hatago.config.json` or PM2 with `--watch` if you want that automated. STDIO mode needs `--config` with a file path; without it the process will not start. Metrics stay off unless you set `HATAGO_METRICS=1`, then they appear at `/metrics`.

## Requirements
- Needs: Node.js (commands run via npx)

## Install

### Claude Code (native platform)

**Platform CLI**
```bash
claude mcp add hatago-mcp-hub -- npx -y @himorishige/hatago-mcp-hub
```

### Codex

**Platform CLI**
```bash
codex mcp add hatago-mcp-hub -- npx -y @himorishige/hatago-mcp-hub
```

### Cursor

**Config file**
File `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "hatago-mcp-hub": {
            "command": "npx",
            "args": [
                "-y",
                "@himorishige/hatago-mcp-hub"
            ]
        }
    }
}
```

### GitHub Copilot

**Config file**
File `.vscode/mcp.json`:
```json
{
    "servers": {
        "hatago-mcp-hub": {
            "type": "stdio",
            "command": "npx",
            "args": [
                "-y",
                "@himorishige/hatago-mcp-hub"
            ]
        }
    }
}
```

### Gemini CLI

**Platform CLI**
```bash
gemini mcp add hatago-mcp-hub npx -y @himorishige/hatago-mcp-hub
```

## When to use it
- wire up many MCP servers through one config instead of editing each client
- proxy a remote HTTP MCP server into a client that only speaks STDIO
- see every connected server and its tools in one JSON snapshot
- pass environment variables with fallback defaults in the config
- run an MCP hub for testing without a global install

## Example prompts
- Add the filesystem server to `hatago.config.json` and list the tools it exposes
- Start the hub over HTTP on port 3535 and show me what `hatago://servers` returns
- Proxy a remote MCP server through the hub config and name its tools

## Similar
- [REA](https://affpapa.org/en/nevibecode/mcp/rea.md) — MCP server · ★ 386989
- [GitHub](https://affpapa.org/en/nevibecode/mcp/github.md) — MCP server · ★ 33918
- [Netdata](https://affpapa.org/en/nevibecode/mcp/netdata.md) — MCP server · ★ 81115
- [browser-use](https://affpapa.org/en/nevibecode/mcp/browser-use.md) — MCP server · ★ 119160
- [Codebase Memory](https://affpapa.org/en/nevibecode/mcp/codebase-memory.md) — MCP server · ★ 47392
- [mcp-server](https://affpapa.org/en/nevibecode/mcp/mcp-server.md) — MCP server · ★ 43872

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
