Provides tools for managing Tailscale networks, including listing devices and creating authentication keys (with ephemeral key creation blocked by default for safety).
mcpManager
Desktop app + local MCP gateway to manage Codex / Claude configs and provide a single MCP entry that proxies Daytona + Tailscale actions.
Quickstart (CLI)
Prereqs:
Bun (
bun --version)Rust (
rustc --version)
Install + register the MCP gateway (Codex + Claude Desktop + Claude Code if present):
bun installbun run setup
Set credentials (optional, but required for Daytona/Tailscale tools):
export DAYTONA_API_KEY=...export DAYTONA_SERVER_URL=...(orDAYTONA_API_URL)export DAYTONA_TARGET=...(optional)export TAILSCALE_API_KEY=...export TAILSCALE_TAILNET=...(optional; defaults to-)
Re-run setup after exporting env vars if you want them written into client configs:
bun run setup
Verify everything is wired up (includes an MCP stdio ping):
bun run doctor
Centralize your existing MCP servers (Codex + Claude Code) behind the single mcpmanager entry:
Dry run:
bun run centralizeApply changes:
bun run centralize -- --apply
Remove mcpmanager and restore direct servers:
bun run decentralize
Safety note (Tailscale):
By default,
tailscale.keys.createEphemeralis blocked unless you setMCPMANAGER_TAILSCALE_ALLOW_KEYS=1.
Restart Codex / Claude Desktop after setup so they reload the configs.
Desktop app (dev)
bun run dev:desktop
What’s implemented
A single MCP server
mcpmanager(stdio) that exposes:health.pingdaytona.*(create/delete sandbox, exec commands)tailscale.*(list devices, create auth keys)
Installer that puts the gateway at
~/.mcpmanager/bin/mcpmanager-gatewayand registers it into:Codex:
~/.codex/config.tomlClaude Desktop (macOS):
~/Library/Application Support/Claude/claude_desktop_config.jsonClaude Code CLI:
claude mcp add-json mcpmanager --scope user ...(if available)