LABSCO SUMMARY
Validate before you launch — it is the command that saves the wasted startup.
Most orchestration failures are mundane: a command missing from PATH, or an environment variable that was never set. The validate step reports both before anything starts, and separates fatal errors from warnings so a missing optional variable does not read like a broken config. Environment variable lookup is case-insensitive, so a config naming github_token also matches GITHUB_TOKEN.
What it is
A command-line orchestrator. Point it at a config file listing your MCP servers and it installs each one, launches them together, and fronts them all with one HTTP gateway — so clients that speak HTTP reach every tool through a single address instead of spawning processes.
What you get
fluidmcp run config.json --file --start-serverinstalls and launches everything in the config behind one gateway at http://localhost:8099- Automatic API documentation at /docs, so the whole tool surface is browsable
- Per-server HTTP endpoints that accept JSON-RPC tools/call directly, plus SSE streaming with sse/start, sse/stream, sse/message and sse/tools_call
- Package management:
fluidmcp install author/package@version,fluidmcp list, andfluidmcp edit-envto change a package's environment fluidmcp validatechecks config structure, whether each command exists on PATH, and whether required environment variables are set — distinguishing fatal errors from warnings by exit code- Bearer token authentication with
--secure --token, and configs loadable from an S3 URL
Requirements
Python — pip install fluidmcp. A config.json in the usual mcpServers shape, with each server's command, args and env. For S3-driven master mode, S3_BUCKET_NAME, S3_ACCESS_KEY, S3_SECRET_KEY and S3_REGION; for the package registry, MCP_FETCH_URL and MCP_TOKEN. Installed packages land under .fmcp-packages/Author/Package/Version/ with a metadata.json. Licensed GPL-3.0.
Setup effort
Follow the published steps — pip install fluidmcp
USE CASES
01
Starting all your servers with one command
List them in a config file and launch the whole set behind one gateway.
02
Reaching MCP tools from a plain HTTP client
Post JSON-RPC to the per-server endpoint instead of speaking stdio.
03
Seeing what is available
Open the generated Swagger documentation rather than reading each server's README.
04
Diagnosing a config that will not start
Validate it and read which command is missing or which required variable is unset.
05
Putting a token in front of the gateway
Run in secure mode so the endpoint requires a bearer token.
BEFORE YOU INSTALL
What to know first
Requires
pip on PATH
INSTALLATION
Connect your client
Server setup
TERMINAL
pip install fluidmcpCreate a config.json listing the MCP servers you want to run, in the usual mcpServers shape — each server with its command, args and env
TERMINAL
fluidmcp run config.json --file --start-serverThe gateway is now at http://localhost:8099, with API documentation at http://localhost:8099/docs. Each server in your config answers JSON-RPC tools/call requests at http://localhost:8099/<YOUR_SERVER_NAME>/mcp — for a server named google-maps, http://localhost:8099/google-maps/mcp