Skip to main content
Glama

a2a2p — Agent-to-Agent-to-Physical

build_supplier_request_package

PRECONDITION — CALL ONLY after the requester supplied what the physical object must accomplish at intent.purpose (or requirement). If absent, ask the requester first; never infer purpose and do not invoke this tool yet. Build a synchronous, deterministic supplier request package from the requirement the caller already holds. The package follows the open a2a2p supplier profile and its versioned output schema at https://a2a2p.com/schema/supplier-package, preserves provenance, carries quote-stage screening, and names every quote-critical gap instead of inventing values. Every emitted package carries a reproducible SHA-256 artifact_identity over the exact package content, excluding the identity field itself. The digest proves content identity only; it does not prove supplier receipt, a quote, payment, fabrication, or physical correctness. The package also returns a deterministic quote_stage_eligibility receipt. Quote-stage eligibility lane flat_laser_cut_5052_h32: aluminum_5052_h32, laser_cutting, quantity 1-5, 10-300 mm by 10-300 mm, verified HTTPS DXF, raw finish, no secondary or regulated requirements, US delivery, and total budget up to USD 500. Classification sets no fee and grants no payment, supplier-contact, quote-acceptance, order, or fabrication authority. If no package can be built, MCP and REST share the a2a2p.supplier-package-rejection contract: a closed reason_code, exact vocabulary version, and deterministic next_action only where repair is sufficient. A purpose_required rejection includes an a2a2p.argument-repair operation that preserves the caller's existing arguments, requires the caller's own purpose statement, and forbids inference. An explicit specification.assembly with two or more parts returns decomposition_required and no package; one package represents one fabricated part. This is a stateless data transformation only: it stores no requirement, contacts no supplier or provider, requests no external quote, and creates no order, payment, or fabrication authority.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
intentNoLayer 1 — the problem. What the physical matter needs to DO. Use this for intent-driven requests where the agent describes purpose and a2a2p recommends solutions.
contactNoOptional email or callback endpoint for quote delivery.
deadlineNoRequired delivery date or timeframe. Maps to intent.timeline.
deliveryNoOptional caller-declared routing context carried into the returned package. a2a2p does not send it anywhere.
quantityNoNumber of units needed. Maps to intent.quantity.
budget_usdNoApproximate budget in USD. Maps to intent.budget_envelope.
constraintsNoHard constraints: tolerances, certifications, materials to avoid, size/weight limits. Maps to intent.functional_requirements.
requirementNoPlain-language description of the physical need. Maps to intent.purpose. Include function, dimensions, materials, load/performance requirements, environment, and interfaces where known.
callback_urlNoOptional HTTPS URL. When the quote is ready, a2a2p POSTs it as JSON to this URL.
specificationNoLayer 2 — the solution. What the physical matter IS. Populate what is known. Precise specifications produce faster, tighter quotes. Controlled vocabularies are preferred but open values are accepted.
business_contextNoOptional business requirements (expected volumes, cost targets, ROI constraints). If provided, the quote includes a business case.
rejected_alternativesNoOptions already considered and ruled out. Prevents re-suggesting and builds the learning corpus.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
gapsYes
profileYes
requestYes
deliveryYes
geometryYes
screeningYes
commercialYes
provenanceYes
already_checkedYes
profile_versionYes
artifact_identityYes
specification_urlYes
what_is_requestedYes
delivery_requirementsYes
quote_stage_eligibilityYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed7 schema fields changed
    • addedOutput schema / properties / gaps / properties / review_flags
      Added value: +{
      +  "items": {
      +    "additionalProperties": true,
      +    "properties": {
      +      "field": {
      +        "type": "string"
      +      },
      +      "why": {
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "field",
      +      "why"
      +    ],
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
    • changedOutput schema / properties / gaps / required
      Previous value: -[
      -  "blocking_a_firm_quote",
      -  "widens_the_range",
      -  "quotable",
      -  "open_questions",
      -  "note"
      -]New value: +[
      +  "blocking_a_firm_quote",
      +  "widens_the_range",
      +  "quotable",
      +  "open_questions",
      +  "review_flags",
      +  "note"
      +]
    • changedOutput schema / properties / profile_version / const
      Previous value: -"1.4.0-draft"New value: +"1.5.0-draft"
    • addedOutput schema / properties / request / properties / tolerance_class / description
      Added value: +"Coarse fallback only. Exact named callouts in tolerances govern wherever they are present."
    • addedOutput schema / properties / request / properties / tolerance_precedence
      Added value: +{
      +  "description": "Code-owned resolution rule. numeric means exact callouts govern and tolerance_class is retained only as a coarse fallback; class_fallback means no exact callout was declared; absent means neither form was declared and the package carries a blocking tolerance_omission gap.",
      +  "enum": [
      +    "numeric",
      +    "class_fallback",
      +    "absent"
      +  ]
      +}
    • addedOutput schema / properties / request / properties / tolerances
      Added value: +{
      +  "additionalProperties": {
      +    "anyOf": [
      +      {
      +        "exclusiveMinimum": 0,
      +        "type": "number"
      +      },
      +      {
      +        "additionalProperties": true,
      +        "properties": {
      +          "minus": {
      +            "minimum": 0,
      +            "type": "number"
      +          },
      +          "plus": {
      +            "minimum": 0,
      +            "type": "number"
      +          },
      +          "unit": {
      +            "type": "string"
      +          },
      +          "value": {
      +            "exclusiveMinimum": 0,
      +            "type": "number"
      +          }
      +        },
      +        "type": "object"
      +      }
      +    ]
      +  },
      +  "description": "Requester-declared exact numeric tolerance callouts keyed by feature or dimension. Null means the requester declared no numeric tolerances. Exact callouts govern over tolerance_class for the named feature and are projected without invention.",
      +  "type": [
      +    "object",
      +    "null"
      +  ]
      +}
    • changedOutput schema / properties / request / required
      Previous value: -[
      -  "purpose",
      -  "quantity",
      -  "timeline",
      -  "environment",
      -  "part_type",
      -  "material",
      -  "process",
      -  "tolerance_class",
      -  "dimensions",
      -  "surface_finish",
      -  "post_processing",
      -  "compliance"
      -]New value: +[
      +  "purpose",
      +  "quantity",
      +  "timeline",
      +  "environment",
      +  "part_type",
      +  "material",
      +  "process",
      +  "tolerance_class",
      +  "tolerances",
      +  "tolerance_precedence",
      +  "dimensions",
      +  "surface_finish",
      +  "post_processing",
      +  "compliance"
      +]
  2. Changed5 schema fields changed
    • changedInput schema / properties / specification / properties / process / enum
      Previous value: -[
      -  "cnc_milling",
      -  "cnc_turning",
      -  "fdm_3d_print",
      -  "sla_3d_print",
      -  "sls_3d_print",
      -  "sheet_metal",
      -  "casting",
      -  "injection_molding",
      -  "extrusion"
      -]New value: +[
      +  "cnc_milling",
      +  "cnc_turning",
      +  "fdm_3d_print",
      +  "sla_3d_print",
      +  "sls_3d_print",
      +  "sheet_metal",
      +  "laser_cutting",
      +  "casting",
      +  "injection_molding",
      +  "extrusion"
      +]
    • changedOutput schema / properties / profile_version / const
      Previous value: -"1.3.0-draft"New value: +"1.4.0-draft"
    • addedOutput schema / properties / quote_stage_eligibility
      Added value: +{
      +  "$id": "https://a2a2p.com/schema/quote-stage-eligibility",
      +  "$schema": "http://json-schema.org/draft-07/schema#",
      +  "additionalProperties": false,
      +  "properties": {
      +    "authority": {
      +      "additionalProperties": false,
      +      "properties": {
      +        "fabrication": {
      +          "const": false
      +        },
      +        "order": {
      +          "const": false
      +        },
      +        "payment": {
      +          "const": false
      +        },
      +        "quote_acceptance": {
      +          "const": false
      +        },
      +        "supplier_contact": {
      +          "const": false
      +        }
      +      },
      +      "required": [
      +        "payment",
      +        "supplier_contact",
      +        "quote_acceptance",
      +        "order",
      +        "fabrication"
      +      ],
      +      "type": "object"
      +    },
      +    "blocking_codes": {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "checks": {
      +      "items": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "code": {
      +            "type": "string"
      +          },
      +          "message": {
      +            "type": "string"
      +          },
      +          "result": {
      +            "enum": [
      +              "pass",
      +              "needs_input",
      +              "ineligible"
      +            ]
      +          }
      +        },
      +        "required": [
      +          "code",
      +          "result",
      +          "message"
      +        ],
      +        "type": "object"
      +      },
      +      "minItems": 1,
      +      "type": "array"
      +    },
      +    "commercial_terms": {
      +      "additionalProperties": false,
      +      "properties": {
      +        "active": {
      +          "const": false
      +        },
      +        "commission_rate": {
      +          "type": "null"
      +        },
      +        "note": {
      +          "type": "string"
      +        }
      +      },
      +      "required": [
      +        "active",
      +        "commission_rate",
      +        "note"
      +      ],
      +      "type": "object"
      +    },
      +    "contract": {
      +      "const": "a2a2p.quote-stage-eligibility"
      +    },
      +    "evidence": {
      +      "items": {
      +        "pattern": "^https://",
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "lane": {
      +      "const": "flat_laser_cut_5052_h32"
      +    },
      +    "next_action": {
      +      "type": "string"
      +    },
      +    "program": {
      +      "const": "a2a2p.reference-first-physical-exchange"
      +    },
      +    "status": {
      +      "enum": [
      +        "eligible",
      +        "needs_input",
      +        "ineligible"
      +      ]
      +    },
      +    "supported_stock_thickness_mm": {
      +      "items": {
      +        "type": "number"
      +      },
      +      "type": "array"
      +    },
      +    "version": {
      +      "const": "0.1.0-draft"
      +    }
      +  },
      +  "required": [
      +    "contract",
      +    "version",
      +    "program",
      +    "lane",
      +    "status",
      +    "checks",
      +    "blocking_codes",
      +    "supported_stock_thickness_mm",
      +    "evidence",
      +    "next_action",
      +    "commercial_terms",
      +    "authority"
      +  ],
      +  "title": "a2a2p quote-stage eligibility receipt",
      +  "type": "object",
      +  "x-a2a2p-program": {
      +    "criteria": {
      +      "material": "aluminum_5052_h32",
      +      "process": "laser_cutting",
      +      "quantity": {
      +        "max": 5,
      +        "min": 1
      +      },
      +      "ship_to_country": "US",
      +      "size_mm": {
      +        "max_x": 300,
      +        "max_y": 300,
      +        "min_x": 10,
      +        "min_y": 10
      +      },
      +      "stock_thickness_mm": [
      +        1.02,
      +        1.6,
      +        2.03,
      +        2.29,
      +        2.54,
      +        3.18
      +      ],
      +      "surface_finish": "raw",
      +      "tolerance_classes": [
      +        "coarse",
      +        "medium"
      +      ],
      +      "total_budget": {
      +        "currency": "USD",
      +        "max": 500
      +      }
      +    },
      +    "evidence": [
      +      "https://sendcutsend.com/materials/5052-aluminum/",
      +      "https://sendcutsend.com/services/sheet-cutting/",
      +      "https://www.oshcut.com/materials",
      +      "https://www.oshcut.com/capabilities",
      +      "https://www.xometry.com/capabilities/sheet-cutting/metal-laser-cutting/"
      +    ],
      +    "lane": "flat_laser_cut_5052_h32",
      +    "program": "a2a2p.reference-first-physical-exchange"
      +  }
      +}
    • changedOutput schema / required
      Previous value: -[
      -  "profile",
      -  "profile_version",
      -  "specification_url",
      -  "request",
      -  "geometry",
      -  "commercial",
      -  "provenance",
      -  "gaps",
      -  "already_checked",
      -  "screening",
      -  "what_is_requested",
      -  "delivery",
      -  "delivery_requirements",
      -  "artifact_identity"
      -]New value: +[
      +  "profile",
      +  "profile_version",
      +  "specification_url",
      +  "request",
      +  "geometry",
      +  "commercial",
      +  "provenance",
      +  "gaps",
      +  "already_checked",
      +  "screening",
      +  "what_is_requested",
      +  "delivery",
      +  "delivery_requirements",
      +  "quote_stage_eligibility",
      +  "artifact_identity"
      +]
    • addedOutput schema / x-a2a2p-projection / field_origins / quote_stage_eligibility
      Added value: +"derived from the complete caller-held requirement and package gates at read time"
  3. Changed4 schema fields changed
    • addedOutput schema / properties / artifact_identity
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "algorithm": {
      +      "const": "sha256"
      +    },
      +    "canonical_bytes": {
      +      "minimum": 1,
      +      "type": "integer"
      +    },
      +    "canonicalization": {
      +      "const": "a2a2p.sorted-json-v1"
      +    },
      +    "contract": {
      +      "const": "a2a2p.supplier-package-artifact-identity"
      +    },
      +    "digest_input": {
      +      "const": "the complete supplier package excluding artifact_identity"
      +    },
      +    "does_not_prove": {
      +      "items": {
      +        "type": "string"
      +      },
      +      "minItems": 4,
      +      "type": "array"
      +    },
      +    "proves": {
      +      "type": "string"
      +    },
      +    "scope": {
      +      "const": "content_identity_only"
      +    },
      +    "sha256": {
      +      "pattern": "^[a-f0-9]{64}$",
      +      "type": "string"
      +    },
      +    "version": {
      +      "const": "1.0.0"
      +    }
      +  },
      +  "required": [
      +    "contract",
      +    "version",
      +    "algorithm",
      +    "canonicalization",
      +    "digest_input",
      +    "sha256",
      +    "canonical_bytes",
      +    "scope",
      +    "proves",
      +    "does_not_prove"
      +  ],
      +  "type": "object"
      +}
    • changedOutput schema / properties / profile_version / const
      Previous value: -"1.2.0-draft"New value: +"1.3.0-draft"
    • changedOutput schema / required
      Previous value: -[
      -  "profile",
      -  "profile_version",
      -  "specification_url",
      -  "request",
      -  "geometry",
      -  "commercial",
      -  "provenance",
      -  "gaps",
      -  "already_checked",
      -  "screening",
      -  "what_is_requested",
      -  "delivery",
      -  "delivery_requirements"
      -]New value: +[
      +  "profile",
      +  "profile_version",
      +  "specification_url",
      +  "request",
      +  "geometry",
      +  "commercial",
      +  "provenance",
      +  "gaps",
      +  "already_checked",
      +  "screening",
      +  "what_is_requested",
      +  "delivery",
      +  "delivery_requirements",
      +  "artifact_identity"
      +]
    • addedOutput schema / x-a2a2p-projection / field_origins / artifact_identity
      Added value: +"derived from canonical supplier-package bytes at read time"
  4. Changed2 schema fields changed
    • addedInput schema / description
      Added value: +"PRECONDITION: provide a requester-supplied non-whitespace purpose at intent.purpose or requirement before invoking. If purpose is absent, ask what the physical object must accomplish; do not infer it and do not call this tool yet."
    • addedInput schema / examples
      Added value: +[
      +  {
      +    "intent": {
      +      "purpose": "Hold an indoor sensor enclosure against a vertical rail without drilling."
      +    }
      +  }
      +]
  5. Changed1 schema field changed
    • addedInput schema / properties / intent / properties / functional_requirements / properties / load_case / properties / allowable_shear_stress_mpa
      Added value: +{
      +  "description": "Optional requester-supplied transverse-shear design allowable; evaluated independently and never inferred from handbook data.",
      +  "exclusiveMinimum": 0,
      +  "type": "number"
      +}
  6. Changed5 schema fields changed
    • changedInput schema / properties / intent / properties / purpose / description
      Previous value: -"What the physical matter needs to accomplish (one line minimum, required)."New value: +"What the physical matter needs to accomplish (one non-whitespace line minimum, required)."
    • addedInput schema / properties / intent / properties / purpose / minLength
      Added value: +1
    • addedInput schema / properties / intent / properties / purpose / pattern
      Added value: +"\\S"
    • addedInput schema / properties / requirement / minLength
      Added value: +1
    • addedInput schema / properties / requirement / pattern
      Added value: +"\\S"
  7. Changed7 schema fields changed
    • addedInput schema / properties / delivery / properties / principal_kind
      Added value: +{
      +  "enum": [
      +    "organization",
      +    "person"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / delivery / properties / registered_address
      Added value: +{
      +  "description": "Required for an organization principal; its verifiable registered address.",
      +  "maxLength": 500,
      +  "type": "string"
      +}
    • changedInput schema / properties / delivery / required
      Previous value: -[
      -  "accountable_principal",
      -  "reply_to"
      -]New value: +[
      +  "accountable_principal",
      +  "principal_kind",
      +  "reply_to"
      +]
    • addedOutput schema / properties / commercial / additionalProperties
      Added value: +true
    • addedOutput schema / properties / commercial / properties
      Added value: +{
      +  "freight_included": {
      +    "type": "boolean"
      +  },
      +  "price_scope": {
      +    "enum": [
      +      "manufacturing_only_freight_excluded",
      +      "delivered_to_declared_region"
      +    ]
      +  }
      +}
    • addedOutput schema / properties / commercial / required
      Added value: +[
      +  "price_scope",
      +  "freight_included"
      +]
    • changedOutput schema / properties / profile_version / const
      Previous value: -"1.1.0-draft"New value: +"1.2.0-draft"
  8. Changed3 schema fields changed
    • addedOutput schema / properties / geometry / properties / dimension_consistency
      Added value: +{
      +  "additionalProperties": true,
      +  "properties": {
      +    "reason": {
      +      "type": "string"
      +    },
      +    "status": {
      +      "enum": [
      +        "match",
      +        "conflict",
      +        "not_evaluated"
      +      ]
      +    }
      +  },
      +  "required": [
      +    "status",
      +    "reason"
      +  ],
      +  "type": "object"
      +}
    • changedOutput schema / properties / geometry / required
      Previous value: -[
      -  "files",
      -  "preferred",
      -  "note"
      -]New value: +[
      +  "files",
      +  "preferred",
      +  "note",
      +  "dimension_consistency"
      +]
    • changedOutput schema / properties / profile_version / const
      Previous value: -"1.0.0-draft"New value: +"1.1.0-draft"
  9. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "$id": "https://a2a2p.com/schema/supplier-package",
      +  "$schema": "http://json-schema.org/draft-07/schema#",
      +  "additionalProperties": true,
      +  "description": "Transport-neutral, screened request for supplier pricing. This schema conveys no order or fabrication authority.",
      +  "properties": {
      +    "already_checked": {
      +      "type": [
      +        "object",
      +        "null"
      +      ]
      +    },
      +    "commercial": {
      +      "type": "object"
      +    },
      +    "delivery": {
      +      "type": [
      +        "object",
      +        "null"
      +      ]
      +    },
      +    "delivery_requirements": {
      +      "additionalProperties": true,
      +      "properties": {
      +        "satisfied": {
      +          "type": "boolean"
      +        }
      +      },
      +      "required": [
      +        "binding_must_supply",
      +        "rationale",
      +        "satisfied",
      +        "note"
      +      ],
      +      "type": "object"
      +    },
      +    "gaps": {
      +      "additionalProperties": true,
      +      "properties": {
      +        "blocking_a_firm_quote": {
      +          "items": {
      +            "additionalProperties": true,
      +            "properties": {
      +              "field": {
      +                "type": "string"
      +              },
      +              "why": {
      +                "type": "string"
      +              }
      +            },
      +            "required": [
      +              "field",
      +              "why"
      +            ],
      +            "type": "object"
      +          },
      +          "type": "array"
      +        },
      +        "note": {
      +          "type": "string"
      +        },
      +        "open_questions": {
      +          "items": {
      +            "type": "object"
      +          },
      +          "type": "array"
      +        },
      +        "quotable": {
      +          "type": "boolean"
      +        },
      +        "widens_the_range": {
      +          "items": {
      +            "additionalProperties": true,
      +            "properties": {
      +              "field": {
      +                "type": "string"
      +              },
      +              "why": {
      +                "type": "string"
      +              }
      +            },
      +            "required": [
      +              "field",
      +              "why"
      +            ],
      +            "type": "object"
      +          },
      +          "type": "array"
      +        }
      +      },
      +      "required": [
      +        "blocking_a_firm_quote",
      +        "widens_the_range",
      +        "quotable",
      +        "open_questions",
      +        "note"
      +      ],
      +      "type": "object"
      +    },
      +    "geometry": {
      +      "additionalProperties": true,
      +      "properties": {
      +        "files": {
      +          "items": {
      +            "type": "object"
      +          },
      +          "maxItems": 8,
      +          "type": "array"
      +        },
      +        "note": {
      +          "type": "string"
      +        },
      +        "preferred": {
      +          "type": "string"
      +        }
      +      },
      +      "required": [
      +        "files",
      +        "preferred",
      +        "note"
      +      ],
      +      "type": "object"
      +    },
      +    "profile": {
      +      "const": "a2a2p-supplier-request"
      +    },
      +    "profile_version": {
      +      "const": "1.0.0-draft"
      +    },
      +    "provenance": {
      +      "additionalProperties": true,
      +      "properties": {
      +        "human_reviewed_before_sending": {
      +          "type": "boolean"
      +        },
      +        "note": {
      +          "type": "string"
      +        },
      +        "originator": {
      +          "const": "automated_agent_via_a2a2p"
      +        }
      +      },
      +      "required": [
      +        "originator",
      +        "human_reviewed_before_sending",
      +        "note"
      +      ],
      +      "type": "object"
      +    },
      +    "request": {
      +      "additionalProperties": true,
      +      "properties": {
      +        "compliance": {
      +          "items": {
      +            "type": "string"
      +          },
      +          "type": "array"
      +        },
      +        "dimensions": {
      +          "type": [
      +            "object",
      +            "null"
      +          ]
      +        },
      +        "environment": {
      +          "items": {
      +            "type": "string"
      +          },
      +          "type": "array"
      +        },
      +        "material": {
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "part_type": {
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "post_processing": {
      +          "items": {
      +            "type": "string"
      +          },
      +          "type": "array"
      +        },
      +        "process": {
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "purpose": {
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "quantity": {
      +          "minimum": 1,
      +          "type": [
      +            "integer",
      +            "null"
      +          ]
      +        },
      +        "surface_finish": {
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "timeline": {
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "tolerance_class": {
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        }
      +      },
      +      "required": [
      +        "purpose",
      +        "quantity",
      +        "timeline",
      +        "environment",
      +        "part_type",
      +        "material",
      +        "process",
      +        "tolerance_class",
      +        "dimensions",
      +        "surface_finish",
      +        "post_processing",
      +        "compliance"
      +      ],
      +      "type": "object"
      +    },
      +    "screening": {
      +      "additionalProperties": true,
      +      "properties": {
      +        "policy_url": {
      +          "pattern": "^https://",
      +          "type": "string"
      +        },
      +        "policy_version": {
      +          "type": "string"
      +        },
      +        "stage": {
      +          "const": "quote"
      +        },
      +        "verdict": {
      +          "enum": [
      +            "allow",
      +            "review",
      +            "deny"
      +          ]
      +        }
      +      },
      +      "required": [
      +        "verdict",
      +        "stage",
      +        "policy_version",
      +        "policy_url"
      +      ],
      +      "type": "object"
      +    },
      +    "specification_url": {
      +      "pattern": "^https://",
      +      "type": "string"
      +    },
      +    "what_is_requested": {
      +      "additionalProperties": true,
      +      "properties": {
      +        "action": {
      +          "const": "price_and_lead_time"
      +        },
      +        "not_an_order": {
      +          "const": true
      +        },
      +        "note": {
      +          "type": "string"
      +        }
      +      },
      +      "required": [
      +        "action",
      +        "not_an_order",
      +        "note"
      +      ],
      +      "type": "object"
      +    }
      +  },
      +  "required": [
      +    "profile",
      +    "profile_version",
      +    "specification_url",
      +    "request",
      +    "geometry",
      +    "commercial",
      +    "provenance",
      +    "gaps",
      +    "already_checked",
      +    "screening",
      +    "what_is_requested",
      +    "delivery",
      +    "delivery_requirements"
      +  ],
      +  "title": "a2a2p supplier request package",
      +  "type": "object",
      +  "x-a2a2p-projection": {
      +    "field_origins": {
      +      "gaps": "derived from absent or insufficient quote-critical requirement fields",
      +      "geometry": "derived description of declared design-file references",
      +      "provenance": "derived projection metadata plus caller-declared delivery context",
      +      "request": "declared requirement fields, projected without invention",
      +      "screening": "derived by quote-stage screening of the same caller-held requirement"
      +    },
      +    "lifecycle": "derived_at_read",
      +    "source_of_truth": "caller-held a2a2p requirement plus the deterministic review produced from that requirement"
      +  }
      +}
  10. Added

TDQS

A4.8/5.0
Behavior5/5

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

With no annotations the description carries full burden and does so: synchronous/stateless transformation, no storage, no supplier contact, no quote/payment/order/fabrication authority, SHA-256 artifact_identity with its exact scope and limits, and a closed rejection contract with reason codes and next_action semantics.

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?

The precondition is correctly front-loaded and the dense sentences mostly carry distinct facts (identity digest, eligibility lane, rejection contract, statelessness), but the paragraph is long and could be tightened without losing substance.

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?

For a complex 12-parameter tool it covers gating, output contract, identity digest limits, and failure modes; an output schema exists so return-value enumeration is unnecessary, leaving nothing critical an agent needs in order to call it correctly.

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 schema already documents all parameters and the baseline is 3; the description goes beyond it by tying specification.assembly-with-two-or-more-parts to the decomposition_required outcome and by reiterating the intent.purpose/requirement precondition, adding behavioral meaning to those fields.

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 artifact ('Build a synchronous, deterministic supplier request package from the requirement the caller already holds') and implicitly distinguishes itself from siblings like request_physical_solution or request_provider_estimate by framing itself as packaging rather than requesting a quote.

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

Usage Guidelines5/5

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

Gives an explicit precondition ('CALL ONLY after the requester supplied... intent.purpose'), what to do when it is absent ('ask the requester first; never infer purpose and do not invoke'), and a disqualifying condition ('an explicit specification.assembly with two or more parts returns decomposition_required and no package').

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