MCP server: One MCP server.

Termix

@sujirodevMCP server · External

Manage hosts, snippets, dashboard, metrics and audit of a self-hosted Termix (SSH/RDP/VNC manager)

Self-hosting & homelabv0.1.0MITPython
Freeno charge per call

Runs on your machine from its package; the steps are below.

What it does

  1. Reads
  2. Writes
  3. High impact

At most: moves money, runs code or commands, deletes data, or sends messages for you.

What it costs

Free

Odel charges nothing per call. The publisher may charge for its own service.

Runs locally over stdio

This server isn't hosted — your MCP client launches it from a package registry. Use one of the commands below, or drop the config into your client (e.g. Claude Desktop).

PyPItermix-mcpv0.1.0

Run

uvx termix-mcp

MCP client config

{
  "mcpServers": {
    "termix": {
      "command": "uvx",
      "args": [
        "termix-mcp"
      ]
    }
  }
}
Dockerghcr.io/sujirodev/termix-mcp:0.1.0

Run

docker run -i --rm ghcr.io/sujirodev/termix-mcp:0.1.0

MCP client config

{
  "mcpServers": {
    "termix": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "ghcr.io/sujirodev/termix-mcp:0.1.0"
      ]
    }
  }
}
README6 min read

termix-mcp

CI PyPI License Python Docker

MCP server for Termix, the self-hosted SSH/RDP/VNC manager. Lets an agent (Claude Desktop, Claude Code, Cursor, VS Code...) list and operate your Termix's hosts, snippets, dashboard, metrics and audit trail, built on top of termix-sdk.

Not a 1:1 wrapper of the Termix API: it's a curated set of tools, secure by default (no secrets, no persistent SSH session, no destructive tools outside of explicit toolsets).

MCP Registry

Install

bash
uvx termix-mcp

Alternatives: pip install termix-mcp or the ghcr.io/sujirodev/termix-mcp image.

Requires a Termix API key (tmx_...) with the minimum RBAC permissions for what the agent will do - see SECURITY.md.

Configure in your client

Claude Desktop / Claude Code (claude_desktop_config.json or .mcp.json):

json
{
  "mcpServers": {
    "termix": {
      "command": "uvx",
      "args": ["termix-mcp"],
      "env": {
        "TERMIX_URL": "https://termix.example.com",
        "TERMIX_API_KEY": "tmx_xxxxxxxxxxxxxxxxxxxxxxxx"
      }
    }
  }
}

Cursor / VS Code: same format, in each one's MCP configuration file.

Install via the MCP Registry

termix-mcp is published in the official MCP Registry under the name io.github.sujirodev/termix-mcp, with both a PyPI (uvx) package and an OCI (Docker) image listed - see server.json.

Clients that support registry-based discovery can find and install it directly from there instead of hand-writing the JSON config above:

bash
curl -s "https://registry.modelcontextprotocol.io/v0/servers?search=io.github.sujirodev/termix-mcp"

Then follow your client's own "add from registry" flow, searching for io.github.sujirodev/termix-mcp. You'll still need to set TERMIX_URL and TERMIX_API_KEY yourself - the registry entry doesn't carry your credentials.

You say / what happens

You sayWhat the tool does
"what hosts do I have registered?"termix_list_hosts
"show me the metrics for host X"termix_get_host_metrics
"run snippet Y on host X"termix_run_snippet (blocked in read-only mode)
"create a new host for this server"termix_create_host (blocked in read-only mode)
"what audit activity happened this week?"termix_list_audit_events

Environment variables

VariableDefaultDescription
TERMIX_URLrequiredTermix base URL
TERMIX_API_KEYrequiredtmx_... API key (JWT/TOTP are not supported)
TERMIX_SERVICE_URLSemptyJSON {"database": "http://..."} for installs without a proxy
TERMIX_VERIFY_SSLtrueValidates the TLS certificate
TERMIX_TIMEOUT30Timeout per request (s)
TERMIX_MAX_RETRIES2Passed through to the SDK
TERMIX_MCP_READ_ONLYfalseHides and blocks write tools
TERMIX_MCP_TOOLSETSdefaultdefault, all, or a list hosts,snippets,files
TERMIX_MCP_ENABLED_TOOLSemptyAllowlist by tool name
TERMIX_MCP_DISABLED_TOOLSemptyDenylist by tool name
TERMIX_MCP_REDACT_SECRETStrueMasks secrets in all outputs
TERMIX_MCP_MAX_ITEMS50Default item limit for listings
TERMIX_MCP_TRANSPORTstdiostdio or http
TERMIX_MCP_HTTP_HOST / _PORT127.0.0.1 / 8765HTTP transport bind
TERMIX_MCP_HTTP_PATHgenerated and loggedSecret path of the HTTP endpoint
TERMIX_MCP_LOG_LEVELINFOLog level (stderr on stdio, stdout on http)

