Skip to main content
Glama

Termix MCP

Version License

A small tool that lets Claude read and change a Termix server through its API.

It runs on your own computer. Your API key stays on your computer.

What Claude can do with it

  • Check that Termix is up and the key works (termix_health).

  • List, read, add, change, and delete hosts (termix_hosts).

  • Add many hosts at once (termix_add_many_hosts).

  • List stored credentials, with secrets hidden (termix_credentials).

  • Manage roles: make roles, put users in them, share hosts or folders with a role (termix_roles).

  • Call any other Termix API route (termix_call).

Related MCP server: drumfire-proxmox-mcp

Safety

  • Read calls run right away.

  • Add and change calls do not run until Claude asks you and sets confirm.

  • Delete calls also need the exact phrase typed back, like DELETE /host/db/host/3.

  • Passwords and keys are hidden in everything Claude sees.

  • Creating credentials, logins, and key making are blocked. Do those in the Termix web page yourself.

  • The API key is never printed. It is removed from error messages.

Set up

1. Make an API key

  1. Open Termix.

  2. Look in your user profile or admin settings for API keys. Menu names can differ a little by version.

  3. Best: make a separate key just for Claude, so you can delete it on its own later.

Do not paste the key in a chat. Put it only in the config file below. If it ever lands in a chat, delete that key and make a new one.

2. Add the tool to Claude

Open the Claude desktop app settings and find the MCP servers config file. Add the block from claude_desktop_config.example.json. Change the key.

  • TERMIX_URL: your server, like http://192.168.1.142:8081

  • TERMIX_API_KEY: your key

  • TERMIX_VERIFY_TLS: set to false only for a self-signed https address

That file now holds a secret. Do not share it. Do not put it on GitHub.

If you do not have uvx, use Python instead:

pip install git+https://github.com/drmogie/termix-mcp

Then use "command": "termix-mcp" and no args.

Restart the Claude desktop app.

3. Try it

Ask Claude: "Check Termix." Then: "List my Termix hosts."

Host field names

The Termix docs do not list the host fields. To see the exact names for your version:

  1. Add one host by hand in the Termix web page.

  2. Ask Claude to list hosts.

  3. Claude copies those field names when adding more.

Tests

pip install mcp
python -m unittest discover tests

The tests use a fake Termix server. They do not touch your real one.

Docs

Termix API: https://docs.termix.site/api/

Available Tools

6 tools
termix_add_many_hostsA

Add several hosts in one go. Each item is the same data you would give to termix_hosts add. Needs confirm=true. Reports each result on its own, so one bad row does not stop the rest.

NameRequiredDescriptionDefault
hostsYes
confirmNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the behavioral burden and discloses two important traits: a required confirm=true flag and per-item result reporting so one failed row does not abort the batch. It does not cover auth requirements, rate limits, or idempotency, but it handles the key mutation and partial-failure semantics.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is four compact sentences and front-loads the core purpose. Every sentence adds relevant information: batch semantics, item format reference, confirmation requirement, and error handling.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has an output schema, return values need not be explained. The description covers the mutation confirmation and partial-failure behavior, but because the input schema provides no field descriptions and the description defers host object details to a sibling command, it is slightly incomplete for an agent unfamiliar with termix_hosts add.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It adds useful meaning for both parameters by requiring confirm=true and by saying each hosts item matches the data passed to termix_hosts add, but it does not document the actual host object fields, leaving a gap at 0% coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: adding several hosts in one batch. It also distinguishes itself from the sibling tool termix_hosts add by explaining that each item uses the same data shape as the single-add command.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives clear context for when to use this tool: when adding several hosts at once, with the item format matching termix_hosts add. It also states the confirm=true prerequisite, though it does not explicitly say when not to use it or name alternatives for single-host additions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

termix_callA

Call any other Termix API route. Docs: https://docs.termix.site/api/

method: GET, POST, PUT, PATCH, or DELETE path: like /host/db/host or /health GET runs right away. POST, PUT, PATCH need confirm=true. DELETE needs confirm=true and confirm_phrase="DELETE ". Password and key routes are blocked. Secrets in answers are hidden.

NameRequiredDescriptionDefault
bodyNo
pathYes
queryNo
methodYes
confirmNo
confirm_phraseNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does well: it discloses confirmation gating per method, blocked route families (password/key), and that secrets are masked in responses. It omits auth expectations, rate limits, and error behavior, but proactively surfaces the destructive-safety constraints.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the purpose in one line, then presents constraints as a tight, scannable list where every line carries distinct information. No filler or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need no explanation; the description covers the salient behavioral constraints for a mutation-capable passthrough. Auth/permission context is the main missing piece for a tool that can hit arbitrary routes.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must compensate, and it does for the two required and two confirmation params: it enumerates valid method values, gives path format examples, and specifies confirm/confirm_phrase requirements including the exact phrase format. Body and query are left undocumented but are largely self-evident.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource: 'Call any other Termix API route,' which frames it clearly as the generic passthrough/escape hatch. The 'any other' phrasing implicitly distinguishes it from the specific sibling tools (termix_hosts, termix_health, etc.), though it never names them.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives concrete operational rules: GET runs immediately, POST/PUT/PATCH require confirm=true, DELETE requires confirm=true plus confirm_phrase, and password/key routes are blocked. It does not, however, tell the agent when to prefer this catch-all over the more specific sibling tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

