Skip to main content
Glama

a2a2p — Agent-to-Agent-to-Physical

Server Details

Turn agent intent into physical parts: engineering review, measured geometry, calibrated pricing.

Status
Healthy
Last Tested
Transport
Streamable HTTP
URL
Repository
Deadlypillow/a2a2p
GitHub Stars
0
Server Listing
a2a2p

Glama MCP Gateway

Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.

MCP client
Glama
MCP server

Full call logging

Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.

Tool access control

Enable or disable individual tools per connector, so you decide what your agents can and cannot do.

Managed credentials

Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.

Usage analytics

See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.

100% free. Your data is private.
Tool DescriptionsA

Average 4.6/5 across 9 of 9 tools scored. Lowest: 4/5.

Server CoherenceA
Disambiguation4/5

Tools are mostly distinct, but some pairs (check_quote_job vs check_request_status, get_supply_options vs request_provider_estimate) share similar intents and could cause misselection without careful reading. The detailed descriptions help, but the boundaries are occasionally nuanced.

Naming Consistency5/5

All tool names follow a consistent verb_noun snake_case pattern (build_, check_, get_, request_, review_, revise_, upload_). Verb choice is specific to the action, making the pattern predictable and readable.

Tool Count5/5

Nine tools cover the core workflows of uploading, reviewing, estimating, requesting, and checking without unnecessary redundancy. The count is well-scoped for a physical-solution server.

Completeness4/5

The set covers the primary lifecycle: file upload, spec review, synchronous estimate, async provider estimate, resolution request, status checks, and revisions. Minor gaps include no explicit cancel/delete or request listing, but the core workflows are well covered.

Available Tools

10 tools
build_supplier_request_packageAInspect

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. 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. 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.

ParametersJSON 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

ParametersJSON Schema
NameRequiredDescription
gapsYes
profileYes
requestYes
deliveryYes
geometryYes
screeningYes
commercialYes
provenanceYes
already_checkedYes
profile_versionYes
specification_urlYes
what_is_requestedYes
delivery_requirementsYes
Behavior4/5

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

Given no annotations are provided, the description carries the full burden. It thoroughly discloses behavior: stateless data transformation, what it preserves (provenance), what it carries (quote-stage screening), and what it does not do (no storage, no contacts, no orders). It also mentions a rejection contract with reason codes and next_action. This is detailed and adds significant value beyond the schema.

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 two sentences: the first explains the core purpose and key attributes; the second is a compact list of exclusions and the rejection contract. It is front-loaded with the most critical information (synchronous, deterministic) and each clause serves a purpose. No redundant wording.

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 tool with 12 parameters, nested objects, and no annotations, the description is exceptionally complete: it defines the output schema reference, the rejection contract, the stateless nature, and the two input paths (requirement vs intent). The output schema exists, so the description needn't explain return values. It covers what the caller must know to decide whether to use the tool and what behavioral outcomes to expect.

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?

The schema already has 100% description coverage for all 12 parameters, with detailed role definitions for each. The description adds high-level context about the package's scope and intent-driven vs requirement-driven inputs (Layer 1 vs Layer 2), but it doesn't delve into individual parameters. Since the schema does the heavy lifting, the description adds context on the overall package semantics but not much per-parameter value. Baseline 3, plus a 1-point bump for explaining the layer distinction and gating logic.

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 the tool's purpose: 'Build a synchronous, deterministic supplier request package from the requirement the caller already holds.' It specifies the output function, the source of input, and identifies key characteristics (synchronous, deterministic). It also distinguishes itself from sibling tools by emphasizing it builds a package from an existing requirement, not for checking status or getting options.

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 gives strong context on when to use this tool: when the caller already holds a requirement and needs to build a package. It clarifies what it does NOT do (stores no requirement, contacts no supplier, creates no order, etc.), but does not explicitly name alternative tools or when not to use it. The explicit exclusions help, but lacking direct sibling references prevents a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

check_quote_jobAInspect

