Labsco
MCP SERVER

MCP Server Executable

by shadowcz007

Run several MCP servers behind one process, chain their tools into sequences, and schedule the result — with a WebSocket mode for connecting the lot to xiaozhi.me.

MCP Plumbing: Proxies, Registries & Inspectors
Summary
Aggregation plus the two things aggregation usually lacks: sequencing and a schedule.

Combining MCP servers is common; chaining their tools into a named sequence with explicit output mapping is not, and it turns a five-call dance into one tool the model can invoke. The cron mode is the other half — the same chain can run every thirty seconds and push the result to your desktop or a phone, without an agent in the loop at all.

What it is

An MCP launcher and router. It reads a `mcp.json` in the same shape Cursor uses, connects to the backends listed there over SSE or stdio, and re-exposes the combined tools. On top of that it adds tool chains, a plugin mechanism for tools you write yourself, cron scheduling, and a WebSocket client mode.

What you get
  • Several MCP services combined behind one endpoint, with `tools` acting as an allow-list and `namespace` setting the separator that keeps names distinct — an empty `tools` array means no filtering
  • Tool chains: a named sequence of steps where each step can take its arguments from an earlier step's output through `outputMapping` and `fromStep`, and `output.steps` picks which step's result is returned
  • Custom tools, resources and prompts defined in a JavaScript file loaded with `--mcp-js`, exporting `configureMcp`
  • Scheduled execution with `--cronjob`: `listTools` and `callTool` operations run once at startup and then on the schedule, with results pushed to a desktop notification, an email, or ntfy
  • Auto-reload — changes to the file passed as `--mcp-config` or `--mcp-js` restart the service so the new config takes effect
  • WebSocket client mode with `--ws`, aimed at connecting your combined MCP services to a WebSocket-enabled service such as xiaozhi.me, with automatic reconnection
  • A stable library export, `McpRouterServer`, so the same routing can be embedded in a Node application instead of run as a CLI
  • Packaged executables for Windows and macOS if you would rather double-click than install anything
Requirements

Node with `npx`, or one of the packaged binaries. Run it as `npx mcp_exe --mcp-config ./examples/mcp.json` (package `mcp_exe`, 0.12.0). Defaults: port `3000`, SSE transport with a GET on `/` establishing a session and a POST to `/sessions?sessionId=...` carrying messages; `--transport` set to `stdio` switches modes, and `--ws` takes priority over both. `--log-level` controls output from TRACE through FATAL. Notification transports need their own settings — email needs `to` and `subject`, ntfy needs `url`, `topic`, `tags` and `priority`, and desktop notifications need a local desktop environment. Licensed MIT.

Setup effort

One command — npx mcp_exe --mcp-config ./examples/mcp.json