What mcp-manager-gateway does
The mcp-manager-gateway MCP server provides a central gateway for downstream MCP services and other supported service types, including stdio, HTTP, SSE, and REST endpoints. Instead of exposing every downstream schema when an agent connects, it presents a smaller discovery surface. The agent can locate an MCP or tool, retrieve the relevant definition, and make an exact call through the gateway.
This progressive approach is useful when a client would otherwise connect to many services at startup. It reduces the initial set of schemas and lets infrequently used services remain stopped. The gateway also acts as a shared control point for users, tokens, permissions, credentials, health, runtime state, and active connections.
How it works
Catalog queries do not start downstream services. A service marked lazy starts when its first real business call arrives and may later be reclaimed after becoming idle. Services can instead be configured as eager or disabled. The gateway can refresh its catalog, retry enabled services, and publish paged results for large catalogs.
The mcp-manager-gateway MCP server supports an agent-assisted migration flow. An agent can read Codex, Claude, generic JSON, or DSH/Cordis MCP configuration, normalize multiple entries, and submit proposals in batches of up to 100. A human reviews the proposal, selects lifecycle and isolation settings, runs a real test, and approves it before the service becomes available. Proposals cannot set privileged fields or skip review.
A Bridge connects clients to the gateway through stdio. The Connections page shows business leases and related instances, including current or queued calls, downstream call counts, and recent dispatch activity. Administrators can disconnect individual or multiple connections.
Setup and configuration
Python 3.12 or newer is required. Install the package with uv tool install mcp-manager-gateway or install it with pip in a dedicated virtual environment. Start it with mmg; mcp-manager and mcp-manager-gateway are equivalent command names. The default address is http://127.0.0.1:8765, and mmg serve --port 8766 changes the port.
Docker images are published for both linux/amd64 and linux/arm64 through Docker Hub and GHCR. On first startup, the application creates its configuration, SQLite database, and runtime data under ~/.mcp-manager on Linux and macOS, or %USERPROFILE%\\.mcp-manager on Windows. The first registered account becomes an administrator, and passwords must be at least 10 characters long.
Tools and capabilities
The mcp-manager-gateway MCP server supports:
- Discovering MCPs and tools without starting their downstream services.
- Searching the catalog and loading exact tool schemas before invocation.
- Calling selected downstream tools through indexed gateway routes.
- Managing lazy, eager, and disabled service lifecycles.
- Assigning catalogs to users and tokens with permissions and credentials.
- Submitting, reviewing, testing, and approving MCP migration proposals.
- Inspecting and disconnecting active leases and instances.
- Publishing bounded capability summaries while preserving complete tool definitions and input schemas.
For a full catalog, agents can enumerate gateway_search_tools; service summaries include only a bounded preview of tool names.
Limitations and notes
The gateway does not automatically approve agent proposals. A human must review and approve them, and agents cannot choose privileged lifecycle or isolation settings. Catalog metadata is bounded to 8 KiB, with oversized display fields summarized using omission or truncation markers; full tool definitions and input schemas are retained.
Stopping a service closes its current instances but does not revoke credentials or permanently disable later calls. An enabled lazy or eager service may start again when called. Lease expiry and instance idle reclamation are separate settings. The default lease validity is 43,200 seconds, while setting it to zero disables lease expiry. Heartbeat liveness detection can also be disabled by setting its missed-heartbeat limit to zero.