Check an asynchronous provider-estimate job created by request_provider_estimate. Terminal statuses: completed, degraded, refused. An unknown read returns reason_code=unknown_or_not_yet_visible. Retry with backoff only when the id came from an authoritative admitted response; never infer an id after a rejected admission.

ParametersJSON Schema
NameRequiredDescriptionDefault
quote_job_idYesThe quote_job_id returned by request_provider_estimate, e.g. QJ-XEQBYMHK.
Behavior4/5

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

Given no annotations, the description carries the full burden. It discloses terminal statuses (completed, degraded, refused), behavior for unknown reads (reason_code=unknown_or_not_yet_visible), and retry policy. It does not explicitly state that the operation is non-mutating or cover auth/rate limits, but 'check' and 'read' imply safety. Overall, strong behavioral coverage.

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, each with a distinct purpose: purpose, statuses, and operational guidance. No filler or redundancy. Front-loaded with the core action.

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 simple polling tool with one parameter and no output schema, the description covers the essential behavioral contract: when to use, what statuses exist, how to handle unknown results, and when retries are appropriate. This is complete for the tool's simplicity.

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 baseline is 3. The description adds context about the id's origin (from request_provider_estimate) and cautions about using ids from rejected admissions, which enriches the schema's simple parameter description. This extra guidance justifies a 4.

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 the tool checks an asynchronous provider-estimate job created by request_provider_estimate. This specific verb-resource pairing distinguishes it from sibling tools like check_request_status, which likely handles a different job type.

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?

Explicit guidance is provided on when to use the tool (for jobs from request_provider_estimate) and when to retry with backoff, plus a clear warning against inferring ids after rejected admissions. This goes beyond basic usage to include operational constraints.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

check_request_statusAInspect

Check the status of a previously submitted physical-solution request. Returns the current status and, once ready, the full resolution report. For an immutable revision, it also returns its persisted deterministic readiness_progress comparison.

ParametersJSON Schema
NameRequiredDescriptionDefault
request_idYesThe request_id returned by request_physical_solution, e.g. A2A2P-7K2M4X.
Behavior4/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It adds valuable context about return values: the current status, the full resolution report once ready, and additional data for immutable revisions. This goes beyond the tool name, though it does not mention side effects, permissions, or error behavior.

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 two sentences, front-loaded with the primary purpose, and adds return details without any fluff. Every phrase earns its place, making it highly concise and well-structured.

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?

For a simple one-parameter status tool, the description covers the main purpose, return values, and a special case for immutable revisions. It lacks error-handling details and clarification of terms like 'immutable revision,' but the description is largely complete for the tool's complexity.

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%, meaning the schema fully documents the request_id parameter, including its origin from request_physical_solution. The description does not add parameter-level detail, but this is acceptable given the high schema coverage. The baseline score of 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?

The description clearly states the tool's purpose with a specific verb ('Check') and resource ('status of a previously submitted physical-solution request'). This distinguishes it from sibling tools like request_physical_solution (creation), get_supply_options, and revise_requirement. There is no ambiguity about what the tool does.

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

Usage Guidelines3/5

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

The description implies usage after submitting a request ('previously submitted'), but does not explicitly state when to use this tool versus alternatives or provide exclusions. It lacks guidance such as 'use this to poll for readiness' or 'do not use for new requests.'

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_supply_optionsAInspect

Instant, synchronous pricing and lead time for a physical requirement — nothing is submitted or stored. Returns a deterministic parametric estimate (source="estimate", pricing_kind="model_estimate", clearly labeled, never presented as a quote). The protocol separately labels provider_estimate and provider_quote; public provider routing is not active. Covers CNC machining, sheet metal, 3D printing, casting, injection molding, and extrusion. ATTACH AN STL in specification.design_files and a2a2p measures the mesh directly — true volume, surface area, bounding box — which replaces guesswork with measurement and returns manufacturability findings only geometry reveals. Otherwise supply intent.geometric_envelope (bounding box in mm), quantity, and material. Use this to answer "what will this cost and how long will it take?" inside a single session, before committing to a full resolution report.

