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.

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_nameNoHuman-readable name. Spaces and punctuation are allowed; leading or trailing whitespace and invisible or control characters are not.
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. 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."
  2. Added

TDQS

A4.3/5.0
Behavior5/5

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

Beyond the annotations (write, non-idempotent, non-destructive), the description discloses critical behavior: the daemon token is returned and 'shown only in this response' (one-time secret visibility), the machine 'stays offline until its daemon connects', and project_ids grants the machine to projects in the same call. These are non-obvious traits that directly affect how an agent should handle the result.

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?

The definition is front-loaded with the core action and what it returns, and every clause carries information. It is somewhat dense with semicolon-chained clauses, but nothing is filler and the most important fact (one-time token) appears early.

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?

There is no output schema, so the description correctly explains the return (a one-time daemon token). For a 9-parameter tool with nested objects, it covers the critical behaviors and the non-obvious project_ids/display_name linkage; remaining parameter details (cwd, env, secret_env, metadata) are well documented in the schema.

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 100%, so the baseline is 3, but the description adds meaning beyond the schema for project_ids (granting projects in the same call) and the display_name relationship ('their agent configs reference it by display_name'), which is not stated in the schema. It adds real value without covering every parameter.

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 ('Registers a machine you run yourself') and immediately clarifies the BYO nature versus the pool/provisioning siblings. It also tells the agent what the call produces (a daemon token for installing omnarad). An agent can distinguish it from machines_update, machines_get, and pools_create 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?

'Registers a machine you run yourself' implies the BYO use case versus pool-provisioned machines, but no explicit when-to-use/when-not or named alternative is given. The project_ids note describes an in-call side effect rather than routing guidance. Usage context is present but must be inferred.

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.