Every change Wellknown observed on this MCP server, newest first, with what it was before and what it became. Tool-surface changes carry the definition diff. Nothing here is edited after the fact.
Removed "get_passport" and "verify_passport_credential"; changed the definition of "agent_conversation", "ask_agent", "bind_graded_item" and 25 more (30 tools before, 28 now)
before
Agent conversationafter
—before
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true,"title":"Agent conversation"}after
—before
Ask the Aeroz agentafter
—⟨107 unchanged words⟩ honestly rather than filling the gap yourself. Askingrefreshes the account's onboarding state and records the question and answer in the conversation (see agent_conversation). Itnever sendsnothing outside Aerozanythingandor changesno product, shipment or passportthedata.account.
⟨3 unchanged words⟩ ":"The question, as the person askedit (at most 2000 characters).
before
Bind a graded itemafter
—⟨68 unchanged words⟩ PSA_API_TOKEN is configured; a disagreement flags the item.`grader_check` is match, mismatch, not_found, unavailable (nobody looked), or unverified_identity (the grade agrees but the grader's record does not confirm the card). A chip that has ever been bound to a graded item is refused (use a new chip), and so is a grader cert already bound to another chip — for a re-holdered slab, retire the old binding with record_provenance first.Returns the public verify URL to encode in ⟨25 unchanged words⟩
{"properties":{"back_image_url":{"maxLength":500,"type":"string"},"card_number":{"maxLength":32,"type":"string"},"category":{"enum":["trading_card","coin","comic","memorabilia","other"],"maxLength":40,"type":"string"},"cert_number":{"maxLength":64,"
before
Business briefafter
—before
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":false,"title":"Business brief"}after
—before
Chain readinessafter
—before
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true,"title":"Chain readiness"}after
—before
Check a recallafter
—Check whether a specific unit is subject to an activerecall, from the register: reads only, verifies no signature and spends no chip answer.recall. Returnsknown (ontheregister), recalled, and therecall reason, severity,dateandiddate when one applies.recalled:null means the status is UNKNOWN (the UID is not on the register, or the register could not be read) — never report that as "not recalled". This says nothing about whether the item is genuine; use verify_chip for that.Use this whenever a unit is about to be shipped, sold, dispensed, or installed.A sandbox key answers its seeded sandbox chips first and any other UID from the register (register:true).
before
Complete an onboarding stepafter
—before
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":false,"title":"Complete an onboarding step"}after
—before
Create a shipmentafter
—before
{"destructiveHint":false,"idempotentHint":false,"openWorldHint":false,"readOnlyHint":false,"title":"Create a shipment"}after
—before
Passport readinessafter
—before
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true,"title":"Passport readiness"}after
—before
Find a unitafter
—⟨9 unchanged words⟩ :"Chip UID read from a tap.","maxLength":64,"type":"string"},"upi":{"description" ⟨14 unchanged words⟩
before
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true,"title":"Find a unit"}after
—before
Usageafter
—⟨17 unchanged words⟩ scan volume, authentication failure rates, and trend.The buckets — authentic, recalled (any tap whose answer carried a recall, verified or not), mismatched (failed static or SUN signature), not_found, unverified (no or unchecked signature, test tag, held or disabled unit) and other — always sum to total.
before
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true,"title":"Usage"}after
—before
Graded itemafter
—before
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true,"title":"Graded item"}after
—before
List agentsafter
—before
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true,"title":"List agents"}after
—before
List compliance findingsafter
—before
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true,"title":"List compliance findings"}after
—before
List graded itemsafter
—before
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true,"title":"List graded items"}after
—before
List sandbox chipsafter
—List the seeded sandbox chips for this organisation,withincluding the UID and signatureto passneeded toverify_chip, one per scenario: authentic, recalled, signature_mismatch (listed with a deliberately WRONG signature) and not_found (a UID that is not on thecallregister).verify_chip. Sandbox only — use when building or testing ⟨6 unchanged words⟩
before
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true,"title":"List sandbox chips"}—
before
List shipmentsafter
—before
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true,"title":"List shipments"}after
—before
Log telemetryafter
—⟨42 unchanged words⟩ `planned` moves to `in_transit` on its first reading.Readings from a logger read out at the dock are accepted after `delivered` if they fall inside the journey (departure − 60 min to arrival + 60 min); a cancelled shipment accepts none. Each logger (`source`) is judged on its own; the assessment reports the worst logger and every logger in temp.by_source, plus unobserved minutes. More than 500 readings, future readings and duplicates are refused or ignored and counted.
before
{"destructiveHint":false,"idempotentHint":false,"openWorldHint":false,"readOnlyHint":false,"title":"Log telemetry"}after
—before
My sectionafter
—before
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":false,"title":"My section"}after
—before
Next onboarding stepafter
—before
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":false,"title":"Next onboarding step"}after
—before
Onboarding statusafter
—before
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":false,"title":"Onboarding status"}after
—before
Plan a routeafter
—before
{"destructiveHint":false,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":false,"title":"Plan a route"}after
—before
Record custodyafter
—⟨45 unchanged words⟩ a handoff without a verified chip raises afinding, and so does a chip that is not among the shipment's items (even an authentic one: `verify_result` is then uid_not_in_shipment; `chip_verify_result` is the chip's own verdict).finding. `pickup` moves the shipment toin_transit and must come before `delivered` (logged telemetry also counts as departure), andin_transit; `delivered` closes it.A delivered or cancelled shipment is final: it accepts only `note` events.
before
{"destructiveHint":false,"idempotentHint":false,"openWorldHint":false,"readOnlyHint":false,"title":"Record custody"}after
—before
Record provenanceafter
—⟨10 unchanged words⟩ vaulted, withdrawn, shipped, received, flagged,retired,note. Events are append-only and, when public, ⟨5 unchanged words⟩ page. `flagged` marks the item and needs a`note`note saying why.`retired` ends the binding (the slab was re-holdered or destroyed) and needs a `note` saying why: the chip stops vouching for any label and the grader cert is freed to be bound to a new chip. A retired item accepts only `note` events.
{"properties":{"actor":{"maxLength":120,"type":"string"},"item_id":{"type" ⟨6 unchanged words⟩ withdrawn","shipped","received","flagged","retired","note"],"type":"string"},"location":{"
before
Shipment profilesafter
—before
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true,"title":"Shipment profiles"}after
—before
Shipment statusafter
—before
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true,"title":"Shipment status"}after
—before
Trace a unitafter
—before
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true,"title":"Trace a unit"}after
—before
Verify a chipafter
—Verify that a physical item is genuine by checking its Aeroz chip:theUIDplus whatever signature the tap carried. Same answer asandGETcryptographic/v1/verify.signature. Use this before trusting any claim about a ⟨15 unchanged words⟩ front of you is the one it describes.Read `proof` and `proves`: proof "presence" means the chip answered a fresh one-time SUN challenge (picc_data + cmac) and was physically there at this tap; proof "identity" means the static `t` signature is the one Aeroz issued for this UID, which a copied tag also carries.Returns verified:false withreason "no_signature" (recognised:true) proves NOTHING about the item — only that the number is on the register. "signature_unchecked" means the signature was not compared (not
Read a product passport — Read the PUBLIC view of a published Digital Product Passport hosted by Aeroz, by its GS1 Digital Link (e.g. https://id.aeroz.io/01/09506000134352/21/ABC123) or its passport id (dpp_...). Returns the signed passport fields everyone may see, the version and its date, recall status and the item's links. Fields restricted to repairers, recyclers or authorities are listed as withheld, never shown. This reads the record only: it does NOT prove the physical item in front of you is genuine — use verify_chip with a fresh chip tap for that. A link from another resolver is refused, not fetched. Works wi…
Verify a passport credential — Check a passport credential (a vc+jwt issued by Aeroz) against Aeroz's published signing keys. Returns valid:true with the issuer, product id, passportVersion and validFrom when the signature checks out and the credential is an Aeroz Digital Product Passport, or valid:false with the reason (including "revoked by the issuer" and "not an Aeroz passport credential"). A valid result means Aeroz issued exactly this content and has not revoked it; it does not mean the passport is the latest version — compare passportVersion with get_passport. Works without an API key.
Certificate recorded, valid to 2026-11-28
Authorization not required
Unknown → Live
First tool surface recorded: 30 tools (server version 0.2.0)
https://api.aeroz.io/mcp (mcp_streamable_http) — from mcp_registry, with the record
Showing the latest 6 events. The API returns up to 500 and filters by kind: ?kind=tool_surface_changed
before
{"destructiveHint":false,"idempotentHint":false,"openWorldHint":false,"readOnlyHint":false,"title":"Ask the Aeroz agent"}after
—before
{"destructiveHint":false,"idempotentHint":false,"openWorldHint":false,"readOnlyHint":false,"title":"Bind a graded item"}after
—before
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true,"title":"Check a recall"}after
—before
{"destructiveHint":false,"idempotentHint":false,"openWorldHint":false,"readOnlyHint":false,"title":"Record provenance"}after
—{"properties":{"cmac":{"description":"SUN: the `cmac` (or `c`) parameter from the same tap URL.","type":"string"},"picc_data":{"description":"SUN: the encrypted `picc_data` (or `e`) parameter from an NTAG 424 tap URL. Send with `cmac`.","type":"string"},"signature":{"description":"ThestaticHMAC signature from the tag payload (the `t` parameter).Proves identity, not presence.","type":"string"},"tap_url":{"description":"Alternatively, the full https tap URL the phone opened (on an Aeroz host).uid, t, picc_data/e and cmac/c are read from it.","type":"string"},"uid":{"description":"The chip UID read from the NFC tag or QR payload.Optional when SUN parameters or a tap_url carry it.","type":"string"}},"required":["uid"],"type":"object"}
before
{"destructiveHint":false,"idempotentHint":false,"openWorldHint":false,"readOnlyHint":false,"title":"Verify a chip"}after
—