ParametersJSON 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.
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.
Behavior5/5

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

With no annotations provided, the description carries full burden and rises to it: it discloses that 'nothing is submitted or stored', that results are 'deterministic parametric estimate... clearly labeled, never presented as a quote', and that attaching an STL enables direct mesh measurement yielding manufacturability findings.

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 dense but well-structured, opening with the core purpose and then layering key behaviors and usage. Every sentence contributes; the only demerit is length, though it's justified by the tool's complexity.

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?

For a tool with no output schema, it explains the return kind (model estimate vs quote), the coverage (CNC, sheet metal, 3D printing, casting, injection molding, extrusion), and the measurement behavior. It could mention response structure or error conditions, but overall it gives a complete operational picture.

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 provides 100% parameter descriptions; description adds valuable usage semantics by instructing to attach an STL in specification.design_files or supply intent.geometric_envelope, quantity, and material. It also clarifies the role of measured geometry versus guessed envelope, which the schema alone does not convey.

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 specific verb+resource: 'Instant, synchronous pricing and lead time for a physical requirement' and explicitly frames the tool's question as 'what will this cost and how long will it take?'. It differentiates from siblings by noting this is a synchronous model estimate rather than a provider estimate or full resolution report.

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?

It gives explicit when-to-use guidance: 'Use this to answer... inside a single session, before committing to a full resolution report.' It also tells users what to supply (STL or geometric envelope, quantity, material) and notes provider routing is not active, steering them away from provider estimate tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

render_supplier_email_bindingAInspect

Render the caller's requirement as a reviewable RFC 5322 supplier-email draft after rebuilding its canonical supplier package and repeating quote-stage screening. Only an allow verdict renders. The operation validates one explicit recipient and an accountable sender-domain envelope, but cannot verify SPF, DKIM, or DMARC and therefore returns sendable=false. It is a stateless artifact transformation only: it stores nothing, sends nothing, contacts no supplier or provider, and grants no quote, order, payment, or fabrication authority.

ParametersJSON 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.
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.
email_bindingYesExplicit envelope for a reviewable, non-sending RFC 5322 draft. No address is looked up or inferred.
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

ParametersJSON Schema
NameRequiredDescription
statusYes
versionYes
artifactYes
contractYes
sendableYes
authorityYes
provenanceYes
conformanceYes
binding_sha256Yes
digest_semanticsYes
sender_authenticationYes
reply_route_verificationYes
requirements_before_sendingYes
Behavior5/5

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

Although no annotations are provided, the description compensates by disclosing critical behaviors: always returns sendable=false, stateless, stores/sends nothing, and grants no authority. This transparency is operationally essential because it prevents the agent from assuming the email was sent or that a quote/order was placed.

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 remarkably succinct given the tool's complexity: two sentences achieve purpose, scope, exclusions, and authority boundaries. Every phrase ('reviewable draft', 'stateless artifact transformation') packs precise meaning with zero fluff. Front-loads the verb-requirement pairing first, then layers on constraints.

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?

