Skip to main content
Glama

submit_supplier_quote

Submit the first structured commercial quote for a human-approved RFQ. Money is integer minor units with an explicit currency; partial line coverage and labeled alternatives are allowed.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
itemsYes
notesNo
currencyYes
match_idYes
warrantyNo
tax_minorNo
fees_minorNo
valid_untilNo
quote_numberNo
payment_termsNo
delivery_termsNo
shipping_minorNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
quoteYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed29 schema fields changed
    • changedInput schema / properties / delivery_terms / maxLength
      Previous value: -500New value: +1000
    • addedInput schema / properties / fees_minor
      Added value: +{
      +  "maximum": 9007199254740991,
      +  "minimum": 0,
      +  "type": "integer"
      +}
    • addedInput schema / properties / items / items / properties / availability_status
      Added value: +{
      +  "default": "unknown",
      +  "enum": [
      +    "in_stock",
      +    "limited",
      +    "backorder",
      +    "made_to_order",
      +    "unavailable",
      +    "unknown"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / items / items / properties / catalog_item_id
      Added value: +{
      +  "maxLength": 100,
      +  "type": "string"
      +}
    • removedInput schema / properties / items / items / properties / compatibility
      Removed value: -{
      -  "enum": [
      -    "exact",
      -    "compatible",
      -    "alternative",
      -    "unverified"
      -  ],
      -  "type": "string"
      -}
    • removedInput schema / properties / items / items / properties / compatibility_confidence
      Removed value: -{
      -  "maximum": 1,
      -  "minimum": 0,
      -  "type": "number"
      -}
    • removedInput schema / properties / items / items / properties / compatibility_evidence
      Removed value: -{
      -  "maxLength": 2000,
      -  "type": "string"
      -}
    • addedInput schema / properties / items / items / properties / evidence
      Added value: +{
      +  "default": [],
      +  "items": {
      +    "properties": {
      +      "observed_at": {
      +        "format": "date-time",
      +        "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$",
      +        "type": "string"
      +      },
      +      "source_class": {
      +        "enum": [
      +          "supplier_submitted",
      +          "supplier_api",
      +          "supplier_document",
      +          "public_official",
      +          "transaction"
      +        ],
      +        "type": "string"
      +      },
      +      "source_url": {
      +        "format": "uri",
      +        "type": "string"
      +      },
      +      "statement": {
      +        "maxLength": 2000,
      +        "minLength": 2,
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "source_class",
      +      "statement"
      +    ],
      +    "type": "object"
      +  },
      +  "maxItems": 20,
      +  "type": "array"
      +}
    • addedInput schema / properties / items / items / properties / manufacturer_part_number
      Added value: +{
      +  "maxLength": 200,
      +  "type": "string"
      +}
    • addedInput schema / properties / items / items / properties / package_multiple
      Added value: +{
      +  "exclusiveMinimum": 0,
      +  "type": "number"
      +}
    • removedInput schema / properties / items / items / properties / part_number
      Removed value: -{
      -  "maxLength": 200,
      -  "type": "string"
      -}
    • addedInput schema / properties / items / items / properties / relationship
      Added value: +{
      +  "default": "unverified",
      +  "enum": [
      +    "exact",
      +    "compatible",
      +    "alternative",
      +    "unverified"
      +  ],
      +  "type": "string"
      +}
    • removedInput schema / properties / items / items / properties / shipping_price
      Removed value: -{
      -  "minimum": 0,
      -  "type": "number"
      -}
    • removedInput schema / properties / items / items / properties / stock_status
      Removed value: -{
      -  "enum": [
      -    "in_stock",
      -    "limited",
      -    "backorder",
      -    "made_to_order",
      -    "unknown"
      -  ],
      -  "type": "string"
      -}
    • addedInput schema / properties / items / items / properties / unit
      Added value: +{
      +  "maxLength": 40,
      +  "minLength": 1,
      +  "type": "string"
      +}
    • removedInput schema / properties / items / items / properties / unit_price
      Removed value: -{
      -  "minimum": 0,
      -  "type": "number"
      -}
    • addedInput schema / properties / items / items / properties / unit_price_minor
      Added value: +{
      +  "maximum": 9007199254740991,
      +  "minimum": 0,
      +  "type": "integer"
      +}
    • changedInput schema / properties / items / items / required
      Previous value: -[
      -  "request_item_id",
      -  "description",
      -  "quantity",
      -  "unit_price",
      -  "stock_status",
      -  "compatibility"
      -]New value: +[
      +  "request_item_id",
      +  "description",
      +  "quantity",
      +  "unit",
      +  "unit_price_minor"
      +]
    • changedInput schema / properties / items / maxItems
      Previous value: -25New value: +250
    • changedInput schema / properties / notes / maxLength
      Previous value: -2000New value: +4000
    • changedInput schema / properties / payment_terms / maxLength
      Previous value: -500New value: +1000
    • addedInput schema / properties / quote_number
      Added value: +{
      +  "maxLength": 200,
      +  "type": "string"
      +}
    • removedInput schema / properties / quote_reference
      Removed value: -{
      -  "maxLength": 200,
      -  "type": "string"
      -}
    • addedInput schema / properties / shipping_minor
      Added value: +{
      +  "maximum": 9007199254740991,
      +  "minimum": 0,
      +  "type": "integer"
      +}
    • removedInput schema / properties / source_evidence
      Removed value: -{
      -  "maxLength": 2000,
      -  "minLength": 3,
      -  "type": "string"
      -}
    • addedInput schema / properties / tax_minor
      Added value: +{
      +  "maximum": 9007199254740991,
      +  "minimum": 0,
      +  "type": "integer"
      +}
    • changedInput schema / properties / warranty / maxLength
      Previous value: -1000New value: +2000
    • changedInput schema / required
      Previous value: -[
      -  "match_id",
      -  "currency",
      -  "source_evidence",
      -  "items"
      -]New value: +[
      +  "match_id",
      +  "currency",
      +  "items"
      +]
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "$schema": "https://json-schema.org/draft/2020-12/schema",
      +  "additionalProperties": {},
      +  "properties": {
      +    "quote": {
      +      "additionalProperties": {},
      +      "properties": {
      +        "currency": {
      +          "type": "string"
      +        },
      +        "id": {
      +          "minLength": 1,
      +          "type": "string"
      +        },
      +        "items": {
      +          "items": {
      +            "additionalProperties": {},
      +            "properties": {
      +              "description": {
      +                "type": "string"
      +              },
      +              "evidence": {
      +                "items": {
      +                  "additionalProperties": {},
      +                  "properties": {
      +                    "confidence": {
      +                      "anyOf": [
      +                        {
      +                          "type": "string"
      +                        },
      +                        {
      +                          "type": "number"
      +                        }
      +                      ]
      +                    },
      +                    "expires_at": {
      +                      "anyOf": [
      +                        {
      +                          "type": "string"
      +                        },
      +                        {
      +                          "type": "null"
      +                        }
      +                      ]
      +                    },
      +                    "observed_at": {
      +                      "anyOf": [
      +                        {
      +                          "type": "string"
      +                        },
      +                        {
      +                          "type": "null"
      +                        }
      +                      ]
      +                    },
      +                    "source_class": {
      +                      "type": "string"
      +                    },
      +                    "source_url": {
      +                      "anyOf": [
      +                        {
      +                          "format": "uri",
      +                          "type": "string"
      +                        },
      +                        {
      +                          "type": "null"
      +                        }
      +                      ]
      +                    },
      +                    "statement": {
      +                      "type": "string"
      +                    },
      +                    "verification_status": {
      +                      "type": "string"
      +                    }
      +                  },
      +                  "required": [
      +                    "source_class"
      +                  ],
      +                  "type": "object"
      +                },
      +                "type": "array"
      +              },
      +              "id": {
      +                "minLength": 1,
      +                "type": "string"
      +              },
      +              "quantity": {
      +                "type": "number"
      +              },
      +              "relationship": {
      +                "type": "string"
      +              },
      +              "request_item_id": {
      +                "minLength": 1,
      +                "type": "string"
      +              },
      +              "unit": {
      +                "type": "string"
      +              },
      +              "unit_price_minor": {
      +                "maximum": 9007199254740991,
      +                "minimum": 0,
      +                "type": "integer"
      +              }
      +            },
      +            "required": [
      +              "id",
      +              "description",
      +              "quantity",
      +              "unit",
      +              "unit_price_minor",
      +              "relationship"
      +            ],
      +            "type": "object"
      +          },
      +          "type": "array"
      +        },
      +        "quote_number": {
      +          "anyOf": [
      +            {
      +              "type": "string"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ]
      +        },
      +        "request_id": {
      +          "minLength": 1,
      +          "type": "string"
      +        },
      +        "status": {
      +          "type": "string"
      +        },
      +        "supplier_id": {
      +          "minLength": 1,
      +          "type": "string"
      +        }
      +      },
      +      "required": [
      +        "id",
      +        "status",
      +        "currency"
      +      ],
      +      "type": "object"
      +    }
      +  },
      +  "required": [
      +    "quote"
      +  ],
      +  "type": "object"
      +}
  2. Added

TDQS

A4.2/5.0
Behavior4/5

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

Annotations indicate a write operation (readOnlyHint=false) and no destructive effects. The description adds valuable context: money must be in integer minor units with explicit currency, partial line coverage is allowed, and labeled alternatives are permitted. This goes beyond the annotations and clarifies behavioral expectations.

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?

The description is only two sentences and each sentence earns its place. It front-loads the purpose and then states critical constraints, with no wasted words or repetition of schema details.

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?

Given the tool's complexity (12 parameters, nested items) and the presence of an output schema, the description does not need to explain return values. It covers the essential purpose, precondition (human-approved RFQ), and key structural rules (money units, partial coverage, alternatives). A minor gap is not explicitly pointing to revise_supplier_quote for subsequent quotes, but 'first' implies this.

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 coverage is 0%, but the description clarifies that money fields use integer minor units and that partial line coverage/labeled alternatives are allowed, which maps to items and relationship fields. However, it does not explain many top-level parameters (match_id, notes, terms) beyond their schema names, which are self-descriptive but not elaborated.

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 clearly states a specific action and object: submitting the first structured commercial quote for a human-approved RFQ. The word 'first' distinguishes it from sibling revise_supplier_quote, and 'human-approved' provides a clear context.

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 description implies usage conditions: it is for the first quote and only for human-approved RFQs. However, it does not explicitly name alternatives like revise_supplier_quote or state when not to use it, so it stops short of a full 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