Toolsets

Enabled by default: hosts, snippets, dashboard, metrics, system, audit.

Opt-in (TERMIX_MCP_TOOLSETS=hosts,files,docker,...): credentials, files, docker, tunnels, alerts, automations, users.

Disabled and explicit (never included in all): admin, dangerous.

TERMIX_MCP_READ_ONLY=true hides and blocks every tool that isn't read-only, in any toolset.

Tools

Full tool list (generated by scripts/generate_tool_docs.py)
ToolToolsetRead-onlyDestructiveFlags
termix_get_audit_forwardingadminyesnoadmin
termix_get_brandingadminyesnoadmin
termix_get_encryption_statusadminyesnoadmin
termix_get_host_defaultsadminyesnoadmin
termix_get_termix_id_statusadminyesnoadmin
termix_list_sso_providersadminyesnoadmin
termix_update_brandingadminnonoadmin
termix_acknowledge_alert_firingalertsnono-
termix_create_alert_rulealertsnono-
termix_delete_alert_rulealertsnoyes-
termix_list_alert_rulesalertsyesno-
termix_get_session_logaudityesno-
termix_list_audit_eventsaudityesno-
termix_list_session_logsaudityesno-
termix_get_automationautomationsyesno-
termix_list_automationsautomationsyesno-
termix_list_fleetsautomationsyesno-
termix_run_automationautomationsnonodata-access
termix_create_credentialcredentialsnono-
termix_delete_credentialcredentialsnoyes-
termix_get_credentialcredentialsyesno-
termix_list_credentialscredentialsyesno-
termix_reveal_credentialcredentialsyesnodata-access
termix_update_credentialcredentialsnono-
termix_get_dashboard_summarydashboardyesno-
termix_get_homepagedashboardyesno-
termix_list_open_tabsdashboardyesno-
termix_list_workspacesdashboardyesno-
termix_get_containerdockeryesnodata-access
termix_get_container_logsdockeryesnodata-access
termix_get_container_statsdockeryesnodata-access
termix_list_containersdockeryesnodata-access
termix_restart_containerdockernonodata-access
termix_start_containerdockernonodata-access
termix_stop_containerdockernonodata-access
termix_create_folderfilesnonodata-access
termix_delete_filefilesnoyesdata-access
termix_list_filesfilesyesnodata-access
termix_move_filefilesnonodata-access
termix_read_filefilesyesnodata-access
termix_rename_filefilesnonodata-access
termix_write_filefilesnonodata-access
termix_create_hosthostsnono-
termix_delete_hosthostsnoyes-
termix_disable_host_autostarthostsnono-
termix_enable_host_autostarthostsnono-
termix_get_hosthostsyesno-
termix_get_network_topologyhostsyesno-
termix_list_host_foldershostsyesno-
termix_list_host_tagshostsyesno-
termix_list_hostshostsyesno-
termix_update_hosthostsnono-
termix_get_host_metricsmetricsyesno-
termix_get_host_statusmetricsyesno-
termix_get_metrics_historymetricsyesno-
termix_get_proxmox_statsmetricsyesno-
termix_list_active_alertsmetricsyesno-
termix_list_host_statusesmetricsyesno-
termix_create_snippetsnippetsnono-
termix_delete_snippetsnippetsnoyes-
termix_get_snippetsnippetsyesno-
termix_list_snippetssnippetsyesno-
termix_run_snippetsnippetsnono-
termix_update_snippetsnippetsnono-
termix_get_preferencessystemyesno-
termix_get_system_infosystemyesno-
termix_list_api_keyssystemyesno-
termix_create_tunneltunnelsnonodata-access
termix_delete_tunneltunnelsnonodata-access
termix_get_tunneltunnelsyesno-
termix_list_tunnel_presetstunnelsyesno-
termix_list_tunnelstunnelsyesno-
termix_assign_roleusersnonoadmin
termix_get_userusersyesnoadmin
termix_list_credential_accessusersyesnoadmin
termix_list_folder_accessusersyesnoadmin
termix_list_rolesusersyesnoadmin
termix_list_usersusersyesnoadmin

Total: 78 tools.

Contributing

See CONTRIBUTING.md.

Security

See SECURITY.md for the threat model.

License

MIT

Similar modules

Browse Self-hosting & homelab