Given that this is a draft-rendering tool with no side effects and full parameter documentation in the schema, the description is complete. It correctly emphasizes the 'no-send' and 'no-authority' aspects, which are the most critical behavioral traits for an AI agent to understand. The existence of an output schema further reduces the need to explain return values.

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 all 12 parameters are documented at the schema level. The description adds meaning by explaining the consequence of the email parameters (can't verify SPF/DKIM/DMARC) and the intent behind the 'requirement' and 'email_binding' fields. However, it doesn't need to add more since the schema descriptions are already comprehensive and this is the description's job to complement rather than duplicate.

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 uses a specific verb+resource combination ('Render the caller's requirement as a reviewable RFC 5322 supplier-email draft') that precisely distinguishes this from siblings like build_supplier_request_package and request_physical_solution. It clearly states the tool produces a draft email without sending.

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 explains when to use the tool by detailing what it validates ('One explicit recipient', 'accountable sender-domain envelope') and its limitations ('cannot verify SPF, DKIM, or DMARC'). While it doesn't explicitly name alternatives or say 'use X instead', the negative space it defines around sending and authority implicitly separates it from siblings like check_quote_job and get_supply_options.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

request_physical_solutionAInspect

Submit a physical-world requirement (a part, product, device, or capability that must exist in the physical world). a2a2p resolves it and returns a RESOLUTION REPORT: a recommended path (best existing commercial solution vs. custom fabrication), pricing, tradeoffs, a delivery plan with contingencies and expedite options, and a business case when business context is provided. Response is asynchronous: you receive a request_id immediately (with an instant spec_review); a draft report is typically ready within a few minutes, the human-reviewed final within 24 hours. Poll check_request_status to retrieve it.

ENTRY MODES — arrive with what you have: • fully_specified: provide 'specification' (part_type, material, process, dimensions, tolerance_class, design_files). Go straight to resolution report. • intent_only: provide 'intent' (purpose, environment, functional_requirements, quantity, timeline, priority). a2a2p recommends 2-3 specification options with tradeoffs. • partial: provide what you know in either layer; a2a2p fills the gaps.

Layer 1 (intent) describes the PROBLEM. Layer 2 (specification) describes the SOLUTION. At minimum, provide 'requirement' (legacy) or 'intent.purpose' (structured) — one line describing what you need. Use 'rejected_alternatives' to record options already ruled out.

ParametersJSON 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.
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.
Behavior4/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It clearly communicates the asynchronous nature (request_id returned immediately, draft report within minutes, final within 24 hours), describes the return payload (resolution report with pricing, tradeoffs, delivery plan), and mentions the design file size limit (8388608 bytes). It could additionally mention error handling or auth requirements, but the provided transparency is strong.

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 its structure earns it: a one-sentence purpose summary, a short async-behavior paragraph, then clearly labeled 'ENTRY MODES' and layer definitions. The density is justified by the tool's complexity; there is no redundant filler.

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 tool with 11 parameters, nested objects, no output schema, and no annotations, this description is remarkably complete. It explains return values, timing, entry modes, required vs. optional fields, and even gives usage examples (e.g., 'provide what you know in either layer'). Together with the detailed schema, the agent has everything it needs to invoke the tool 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?

The input schema documents all parameters (100% coverage), so the baseline is 3. The description adds significant value by explaining the two-layer model (intent as problem, specification as solution), the field mappings (requirement maps to intent.purpose), and the purpose of rejected_alternatives. This goes beyond the schema's individual field descriptions to explain how to combine fields for different entry modes.

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 specific verb ('Submit') and resource ('a physical-world requirement'), then details what a2a2p does with it ('resolves it and returns a RESOLUTION REPORT'). It clearly distinguishes itself from siblings like check_request_status by positioning itself as the submission entry point.

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 'ENTRY MODES' section explicitly explains how to use the tool in different scenarios (fully_specified, intent_only, partial), including what fields to provide in each mode. It also names the sibling check_request_status for polling results. However, it does not explicitly state when this tool should be avoided in favor of other siblings like request_provider_estimate, so it falls just short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

request_provider_estimateAInspect

Submit a requirement for an asynchronous REAL-PROVIDER estimate (pricing_kind="provider_estimate") without holding the connection open. Returns a quote_job_id in milliseconds; the provider call runs out-of-band. Additive processes with an STL design file only, for now. The requirement is screened before storage and the exact file bytes are screened again before any provider contact; a deny refuses the submission. Every admission result is machine-readable. Rejections carry a stable closed-set reason_code, retry boundary, required input, and deterministic next_action; admitted responses carry the same versioned admission contract. Estimate only — never a quote, order, payment, or fabrication commitment. Poll with check_quote_job until a terminal status: completed (provider figure), degraded (deterministic model estimate with the provider's absence explained), or refused (screening).

ParametersJSON 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.
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.
Behavior5/5

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

With no annotations provided, the description fully discloses the tool's behavior: it runs out-of-band, returns a quote_job_id in milliseconds, performs a two-stage screening, and defines terminal outcomes (completed, degraded, refused) with details on rejection structure (reason_code, retry boundary, required input, next_action). This is exceptional transparency for a non-trivial tool.

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 dense and front-loaded with the primary purpose, followed by necessary behavioral details. Every sentence adds value, covering speed, out-of-band execution, screening, admission contract, terminal states, and scope. While it is longer than the 5-scoring examples, the complexity of the tool justifies the length, though it could be slightly more streamlined.

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?

Given the tool's complexity, the absence of annotations and output schema, the description is remarkably complete. It explains the asynchronous flow, what to poll, the three terminal statuses, and the nature of rejections/admissions. It even includes the 'degraded' fallback behavior and the 'Estimate only' disclaimer, leaving little ambiguity for an agent selecting and invoking the tool.

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 input schema already provides 100% description coverage, so the baseline is 3. The description does not add much parameter-specific meaning beyond restating 'requirement' and 'STL design file.' It mentions constraints on file type and process but does not explain any of the 11 parameters in depth, making the schema the primary source for parameter understanding.

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 opening sentence clearly identifies the action: 'Submit a requirement for an asynchronous REAL-PROVIDER estimate' with a specific pricing_kind. The description further distinguishes the tool's scope by stating 'Estimate only — never a quote, order, payment, or fabrication commitment,' which clearly separates it from sibling tools like check_quote_job or request_physical_solution.

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 provides clear context for when to use the tool: for asynchronous real-provider estimates without holding the connection. It also gives a direct follow-up instruction to poll with check_quote_job, and notes a current constraint ('Additive processes with an STL design file only, for now'). However, it does not explicitly name alternatives or explain when not to use this tool versus others, stopping short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

review_specificationAInspect

Instant, synchronous engineering review of a physical requirement — nothing is submitted or stored. Deterministic checks: material identification with handbook-typical properties (density, stiffness, yield, service temperature), explicit rectangular beam deflection and nominal stress with requester-defined acceptance criteria, material/process compatibility, tolerance-vs-process reality, quantity economics (e.g. tooling amortization), environment fit (UV, saltwater, food contact, temperature, medical), flexibility fit, post-processing validity, design-file format fit, and specification completeness. Returns findings ranked blocker/warning/info, two readiness scores, and a deterministic clarification_plan: compact next_fields, visible remaining_fields, optional CAD accelerators, an intent-only resolution handoff, next_call with the recommended exact MCP/REST continuation, and continuation_options for every operation explicitly eligible from a complete specification. Examples are shapes, never invented defaults. For a decomposed design, send specification.assembly with parts and interfaces: a2a2p then checks galvanic pairing and interface fit across parts, which a single-part review cannot, and prices each part separately. Undeclared interfaces are unchecked — nothing is inferred. CHECK intake_classification first. a2a2p reviews one manufacturable part at a time; a request naming a behaviour rather than an object ("a device that detects and removes debris") is classified capability_concept and redirected to decomposition, because no material or tolerance can be derived from it. The classification is advisory, never blocks, and defers to any supplied specification. READ resolution_readiness, not quote_readiness, while you are still answering questions. quote_readiness is supplier-facing and stays capped by material/process/dimensions/tolerance that a2a2p derives for you, so it cannot reach quote_ready from intent alone however much you supply. resolution_readiness measures only what the requester owns and reaches ready_to_resolve once you have supplied enough to derive a specification — which is not a supplier quote. completeness.awaiting_requester and completeness.derivable_by_resolution say which fields are whose. Accepts the same input as request_physical_solution (structured intent/specification or legacy flat fields). For intent_only, complete requester context leads to submit_for_specification_resolution; for a supplied specification, apply only facts you know, re-review until quote_ready, then submit if a durable resolution is useful.

ParametersJSON 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.
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.
Behavior5/5

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

Discloses key behavioral traits beyond the operation name: 'nothing is submitted or stored', 'Deterministic checks', 'Undeclared interfaces are unchecked — nothing is inferred', and that quote_readiness cannot reach quote_ready from intent alone. Also notes 'Examples are shapes, never invented defaults' and that classification is advisory. With no annotations provided, this disclosure fully carries the transparency burden.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is lengthy and dense, covering many checks, readiness scores, clarification plan, and flow guidance in a single unstructured paragraph. It is informative but not concise; a more structured format with shorter sentences would aid readability.

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?

Given the tool's complexity, no output schema, and zero annotations, the description is unusually complete: it lists outputs (findings, readiness scores, clarification_plan), explains limitations (undeclared interfaces unchecked), and gives flow logic (when to submit, re-review). No critical aspect is left unexplained.

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?

The schema has 100% description coverage for all parameters, each with detailed descriptions. The description adds overall input semantics (structured intent/specification vs legacy flat fields) and explains how intent_only versus supplied specification affects the flow, complementing the schema without duplicating it.

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 this is an 'Instant, synchronous engineering review of a physical requirement' and enumerates specific deterministic checks (material identification, beam deflection, compatibility, etc.). It distinguishes itself from siblings by noting it accepts the same input as request_physical_solution and by describing its output as a review rather than a request.

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?

Provides explicit usage guidance: 'CHECK intake_classification first', explains that a2a2p reviews one manufacturable part at a time and redirects capability_concept requests to decomposition, and instructs users to read resolution_readiness not quote_readiness while answering questions. It also specifies when to submit for specification resolution versus re-review.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

revise_requirementAInspect

Create a new, immutable revision of a prior request by applying only the fields you learned since the first submission. Use this after review_specification returns a clarification_plan: provide the original request_id plus the patch (for example intent.geometric_envelope or specification.material). The original is preserved; the revision receives a new request_id, a fresh spec_review, a revision_of link, and a deterministic readiness_progress comparison against its immediate predecessor. Provide idempotency_key when retrying the same patch so a network retry returns the same revision instead of creating another.

ParametersJSON 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.
quantityNoNumber of units needed. Maps to intent.quantity.
budget_usdNoApproximate budget in USD. Maps to intent.budget_envelope.
request_idYesThe prior request_id to revise.
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.
revision_noteNoOptional short explanation of what changed.
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.
idempotency_keyNoOptional stable retry key (1–128 characters). Reusing it with the same patch returns the prior revision; reuse with a different patch is rejected.
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.
Behavior5/5

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

No annotations are provided, so the description carries full behavioral disclosure. It states immutability, preservation of the original, assignment of a new request_id, a fresh spec_review, a revision_of link, and a deterministic readiness_progress comparison. It also explains idempotency semantics, ensuring agents understand retry behavior.

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 four sentences, front-loaded with the primary action, then usage context, then output behavior, then retry guidance. Each sentence adds distinct value without redundancy—appropriate for a tool with a complex workflow.

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?

Given the tool's 14 parameters, nested objects, and no output schema, the description adequately covers the workflow trigger, key parameters, side effects, and retry semantics. It also clarifies what the response will contain (new request_id, spec_review, revision_of link, readiness_progress), which is sufficient for agent decision-making.

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 description coverage is 100%, so baseline is 3. The description adds beyond the schema by explaining the role of request_id ('the prior request_id to revise'), giving patch examples (intent.geometric_envelope, specification.material), and elaborating on idempotency_key's retry behavior versus the schema's simple definition.

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 'Create a new, immutable revision of a prior request,' a specific verb and resource. It clearly distinguishes the tool from siblings like request_physical_solution (initial creation) and review_specification (which precedes it).

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?

It explicitly instructs 'Use this after review_specification returns a clarification_plan' and identifies the required input pattern (original request_id plus patch). It also gives clear idempotency_key guidance for retries, explaining when to provide it and what happens if reused.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

upload_design_fileAInspect

Turn local manufacturing file bytes into the temporary HTTPS reference used by specification.design_files. This is a bounded intake operation, not a request, provider call, quote, order, payment, or fabrication action. Common RFC 4648 transport forms are normalized, then decoded bytes are recognized by signature, checked against the declared format, screened before storage, retained for one hour, and never included in telemetry. Supported roles include geometry (STL/STEP) and drawings (DXF/PDF). The 2 MiB MCP ceiling is transport-specific; use POST /api/upload with purpose=manufacturing_design_file for files up to 8 MiB. Pass the returned file_reference object unchanged in specification.design_files on the next call.

ParametersJSON Schema
NameRequiredDescriptionDefault
formatYesDeclared manufacturing format. File bytes must match.
purposeYesMust be manufacturing_design_file; general chat attachments use a separate intake.
filenameYesOriginal filename, used only for bounded inspection and the temporary record.
content_base64YesFile bytes as RFC 4648 base64 or base64url; padding is optional, ASCII whitespace and a bounded data:*;base64, prefix are accepted. Do not pass a path or URL. Decoded maximum: 2097152 bytes.
Behavior5/5

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

No annotations are provided, so the description carries full burden. It discloses rich behavioral details: base64 normalization, signature recognition, format checking, screening before storage, one-hour retention, and telemetry exclusion. These go far beyond what the schema or sibling names would convey, giving the agent a clear model of how input is processed and retained.

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 dense yet structured: first sentence defines the core function, subsequent sentences clarify boundaries, processing steps, supported formats, size limits, and usage. No sentence is redundant; each adds a distinct piece of operational knowledge, making the length justified.

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?

Given four required parameters, no annotations, and no output schema, the description covers all essential context: what the tool does, what it is not, how data is processed and retained, format support, size constraints, fallback for larger files, and how to consume the return value. This is a complete operational picture for an agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Even though schema coverage is 100%, the description adds significant meaning beyond the schema: it explains the accepted base64 variants (RFC 4648, base64url, optional padding, ASCII whitespace, data:* prefix), the 2 MiB decoded maximum, that paths/URLs are not accepted, and that the format enum values are 'declared' and 'must match' the bytes. The purpose const is also reinforced with 'general chat attachments use a separate intake.'

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 specific verb+resource+outcome: 'Turn local manufacturing file bytes into the temporary HTTPS reference used by specification.design_files.' It also delineates what the tool is not ('not a request, provider call, quote, order, payment, or fabrication action'), sharply distinguishing it from the sibling tools that handle requests, quotes, and specification reviews.

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?

Explicit when-to-use guidance is present: it is a 'bounded intake operation' with a clear exclusion list of non-actions. It also provides an alternative for larger files ('use POST /api/upload with purpose=manufacturing_design_file for files up to 8 MiB') and instructs the caller to 'Pass the returned file_reference object unchanged in specification.design_files on the next call'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Discussions

No comments yet. Be the first to start the discussion!

Related MCP Servers

  • A
    license
    Not graded
    quality
    A
    maintenance
    Enables coding agents to convert natural language engineering prompts into editable parametric CAD models with deterministic parsing, validation, and edit support.
    5
    Apache 2.0
  • F
    license
    Not graded
    quality
    D
    maintenance
    Intelligently generates cost estimates and lead times for manufacturing RFPs by parsing requests, matching against historical quotes, and calculating activity-based costs with confidence scoring and human approval workflows.
  • A
    license
    A
    quality
    C
    maintenance
    Enables AI agents to prepare floor plans for Ritn3D and interpret 3D outputs by providing tools for validation, complexity estimation, pricing, and failure analysis.
    9
    MIT
  • -
    license
    Not graded
    quality
    B
    maintenance
    Enables agent-assisted CAD engineering, allowing users to create, validate, and export CAD designs through natural language, with a deterministic engine that has zero LLM runtime dependency.

View all MCP Servers

Try in Browser

Your Connectors

Sign in to create a connector for this server.