Skip to main content
Glama

Mx

CLI + local MCP gateway to centralize MCP server configs and manage Playwright pool sessions.

Quickstart (CLI)

Prereqs:

  • Bun (bun --version)

Install + register the MCP gateway (Codex + Claude Desktop + Claude Code if present):

  • bun install

  • bun run setup

Optional env:

  • export MX_REGISTRY_PATH=... (override registry path)

  • export MX_SOURCE_DIR=... (central source root for registry.json + skills/)

  • export MX_PLAYWRIGHT_POOL=... (comma list, or auto to detect Playwright MCPs, or off to disable pooling)

  • export MX_INTERACTIONS_DIR=... (store interactions)

Centralize your existing MCP servers (Codex + Claude Code) behind the single Mx entry:

  • Dry run: bun run centralize

  • Apply changes: bun run centralize -- --apply

Remove Mx and restore direct servers:

  • bun run decentralize

Restart Codex / Claude Desktop after setup so they reload the configs.

Standalone binaries (optional)

  • bun run build:gateway:exe

  • bun run build:manager:exe

Build output lands in apps/gateway/dist/ as Mx-gateway and Mx.

What's implemented

  • CLI to centralize upstream MCP servers into ~/.Mx/registry.json and toggle configs in Codex/Claude.

  • Gateway that proxies upstream tools, exposes Playwright pool helpers, and can run Codex/Claude CLIs via shell.

  • Gateway also exposes an Interactions-like API backed by Claude CLI (tools, background runs, basic multimodal inputs).

  • Skills validation + analysis (CLI + MCP tools) and a skills sync helper from MX_SOURCE_DIR/skills.

  • Commands sync support for Claude Code (~/.claude/commands) and Codex (~/.codex/prompts) from MX_SOURCE_DIR/commands.

Refactor notes / roadmap: docs/mx-refactor.md Playwright scaling: docs/playwright-pool-scale.md

LLM stdio bridge (local)

The gateway exposes helpers that run the Codex and Claude CLIs via Bun's shell:

  • llm_codex_exec (args: args[], stdin optional)

  • llm_claude_exec (args: args[], stdin optional)

Shell smoke test (runs --help/--version, and attempts a "hello world" prompt if detected):

  • bun run test:llm-shell

  • Optional overrides:

    • MX_CODEX_HELLO_ARGS

    • MX_CODEX_HELLO_STDIN

    • MX_CLAUDE_HELLO_ARGS

    • MX_CLAUDE_HELLO_STDIN

    • MX_LLM_TIMEOUT_MS (default 20000)

Interactions API (Claude-backed)

MCP tools:

  • interactions_create (supports previous_interaction_id, background, and stream)

  • interactions_get

  • interactions_delete

Notes:

  • background: true requires store: true and returns status: "in_progress" until complete.

  • tools/tool_choice are not supported; the Claude CLI manages tools directly.

  • Multimodal inputs accept content parts like { type: "image", data, mime_type }.

Smoke test (creates a session, follows up, background run, reads, deletes):

  • bun run test:interactions-claude

    • MX_IMAGE_TEST=1 to include an optional image input check.

Playwright parallelism (local)

If you run multiple Playwright MCP servers as upstreams, the pool auto-detects them (or set an explicit list):

  • Set MX_PLAYWRIGHT_POOL=auto (default when unset) or MX_PLAYWRIGHT_POOL=playwright1,playwright2

  • Call playwright_pool_reserve or playwright_pool_session_start to get an upstreamId

  • Use only that prefix for tool calls (e.g. playwright1__browser_navigate)

Smoke test (runs 2 agents in parallel and asserts distinct slots are held concurrently):

  • bun run test:playwright-pool

  • MX_PLAYWRIGHT_HEADED=1 bun run test:playwright-pool to see browsers

Note: playwright_pool_session_start creates a new tab by default. Reuse the returned sessionId, or pass a stable sessionKey (and/or newTab: false) to avoid tab spam across restarts. Locks auto-expire after 15 minutes of inactivity by default (TTL is refreshed on slot usage).

Operational helpers:

  • playwright_pool_status shows lock/pid status and drift vs the registry playwright_pool generator config.

  • playwright_pool_session_end defaults to keeping the tab open when a sessionKey was used (pass closeTab: true and/or forget: true to clean up).

Skills validation (CLI)

  • bun run skills validate --target both

  • bun run skills analyze --target codex

  • bun run skills sync --source-dir ~/.Mx/source

Optional manifest:

  • ~/.Mx/source/skills/manifest.json controls which top-level skill directories sync to ~/.codex/skills and ~/.claude/skills.

  • Unlisted skills default to enabled (override via defaults or explicit skills.<id> entries).

Installer output:

  • Gateway binary at ~/.Mx/bin/Mx-gateway

  • Codex config: ~/.codex/config.toml

  • Claude Desktop (macOS): ~/Library/Application Support/Claude/claude_desktop_config.json

  • Claude Code CLI: claude mcp add-json Mx --scope user ... (if available)

-
security - not tested
F
license - not found
-
quality - not tested

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/maxtheman/mcpManager'

If you have feedback or need assistance with the MCP directory API, please join our Discord server