# Docs — the A2A Peptides door (v1.0)

Ontology: substance × presentation × jurisdiction × pathway × actor. Jurisdictions: US · CA · MX · EU (member as parameter) · GB. Actors: patient · prescriber · pharmacy/503B · wholesaler · cosmetic brand · retailer · agent (credential required).

## Tools (20)

### Gate — called first; returns allow, deny or require_rx with a reason code
- resolve_jurisdiction: Resolve the ship-to and the actor's jurisdiction to one of US, CA, MX, EU (member as parameter) or GB.
- resolve_actor: Resolve the actor class: patient, prescriber, pharmacy or 503B, wholesaler, cosmetic brand, retailer, or agent (an agent must present a credential).
- gate_transaction: Return allow, deny or require_rx for a substance or presentation, actor class, channel and ship-to, with the reason code and the rule-set version.

### Regulatory truth — what the registers say, with the source page on every field
- get_substance_record: One molecule: identifiers, sourced aliases, class, pathway rows per jurisdiction, enforcement events, safety references.
- get_pathway_status: The status of a substance on one pathway in one jurisdiction, with effective date, rule-set version and source page.
- get_compounding_eligibility: Whether a substance may be lawfully compounded in a jurisdiction, and under which list or standard.
- get_label_and_indication: Label and indication for a licensed presentation only.
- get_enforcement_watch: Dated enforcement events: warning letters, import alerts, shortage-list changes, committee votes, seizures, state notices.

### Cleared catalogue — only what passed the gate
- search_cleared_items: Search presentations that passed the gate for a jurisdiction, pathway and actor class.
- get_item: One authorised presentation: brand, strength, form, route, device, pack, holder, status, offers.
- compare_presentations: Compare two or more authorised presentations side by side.

### Licensed supply — licensed parties only; tenant is a parameter, not a tool
- find_licensed_supplier: Licensed parties for a presentation in a jurisdiction; tenant as a parameter.
- get_availability: Availability of a presentation from a licensed party, after the gate.
- get_price: Price basis (list, contract or reimbursement) from a licensed party, after the gate.

### Quality — lawful lots and serialisation
- get_lot_coa: Certificate of analysis for a lawful lot where the pathway permits.
- verify_serialization: Verify a serialised pack against the serialisation regime of the jurisdiction.

### Commerce — an order intent after the gate; the handoff to the counterparty agent
- create_order_intent: Create an order intent for a cleared item; the intent carries the reason code and the rule-set version, and settles by x402.
- a2a_handoff: Hand the order intent to the licensed counterparty's agent over Agent-to-Agent (A2A).

### Operations — safety label and the audit line
- get_safety_label: Safety label pointers for licensed products.
- log_audit: Write the audit line for a gate decision or an order intent.

## Gate order

resolve_jurisdiction → resolve_actor → gate_transaction. No price/availability/order/handoff before ALLOW or REQUIRE_RX. reason_code + rule_set_version on every receipt.

Reason codes: ALLOW · REQUIRE_RX · DENY_UNLICENSED_AGENT · DENY_ACTOR_CLASS · DENY_PATHWAY_NOT_CLEARED · DENY_JURISDICTION · DENY_STATE_OVERLAY · DENY_RUO · DENY_CONTROLLED · DENY_NO_SERIALIZATION · DENY_EXPIRED_LICENCE · DENY_CROSS_BORDER

Rule: {substance_or_class, pathway, actor_class, channel (B2C|B2B|A2A), ship_to, result, reason_code, source_url, effective_date}. Rule set: {jurisdiction, version, effective_date, supersedes, rules[], source_urls[]}.

## Record primitive

{value, source_url, read_by, state}. Substance record · presentation record · supplier/tenant record. Counts from records at request time, never typed.

Status vocabulary: approved_drug · 503A_listed · 503A_recommended_pending · 503B_listed · shortage_copy_ok · compounding_provincial_ok · magistral_ok · specials_only · cosmetic_ok · novel_food_ok · nhp_licensed · supplement_ok · prohibited · ruo_not_cleared · controlled_substance

## On the wire

Endpoint https://mcp.a2a-peptides.ai/mcp, streamable-HTTP, stateless, server name a2a-peptides, open schemas, no oneOf. Signing ES256 kid a2ap-2026-09; keyring https://a2a-peptides.ai/.well-known/jwks.json. x402 metering on registry-truth tools; create_order_intent settles by x402.
