LabscoMCP early access ↗
kovrichardMCP SERVER

xMCP Server

Run a stdio MCP server whose launch command you do not have installed — xMCP holds npx, bunx, uv and docker in a container and proxies the session over HTTP.

by kovrichard ↗MCP Plumbing: Proxies, Registries & InspectorsCommunity

LABSCO SUMMARY

A runtime you do not have, reachable over the network.

The interesting move is turning a launch command into a URL. That makes a stdio server usable from a client on a machine with no Node, no Python and no Docker, and it makes one container the single place where those runtimes are installed and updated. The other side of that: anything you proxy runs in the container with the container's filesystem and network, so what you point it at matters as much as what you install.

What it is

A streamable HTTP MCP server that proxies to stdio MCP servers. It exists for one problem the other proxies leave alone: the stdio server you want needs a command your machine does not have. xMCP runs inside a container with the common launchers preinstalled, so you address the target server by URL instead of by local command.

What you get

  • A stdio MCP server addressed as a URL: the name, the command and its arguments become query parameters, for example ?name=context7&command=npx&args=-y,@upstash/context7-mcp
  • Launchers already present in the container so nothing has to be installed on your own machine — npx, bunx, uv and docker
  • Room to extend: add whatever else you need to the container image, and the same URL form works for it
  • A local MCP Inspector alongside the server for checking what the proxied session exposes

Requirements

No account and no key. Docker: docker compose up -d, or make start. The server listens at http://localhost:3001/mcp, and the Inspector at http://localhost:6274 — the Inspector needs an auth token in the URL, which make logs prints.

Setup effort

Run a container — build the image from the repository, then point your client at it