protogrid

Search / io.aeroz/aeroz

Aeroz

R0· no sign-in

Prove a physical item is genuine (NFC chip); read its EU Digital Product Passport, recalls, custody.

v0.2.0 · active · website · descriptor JSON · versions

An agent can connect right now, no human step.Remote endpoint, no authentication, reachable on the last probe.
Quality73new
Trust83of 100
Uptime, 30 days100%
Latency p50360 ms

Connect

8 clients · secrets stay placeholders
{
  "mcpServers": {
    "aeroz": {
      "type": "http",
      "url": "https://api.aeroz.io/mcp",
      "headers": {
        "Authorization": "Bearer ${aeroz_api_key}"
      }
    }
  }
}
claude mcp add --transport http aeroz https://api.aeroz.io/mcp --header "Authorization: Bearer ${aeroz_api_key}"
[mcp_servers.aeroz]
url = "https://api.aeroz.io/mcp"
bearer_token_env_var = "aeroz_api_key"
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "aeroz": {
      "type": "remote",
      "url": "https://api.aeroz.io/mcp",
      "enabled": true,
      "headers": {
        "Authorization": "Bearer {env:aeroz_api_key}"
      }
    }
  }
}
{
  "mcpServers": {
    "aeroz": {
      "type": "http",
      "url": "https://api.aeroz.io/mcp",
      "headers": {
        "Authorization": "Bearer ${aeroz_api_key}"
      }
    }
  },
  "deeplink": "cursor://anysphere.cursor-deeplink/mcp/install?name=aeroz&config=eyJ0eXBlIjoiaHR0cCIsInVybCI6Imh0dHBzOi8vYXBpLmFlcm96LmlvL21jcCIsImhlYWRlcnMiOnsiQXV0aG9yaXphdGlvbiI6IkJlYXJlciAke2Flcm96X2FwaV9rZXl9In19"
}
{
  "servers": {
    "aeroz": {
      "type": "http",
      "url": "https://api.aeroz.io/mcp",
      "headers": {
        "Authorization": "Bearer ${aeroz_api_key}"
      }
    }
  }
}
{
  "mcpServers": {
    "aeroz": {
      "httpUrl": "https://api.aeroz.io/mcp",
      "headers": {
        "Authorization": "Bearer ${aeroz_api_key}"
      }
    }
  }
}
extensions:
  "aeroz":
    enabled: true
    name: "aeroz"
    type: streamable_http
    uri: "https://api.aeroz.io/mcp"
    headers:
      "Authorization": "Bearer ${aeroz_api_key}"
    timeout: 300

Placeholders to fill from your own secret store: ${aeroz_api_key}. The registry never accepts secret values.

Quality 73 / 100new

protocol75 · weight 25
  • warn
    protocol.modernnewest supported version is 2025-06-18; 2026-07-28 not supported, older versions are deprecated until 2027-07-28
  • n/a
    protocol.statelessonly applies to 2026-07-28 servers
  • pass
    protocol.transportstreamable HTTP
  • n/a
    protocol.list_ttlonly applies to 2026-07-28 servers
authorizationn/a · weight 15
  • n/a
    auth.prm, auth.as_metadata, auth.cimdno remote uses OAuth
  • n/a
    auth.secret_in_urlno templated URL
tool hygiene71 · weight 30
  • pass
    tools.descriptionsevery tool has a description
  • pass
    tools.description_lengthdescriptions are concise
  • pass
    tools.schemasevery tool has an object input schema
  • fail
    tools.annotationsno tool declares readOnlyHint or destructiveHint, so clients cannot tell safe calls from risky ones
  • fail
    tools.directory_hintsno tool declares all four of readOnlyHint, destructiveHint, idempotentHint and openWorldHint; missing: list_sandbox_chips (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); list_findings (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); onboarding_next_step (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); …
  • pass
    tools.token_costabout 4,207 tokens to load every tool
  • pass
    tools.api_dumptools are not a one-to-one API dump
stabilityn/a · weight 15
  • n/a
    stability.changes, stability.rug_pulltool history recorded for 4 of the 7 days needed