termix_credentialsA

List or read stored credentials. Read-only. Secrets are hidden.

action: list | get Use the credential id inside a host's data to link a host to a credential.

NameRequiredDescriptionDefault
actionNolist
credential_idNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations at all, the description carries the full disclosure burden and does deliver the key traits: 'Read-only' (no mutation risk) and 'Secrets are hidden' (output is redacted). It does not cover permissions, error behavior when credential_id is omitted, or pagination, which keeps it short of a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Very short and front-loaded: purpose, safety, then the action modes and the id hint. The bare 'action: list | get' line is terse but functional; no sentence is wasted, though the formatting is slightly fragmentary.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be described, and the read-only/redaction note covers safety. Still, with 0% schema coverage and no annotations, the description leaves the get-vs-list parameter contract and the credential_id requirement under-specified for a two-parameter tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% and the schema has no enum for 'action', so the description's 'action: list | get' is genuinely additive. However, credential_id is only obliquely explained ('Use the credential id inside a host's data'), which describes where to find an id rather than what the parameter does in get mode.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb pair ('List or read') and resource ('stored credentials'), so an agent immediately knows the domain. It is distinguishable from siblings like termix_hosts and termix_health by resource, but never explicitly contrasts itself with them.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'action: list | get' implies the two operating modes, and the note about the credential id hints at a workflow, but there is no explicit when-to-use guidance, no statement of when 'get' is required over 'list', and no alternatives named. Usage is inferable rather than stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

termix_healthA

Check that the Termix server is up and the API key works.

Calls the health check, then lists hosts to test the key.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must carry the behavioral burden. It usefully discloses the internal sequence (health check, then host listing to validate the key), which explains a side effect an agent wouldn't otherwise expect. It does not state the operation is read-only, what failures look like, or any rate/auth constraints.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, front-loaded with the outcome ('server is up, API key works') followed by the mechanism. No filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained. The description covers purpose and mechanism adequately for a zero-argument probe. Minor gap: no explicit statement that it is safe/read-only, which would help given the absent annotations.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so there is no parameter semantics to document; baseline 4 applies. The description correctly avoids inventing arguments.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource: verifying the Termix server is reachable and the API key is valid. The two-step mechanism (health check then host listing) clarifies intent well. It stops short of naming siblings like termix_hosts, which also lists hosts, so differentiation is inferred rather than explicit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrasing implies a diagnostic/connectivity-check use case, which is reasonable guidance. However, it never states when to prefer this over siblings such as termix_call or termix_hosts, nor when not to call it (e.g., not as a substitute for listing hosts).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

termix_hostsA

List, read, add, change, or delete Termix hosts.

action: list | get | add | update | delete host_id: needed for get, update, delete data: the host fields for add and update (see the README for the field names; run action=list once to see the exact fields your Termix version uses) add and update need confirm=true. delete also needs confirm_phrase="DELETE /host/db/host/". Passwords and keys are hidden in all output. Enter those in the Termix web page.

NameRequiredDescriptionDefault
dataNo
actionNolist
confirmNo
host_idNo
confirm_phraseNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does well: it discloses that delete requires a typed confirm phrase of the form "DELETE /host/db/host/<id>", that add/update require confirm=true, and that passwords/keys are redacted from all output and must be set via the web UI. It stops short of stating permission requirements or what a partial update does to unlisted fields.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Content is front-loaded (purpose first, then action list, then parameter requirements, then the secret caveat) and each block earns its place. The layout is a bit list-heavy for prose but is well organized and free of filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, and the description covers the destructive-confirmation protocol and secret redaction that an agent must know before calling. The remaining shortfall is that `data` field names are external, forcing an extra discovery call or README lookup before add/update can be used correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the schema provides no title-level detail worth crediting; the description compensates by enumerating action semantics, per-action host_id use, the confirm flag, and the exact confirm_phrase format. The `data` object's field names remain undocumented (deferred to the README or a discovery action=list call), which is the one meaningful gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb set (list/read/add/change/delete) and a concrete resource (Termix hosts), so the tool's scope is unambiguous. It does not, however, explicitly distinguish itself from the sibling termix_add_many_hosts (bulk add) or termix_call, leaving that differentiation to inference.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It maps each action to its prerequisites (host_id for get/update/delete, data for add/update, confirm=true for writes, an exact confirm_phrase for delete). That is clear operational guidance, but it never names alternatives such as termix_add_many_hosts for bulk creation or termix_credentials for secret handling.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

