Universal Host Manager MCP runs on your own machine — the client starts it, so there is no endpoint to ping. 179 installs a week from pypi. Last commit 29 Sep 2026.
Cross-platform FastMCP server for authenticated remote Linux/macOS host administration
We read the source, 4 d ago · rules 995398eba69f
A value the model can set ends up inside a file or shell call. That is not a flaw by itself — for a terminal server it is the job — but it is where things go wrong when it is not.
process = subprocess.Popen(
What this server is able to do. For an MCP server this is often the job itself — a terminal server runs commands because that is what it is for. Listed so you know what you are plugging in, not as an accusation.
result = subprocess.run(
shell=True,
Is this your server and something here is wrong? Tell us — corrections are free and do not require a plan.
That is not a flaw by itself — but it is where things go wrong when it is not the job. We re-read this code on every release. Watch it and you hear from us the day another one appears.
This server runs on your own machine — install it with the package manager and the client starts it for you. Package name taken from the official registry entry.
claude mcp add universal-host-manager-mcp -e 'MCP_WORKSPACE_DIR=<MCP_WORKSPACE_DIR>' -e 'AUTH0_DOMAIN=<AUTH0_DOMAIN>' -e 'AUTH0_CLIENT_ID=<AUTH0_CLIENT_ID>' -e 'AUTH0_CLIENT_SECRET=<AUTH0_CLIENT_SECRET>' -e 'AUTH0_AUDIENCE=<AUTH0_AUDIENCE>' -- uvx universal-host-manager-mcp
{
"mcpServers": {
"universal-host-manager-mcp": {
"command": "uvx",
"args": [
"universal-host-manager-mcp"
],
"env": {
"AUTH0_AUDIENCE": "<AUTH0_AUDIENCE>",
"AUTH0_CLIENT_ID": "<AUTH0_CLIENT_ID>",
"AUTH0_CLIENT_SECRET": "<AUTH0_CLIENT_SECRET>",
"AUTH0_DOMAIN": "<AUTH0_DOMAIN>",
"MCP_WORKSPACE_DIR": "<MCP_WORKSPACE_DIR>"
}
}
}
}
[mcp_servers.universal-host-manager-mcp]
command = "uvx"
args = ["universal-host-manager-mcp"]
env = { MCP_WORKSPACE_DIR = "<MCP_WORKSPACE_DIR>", AUTH0_DOMAIN = "<AUTH0_DOMAIN>", AUTH0_CLIENT_ID = "<AUTH0_CLIENT_ID>", AUTH0_CLIENT_SECRET = "<AUTH0_CLIENT_SECRET>", AUTH0_AUDIENCE = "<AUTH0_AUDIENCE>" }
{
"mcpServers": {
"universal-host-manager-mcp": {
"command": "uvx",
"args": [
"universal-host-manager-mcp"
],
"env": {
"AUTH0_AUDIENCE": "<AUTH0_AUDIENCE>",
"AUTH0_CLIENT_ID": "<AUTH0_CLIENT_ID>",
"AUTH0_CLIENT_SECRET": "<AUTH0_CLIENT_SECRET>",
"AUTH0_DOMAIN": "<AUTH0_DOMAIN>",
"MCP_WORKSPACE_DIR": "<MCP_WORKSPACE_DIR>"
}
}
}
}
{
"servers": {
"universal-host-manager-mcp": {
"type": "stdio",
"command": "uvx",
"args": [
"universal-host-manager-mcp"
],
"env": {
"AUTH0_AUDIENCE": "<AUTH0_AUDIENCE>",
"AUTH0_CLIENT_ID": "<AUTH0_CLIENT_ID>",
"AUTH0_CLIENT_SECRET": "<AUTH0_CLIENT_SECRET>",
"AUTH0_DOMAIN": "<AUTH0_DOMAIN>",
"MCP_WORKSPACE_DIR": "<MCP_WORKSPACE_DIR>"
}
}
}
}
Put your own values in place of
<MCP_WORKSPACE_DIR> (Directory that read_file/write_file/list_dir are restricted to), <AUTH0_DOMAIN> (Auth0 tenant domain, e.g. your-tenant.eu.auth0.com), <AUTH0_CLIENT_ID> (Auth0 application client ID), <AUTH0_CLIENT_SECRET> (Auth0 application client secret), <AUTH0_AUDIENCE> (Auth0 API audience/identifier).
The author’s registry entry marks them as required.
Optional settings from the registry entry, left out of the block above:
HOST (Interface to bind to), PORT (Port to listen on), ALLOW_INSECURE_NO_AUTH (Set to true only for local-only testing without Auth0).
Nostr-authenticated MCP server for secure YunoHost administration.
Authenticated remote MCP server for Turrior.
MCP server for SSH remote server management with SSH agent authentication support.
MCP server for the PensionPro pension administration REST API.
Remote MCP server bridging AI clients with the PowerDMARC email authentication Platform.
MCP server with authentication for Frigate NVR (authenticated port, viewer role)
MCP server for web page and cross-platform system screenshots (macOS, Linux, Windows)
MCP server for read-only Linux system administration, diagnostics, and troubleshooting
Answers built from our own checks of this server.