CLI scaffolder that generates a local MCP Gateway: one stdio entrypoint for Cursor and Claude Desktop that connects outbound to multiple Upstream MCP servers and re-exports their tools as {prefix}__{tool}.
- Node.js 20+
npx @ble27/mcputilFollow the Design Loop:
- Name the Gateway project
- Compose Upstreams from the Catalog (filesystem, GitHub, memory) or a custom Launch Config
- Review the running summary (remove / revise as needed)
- Generate
Then in the generated project:
cd your-gateway
npm install
# if you skipped pasting secrets in the CLI: copy .env.example → .envMerge client-config/cursor.mcp.json or client-config/claude-desktop.mcp.json into your client MCP settings. Keep cwd pointed at the generated project directory.
npm install
npm run build
npm link # optional: exposes `mcputil` on your PATH
mcputil
# or: npm run dev
# or: node dist/cli.js# Always (fast): unit tests + fixture Gateway smoke
npm run test:offline
npm run typecheck
# Needs network: real Catalog Upstreams via npx (memory + filesystem)
npx vitest run src/catalog.smoke.test.ts
# Full suite (includes Catalog smoke)
npm test
# Live check against a generated project (e.g. test-mcp with .env secrets)
npx tsx scripts/verify-gateway-live.ts| Upstream | Package | Notes |
|---|---|---|
| filesystem | @modelcontextprotocol/server-filesystem |
Asks for allowed root path |
| github | @modelcontextprotocol/server-github |
Needs GITHUB_PERSONAL_ACCESS_TOKEN |
| memory | @modelcontextprotocol/server-memory |
Local knowledge graph |
Plus any custom MCP server via command/args/env keys.