Skip to main content
Glama

Find a GPU to rent

find_gpu
Read-onlyIdempotent

Find cloud GPUs to rent now: price per GPU hour and the stock each provider reported at the last hourly check. Rentable offers come first, cheapest first. Each offer has a rent_url that opens the provider (some are referral links, same price for the buyer).

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "find_gpu"
  }
}

Input Schema

NameRequiredDescriptionDefault
gpuNoGPU model, e.g. "H100", "B300", "RTX 4090". Omit for every model.
limitNoHow many offers, default 20, at most 100.
billingNoOnly offers billed this way, ordered by that price. Left out: the entry price, whatever the billing.
in_stockNoDefault true: only offers the provider reports in stock. false: also offers that are out of stock or have unknown stock, for a full market view.
min_gpusNoSmallest node size needed, e.g. 8 for an 8x node.
max_priceNoHighest USD per GPU hour.

Output Schema

NameRequiredDescriptionDefault
unitYes
offersYes
captured_atYesWhen the prices and stock were collected

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed12 schema fields changed
    • addedInput schema / properties / billing
      Added value: +{
      +  "description": "Only offers billed this way, ordered by that price. Left out: the entry price, whatever the billing.",
      +  "enum": [
      +    "on_demand",
      +    "spot",
      +    "reserved"
      +  ],
      +  "type": "string"
      +}
    • addedOutput schema / properties / offers / items / properties / availability / description
      Added value: +"Stock the provider reported for this GPU"
    • addedOutput schema / properties / offers / items / properties / on_demand_availability
      Added value: +{
      +  "enum": [
      +    "in_stock",
      +    "unknown",
      +    "out_of_stock"
      +  ],
      +  "type": "string"
      +}
    • addedOutput schema / properties / offers / items / properties / on_demand_max_gpus
      Added value: +{
      +  "description": "Largest node sold on demand; null when the provider lists none",
      +  "type": [
      +    "number",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / offers / items / properties / on_demand_usd_per_gpu_hour
      Added value: +{
      +  "type": [
      +    "number",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / offers / items / properties / reserved_availability
      Added value: +{
      +  "enum": [
      +    "in_stock",
      +    "unknown",
      +    "out_of_stock"
      +  ],
      +  "type": "string"
      +}
    • addedOutput schema / properties / offers / items / properties / reserved_max_gpus
      Added value: +{
      +  "description": "Largest node sold reserved; null when the provider lists none",
      +  "type": [
      +    "number",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / offers / items / properties / reserved_usd_per_gpu_hour
      Added value: +{
      +  "type": [
      +    "number",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / offers / items / properties / spot_availability
      Added value: +{
      +  "enum": [
      +    "in_stock",
      +    "unknown",
      +    "out_of_stock"
      +  ],
      +  "type": "string"
      +}
    • addedOutput schema / properties / offers / items / properties / spot_max_gpus
      Added value: +{
      +  "description": "Largest node sold as spot; null when the provider lists none",
      +  "type": [
      +    "number",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / offers / items / properties / spot_usd_per_gpu_hour
      Added value: +{
      +  "type": [
      +    "number",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / offers / items / properties / usd_per_gpu_hour / description
      Added value: +"The entry rate: the on-demand price"
  2. Changed1 schema field changed
    • changedInput schema / properties / in_stock / description
      Previous value: -"Only offers the provider reports in stock. Default true."New value: +"Default true: only offers the provider reports in stock. false: also offers that are out of stock or have unknown stock, for a full market view."
  3. Changed7 schema fields changed
    • addedInput schema / properties / limit / maximum
      Added value: +100
    • addedInput schema / properties / limit / minimum
      Added value: +1
    • changedInput schema / properties / limit / type
      Previous value: -"number"New value: +"integer"
    • addedInput schema / properties / max_price / exclusiveMinimum
      Added value: +0
    • addedInput schema / properties / min_gpus / minimum
      Added value: +1
    • changedInput schema / properties / min_gpus / type
      Previous value: -"number"New value: +"integer"
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "properties": {
      +    "captured_at": {
      +      "description": "When the prices and stock were collected",
      +      "type": "string"
      +    },
      +    "offers": {
      +      "items": {
      +        "properties": {
      +          "availability": {
      +            "enum": [
      +              "in_stock",
      +              "unknown",
      +              "out_of_stock"
      +            ],
      +            "type": "string"
      +          },
      +          "country": {
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "direct_url": {
      +            "type": "string"
      +          },
      +          "gpu": {
      +            "description": "GPU slug, e.g. \"nvidia-h100\"",
      +            "type": "string"
      +          },
      +          "gpu_count_range": {
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "gpu_name": {
      +            "type": "string"
      +          },
      +          "is_referral": {
      +            "description": "rent_url ends in a referral link; the buyer pays the same price",
      +            "type": "boolean"
      +          },
      +          "max_gpus": {
      +            "description": "Largest node the provider offers",
      +            "type": [
      +              "number",
      +              "null"
      +            ]
      +          },
      +          "provider": {
      +            "description": "Provider slug",
      +            "type": "string"
      +          },
      +          "provider_name": {
      +            "type": "string"
      +          },
      +          "rent_url": {
      +            "description": "Link to give the buyer; counts the click, then opens the provider",
      +            "type": "string"
      +          },
      +          "usd_per_gpu_hour": {
      +            "type": [
      +              "number",
      +              "null"
      +            ]
      +          },
      +          "vram_gb": {
      +            "type": [
      +              "number",
      +              "null"
      +            ]
      +          }
      +        },
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "unit": {
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "captured_at",
      +    "unit",
      +    "offers"
      +  ],
      +  "type": "object"
      +}
  4. First observed

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already cover read-only, idempotent, non-destructive, and non-open-world, so the description's value is in the extra context it supplies: data freshness ("the stock each provider reported at the last hourly check"), result ordering, and the referral-link disclosure with the reassurance that the price is the same for the buyer. It stops short of mentioning rate limits or what happens when no offers match, keeping it below 5.

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?

Three sentences, front-loaded with the core purpose, then ordering, then the rent_url/referral caveat. No filler and no repetition of schema content; every sentence adds a fact the agent could not get from structured fields.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be enumerated, yet the description still flags the key output field (rent_url) and its referral implication. Combined with annotations covering the safety profile and a fully documented six-parameter schema, an agent has everything needed to call this correctly.

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%, and every parameter has a substantive description including defaults, bounds, and enum semantics, so the schema carries the load. The description only restates the price and stock concepts at a high level (relevant to max_price and in_stock) without adding filter-combination behavior or syntax beyond the schema. Baseline 3 applies.

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 ("Find cloud GPUs to rent") plus exactly what comes back: price per GPU hour and last-reported stock. The ordering rule ("Rentable offers come first, cheapest first") and the rent_url field make the tool's output shape unambiguous, so an agent knows precisely what a call yields.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The framing "rent now" and the note that rent_url opens the provider make the intent clear: this is a shopping/procurement lookup, not a monitoring tool. There are no sibling tools and no explicit exclusions, so no when-not guidance is possible, which caps this at 4 rather than 5.

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