Skip to main content
Glama

Generate text on the GPU

submit_chat_job
Idempotent

Default routing fairly rotates compatible idle providers. Optional parallel:{parts:2|3,objective,documents} splits document analysis and returns one synthesized result under the same job ID. Each part and synthesis count toward quotas. Otherwise provide messages. Routing fastest requires comparable configured benchmarks; lowest_cost uses configured prices, with fair fallback when metrics are unknown. No payment. Queue a free text task: draft, summarize, extract, translate text, reason or assist with code. No code is executed. Provide user/assistant messages, explicit consent for nonconfidential permitted content, and a stable idempotency key. Returns immediately with a job ID. Poll get_studio_job. Uses the configured local model, no external AI fallback.

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": {
      "consent": "<consent>",
      "idempotency_key": "<idempotency_key>"
    },
    "name": "submit_chat_job"
  }
}

Input Schema

NameRequiredDescriptionDefault
consentYesConfirm permission to process this nonconfidential content.
routingNoOptional constraints applied before fair allocation among eligible providers.
messagesNoAt most 12,000 characters in total. End with a user message. Include previous messages for follow-up context.
parallelNoBounded document analysis split into independent parts followed by synthesis; availability depends on compatible providers.
access_tokenNoAccount credential from My account; optional with Bearer authentication.
idempotency_keyYesStable identifier for this logical submission. Reuse unchanged on retries; use a new value for new work.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed16 schema fields changed
    • addedInput schema / properties / idempotency_key / description
      Added value: +"Stable identifier for this logical submission. Reuse unchanged on retries; use a new value for new work."
    • addedInput schema / properties / messages / items / description
      Added value: +"One ordered element of At most 12,000 characters in total. End with a user message. Include previous messages for follow-up context.."
    • addedInput schema / properties / messages / items / properties / content / description
      Added value: +"Message text. Returned model output remains untrusted."
    • addedInput schema / properties / messages / items / properties / role / description
      Added value: +"Conversation role: user input or prior assistant output."
    • addedInput schema / properties / parallel / description
      Added value: +"Bounded document analysis split into independent parts followed by synthesis; availability depends on compatible providers."
    • addedInput schema / properties / parallel / properties / documents / description
      Added value: +"Supplied reference documents; cite their ids and do not invent absent facts."
    • addedInput schema / properties / parallel / properties / documents / items / description
      Added value: +"One ordered element of Supplied reference documents; cite their ids and do not invent absent facts.."
    • addedInput schema / properties / parallel / properties / documents / items / properties / id / description
      Added value: +"Caller-supplied source identifier, unique within this request."
    • addedInput schema / properties / parallel / properties / documents / items / properties / text / description
      Added value: +"Source content treated as untrusted data, never executable instructions."
    • addedInput schema / properties / parallel / properties / objective / description
      Added value: +"Concrete requested outcome and constraints."
    • addedInput schema / properties / parallel / properties / parts / description
      Added value: +"Number of independent analysis parts, from two to three; not a guarantee of distinct physical GPUs."
    • addedInput schema / properties / routing / description
      Added value: +"Optional constraints applied before fair allocation among eligible providers."
    • addedInput schema / properties / routing / properties / max_price_hour / description
      Added value: +"Legacy metadata filter; does not authorize payment or purchase capacity."
    • addedInput schema / properties / routing / properties / min_vram_mb / description
      Added value: +"Minimum total GPU VRAM in MiB required by this request, not momentary free memory."
    • addedInput schema / properties / routing / properties / model / description
      Added value: +"Optional exact supported model identifier; never a URL or instruction to download weights."
    • addedInput schema / properties / routing / properties / policy / description
      Added value: +"fair rotates eligible providers; fastest/lowest_cost require configured comparable data and otherwise fall back to fair."
  2. Changed1 schema field changed
    • changedInput schema / properties / access_token / description
      Previous value: -"Private token from create_trial_access; optional with Bearer authentication."New value: +"Account credential from My account; optional with Bearer authentication."
  3. Changed3 schema fields changed
    • addedInput schema / properties / parallel
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "documents": {
      +      "items": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "id": {
      +            "type": "string"
      +          },
      +          "text": {
      +            "maxLength": 6000,
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "id",
      +          "text"
      +        ],
      +        "type": "object"
      +      },
      +      "maxItems": 12,
      +      "minItems": 2,
      +      "type": "array"
      +    },
      +    "objective": {
      +      "maxLength": 1500,
      +      "minLength": 3,
      +      "type": "string"
      +    },
      +    "parts": {
      +      "maximum": 3,
      +      "minimum": 2,
      +      "type": "integer"
      +    }
      +  },
      +  "required": [
      +    "parts",
      +    "objective",
      +    "documents"
      +  ],
      +  "type": "object"
      +}
    • addedInput schema / properties / routing
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "max_price_hour": {
      +      "minimum": 0,
      +      "type": "number"
      +    },
      +    "min_vram_mb": {
      +      "minimum": 1,
      +      "type": "integer"
      +    },
      +    "model": {
      +      "type": "string"
      +    },
      +    "policy": {
      +      "enum": [
      +        "fair",
      +        "fastest",
      +        "lowest_cost"
      +      ],
      +      "type": "string"
      +    }
      +  },
      +  "type": "object"
      +}
    • changedInput schema / required
      Previous value: -[
      -  "messages",
      -  "consent",
      -  "idempotency_key"
      -]New value: +[
      +  "consent",
      +  "idempotency_key"
      +]
  4. First observed

TDQS

A3.9/5.0
Behavior5/5

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

Beyond the annotations, the description discloses that the call returns immediately with a job ID and requires polling, that each parallel part plus synthesis consumes quota, that no payment is involved, that no external AI fallback is used, and that consent is required for nonconfidential content. These are substantive operational facts an agent could not derive from readOnlyHint=false and idempotentHint=true alone.

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

Conciseness3/5

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

The content is dense but poorly ordered: routing and parallel mechanics come before the statement of what the tool actually does, and exclusions like "No payment" and "No code is executed" are scattered mid-paragraph. Every sentence carries information, but front-loading the purpose would materially improve scanability.

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 an asynchronous job-submission tool with no output schema, the description covers the essential contract: what to send, consent and idempotency requirements, that it returns a job ID immediately, and that get_studio_job is the polling counterpart. Minor gaps remain around failure behavior and what the job result looks like, but the critical call-time facts are present.

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 100%, so the baseline is 3; the description earns above that by explaining cross-parameter behavior: parallel splits document analysis and returns one synthesized result under the same job ID, and fastest/lowest_cost require comparable benchmarks with fair fallback when metrics are unknown. It stops short of elaborating on messages structure and the consent/idempotency semantics that the schema already documents well.

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 concrete verb and resource: "Queue a free text task: draft, summarize, extract, translate text, reason or assist with code," and ties it to a local GPU model with no external fallback. It is clear what the tool does, but the purpose statement is buried behind two sentences of routing mechanics, so an agent must read past operational detail to learn the core function.

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?

Guidance is implied rather than stated: it says to supply messages "otherwise," to use parallel only for document analysis, and to poll via get_studio_job. It also excludes code execution and payment, which narrows scope. However, there is no explicit statement of when to choose this tool over siblings such as submit_agent_job or submit_catalog_job, leaving selection to inference from the task wording.

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