Skip to main content
Glama

market_request

Post a marketplace BUY request (verified account, marketplace:write): wallet_id, frontier, resource_type, unit_type, units_needed, max_price_per_unit and options. Escrow is debited on match. A physical trade must carry physical_claim (the site and dates).

Input Schema

NameRequiredDescriptionDefault
bodyYesThe buy request; each field is described in its schema.

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed52 schema fields changed
    • changedInput schema / $defs / PhysicalClaimBody / properties / kind / description
      Previous value: -"physical_change: something changed at the site between t0 and t1 · physical_state: the site shows something at t1"New value: +"physical_change: something changed at the site between t0 and t1 · physical_state: the site shows something …"
    • removedInput schema / $defs / PhysicalClaimBody / properties / kind / title
      Removed value: -"Kind"
    • removedInput schema / $defs / PhysicalClaimBody / properties / radius_m / default
      Removed value: -null
    • removedInput schema / $defs / PhysicalClaimBody / properties / radius_m / title
      Removed value: -"Radius M"
    • removedInput schema / $defs / PhysicalClaimBody / properties / site_entity_id / default
      Removed value: -null
    • removedInput schema / $defs / PhysicalClaimBody / properties / site_entity_id / title
      Removed value: -"Site Entity Id"
    • removedInput schema / $defs / PhysicalClaimBody / properties / site_entity_type / default
      Removed value: -null
    • removedInput schema / $defs / PhysicalClaimBody / properties / site_entity_type / title
      Removed value: -"Site Entity Type"
    • removedInput schema / $defs / PhysicalClaimBody / properties / site_lat / title
      Removed value: -"Site Lat"
    • removedInput schema / $defs / PhysicalClaimBody / properties / site_lng / title
      Removed value: -"Site Lng"
    • removedInput schema / $defs / PhysicalClaimBody / properties / t0 / default
      Removed value: -null
    • removedInput schema / $defs / PhysicalClaimBody / properties / t0 / title
      Removed value: -"T0"
    • removedInput schema / $defs / PhysicalClaimBody / properties / t1 / title
      Removed value: -"T1"
    • removedInput schema / $defs / PhysicalClaimBody / title
      Removed value: -"PhysicalClaimBody"
    • removedInput schema / $defs / RematchBody / properties / max_price_per_unit / default
      Removed value: -null
    • changedInput schema / $defs / RematchBody / properties / max_price_per_unit / description
      Previous value: -"the most a background re-match may pay a unit: 1 .. the request's own max_price_per_unit (default: that maximum)"New value: +"the most a background re-match may pay a unit: 1 .. the request's own max_price_per_unit (default: that …"
    • removedInput schema / $defs / RematchBody / properties / max_price_per_unit / title
      Removed value: -"Max Price Per Unit"
    • removedInput schema / $defs / RematchBody / properties / window_seconds / default
      Removed value: -null
    • removedInput schema / $defs / RematchBody / properties / window_seconds / title
      Removed value: -"Window Seconds"
    • removedInput schema / $defs / RematchBody / title
      Removed value: -"RematchBody"
    • removedInput schema / $defs / RequestBody / properties / contract_escrow / default
      Removed value: -null
    • changedInput schema / $defs / RequestBody / properties / contract_escrow / description
      Previous value: -"opt in to the on-chain escrow contract lane (a flat contract fee added to your lock). Takes effect ONLY where an oracle backs the trade; otherwise the trade falls to the default ledger lane with no contract and no contract fee, and the match says why (contract_escrow=false + contract_note)"New value: +"opt in to the on-chain escrow contract lane (a flat contract fee added to your lock)."
    • removedInput schema / $defs / RequestBody / properties / contract_escrow / title
      Removed value: -"Contract Escrow"
    • removedInput schema / $defs / RequestBody / properties / frontier / title
      Removed value: -"Frontier"
    • removedInput schema / $defs / RequestBody / properties / idempotency_key / default
      Removed value: -null
    • removedInput schema / $defs / RequestBody / properties / idempotency_key / title
      Removed value: -"Idempotency Key"
    • removedInput schema / $defs / RequestBody / properties / max_price_per_unit / title
      Removed value: -"Max Price Per Unit"
    • removedInput schema / $defs / RequestBody / properties / physical_claim / default
      Removed value: -null
    • changedInput schema / $defs / RequestBody / properties / physical_claim / description
      Previous value: -"REQUIRED for resource_type scene_stack, change_report, site_reconstruction or satellite_imagery (refused without it): the site and date the trade is judged against — a satellite frame at that place and time, never a party's word"New value: +"REQUIRED for resource_type scene_stack, change_report, site_reconstruction or satellite_imagery (refused …"
    • removedInput schema / $defs / RequestBody / properties / priority / default
      Removed value: -null
    • removedInput schema / $defs / RequestBody / properties / priority / title
      Removed value: -"Priority"
    • removedInput schema / $defs / RequestBody / properties / privacy_mode / default
      Removed value: -null
    • removedInput schema / $defs / RequestBody / properties / privacy_mode / title
      Removed value: -"Privacy Mode"
    • removedInput schema / $defs / RequestBody / properties / provider_id / default
      Removed value: -null
    • changedInput schema / $defs / RequestBody / properties / provider_id / description
      Previous value: -"the listing to buy from: a provider id from market_listings (kind providers). The request then matches that listing only, never another one; unknown, inactive, your own, not offering what you ask for, or priced above max_price_per_unit is refused (404, with the reason). Leave it unset to buy from the open market (the cheapest fitting listing)"New value: +"the listing to buy from: a provider id from market_listings (kind providers)."
    • removedInput schema / $defs / RequestBody / properties / provider_id / title
      Removed value: -"Provider Id"
    • removedInput schema / $defs / RequestBody / properties / rematch / default
      Removed value: -null
    • changedInput schema / $defs / RequestBody / properties / rematch / description
      Previous value: -"MACHINE speed only: allow automatic re-matching if a match on this request ends without delivery, within these bounds. A background match is escrowed from your wallet without a further call (one notice per escrow); market_request_rematch_withdraw ends it. Refused (409 rematch_consent_unavailable) until the live RAREEAI Terms carry the clause; 422 on human speed"New value: +"MACHINE speed only: allow automatic re-matching if a match on this request ends without delivery, within …"
    • removedInput schema / $defs / RequestBody / properties / requirements / default
      Removed value: -null
    • removedInput schema / $defs / RequestBody / properties / requirements / title
      Removed value: -"Requirements"
    • changedInput schema / $defs / RequestBody / properties / resource_type / description
      Previous value: -"what you want to buy; scene_stack, change_report, site_reconstruction and satellite_imagery need physical_claim"New value: +"what you want to buy"
    • removedInput schema / $defs / RequestBody / properties / resource_type / title
      Removed value: -"Resource Type"
    • removedInput schema / $defs / RequestBody / properties / speed / default
      Removed value: -null
    • removedInput schema / $defs / RequestBody / properties / speed / title
      Removed value: -"Speed"
    • removedInput schema / $defs / RequestBody / properties / ttl_seconds / default
      Removed value: -null
    • removedInput schema / $defs / RequestBody / properties / ttl_seconds / title
      Removed value: -"Ttl Seconds"
    • removedInput schema / $defs / RequestBody / properties / unit_type / title
      Removed value: -"Unit Type"
    • removedInput schema / $defs / RequestBody / properties / units_needed / title
      Removed value: -"Units Needed"
    • removedInput schema / $defs / RequestBody / properties / wallet_id / title
      Removed value: -"Wallet Id"
    • removedInput schema / $defs / RequestBody / title
      Removed value: -"RequestBody"
    • removedInput schema / title
      Removed value: -"market_requestArguments"
    • removedOutput schema / title
      Removed value: -"market_requestDictOutput"
  2. Changed2 schema fields changed
    • addedInput schema / $defs / RematchBody
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "max_price_per_unit": {
      +      "anyOf": [
      +        {
      +          "minimum": 1,
      +          "type": "integer"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "description": "the most a background re-match may pay a unit: 1 .. the request's own max_price_per_unit (default: that maximum)",
      +      "title": "Max Price Per Unit"
      +    },
      +    "window_seconds": {
      +      "anyOf": [
      +        {
      +          "maximum": 86400,
      +          "minimum": 300,
      +          "type": "integer"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "description": "how long the consent lasts, 300-86400 s (default 86400)",
      +      "title": "Window Seconds"
      +    }
      +  },
      +  "title": "RematchBody",
      +  "type": "object"
      +}
    • addedInput schema / $defs / RequestBody / properties / rematch
      Added value: +{
      +  "anyOf": [
      +    {
      +      "$ref": "#/$defs/RematchBody"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "MACHINE speed only: allow automatic re-matching if a match on this request ends without delivery, within these bounds. A background match is escrowed from your wallet without a further call (one notice per escrow); market_request_rematch_withdraw ends it. Refused (409 rematch_consent_unavailable) until the live RAREEAI Terms carry the clause; 422 on human speed"
      +}
  3. Changed1 schema field changed
    • addedInput schema / $defs / RequestBody / properties / provider_id
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "the listing to buy from: a provider id from market_listings (kind providers). The request then matches that listing only, never another one; unknown, inactive, your own, not offering what you ask for, or priced above max_price_per_unit is refused (404, with the reason). Leave it unset to buy from the open market (the cheapest fitting listing)",
      +  "title": "Provider Id"
      +}
  4. Changed18 schema fields changed
    • addedInput schema / $defs / PhysicalClaimBody / properties / radius_m / description
      Added value: +"the site's radius in metres, 50-2500"
    • addedInput schema / $defs / PhysicalClaimBody / properties / site_entity_id / description
      Added value: +"that entity's id"
    • addedInput schema / $defs / PhysicalClaimBody / properties / site_entity_type / description
      Added value: +"the GreenlandAI entity at the site, if any"
    • addedInput schema / $defs / PhysicalClaimBody / properties / site_lat / description
      Added value: +"the site's latitude, decimal degrees"
    • addedInput schema / $defs / PhysicalClaimBody / properties / site_lng / description
      Added value: +"the site's longitude, decimal degrees"
    • addedInput schema / $defs / RequestBody / properties / frontier / description
      Added value: +"the marketplace frontier to buy in"
    • addedInput schema / $defs / RequestBody / properties / idempotency_key / description
      Added value: +"your own opaque key: the same key and body is one request, never two"
    • addedInput schema / $defs / RequestBody / properties / max_price_per_unit / description
      Added value: +"the most you pay per unit, in joules, a whole number > 0"
    • addedInput schema / $defs / RequestBody / properties / priority / description
      Added value: +"matching priority, per the RAREEAI docs"
    • addedInput schema / $defs / RequestBody / properties / privacy_mode / description
      Added value: +"the request's privacy mode, per the RAREEAI docs"
    • addedInput schema / $defs / RequestBody / properties / requirements / description
      Added value: +"extra requirements for providers, as a JSON object"
    • addedInput schema / $defs / RequestBody / properties / resource_type / description
      Added value: +"what you want to buy; scene_stack, change_report, site_reconstruction and satellite_imagery need physical_claim"
    • addedInput schema / $defs / RequestBody / properties / speed / description
      Added value: +"the delivery speed class you want, per the RAREEAI docs"
    • addedInput schema / $defs / RequestBody / properties / ttl_seconds / description
      Added value: +"seconds until the request expires unmatched"
    • addedInput schema / $defs / RequestBody / properties / unit_type / description
      Added value: +"the unit you buy in (the provider's unit_type)"
    • addedInput schema / $defs / RequestBody / properties / units_needed / description
      Added value: +"how many units, a whole number > 0"
    • addedInput schema / $defs / RequestBody / properties / wallet_id / description
      Added value: +"your wallet UUID: it pays the escrow when the request matches"
    • addedInput schema / properties / body / description
      Added value: +"The buy request; each field is described in its schema."
  5. Changed2 schema fields changed
    • addedInput schema / $defs / PhysicalClaimBody
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "kind": {
      +      "description": "physical_change: something changed at the site between t0 and t1 · physical_state: the site shows something at t1",
      +      "enum": [
      +        "physical_change",
      +        "physical_state"
      +      ],
      +      "title": "Kind",
      +      "type": "string"
      +    },
      +    "radius_m": {
      +      "anyOf": [
      +        {
      +          "maximum": 2500,
      +          "minimum": 50,
      +          "type": "number"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "Radius M"
      +    },
      +    "site_entity_id": {
      +      "anyOf": [
      +        {
      +          "maxLength": 64,
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "Site Entity Id"
      +    },
      +    "site_entity_type": {
      +      "anyOf": [
      +        {
      +          "enum": [
      +            "deposit",
      +            "infrastructure",
      +            "company",
      +            "project"
      +          ],
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "Site Entity Type"
      +    },
      +    "site_lat": {
      +      "maximum": 90,
      +      "minimum": -90,
      +      "title": "Site Lat",
      +      "type": "number"
      +    },
      +    "site_lng": {
      +      "maximum": 180,
      +      "minimum": -180,
      +      "title": "Site Lng",
      +      "type": "number"
      +    },
      +    "t0": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "description": "YYYY-MM-DD; required for physical_change, before t1, on or after 1984-03-16",
      +      "title": "T0"
      +    },
      +    "t1": {
      +      "description": "YYYY-MM-DD",
      +      "title": "T1",
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "kind",
      +    "site_lat",
      +    "site_lng",
      +    "t1"
      +  ],
      +  "title": "PhysicalClaimBody",
      +  "type": "object"
      +}
    • addedInput schema / $defs / RequestBody / properties / physical_claim
      Added value: +{
      +  "anyOf": [
      +    {
      +      "$ref": "#/$defs/PhysicalClaimBody"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "REQUIRED for resource_type scene_stack, change_report, site_reconstruction or satellite_imagery (refused without it): the site and date the trade is judged against — a satellite frame at that place and time, never a party's word"
      +}
  6. Changed1 schema field changed
    • addedInput schema / $defs / RequestBody / properties / contract_escrow
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "boolean"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "opt in to the on-chain escrow contract lane (a flat contract fee added to your lock). Takes effect ONLY where an oracle backs the trade; otherwise the trade falls to the default ledger lane with no contract and no contract fee, and the match says why (contract_escrow=false + contract_note)",
      +  "title": "Contract Escrow"
      +}
  7. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "additionalProperties": true,
      +  "title": "market_requestDictOutput",
      +  "type": "object"
      +}
  8. First observed

TDQS

A3.9/5.0
Behavior4/5

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

The annotations only declare the safety profile (not read-only, not destructive, not idempotent); the description adds the material fact that escrow is debited on match, which is a real financial consequence not covered by any structured field. It could say more about what happens to the escrow if the request expires unmatched (ttl_seconds), which is the natural follow-up question.

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?

Three tight sentences, front-loaded with the action and its auth scope, then the escrow consequence, then the physical-claim caveat. The required-field enumeration is mildly redundant given full schema coverage but functions as a fast pre-flight checklist.

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?

An output schema exists, so return values need no explanation, and the description covers auth, cost, and the physical_claim condition. Minor gaps remain around escrow refund/expiry behavior and the idempotency contract, both of which are only discoverable in the nested schema.

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 the schema already documents wallet_id, frontier, resource_type, unit_type, units_needed and max_price_per_unit. The description merely re-enumerates those names and lumps everything else into "options," adding no format, default, or constraint detail beyond the schema. Baseline 3 applies.

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?

States a specific verb and resource ("Post a marketplace BUY request") and thereby implicitly distinguishes itself from the sell-side sibling market_provide. The buying intent plus the required-field list makes the operation unambiguous, though it never names the sibling it contrasts with.

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?

Supplies the gating conditions an agent needs before calling: verified account, marketplace:write scope, and the rule that a physical trade must carry physical_claim. It stops short of explicit when-not-to-use guidance or naming alternatives such as market_provide or market_match.

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