dependenciesn/a · weight 15
  • n/a
    deps.known_vulns, deps.mcp_sdk_version, deps.resolvableno npm or PyPI package

28 tools, about 4,207 tokens to load them all · tool set 4d801cab26f1 · tools last changed 2026-10-17 · checked 2026-10-19 10:52 UTC

Tool changes

  • verify_passport_credentialremoved

    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.

  • get_passportremoved

    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 without an API key. Passports of sandbox organisations are not public in production.

  • chain_readinesschangedtitle, annotations
  • find_unitchangedtitle, input schema, annotations
  • trace_unitchangedtitle, annotations
  • my_sectionchangedtitle, annotations
  • list_graded_itemschangedtitle, annotations
  • record_provenancechangedtitle, description, input schema, annotations
    before

    Append an event to a graded item's chain: sold, consigned, vaulted, withdrawn, shipped, received, flagged, retired, note. Events are append-only and, when public, appear on the buyer's tap page. `flagged` marks the item and needs a `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.

    after · 59% of words in common

    Append an event to a graded item's chain: sold, consigned, vaulted, withdrawn, shipped, received, flagged, note. Events are append-only and, when public, appear on the buyer's tap page. `flagged` marks the item and needs a note saying why.

  • graded_itemchangedtitle, annotations
  • bind_graded_itemchangedtitle, description, input schema, annotations
    before

    Bind an Aeroz chip to a graded collectible slab (PSA, CGC, SGC, BGS, TAG). The chip UID, grader, cert number, grade and card identity are signed together, so the chip vouches for exactly this label: a label moved to another holder, or a cert reprinted on a copy, shows as "binding broken" on a buyer's tap. For PSA, the cert is cross-checked against PSA's own record when 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 the slab's QR. This does NOT grade the card and does not claim the card was unaltered before sealing — never present it as either.

    after · 74% of words in common

    Bind an Aeroz chip to a graded collectible slab (PSA, CGC, SGC, BGS, TAG). The chip UID, grader, cert number, grade and card identity are signed together, so the chip vouches for exactly this label: a label moved to another holder, or a cert reprinted on a copy, shows as "binding broken" on a buyer's tap. For PSA, the cert is cross-checked against PSA's own record when PSA_API_TOKEN is configured; a disagreement flags the item. Returns the public verify URL to encode in the slab's QR. This does NOT grade the card and does not claim the card was unaltered before sealing — never present it as either.

Showing the latest 10. Full history: list_changes · trend: quality JSON.

Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed. How it is computed.

Trust 83 / 100

no-repository
provenance55
liveness100
freshness100
hygiene80

+dns-namespace +website +reachable +uptime-100% +updated-4d-ago -no-repository

Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed. How it is computed.

Endpoints

remoteauthreachableuptime 30dp50protocollast ok
https://api.aeroz.io/mcp streamable-httpnoneyes100%360 ms2025-06-182026-10-19

Tools (28)

agent_conversationThe recent conversation between this organisation and its Aeroz agent, across the dashboard, MCP and email. Use it to see what has already been asked and answered before asking again.
ask_agentAsk this organisation's dedicated Aeroz agent a question in plain language and get a grounded answer. Use it for anything a human at the business would ask their account manager: "what do we still need to do", "when is our deadline", "what is Aeroz waiting on", "what is not being monitored", "how do we go live". The answer carries `grounded`: `computed` means it was read directly from the account's own data; `model` means a model composed it from that data and every date and figure was checked against it; `declined` means the agent does not hold what the question needs and said so — relay that honestly rather than filling the gap yourself. Asking never sends anything or changes the account.
bind_graded_itemBind an Aeroz chip to a graded collectible slab (PSA, CGC, SGC, BGS, TAG). The chip UID, grader, cert number, grade and card identity are signed together, so the chip vouches for exactly this label: a label moved to another holder, or a cert reprinted on a copy, shows as "binding broken" on a buyer's tap. For PSA, the cert is cross-checked against PSA's own record when PSA_API_TOKEN is configured; a disagreement flags the item. Returns the public verify URL to encode in the slab's QR. This does NOT grade the card and does not claim the card was unaltered before sealing — never present it as either.
business_briefThe full picture of this business as Aeroz holds it: declared product categories with their mandate dates and whether each date is fixed or provisional, onboarding state, open findings, and — importantly — which recall sources are NOT being monitored. Use this to orient before answering anything about the account. Never present an empty findings list as evidence of safety without also reporting coverage_gaps.
chain_readinessSweep this organisation's units and report which regulatory checks are failing across the portfolio, how many units each affects, and examples to open. This is the tool for "which of my units have a broken custody chain", "what is failing right now", "what will not pass on 18 February" and "how are we doing overall". Counts are exact for the units swept; the response says when it hit its cap rather than implying it saw everything. An empty findings list means nothing failed among the units swept — it does not mean the organisation is compliant.
check_recallCheck whether a specific unit is subject to an active recall. Returns the recall reason, severity and date when one applies. Use this whenever a unit is about to be shipped, sold, dispensed, or installed.
complete_onboarding_stepMark a manual onboarding step complete on behalf of this organisation. Only steps the customer owns and that Aeroz cannot verify automatically can be set this way; an automatically verified step will refuse, because a self-report that contradicts the platform data is worse than no report. Pass the step key from onboarding_status.
create_shipmentRegister a shipment of physical items under a sensitivity profile so Aeroz can watch it in transit. Profiles: cold_chain (2–8 °C, mean kinetic temperature), frozen (≤ −15 °C), ambient_crt (15–30 °C, MKT ≤ 25), fragile (shock, tilt), high_value (light = container opened, dwell, chip-verified custody at every handoff), standard (movement only). Origin and destination need decimal-degree coordinates. Items may carry a chip uid, GTIN, lot and serial. Returns the shipment id and the thresholds that will judge it.
dpp_readinessAssess how ready a product category is for an EU Digital Product Passport, against the delegated act that applies to it. Returns the required data fields, which are present, and which are missing. IMPORTANT: this is a readiness signal, not a legal compliance determination — never report its output as confirmation that a product is compliant.
find_unitResolve anything a scanner or a person can produce — a chip UID, a GS1 Digital Link URI, or a GTIN plus serial — to a unit, and return its history and verdicts. This is the tool for "what is this thing in front of me". An identifier that resolves to nothing is NOT the same as one that fails verification: the first means we have never seen it, the second means we have and it did not check out. Report them differently.
get_usageReturn this organisation's Aeroz verification volume and outcome breakdown over a recent period. Use for reporting on scan volume, authentication failure rates, and trend.
graded_itemA graded item as Aeroz holds it: grader, cert, grade, identity, whether the grader's own record matched, how many times it has been verified by tap, and its full provenance chain (sealed, sold, consigned, vaulted, shipped, verified…). Use for "is this slab the one that was sealed", "where has it been", "has anyone tried to pass off a copy". Report what this proves AND what it does not.
list_agentsList the Aeroz compliance agents available to this organisation and which are currently enabled. Use this to explain monitoring coverage or to find an agent worth enabling.
list_findingsList findings raised by the Aeroz compliance agents watching this organisation — recall hits, DPP data gaps, regulatory changes, dwell anomalies, and clone detections. Use this to answer "what needs my attention".
list_graded_itemsList this organisation's chip-bound graded items, optionally by status (sealed | active | flagged | retired).
list_sandbox_chipsList the seeded sandbox chips for this organisation, including the UID and signature needed to call verify_chip. Sandbox only — use when building or testing an integration before physical chips ship.
list_shipmentsList this organisation's shipments, optionally by status (planned | in_transit | delivered | exception | cancelled).
log_telemetryRecord sensor readings for a shipment — position, temperature, humidity, shock, tilt, light, battery — up to 500 per call. Aeroz judges the whole recent stream against the lane's thresholds immediately and returns the assessment and any findings raised. A shipment in `planned` moves to `in_transit` on its first reading.
my_sectionReturn everything the Aeroz agent has built for this organisation: the regulatory calendar with only ADOPTED dates, the passport scaffold per product showing exactly which fields are missing, the identifier audit, the GS1 route, monitoring coverage, integration readiness, and the pre-filled audit scope. Each block carries a confidence — `computed` is derived from this account's own data and needs no review; `sourced` and `drafted` came from outside the platform or involved judgement and are cited. Use this to answer almost any question about what this business needs to do. Report a block's confidence when you rely on it, and never present a `drafted` block as settled.
onboarding_next_stepReturn only the single most important next action and how to complete it. Use when the user asks what to do next and does not want the whole checklist.
onboarding_statusReport where this organisation stands in Aeroz onboarding: current stage, percentage complete, health, the single next action, and every open step with which side owns it. Use this to answer "what do we still need to do", "why are we not live yet", or "what is Aeroz waiting on". Steps marked side="aeroz" are Aeroz's obligation, not the customer's — say so plainly rather than presenting them as homework.
plan_routeCompute and rank routes for a shipment at a departure time, scored for its sensitivity profile: traffic-aware duration and delay, ambient heat or cold along the way against the lane's ceiling, and rain, snow or gusts. Lower score is better and only comparable within one computation. The best route is marked chosen. The response says plainly when routing or weather data was unavailable and the ranking is time-only — relay that; a straight-line estimate is not a traffic-aware route.
record_custodyRecord a custody event on a shipment: pickup, checkpoint, handoff, delivered, exception or note. Pass the chip `uid` (and `signature`) read at the handoff and Aeroz verifies it on the spot, turning a signature on a form into proof of presence. On a high_value lane a handoff without a verified chip raises a finding. `pickup` moves the shipment to in_transit; `delivered` closes it.
record_provenanceAppend an event to a graded item's chain: sold, consigned, vaulted, withdrawn, shipped, received, flagged, note. Events are append-only and, when public, appear on the buyer's tap page. `flagged` marks the item and needs a note saying why.
shipment_profilesThe sensitivity profiles Aeroz can judge a shipment against and the exact thresholds each applies, plus whether traffic and weather providers are configured for this deployment.
shipment_statusEverything Aeroz holds about one shipment: profile and thresholds, status, items, custody events with their chip verification, the telemetry assessment (min/max/mean temperature, mean kinetic temperature, minutes out of range, peak shock, whether an excursion is open), the ranked routes, and open findings. Use for "where is it", "is the cold chain intact", "was it ever opened". An open excursion on a cold-chain lane means the load must be quarantined on arrival pending QA — say so.
trace_unitThe whole history of one serialized unit: every custody hop from commissioning to dispensing, whether the append-only log has been tampered with, and what each regulation makes of it. Use this to answer "where has this been", "who handled it", "is its record trustworthy" and "does this unit pass DSCSA / the EU passport rules". Every failing check cites the clause it enforces — quote the clause, not just the verdict. IMPORTANT: verdicts are readiness signals, never a legal compliance determination, and the response says so. Never report one as confirmation that a product is compliant.
verify_chipVerify that a physical item is genuine by checking its Aeroz chip UID and cryptographic signature. Use this before trusting any claim about a physical unit — a database record proves a record exists, not that the object in front of you is the one it describes. Returns verified:false with a reason and NO product data when the signature does not match.

Schemas: list_tools.

Similar MCP servers

Official server.json
{
  "name": "io.aeroz/aeroz",
  "title": "Aeroz",
  "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
  "remotes": [
    {
      "url": "https://api.aeroz.io/mcp",
      "type": "streamable-http",
      "headers": [
        {
          "name": "Authorization",
          "value": "Bearer {aeroz_api_key}",
          "isSecret": true,
          "variables": {
            "aeroz_api_key": {
              "isSecret": true,
              "description": "Aeroz API key, starts with ak_. Free sandbox key via POST https://api.aeroz.io/v1/signup. Leave empty to use only the keyless tools.",
              "placeholder": "ak_..."
            }
          },
          "description": "Aeroz API key (free sandbox key via POST https://api.aeroz.io/v1/signup). Not needed for get_passport and verify_passport_credential."
        }
      ]
    }
  ],
  "version": "0.2.0",
  "websiteUrl": "https://aeroz.io",
  "description": "Prove a physical item is genuine (NFC chip); read its EU Digital Product Passport, recalls, custody."
}