a2a2p — Agent-to-Agent-to-Physical
REMOTE · A2A2P.COM · SCANNED SEP 25
Turn agent intent into physical parts: engineering review, measured geometry, calibrated pricing.
Available components
How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →
Endpoint Security63
- The endpoint's TLS certificate is valid, in date, and uses a strong key. View diagnostics → Pass
- No authorisation is required to call this server. Every tool declares its destructiveHint and none is destructive, so open access doesn't expose one. See how to fix → View diagnostics → Partial
- HTTPS enforcement could not be verified: the plaintext port answered with HTTP 405, which proves neither a plaintext path nor enforcement. View diagnostics → Unverified
- HSTS check failed: the Strict-Transport-Security header is absent. See how to fix → View diagnostics → Fail
- DNSSEC check failed: this domain isn't protected by DNSSEC. See how to fix → View diagnostics → Fail
Transport & Reachability100
- Verified streamable-http transport via a live MCP handshake. View diagnostics → Pass
Schema Quality & AI Usability54
- AI-judged instruction clarity (good).Pass
- Context-footprint check failed: tool/resource definitions use about 9395 tokens (~347/item across 27 items; 27 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
- Tools include usage examples.Pass
Stability & Change Management100
- No destabilizing schema changes in the last 30 days.Pass
Tool Coverage90
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 64% of tool parameters carry a description.Partial
- Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Tool Safety75
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- 0 of 1 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation; "run_bounded_simulation_study" implies "execute" and declares readOnlyHint instead, contradicting what its own name says it does. See how to fix → Fail
- An AI judge read all 28 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a current MCP spec version (2026-07-28).Pass
How do I install the a2a2p — Agent-to-Agent-to-Physical MCP server?
a2a2p — Agent-to-Agent-to-Physical is a hosted endpoint at https://a2a2p.com/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
remote · a2a2p.com
claude mcp add --transport http com-a2a2p-a2a2p 'https://a2a2p.com/mcp'
{
"mcpServers": {
"com-a2a2p-a2a2p": {
"url": "https://a2a2p.com/mcp"
}
}
} {
"servers": {
"com-a2a2p-a2a2p": {
"type": "http",
"url": "https://a2a2p.com/mcp"
}
}
} [mcp_servers.com-a2a2p-a2a2p] url = "https://a2a2p.com/mcp"
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"com-a2a2p-a2a2p": {
"type": "remote",
"url": "https://a2a2p.com/mcp",
"enabled": true
}
}
} openclaw mcp add com-a2a2p-a2a2p --url 'https://a2a2p.com/mcp' --transport streamable-http
mcp_servers:
com-a2a2p-a2a2p:
url: "https://a2a2p.com/mcp" {
"McpServers": {
"com-a2a2p-a2a2p": {
"Transport": "http",
"Url": "https://a2a2p.com/mcp"
}
}
} assistant mcp add com-a2a2p-a2a2p -t streamable-http -u 'https://a2a2p.com/mcp'
{
"mcpServers": {
"com-a2a2p-a2a2p": {
"type": "http",
"url": "https://a2a2p.com/mcp"
}
}
} The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 25 Sept 26 0
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 23 Sept 26 0
- Server version: 1.218.0 → 1.222.0 functional
- 16 Sept 26 0
- The server rewrote its instructions, which are the text every model session reads security
- Tool “assess_supplier_fit” rewrote its description, which is the text the model reads security
- Server version: 1.217.0 → 1.218.0 functional
- 14 Sept 26 +1
- The server rewrote its instructions, which are the text every model session reads security
- Tool “prepare_domain_solutioning_case” rewrote its description, which is the text the model reads security
- Tool “review_specification” rewrote its description, which is the text the model reads security
- Server version: 1.213.0 → 1.217.0 functional
- 13 Sept 26 0
- Server version: 1.208.0 → 1.213.0 functional
- 12 Sept 26 0
- Server version: 1.206.0 → 1.208.0 functional
- 10 Sept 26 0
- The server rewrote its instructions, which are the text every model session reads security
- Tool “validate_actualization_plan” rewrote its description, which is the text the model reads security
- Server version: 1.200.0 → 1.206.0 functional
- 9 Sept 26 −1
- Server version: 1.194.0 → 1.200.0 functional
- New tool “validate_actualization_plan” functional
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 25 Sept 2026 · Probed https://a2a2p.com/mcp
TLS valid
Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .
| Subject | Issuer | Valid from | Valid until | Key | Signature | Serial |
|---|---|---|---|---|---|---|
| CN=a2a2p.com | CN=WE1,O=Google Trust Services,C=US | 1 Sept 2026 | 30 Nov 2026 | ECDSA 256 | ECDSA-SHA256 | 68c8535822d185b10e2704c514e4bcbf |
| SANs: a2a2p.com, *.a2a2p.com | ||||||
| CN=WE1,O=Google Trust Services,C=US (CA) | CN=GTS Root R4,O=Google Trust Services LLC,C=US | 13 Dec 2023 | 20 Feb 2029 | ECDSA 256 | ECDSA-SHA384 | 7ff31977972c224a76155d13b6d685e3 |
| CN=GTS Root R4,O=Google Trust Services LLC,C=US (CA) | CN=GlobalSign Root CA,OU=Root CA,O=GlobalSign nv-sa,C=BE | 15 Nov 2023 | 28 Jan 2028 | ECDSA 384 | SHA256-RSA | 7fe530bf331343bedd821610493d8a1b |
Background: What to check on a remote MCP endpoint →
DNSSEC insecure
Validation of a2a2p.com. — Not signed
| Zone | DS | Keys | Algorithms | Outcome |
|---|---|---|---|---|
| . | trust_anchor | 20326, 38696 | 8, 8 | Verified |
| com. | present | 19718 | 13 | Verified |
| a2a2p.com. | absent | Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation |
Authentication No authorisation required
The endpoint answered without asking for a token. Anyone who knows the URL can reach it.
| Result | No authorisation required |
|---|---|
| HTTP status | 200 |
Background: How OAuth 2.1 works in the 2026 MCP spec →
Transports 2 probes
| Transport | URL | Outcome | Status | Location |
|---|---|---|---|---|
| streamable-http | https://a2a2p.com/mcp | Verified | 200 | |
| http (plaintext) | http://a2a2p.com/mcp | Inconclusive | 405 |
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
assess_supplier_fit ~99
Compare one exact package projection with every lane in one evidence-bound supplier capability declaration. Returns explicit match, conflict, or unknown checks. Import evidence concerns the drawing associated with the package, not proof that its JSON was received or accepted. It never scores or selects a supplier and grants no contact, quote, purchase, or fabrication authority.
| Name | Type | Req | Description |
|---|---|---|---|
| capability_declaration | object | yes | – |
| import_observation | – | – | – |
| package_projection | object | yes | – |
Structured output declared, but exposes no named fields.
No examples provided.
build_supplier_request_package ~757
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 fabri…
| Name | Type | Req | Description |
|---|---|---|---|
| budget_usd | number | – | Approximate budget in USD. Maps to intent.budget_envelope. |
| business_context | string | – | Optional business requirements (expected volumes, cost targets, ROI constraints). If provided, the quote includes a business case. |
| callback_url | string | – | Optional HTTPS URL. When the quote is ready, a2a2p POSTs it as JSON to this URL. |
| constraints | string | – | Hard constraints: tolerances, certifications, materials to avoid, size/weight limits. Maps to intent.functional_requirements. |
| contact | string | – | Optional email or callback endpoint for quote delivery. |
| deadline | string | – | Required delivery date or timeframe. Maps to intent.timeline. |
| delivery | object | – | Optional caller-declared routing context carried into the returned package. a2a2p does not send it anywhere. |
| intent | object | – | Layer 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. |
| quantity | integer | – | Number of units needed. Maps to intent.quantity. |
| rejected_alternatives | array | – | Options already considered and ruled out. Prevents re-suggesting and builds the learning corpus. |
| requirement | string | – | Plain-language description of the physical need. Maps to intent.purpose. Include function, dimensions, materials, load/performance requirements, environment, and interfaces where known. |
| specification | object | – | Layer 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. |
| Name | Type | Req | Description |
|---|---|---|---|
| already_checked | object|null | yes | – |
| artifact_identity | object | yes | – |
| commercial | object | yes | – |
| delivery | object|null | yes | – |
| delivery_requirements | object | yes | – |
| gaps | object | yes | – |
| geometry | object | yes | – |
| profile | – | yes | – |
| profile_version | – | yes | – |
| provenance | object | yes | – |
| quote_stage_eligibility | object | yes | – |
| request | object | yes | – |
| screening | object | yes | – |
| specification_url | string | yes | – |
| what_is_requested | object | yes | – |
{"intent":{"purpose":"Hold an indoor sensor enclosure against a vertical rail without drilling."}} check_quote_job ~109
Check an asynchronous provider-estimate job created by request_provider_estimate, including its queued or terminal execution substate. 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.
| Name | Type | Req | Description |
|---|---|---|---|
| quote_job_id | string | yes | The quote_job_id returned by request_provider_estimate, e.g. QJ-XEQBYMHK. |
Structured output declared, but exposes no named fields.
No examples provided.
check_request_status ~184
Check the status of a previously submitted physical-solution request. Returns a generated machine draft as soon as it exists, with a versioned delivery receipt that distinguishes pending_machine_draft, generation_failed, generation_expired, machine_draft, and operator_published. The receipt exposes privacy-minimized automatic-generation progress: observed attempt count, fixed maximum, current eligibility, and exact next automatic-attempt time, without model errors or request content. Professional engineering, supplier-quote, and physical-action claims remain false. generation_failed and generation_expired are terminal for that request id and permit only a caller-confirmed new request from caller-held input. For an immutable revision, it also returns its persisted deterministic readiness_progress comparison.
| Name | Type | Req | Description |
|---|---|---|---|
| request_id | string | yes | The request_id returned by request_physical_solution, e.g. A2A2P-7K2M4X. |
| Name | Type | Req | Description |
|---|---|---|---|
| message | string | – | – |
| quote | object | – | – |
| readiness_progress | object | – | – |
| report_delivery | object | yes | Distinguishes report availability and publication provenance from request lifecycle, supplier quoting, and physical authority. |
| request_id | string | yes | – |
| resolution_report | object | – | – |
| status | string | yes | – |
| submitted | string | yes | – |
No examples provided.
derive_rectangular_beam_section ~178
Derive one proposal-only prismatic rectangular beam height from a caller-declared purpose, supported idealized load model, fixed width, explicit elastic modulus, and at least one requester acceptance criterion. The operation solves closed-form equations, rounds upward to the caller's manufacturing increment, and re-runs the canonical bounded evaluator. It performs no general optimization, material selection, network call, supplier contact, persistence, purchase, or fabrication and grants no engineering or physical authority.
| Name | Type | Req | Description |
|---|---|---|---|
| allowable_stress_mpa | – | yes | – |
| elastic_modulus_gpa | number | yes | – |
| load_n | number | yes | – |
| manufacturing_increment_mm | number | yes | – |
| max_deflection_mm | – | yes | – |
| model | – | yes | – |
| purpose | string | yes | – |
| section_width_mm | number | yes | – |
| span_mm | number | yes | – |
Structured output declared, but exposes no named fields.
No examples provided.
explore_rectangular_beam_sections ~201
Evaluate 2 to 12 caller-declared rectangular beam widths through the canonical bounded height derivation, then return every proposal and the exact non-dominated frontier for minimizing section height and idealized prismatic material volume. Width order is normalized; duplicates fail closed. The operation never invents a width, assigns an aggregate score, selects a candidate, estimates material cost, verifies manufacturing or omitted failure modes, calls an external system, or grants engineering, purchase, or fabrication authority.
| Name | Type | Req | Description |
|---|---|---|---|
| allowable_stress_mpa | – | yes | – |
| elastic_modulus_gpa | number | yes | – |
| load_n | number | yes | – |
| manufacturing_increment_mm | number | yes | – |
| max_deflection_mm | – | yes | – |
| model | – | yes | – |
| purpose | string | yes | – |
| section_width_options_mm | array | yes | Finite caller-owned width set. Input order has no decision meaning and is normalized ascending before evaluation. |
| span_mm | number | yes | – |
Structured output declared, but exposes no named fields.
No examples provided.
get_supply_options ~522
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. An explicit specification.assembly with two or more parts returns decomposition_required before file inspection or pricing; submit each fabricated part separately. 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.
| Name | Type | Req | Description |
|---|---|---|---|
| budget_usd | number | – | Approximate budget in USD. Maps to intent.budget_envelope. |
| business_context | string | – | Optional business requirements (expected volumes, cost targets, ROI constraints). If provided, the quote includes a business case. |
| callback_url | string | – | Optional HTTPS URL. When the quote is ready, a2a2p POSTs it as JSON to this URL. |
| constraints | string | – | Hard constraints: tolerances, certifications, materials to avoid, size/weight limits. Maps to intent.functional_requirements. |
| contact | string | – | Optional email or callback endpoint for quote delivery. |
| deadline | string | – | Required delivery date or timeframe. Maps to intent.timeline. |
| intent | object | – | Layer 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. |
| quantity | integer | – | Number of units needed. Maps to intent.quantity. |
| rejected_alternatives | array | – | Options already considered and ruled out. Prevents re-suggesting and builds the learning corpus. |
| requirement | string | – | Plain-language description of the physical need. Maps to intent.purpose. Include function, dimensions, materials, load/performance requirements, environment, and interfaces where known. |
| specification | object | – | Layer 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. |
Structured output declared, but exposes no named fields.
No examples provided.
normalize_stl_units ~177
Create a genuinely millimetre-scaled derivative from an active temporary binary STL whose exporter is known to emit metre coordinates. The operation never guesses units from a filename or plausible size. It requires the exact source SHA-256, an exporter statement tied to a named system and revision, and a separate expected-envelope check. It preserves the source, stores the derivative under a new one-hour file_reference, and returns separate source and derivative hashes. Conversion only: no supplier selection, quote request, order, payment, fabrication, or external contact occurs.
| Name | Type | Req | Description |
|---|---|---|---|
| file_reference | object | yes | – |
| source_sha256 | string | yes | SHA-256 of the exact uploaded source STL bytes. |
| source_units | string | yes | – |
| target_units | string | yes | – |
| unit_evidence | object | yes | – |
| validation | object | yes | – |
Structured output declared, but exposes no named fields.
No examples provided.
plan_material_evidence_promotion ~127
Plan the evidence needed to transform a validated material source observation into a future material-property-evidence input. Deterministic and stateless: it compares exact property, material-state, orientation, temperature, and process context; binds source, target, and planner digests; and names conflicts plus missing method, uncertainty, freshness, and excerpt evidence. It never promotes the observation, creates simulation input, calls a model or solver, contacts a supplier/provider, or grants engineering, order, payment, or fabrication authority.
| Name | Type | Req | Description |
|---|---|---|---|
| observation | object | yes | – |
| target | object | yes | – |
Structured output declared, but exposes no named fields.
No examples provided.
prepare_derived_beam_simulation ~247
Compile one exact replay-verified rectangular-beam derivation into a prepared bounded simulation study. The caller must supply the original derivation input and receipt, its exact validation receipt, simulation-eligible source-bound material evidence matching the modulus, an objective, source freshness, and a physical validation plan. The compiler replays first, derives a stable candidate ID, repeats deterministic review, preserves requester criteria as hard gates, and publishes omitted failure modes. It never chooses material or objective, verifies physical truth, runs a solver, stores data, contacts a supplier, or grants physical authority.
| Name | Type | Req | Description |
|---|---|---|---|
| derivation_input | object | yes | – |
| derivation_receipt | object | yes | – |
| derivation_validation | object | yes | Exact output returned by validate_rectangular_beam_section_derivation for the same input and receipt. Runtime replay and full canonical comparison are authoritative. |
| material_property_evidence | object | yes | Caller-supplied exact material-property source snapshot. Binding proves content identity and envelope validity only; it does not verify the source claim or create a design allowable. |
| objectives | array | yes | – |
| physical_validation_plan | array | yes | – |
| source_metadata | object | yes | – |
Structured output declared, but exposes no named fields.
No examples provided.
prepare_domain_solutioning_case ~462
Prepare a synchronous, deterministic, privacy-minimized engineering case for a compatible domain-intelligence system. Use it when intake_classification is capability_concept or assembly_or_system and mechanism selection or decomposition is required, or when a complete single-part intent has no specifications and review offers the design_brief continuation. The case preserves requester facts, deterministic evidence, screening state, unknowns, and a versioned candidate-output contract while removing design-file URLs, bytes, contact fields, and callback routes. This operation does not call deb8stack or any model, choose a mechanism, validate a proposal, store a request, contact a supplier, or grant quote, order, payment, or fabrication authority.
| Name | Type | Req | Description |
|---|---|---|---|
| budget_usd | number | – | Approximate budget in USD. Maps to intent.budget_envelope. |
| business_context | string | – | Optional business requirements (expected volumes, cost targets, ROI constraints). If provided, the quote includes a business case. |
| callback_url | string | – | Optional HTTPS URL. When the quote is ready, a2a2p POSTs it as JSON to this URL. |
| constraints | string | – | Hard constraints: tolerances, certifications, materials to avoid, size/weight limits. Maps to intent.functional_requirements. |
| contact | string | – | Optional email or callback endpoint for quote delivery. |
| deadline | string | – | Required delivery date or timeframe. Maps to intent.timeline. |
| intent | object | – | Layer 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. |
| quantity | integer | – | Number of units needed. Maps to intent.quantity. |
| rejected_alternatives | array | – | Options already considered and ruled out. Prevents re-suggesting and builds the learning corpus. |
| requirement | string | – | Plain-language description of the physical need. Maps to intent.purpose. Include function, dimensions, materials, load/performance requirements, environment, and interfaces where known. |
| specification | object | – | Layer 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. |
| Name | Type | Req | Description |
|---|---|---|---|
| activation | object | yes | – |
| authority | – | yes | – |
| case_digest | string | yes | – |
| contract | – | yes | – |
| contract_version | – | yes | – |
| deterministic_evidence | object | yes | – |
| expected_result | object | yes | – |
| next | object | yes | – |
| provenance | object | yes | – |
| requested_work | array | yes | – |
| requirement | object | yes | – |
| safety | object | yes | – |
No examples provided.
prepare_reviewed_beam_simulation ~282
Compile one caller-selected domain-solutioning candidate into a prepared bounded beam simulation study after repeating deterministic engineering review. The requirement must explicitly state the supported load model, geometry, load, and elastic modulus; the caller must state the objective, source freshness, and physical validation plan. Optional material_property_evidence content-addresses an exact engineering datasheet or measurement with material state, applicability, method, and uncertainty; its value must match the requirement. Semantic placeholders such as unknown, unspecified, n/a, or tbd cannot make material state or applicability simulation-eligible. Computed-crystal evidence remains screening/reference-only because this scalar product model cannot preserve its tensor, orientation, grade, condition, or product-form boundary. Requester limits become hard constraints. It never verifies a source claim, selects a candidate, invents physics, runs a solver, stores data, contacts a supplier, or grants physical authority.
| Name | Type | Req | Description |
|---|---|---|---|
| candidate_id | string | yes | – |
| material_property_evidence | object | – | Caller-supplied exact material-property source snapshot. Binding proves content identity and envelope validity only; it does not verify the source claim or create a design allowable. |
| objectives | array | yes | – |
| physical_validation_plan | array | yes | – |
| requirement | object | yes | – |
| simulation_handoff | object | yes | – |
| source_metadata | object | yes | – |
Structured output declared, but exposes no named fields.
No examples provided.
prepare_simulation_study ~123
Prepare a deterministic, side-effect-free simulation study for existing a2a2p domain-solutioning candidate IDs. It records exact quantities, units, closed-kind source snapshots with staleness intervals, hard constraints, solver/model/settings provenance, assumptions, validity domain, and a physical validation plan. It runs no solver, chooses no candidate, stores nothing, and grants no physical authority.
| Name | Type | Req | Description |
|---|---|---|---|
| candidate_ids | array | yes | – |
| experiments | array | yes | – |
| hard_constraints | array | yes | – |
| objectives | array | yes | – |
| source | – | yes | – |
Structured output declared, but exposes no named fields.
No examples provided.
render_supplier_email_binding ~514
Render the caller's requirement as a reviewable RFC 5322 supplier-email draft after rebuilding its canonical supplier package and repeating quote-stage screening. The plain-language draft offers optional Can quote / Need changes / Decline reply choices and asks for price basis, freight scope, and lead-time basis when quoting. Suppliers may still reply in normal prose. 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. An explicit specification.assembly with two or more parts returns decomposition_required before file inspection or rendering. 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.
| Name | Type | Req | Description |
|---|---|---|---|
| budget_usd | number | – | Approximate budget in USD. Maps to intent.budget_envelope. |
| business_context | string | – | Optional business requirements (expected volumes, cost targets, ROI constraints). If provided, the quote includes a business case. |
| callback_url | string | – | Optional HTTPS URL. When the quote is ready, a2a2p POSTs it as JSON to this URL. |
| constraints | string | – | Hard constraints: tolerances, certifications, materials to avoid, size/weight limits. Maps to intent.functional_requirements. |
| contact | string | – | Optional email or callback endpoint for quote delivery. |
| deadline | string | – | Required delivery date or timeframe. Maps to intent.timeline. |
| email_binding | object | yes | Explicit envelope for a reviewable, non-sending RFC 5322 draft. No address is looked up or inferred. |
| intent | object | – | Layer 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. |
| quantity | integer | – | Number of units needed. Maps to intent.quantity. |
| rejected_alternatives | array | – | Options already considered and ruled out. Prevents re-suggesting and builds the learning corpus. |
| requirement | string | – | Plain-language description of the physical need. Maps to intent.purpose. Include function, dimensions, materials, load/performance requirements, environment, and interfaces where known. |
| specification | object | – | Layer 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. |
| Name | Type | Req | Description |
|---|---|---|---|
| artifact | object | yes | – |
| authority | object | yes | – |
| binding_sha256 | string | yes | – |
| conformance | object | yes | – |
| contract | – | yes | – |
| digest_semantics | object | yes | – |
| provenance | object | yes | – |
| reply_route_verification | object | yes | – |
| requirements_before_sending | array | yes | – |
| sendable | – | yes | – |
| sender_authentication | object | yes | – |
| status | – | yes | – |
| version | – | yes | – |
No examples provided.
request_physical_solution ~693
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. Poll check_request_status; as soon as an automated draft exists it is returned with an a2a2p.resolution-report-delivery receipt that distinguishes machine_draft from operator_published. If the finite attempt budget is exhausted, status returns generation_failed; if the bounded automatic retry window expires first, it returns generation_expired. Either terminal state permits only a new caller-confirmed request from caller-held input. Operator review and publication are not guaranteed or subject to a service-level promise. No state is professional engineering certification or a supplier quote. 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.
| Name | Type | Req | Description |
|---|---|---|---|
| budget_usd | number | – | Approximate budget in USD. Maps to intent.budget_envelope. |
| business_context | string | – | Optional business requirements (expected volumes, cost targets, ROI constraints). If provided, the quote includes a business case. |
| callback_url | string | – | Optional HTTPS URL. When the quote is ready, a2a2p POSTs it as JSON to this URL. |
| constraints | string | – | Hard constraints: tolerances, certifications, materials to avoid, size/weight limits. Maps to intent.functional_requirements. |
| contact | string | – | Optional email or callback endpoint for quote delivery. |
| deadline | string | – | Required delivery date or timeframe. Maps to intent.timeline. |
| intent | object | – | Layer 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. |
| quantity | integer | – | Number of units needed. Maps to intent.quantity. |
| rejected_alternatives | array | – | Options already considered and ruled out. Prevents re-suggesting and builds the learning corpus. |
| requirement | string | – | Plain-language description of the physical need. Maps to intent.purpose. Include function, dimensions, materials, load/performance requirements, environment, and interfaces where known. |
| specification | object | – | Layer 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. |
Structured output declared, but exposes no named fields.
No examples provided.
request_provider_estimate ~536
Submit a requirement to the durably queued provider-estimate workflow without holding the connection open. Returns a quote_job_id in milliseconds; scheduled settlement runs outside request waitUntil. Scheduled provider contact is not active in this release and cannot be enabled by an environment flag, so admitted jobs currently terminate as degraded with a deterministic model estimate. Additive processes with an STL design file only, for now. The requirement is screened before storage; any future provider activation must also screen the exact file bytes before contact. 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. An explicit specification.assembly with two or more parts is rejected before job creation or provider contact and must be decomposed first. 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).
| Name | Type | Req | Description |
|---|---|---|---|
| budget_usd | number | – | Approximate budget in USD. Maps to intent.budget_envelope. |
| business_context | string | – | Optional business requirements (expected volumes, cost targets, ROI constraints). If provided, the quote includes a business case. |
| callback_url | string | – | Optional HTTPS URL. When the quote is ready, a2a2p POSTs it as JSON to this URL. |
| constraints | string | – | Hard constraints: tolerances, certifications, materials to avoid, size/weight limits. Maps to intent.functional_requirements. |
| contact | string | – | Optional email or callback endpoint for quote delivery. |
| deadline | string | – | Required delivery date or timeframe. Maps to intent.timeline. |
| intent | object | – | Layer 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. |
| quantity | integer | – | Number of units needed. Maps to intent.quantity. |
| rejected_alternatives | array | – | Options already considered and ruled out. Prevents re-suggesting and builds the learning corpus. |
| requirement | string | – | Plain-language description of the physical need. Maps to intent.purpose. Include function, dimensions, materials, load/performance requirements, environment, and interfaces where known. |
| specification | object | – | Layer 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. |
Structured output declared, but exposes no named fields.
No examples provided.
review_specification ~1,133
Current file inspection governs geometry readiness: expired, unreadable, mismatched, unsuccessfully parsed or uninspected attachments prevent quote-ready status. Reattach the original file and review again. Instant, synchronous engineering review of a physical requirement — nothing is submitted or stored. Purpose prose is preserved as intent but is not silently converted into loads, geometry, environments, interfaces, or acceptance criteria. The versioned engineering_evaluation receipt lists canonical paths and exact checks run, reports not_evaluated when none ran, and denies engineering-validation, certification, physical-truth, supplier-acceptance, and fabrication authority. Its finding-penalty score is not engineering soundness. Deterministic checks: material identification with handbook-typical properties (density, stiffness, yield, service temperature), explicit rectangular beam deflection, nominal bending stress, and nominal transverse shear 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. Every matched material reference identifies the current table as an uncited compilation and explicitly denies source verification, exact-state verification, design-allowable use, and simulation eligibility. A criterion that depends on that reference remains not_evaluated; its numerical comparison is reference_only, never a pass, failure, or blocker. Every supplied limit or strength basis is labeled requester_assertion, and every criterion verdict is explicitly conditional on declared inputs and the bounded model—not engineering validation or design certification. Returns findings ranked blocker/warning/info, two readiness scores, and a deterministic clarification_plan: compact next_fields, visible remainin…
| Name | Type | Req | Description |
|---|---|---|---|
| budget_usd | number | – | Approximate budget in USD. Maps to intent.budget_envelope. |
| business_context | string | – | Optional business requirements (expected volumes, cost targets, ROI constraints). If provided, the quote includes a business case. |
| callback_url | string | – | Optional HTTPS URL. When the quote is ready, a2a2p POSTs it as JSON to this URL. |
| constraints | string | – | Hard constraints: tolerances, certifications, materials to avoid, size/weight limits. Maps to intent.functional_requirements. |
| contact | string | – | Optional email or callback endpoint for quote delivery. |
| deadline | string | – | Required delivery date or timeframe. Maps to intent.timeline. |
| intent | object | – | Layer 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. |
| quantity | integer | – | Number of units needed. Maps to intent.quantity. |
| rejected_alternatives | array | – | Options already considered and ruled out. Prevents re-suggesting and builds the learning corpus. |
| requirement | string | – | Plain-language description of the physical need. Maps to intent.purpose. Include function, dimensions, materials, load/performance requirements, environment, and interfaces where known. |
| specification | object | – | Layer 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. |
| Name | Type | Req | Description |
|---|---|---|---|
| engineering_evaluation | object | yes | – |
No examples provided.
revise_requirement ~500
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.
| Name | Type | Req | Description |
|---|---|---|---|
| budget_usd | number | – | Approximate budget in USD. Maps to intent.budget_envelope. |
| business_context | string | – | Optional business requirements (expected volumes, cost targets, ROI constraints). If provided, the quote includes a business case. |
| callback_url | string | – | Optional HTTPS URL. When the quote is ready, a2a2p POSTs it as JSON to this URL. |
| constraints | string | – | Hard constraints: tolerances, certifications, materials to avoid, size/weight limits. Maps to intent.functional_requirements. |
| contact | string | – | Optional email or callback endpoint for quote delivery. |
| deadline | string | – | Required delivery date or timeframe. Maps to intent.timeline. |
| idempotency_key | string | – | Optional stable retry key (1–128 characters). Reusing it with the same patch returns the prior revision; reuse with a different patch is rejected. |
| intent | object | – | Layer 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. |
| quantity | integer | – | Number of units needed. Maps to intent.quantity. |
| rejected_alternatives | array | – | Options already considered and ruled out. Prevents re-suggesting and builds the learning corpus. |
| request_id | string | yes | The prior request_id to revise. |
| requirement | string | – | Plain-language description of the physical need. Maps to intent.purpose. Include function, dimensions, materials, load/performance requirements, environment, and interfaces where known. |
| revision_note | string | – | Optional short explanation of what changed. |
| specification | object | – | Layer 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. |
Structured output declared, but exposes no named fields.
No examples provided.
run_bounded_simulation_study ~127
Execute and validate a prepared simulation study through a2a2p's bounded closed-form rectangular-beam adapter. The adapter accepts only explicit load, span, section width/height, elastic modulus, exact support conditions, and supported output quantities; missing, extra, mismatched, or unsupported settings fail the affected experiment closed. It returns provenance-bound predictions and the existing hard-constraint/Pareto validation in one stateless call. It is not FEA, physical measurement, engineering validation, candidate selection, supplier contact, or fabrication authority.
| Name | Type | Req | Description |
|---|---|---|---|
| study | object | yes | – |
Structured output declared, but exposes no named fields.
No examples provided.
translate_materials_project_elasticity ~163
Translate one bounded, caller-supplied Materials Project elasticity API response projection into source-bound computed-crystal reference evidence. Optional retrieval metadata binds the raw upstream bytes separately and records that an allowlisted projection changed the representation. The adapter verifies response shape, one exact material ID, non-deprecated successful state, modulus bounds, Poisson consistency, source versions, and record license; derives an isotropic VRH Young's modulus deterministically; and preserves warnings. It performs no network call, does not verify Materials Project origin, and grants no engineering-product, simulation-input, supplier, order, payment, or fabrication authority.
| Name | Type | Req | Description |
|---|---|---|---|
| material_id | string | yes | – |
| refresh_after | string | yes | – |
| response | object | yes | – |
| retrieval | – | yes | – |
Structured output declared, but exposes no named fields.
No examples provided.
upload_design_file ~268
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.
| Name | Type | Req | Description |
|---|---|---|---|
| content_base64 | string | yes | File 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. |
| filename | string | yes | Original filename, used only for bounded inspection and the temporary record. |
| format | string | yes | Declared manufacturing format. File bytes must match. |
| purpose | string | yes | Must be manufacturing_design_file; general chat attachments use a separate intake. |
Structured output declared, but exposes no named fields.
No examples provided.
validate_actualization_plan ~174
Re-run the exact Domain Solutioning case/result validation, then validate one caller-supplied Actualization Plan. Checks typed entity references, evidence references, decision cycles, source binding, and false authority. Success returns evidence linkage plus exact review_specification calls for unblocked fabricated parts, copied only from each caller-authored function and specification_patch. Rejection can append a tamper-evident correction entry to caller-held history. Stores, edits, and executes nothing; calls no model, provider, or supplier; grants no physical authority.
| Name | Type | Req | Description |
|---|---|---|---|
| case | object | yes | – |
| correction_history | array | – | – |
| plan | object | yes | A portable, non-authorizing projection of one validated domain-solutioning candidate into named physical-work entities. It is not a generic graph ontology. |
| result | object | yes | – |
Structured output declared, but exposes no named fields.
No examples provided.
validate_domain_solutioning_result ~197
Validate a candidate result returned under the a2a2p domain-solutioning contract. The exact output of prepare_domain_solutioning_case is a prerequisite; malformed or non-prepared cases return a versioned machine-readable recovery workflow without weakening case-shape or digest checks. The operation verifies the source-case digest and provenance shape, rejects authority promotion and intent or design-file mutation, re-screens every candidate at quote stage, and runs the deterministic engineering review only after screening allows it. A successful response content-addresses the exact candidate result and returns a copy-ready, non-automatic source binding for prepare_simulation_study; every objective, constraint, physical input, setting, and validation plan remains caller-supplied. It stores nothing, runs no solver, calls no model or supplier, applies no patch, and grants no provider, quote, order, payment, or fabrication authority.
| Name | Type | Req | Description |
|---|---|---|---|
| case | – | yes | – |
| result | – | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| authority | object | yes | – |
| candidate_evaluations | array | yes | – |
| candidate_result_digest | string | yes | – |
| case_digest | string | yes | – |
| contract | – | yes | – |
| contract_version | – | yes | – |
| digest_semantics | string | yes | – |
| digest_verified | – | yes | – |
| dissent | array | yes | – |
| external_effects | object | yes | – |
| framework | object | yes | – |
| governance | object | yes | – |
| model_provenance | array | yes | – |
| next | object | yes | – |
| persistence | object | yes | – |
| recommendation | object | yes | – |
| simulation_handoff | object | yes | – |
| source_contract | – | yes | – |
| source_contract_version | – | yes | – |
No examples provided.
validate_material_property_evidence ~145
Validate and content-bind one caller-supplied material-property evidence envelope before attaching it to a compatible preliminary simulation. The receipt separates shape/content identity from source truth, material identity, uncertainty verification, design allowable, engineering validation, and physical authority. Computed-crystal evidence remains valid reference data but ineligible for the scalar engineering-product beam path. The operation calls no model or solver, stores nothing, contacts nobody, and creates no physical evidence, order, payment, or fabrication authority.
| Name | Type | Req | Description |
|---|---|---|---|
| evidence | object | yes | Caller-supplied exact material-property source snapshot. Binding proves content identity and envelope validity only; it does not verify the source claim or create a design allowable. |
Structured output declared, but exposes no named fields.
No examples provided.
validate_rectangular_beam_section_derivation ~104
Recompute a bounded rectangular beam-section derivation from the exact declared input and reject any mutation of the candidate, digests, assumptions, claim limits, external-effects boundary, authority boundary, or carried screening receipt. Success proves deterministic replay and content identity only; it does not make the candidate simulation-eligible, physically true, supplier-ready, approved, purchased, or fabrication-authorized.
| Name | Type | Req | Description |
|---|---|---|---|
| input | object | yes | – |
| receipt | object | yes | – |
Structured output declared, but exposes no named fields.
No examples provided.
validate_rectangular_beam_section_design_space ~112
Recompute a bounded finite rectangular-beam design space from the exact caller-held input and reject any mutation of an embedded derivation, Pareto disposition, digest, claim limit, external-effect boundary, authority boundary, or carried screening receipt. Success proves deterministic replay and content identity only. It never selects or promotes a candidate, estimates cost, calls an external system, or grants simulation, supplier, purchase, or fabrication eligibility.
| Name | Type | Req | Description |
|---|---|---|---|
| input | object | yes | – |
| receipt | object | yes | – |
Structured output declared, but exposes no named fields.
No examples provided.
validate_simulation_study_result ~99
Validate a prepared a2a2p simulation-study result. Masked timeout, non-convergence, boundary, unit, provenance, unsupported-model, and solver failures fail closed. Hard constraints gate eligibility; distinct objective values remain visible; Pareto dispositions are canonical and order-independent. It runs no solver, applies no candidate, stores nothing, and grants no physical authority.
| Name | Type | Req | Description |
|---|---|---|---|
| result | object | yes | – |
| study | object | yes | – |
Structured output declared, but exposes no named fields.
No examples provided.
What is the a2a2p — Agent-to-Agent-to-Physical MCP server?
a2a2p — Agent-to-Agent-to-Physical is an MCP server listed in the public MCP registry as com.a2a2p/a2a2p. Turn agent intent into physical parts: engineering review, measured geometry, calibrated pricing. This page covers its hosted endpoint (https://a2a2p.com/mcp).
Is the a2a2p — Agent-to-Agent-to-Physical MCP server safe to use?
a2a2p — Agent-to-Agent-to-Physical scores 75 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the a2a2p — Agent-to-Agent-to-Physical MCP server expose?
a2a2p — Agent-to-Agent-to-Physical exposes 27 tools: request_physical_solution, review_specification, prepare_domain_solutioning_case, validate_domain_solutioning_result, validate_actualization_plan, and 22 more. Their descriptions and schemas cost roughly 8,233 tokens of context every time the server is loaded.
Does the a2a2p — Agent-to-Agent-to-Physical MCP server require authentication?
No. We connected to a2a2p — Agent-to-Agent-to-Physical without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.
Is the a2a2p — Agent-to-Agent-to-Physical MCP server still maintained?
a2a2p — Agent-to-Agent-to-Physical is still listed as active in the MCP registry. We last reached this channel on 25 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.