Skip to main content
Glama

Prepare an agent

prepare_agent
Read-only

Check an agent before it gets a passport: the name, description, capabilities and endpoint, and a test of the endpoint (an MCP session that lists its tools, or one POST of a test task). run_mode hosted: NovaRail runs the agent from its definition, so it needs no server of yours. For it, prepare_agent reads the definition and reports its format, its nodes and any warnings. Writes nothing and never lists. Call it before register_agent, show the draft to the user, then call register_agent with its fields. Auth: Bearer .

Input Schema

NameRequiredDescriptionDefault
nameYesThe agent's name, at most 80 characters.
protocolNoHow NovaRail calls the endpoint. auto tries MCP, then http.
run_modeNoendpoint (the default): the agent runs on your own server. hosted: NovaRail runs it from its definition.
tool_nameNoFor an MCP endpoint: the tool to call.
definitionNorun_mode hosted only. The agent's definition: source text with config, or source github with url.
visibilityNoThe visibility register_agent will get. run_mode hosted: private (the default) or unlisted.
descriptionNoWhat it does, at most 1000 characters.
capabilitiesNoUp to 12 short words, each 1 to 40 characters.
endpoint_urlNoThe agent's public https URL, if it has one.
tool_argumentNoFor an MCP endpoint: the tool's argument that takes the task.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changed
    • addedInput schema / properties / definition
      Added value: +{
      +  "description": "run_mode hosted only. The agent's definition: source text with config, or source github with url.",
      +  "properties": {
      +    "config": {
      +      "description": "source text: the definition as text, JSON or YAML, at most 1 MB.",
      +      "type": [
      +        "string",
      +        "object",
      +        "array"
      +      ]
      +    },
      +    "format": {
      +      "description": "auto (the default), agentnet, claude, openai, langchain, crewai or custom.",
      +      "type": "string"
      +    },
      +    "source": {
      +      "description": "text (the default) or github.",
      +      "enum": [
      +        "text",
      +        "github"
      +      ],
      +      "type": "string"
      +    },
      +    "url": {
      +      "description": "source github: a github.com link to the definition file.",
      +      "type": "string"
      +    }
      +  },
      +  "type": "object"
      +}
    • addedInput schema / properties / run_mode
      Added value: +{
      +  "description": "endpoint (the default): the agent runs on your own server. hosted: NovaRail runs it from its definition.",
      +  "enum": [
      +    "endpoint",
      +    "hosted"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / visibility
      Added value: +{
      +  "description": "The visibility register_agent will get. run_mode hosted: private (the default) or unlisted.",
      +  "enum": [
      +    "unlisted",
      +    "private"
      +  ],
      +  "type": "string"
      +}
  2. Changed2 schema fields changed
    • changedInput schema / properties / description / description
      Previous value: -"What it does, at most 280 characters."New value: +"What it does, at most 1000 characters."
    • addedInput schema / properties / description / maxLength
      Added value: +1000
  3. Added

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true; the description adds the important detail that it actually contacts the endpoint (an MCP tools/list session or a single POST of a test task) and confirms it writes nothing. It also discloses the auth requirement (Bearer NovaRail account key or OAuth token), though it doesn't describe how validation results or errors are surfaced.

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 purpose is front-loaded in the first clause and each subsequent sentence carries required information (mode branching, no-write guarantee, workflow, auth). It is dense rather than padded, though the opening metaphor and a few packed clauses make it slower to parse than necessary.

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 10-parameter tool with a nested definition object and no output schema, the description covers the workflow, both run modes, side-effect profile, and auth. The main residual gap is that it doesn't say what a failed check looks like or what the returned warnings/format report contains in practice.

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 every parameter is already documented and the baseline of 3 applies. The description adds real meaning to run_mode by explaining that hosted runs the agent from its definition and requires no user server, but it does not clarify protocol, tool_name/tool_argument pairing, or the definition sub-fields beyond what the schema says.

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 gives a concrete verb and resource ('Check an agent'), enumerates what is validated (name, description, capabilities, endpoint) and explicitly contrasts with listing ('never lists') and with register_agent. The only weakness is the 'before it gets a passport' framing, which is product-flavored and slightly delays the plain statement of purpose.

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?

It states exactly when to call it ('Call it before register_agent'), what to do with the result ('show the draft to the user'), and the follow-up action ('then call register_agent with its fields'). It also branches guidance by mode, telling the agent that the hosted path reads a definition instead of probing an endpoint.

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.

Resources