termix_rolesA

Manage Termix roles, who is in them, and which hosts they can reach.

Read actions (run right away): list all roles members users in a role (needs role_id) user_roles roles of one user (needs user_id) users all users, to find a user_id host_access who a host is shared with (needs host_id) folder_access standing share rules for a folder (needs folder) Change actions (need confirm=true, so ask the user first): create needs name (lowercase, digits, _ or -) and display_name update needs role_id, and display_name and/or description assign needs role_id and user_id share_host needs host_id, and role_ids and/or user_ids share_folder needs folder, and role_ids and/or user_ids (also covers hosts added to that folder later) update_access needs host_id, access_id, permission_level and/or duration_hours Destructive actions (need confirm=true and confirm_phrase="METHOD /path"): delete delete a role (needs role_id) unassign take a role off a user (needs role_id and user_id) revoke_access remove a host share (needs host_id and access_id) delete_folder_rule remove a folder share rule (needs access_id) Sharing uses the host's saved credential. No passwords pass through here.

NameRequiredDescriptionDefault
nameNo
actionNolist
folderNo
confirmNo
host_idNo
role_idNo
user_idNo
role_idsNo
user_idsNo
access_idNo
descriptionNo
display_nameNo
confirm_phraseNo
duration_hoursNo
permission_levelNoconnect

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does so well: it discloses the confirmation gate, the confirm_phrase format, that sharing uses the host's saved credential, and that no passwords pass through. It stops short of saying what delete or unassign actually destroys (e.g. whether existing assignments or downstream shares are cascaded) or whether operations are reversible.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded purpose sentence followed by risk-tiered headings and an aligned action-to-parameters list. For a 15-parameter, 14-action tool the length is justified and no line is filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need no explanation, and the description covers action routing, safety gating, and per-action inputs. Remaining gaps are the permission_level vocabulary and the effects of destructive actions on related role/folder state.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0% across 15 parameters, so the description must compensate, and it largely does by mapping required parameters to each of the 14 actions and constraining name to lowercase letters, digits, underscore or hyphen. Gaps remain: permission_level values are not enumerated despite having no schema enum, duration_hours semantics are unstated, and the exact path string expected in confirm_phrase per action is not given.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Opens with a specific verb and resource plus its scope: managing roles, their membership, and host reachability. That scope cleanly separates it from siblings such as termix_hosts and termix_credentials, which handle hosts and secrets rather than role-based access.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly partitions actions into three tiers with different invocation conditions: reads run immediately, changes require confirm=true after asking the user, destructive calls require confirm=true plus a formatted confirm_phrase. Each action also lists its prerequisite parameters, so the agent knows exactly which inputs gate which action.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 1 tool updatev0.1.1
    • Addedtermix_roles
  2. 5 tool updatesv0.1.0
    • First observedtermix_add_many_hosts
    • First observedtermix_call
    • First observedtermix_credentials
    • First observedtermix_health
    • First observedtermix_hosts

TDQS

A3.9/5.0

Scored across 6 tools

Disambiguation3/5

Most tools have distinct resource focus, but termix_add_many_hosts overlaps with termix_hosts add, and termix_call can duplicate nearly any other tool. termix_health also overlaps with termix_call GET /health and host listing, though descriptions provide some guidance.

Naming Consistency4/5

All names use the same termix_ prefix and snake_case, which is predictable. The suffix style is not strictly verb_noun—resources are mostly nouns with actions as parameters—but it remains readable and consistent.

Tool Count5/5

Six tools is well within a reasonable range and covers the domain without excessive fragmentation. The generic escape hatch and batch-add tool each serve a clear purpose.

Completeness4/5

Core host CRUD, batch host creation, role/access management, credential reads, and health checks are covered. Minor gaps exist—credential writes are intentionally omitted and some operations rely on the generic call tool—but agents have workarounds.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    F
    maintenance
    Enables Claude to execute commands on remote servers via SSH, with support for SSH config, private keys, password auth, and agent forwarding.
    94 npm
    ISC
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables Claude to manage a Proxmox cluster through chat: inventory, power control, configuration changes, VM/container creation and cloning, snapshots, network/firewall/cluster visibility, guest command execution, and file writes via the QEMU Guest Agent.
    14 npm
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    Enables Claude to read and modify an Nginx Proxy Manager instance through its API, covering proxy, redirection, and 404 hosts, streams, certificates, access lists, audit logs, and any other API endpoint. Changes are merged into existing objects and guarded by read, change, and destructive safety levels that require user confirmation before anything is altered.
    4
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    Enables Claude to inspect and configure PiKVM devices through the web API and SSH, including power control, screenshots, keyboard input, virtual drives, health checks, configuration, and services, with safeguards that require confirmation for changes.
    15
    MIT