Skip to main content
Glama

Batch

batch

Several tool calls in one request: calls=[{tool, arguments, id?}], at most 20. Each call runs on its own, in order: its own result or error (a failed call does not stop the others), its own idempotency_key, and it counts against your rate limit like a separate call. No transaction spans the calls; later calls see what earlier ones wrote.

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": {
      "calls": "<calls>"
    },
    "name": "batch"
  }
}

Input Schema

NameRequiredDescriptionDefault
callsYes

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.5/5.0
Behavior5/5

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

Annotations only declare readOnlyHint=false and destructiveHint=false, which says nothing about execution semantics. The description supplies the material behavior: ordered sequential execution, per-call success or failure with failures not aborting the batch, per-call idempotency_key, rate-limit accounting per call, and no cross-call transaction with later calls observing earlier writes.

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?

Four short sentences, front-loaded with the payload shape before the execution semantics, and every clause delivers distinct information (shape, size cap, error isolation, idempotency, rate limit, transaction scope). No restatement of the title or 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?

With an output schema present, return values need not be explained, and the description covers the semantics an agent most needs before calling. Remaining gaps are minor: whether nested batch calls are permitted, and what happens if a single call's arguments fail validation at submission time versus execution time.

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

Parameters5/5

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

Schema description coverage is 0% and the schema itself is an opaque array of open objects (additionalProperties: true), so the description carries the full burden. It defines the object keys (tool, arguments, optional id) and restates the 1–20 bound, closing the main ambiguity an agent would face when constructing the payload.

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 names a specific capability — executing several tool calls in one request — and gives the exact envelope shape (calls=[{tool, arguments, id?}]) with a hard cap of 20. This clearly separates it from single-purpose bulk siblings like upsert_many or dereference_many, which operate on one resource type only.

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 only implied: 'Several tool calls in one request' suggests batching when you have multiple independent calls, and the per-call error isolation hints that dependent calls should not rely on atomicity. There is no explicit when-to-use/when-not guidance, no statement about nesting a batch inside a batch, and no named alternative.

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.