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

TDQS

A4.6/5.0
Behavior5/5

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

Even with no annotations, the description fully discloses behavior: it is a stateless data transformation, stores no requirement, contacts no supplier, requests no quote, and creates no order, payment, or fabrication authority. It explains the deterministic SHA-256 artifact_identity and quotes the rejection contract behaviors, including purpose_required rejection with a repair operation. No annotation contradiction exists because no annotations were provided.

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 description is long, but each sentence carries distinct operational or behavioral information: the precondition, the package contract, the eligibility lane, the rejection contract, the decomposition rule, and the statelessness guarantee. It is front-loaded with the precondition and uses clear technical vocabulary. The length is justified by the tool's complexity, although a tighter sentence around the eligibility lane would improve it slightly.

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 package-building tool with 12 parameters, no required parameters, and an output schema, the description covers the critical decision context: when to call, what the package is, what the eligibility lane is, what rejection behavior looks like, and what side effects are absent. The output schema exists, so return-value explanation is unnecessary. An agent has enough to invoke correctly without inferring hidden behavior.

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?

The schema has 100% coverage and richly describes parameters, so the description does not need to repeat field-level detail. It does add contextual semantics at the parameter level by explaining the purpose precondition and the eligibility lane dimensions for quote_stage_eligibility, plus the decomposition_required rule for specification.assembly. This is useful, but the schema already carries the heavy load, so a 3 is appropriate.

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 opens with a verb and resource: 'Build a synchronous, deterministic supplier request package from the requirement the caller already holds.' It distinguishes the tool by tying it to the a2a2p supplier profile and to explicit preconditions, and it tells agents it must not be called without a purpose. The function is unmistakable relative to siblings like request_physical_solution or get_supply_options.

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?

Usage guidance is explicit and front-loaded: 'CALL ONLY after the requester supplied... intent.purpose (or requirement). If absent, ask the requester first; never infer purpose and do not invoke this tool yet.' It sets the quote-stage eligibility lane, states what the package does not do, and identifies rejection contracts such as decomposition_required. This is more than enough for an agent to choose it over siblings.

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.

TDQS

A3.8/5.0
Disambiguation2/5

Multiple tool clusters have near-identical names and responsibilities: prepare_derived_beam_simulation, prepare_reviewed_beam_simulation, and prepare_simulation_study all produce bounded simulation studies, while the validate_* family has five variants with subtle input differences. The descriptions are detailed, but an agent would frequently need to read an entire paragraph to avoid misselection.

Naming Consistency5/5

All 24 tools follow the same snake_case verb_noun pattern: build_, check_, request_, validate_, prepare_, run_, upload_, etc. There are no camelCase names, no vague single-word tools, and no stylistic outliers.

Tool Count3/5

24 tools is at the heavy end of the calibration range, and a large subset of rectangular-beam preparation/validation tools could be consolidated. The broad physical-request and supplier pipeline justifies some of the count, but the overall surface still feels over-scoped.

Completeness4/5

The core workflows are covered: upload, submit, revise, status, spec review, pricing/estimates, quote-job polling, supplier package/email rendering, and a full bounded simulation loop. Missing cancellation, request listing, and actual supplier send/order actions are real but peripheral gaps rather than workflow-killing dead ends.

Resources