Skip to main content
Glama

Connect BYO machine

machines_create

Registers a machine you run yourself and returns its daemon token for installing omnarad on it; the token is shown only in this response. The machine stays offline until its daemon connects. project_ids grants it to those projects in the same call, and their agent configs reference it by display_name.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "display_name": "<display_name>",
      "orgID": "<orgID>"
    },
    "name": "machines_create"
  }
}

Input Schema

NameRequiredDescriptionDefault
cwdNoDefault working directory for processes started on the machine.
envNoEnvironment variables set for processes started on the machine.
orgIDYesOrganization ID (org_...).
metadataNoUser-supplied metadata stored on a machine, provided directly or copied from the machine pool that provisions it. A restriction of Metadata that leaves room for one reserved pair - Omnara sets observed_platform on the machine to the platform reported by its daemon, so the key is reserved and at most 15 user pairs are accepted.
secret_envNoEnvironment variable names mapped to secret IDs (sec_...) whose values are set for processes started on the machine.
token_nameNoOptional daemon token name. Omitted values default to daemon.
descriptionNoOptional description of the machine.
project_idsNoProjects to grant the machine to in the same call (up to 100).
display_nameYesHuman-readable name. Spaces and punctuation are allowed; leading or trailing whitespace and invisible or control characters are not.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / token_name / description
      Previous value: -"Human-readable name. Spaces and punctuation are allowed; leading or trailing whitespace and invisible or control characters are not."New value: +"Optional daemon token name. Omitted values default to daemon."
  2. Changed8 schema fields changed
    • addedInput schema / $defs / ProjectID / description
      Added value: +"Project ID (proj_...)."
    • addedInput schema / $defs / SecretID / description
      Added value: +"Secret ID (sec_...)."
    • addedInput schema / properties / cwd / description
      Added value: +"Default working directory for processes started on the machine."
    • addedInput schema / properties / description / description
      Added value: +"Optional description of the machine."
    • addedInput schema / properties / env / description
      Added value: +"Environment variables set for processes started on the machine."
    • addedInput schema / properties / orgID / description
      Added value: +"Organization ID (org_...)."
    • addedInput schema / properties / project_ids / description
      Added value: +"Projects to grant the machine to in the same call (up to 100)."
    • addedInput schema / properties / secret_env / description
      Added value: +"Environment variable names mapped to secret IDs (sec_...) whose values are set for processes started on the machine."
  3. Added

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare the write/non-destructive/closed-world profile, so the description correctly spends its words on facts annotations cannot carry: the token is retrievable only in this response, and the machine is inert until the daemon connects. It stops short of warning that repeat calls with the same display_name create additional machines (non-idempotent), which is the one behavioral trap left open.

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 sentences, front-loaded with the action and the most consequential fact (single-use token), then layering the offline-until-connected state and the project granting shortcut. No sentence restates the title or the schema.

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?

For a nine-parameter mutating tool with nested objects and no output schema, the description covers the essential unknowns: what is returned, that it is not retrievable later, and what state the resource starts in. The remaining parameters (cwd, env, secret_env, metadata) are fully documented in the schema, so nothing crucial is missing.

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 100%, so baseline is 3. The description does add genuine cross-field meaning beyond the schema: project_ids grants the machine to those projects in the same call, and agent configs reference it by display_name — a naming contract the schema does not state. That is real added value, but it is confined to two of nine parameters.

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?

States a specific verb and resource ('Registers a machine you run yourself') and immediately identifies the side effect that distinguishes it from every other sibling — returning a daemon token for installing omnarad. An agent can separate this from pools_create (provisioned machines) and machines_update without opening any schema.

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?

Usage is implied by the lifecycle note ('stays offline until its daemon connects') and by the project_ids shortcut, which together signal this is the bring-your-own-hardware path. However, there is no explicit when-to-use or when-not-to-use statement, and it never names the alternatives an agent should weigh (pools_create for managed provisioning, grant_machines_add for later grants).

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.