Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

AstraNL

REMOTE · ASTRANL.COM · 2 COMPONENTS · SCANNED AUG 17

Signed physical-reality checks for agents + cross-company coordination. No custody.

+11 this week 69 Trust /100

Recent critical change

Authorization (12 Aug 2026). See the changelog before you install this server.

Trust breakdown (6 categories)

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 →

Endpoint Security57
Transport & Reachability100
Schema Quality & AI Usability72
  • AI-judged instruction clarity (good).Pass
  • Context-footprint check failed: tool/resource definitions use about 7212 tokens (~120/item across 60 items; 60 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management62
  • Stability check failed: schema churn in the 22 days we've observed: 0 tool removals, 2 breaking changes, 0 auth/transport breaks, 50 additions. See how to fix → Fail
Tool Coverage77
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 31% of tool parameters carry a description.Partial
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Install

Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.

remote · astranl.com

# add to Claude Code
claude mcp add --transport http com-astranl-mcp https://astranl.com/mcp/streamable
# ~/.codex/config.toml
[mcp_servers.com-astranl-mcp]
url = "https://astranl.com/mcp/streamable"
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "com-astranl-mcp": {
      "type": "remote",
      "url": "https://astranl.com/mcp/streamable",
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add com-astranl-mcp --url https://astranl.com/mcp/streamable --transport streamable-http
# ~/.hermes/config.yaml
mcp_servers:
  com-astranl-mcp:
    url: "https://astranl.com/mcp/streamable"
// mcp.json
{
  "mcpServers": {
    "com-astranl-mcp": {
      "type": "http",
      "url": "https://astranl.com/mcp/streamable"
    }
  }
}

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

Changelog

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.

  • 16 Aug 26 +1
    • New tool “tsub_worker” functional
  • 15 Aug 26 0
    • Tool coverage: 40% → 32% functional
    • Schema quality: 5940 → 7081 functional
    • Schema quality: excellent → good functional
    • New tool “aweri_watch” functional
    • New tool “hall_submit_artifact” functional
    • New tool “hall_send_message” functional
    • New tool “hall_send_envelope” functional
    • New tool “hall_read_messages” functional
    • New tool “hall_propose_match” functional
    • New tool “hall_negotiate” functional
    • New tool “hall_close_session” functional
    • New tool “hall_capabilities” functional
    • New tool “hall_browse” functional
    • New tool “hall_announce” functional
    • New tool “hall_accept_match” functional
    • New tool “aweri_watch_status” functional
    • New tool “aweri_reality” functional
  • 13 Aug 26 +1
    • New tool “verify_counterparty” functional
    • New tool “coordination_case_proof” functional
  • 12 Aug 26 +9
    • Authorization: unverified → fail critical
    • Stability: unverified → fail security
    • A breaking change shipped without a version bump: still 1.27.0 security
    • New tool “cancel_task”, which the server declares destructive security
    • Tool “compose_parts_basket” rewrote its description, which is the text the model reads security
    • Tool “create_task” rewrote its description, which is the text the model reads security
    • Tool “report_order_exception” rewrote its description, which is the text the model reads security
    • Tool “search_robots” rewrote its description, which is the text the model reads security
    • Tool coverage: 66% → 41% functional
    • “create_task” added a required parameter “contact_email”, so existing callers break functional
    • “report_order_exception” made “task_id” required, so existing callers break functional
    • Schema quality: 169 → 132 functional
    • The server no longer declares the “experimental” capability functional
    • Schema quality: good → excellent functional
    • MCP protocol: Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28. functional
    • New tool “action_status” functional
    • New tool “analyze_listing” functional
    • New tool “attest_commitment” functional
    • New tool “aweri_cert_verify” functional
    • New tool “aweri_invite_kit” functional
    • New tool “car_search” functional
    • New tool “compose_purchase_basket” functional
    • New tool “coordination_case_status” functional
    • New tool “coordination_offer_capacity” functional
    • New tool “coordination_open_case” functional
    • New tool “coordination_open_work” functional
    • New tool “coordination_payment_options” functional
    • New tool “coordination_prove_payout_address” functional
    • New tool “coordination_settle_onchain” functional
    • New tool “coordination_vote_payment_rail” functional
    • New tool “create_agent_mandate” functional
    • New tool “edit_task” functional
    • New tool “get_execution_packet” functional
    • New tool “issue_attestation” functional
    • New tool “kenteken_check” functional
    • New tool “machinery_2027_check” functional
    • New tool “mandate” functional
    • New tool “ownership_report” functional
    • New tool “report_shortage” functional
    • New tool “robot_price_benchmark” functional
    • New tool “select_tools” functional
    • New tool “shared_context” functional
    • New tool “subscribe_task_webhook” functional
    • New tool “supply_gaps” functional
    • New tool “technics_coordination” functional
    • New tool “vehicle_moment_check” functional
    • New tool “verify_attestation” functional
    • “compose_parts_basket” added an optional parameter “task_id” cosmetic
    • “report_order_exception” reworded the description of “task_id” cosmetic
  • 26 Jul 26 58

    First indexed and scored.

Diagnostics

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 17 Aug 2026 · Probed https://astranl.com/mcp/streamable

TLS valid

Negotiated TLS 1.3 with TLS_AES_256_GCM_SHA384 .

Subject Issuer Valid from Valid until Key Signature Serial
CN=astranl.com CN=YE2,O=Let's Encrypt,C=US 13 Jul 2026 11 Oct 2026 ECDSA 256 ECDSA-SHA384 5b5cc89e512fd59244b143e19d6193fcd9c
SANs: astranl.com, www.astranl.com
CN=YE2,O=Let's Encrypt,C=US (CA) CN=Root YE,O=ISRG,C=US 3 Sept 2025 2 Sept 2028 ECDSA 384 ECDSA-SHA384 4df3b15dd6c0784c507cd37b58e6f115
CN=Root YE,O=ISRG,C=US (CA) CN=ISRG Root X2,O=Internet Security Research Group,C=US 13 May 2026 2 Sept 2032 ECDSA 384 ECDSA-SHA384 872165fc34b6e5fba8add5b3705fb53a
CN=ISRG Root X2,O=Internet Security Research Group,C=US (CA) CN=ISRG Root X1,O=Internet Security Research Group,C=US 13 May 2026 2 Sept 2032 ECDSA 384 SHA256-RSA 6c8f1dc727c7117f7baf853ac980f9cd
DNSSEC insecure

Validation of astranl.com. Not signed

Zone DS Keys Algorithms Outcome
. trust_anchor 20326, 38696 8, 8 Verified
com. present 19718 13 Verified
astranl.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
Transports 2 probes
Transport URL Outcome Status Location
streamable-http https://astranl.com/mcp/streamable Verified 200
http (plaintext) http://astranl.com/mcp/streamable HTTPS enforced 301 https://astranl.com/mcp/streamable
MCP tools · 60 exposed · ~7,212 tokens

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.

Tool Tokens
action_status ~82

Idempotency gate: ask whether a specific action was already completed, is running now, failed before, or was abandoned half-done. Same logical action always hashes to the same answer for every caller, so two agents cannot duplicate work.

NameTypeReqDescription
kindstringyesaction kind, e.g. publish_page
targetstringoptional target id/path

No output schema declared.

No examples provided.

analyze_listing ~95

Read a public Dutch car-listing URL (e.g. Marktplaats) and return extracted facts (price, km, year, kenteken if published), seller claims (APK date, dealer-maintained), a live cohort price verdict, and an RDW cross-check of the claims when a kenteken is present. Best-effort parsing: missing fields are null, never guessed. Read-only.

NameTypeReqDescription
urlstringyes

No output schema declared.

No examples provided.

attest_commitment ~124

Attest an AI-mediated agreement: who committed to what, under which conditions. AstraNL signs it (sha256 chain + HMAC) and stores it in an append-only ledger; anyone can verify via verify_attestation or GET /api/commitments/<id>/verify. This certifies the FACT of the agreement only - it is NOT a guarantee of performance and NO funds are held.

NameTypeReqDescription
conditionsarray
contextobject
created_bystring
obligationsarrayyes
partiesarrayyes

No output schema declared.

No examples provided.

aweri_cert_verify ~129

Verify an AWERI certificate of a counterparty (agent, platform or business) in one call, no key. Returns status, org, signature level and issue date. AWERI is the AstraNL coordination standard: mandate-bound agents, proof agreed before work, no acting on resources the principal does not own. Grounded in a verified 2026-08 incident where an AI agent cancelled a stranger's gym reservation because neither its mandate nor the API said who may act on whose resource. Spec: https://astranl.com/api/aweri

NameTypeReqDescription
cert_idstringyes

No output schema declared.

No examples provided.

aweri_invite_kit ~80

Get a ready-to-send AWERI invitation for an ACTIVE certificate holder. The standard spreads through its members: every invitation carries the inviter's cert_id, so the chain of trust is publicly verifiable. Certification is free; verification is one public GET with no key.

NameTypeReqDescription
cert_idstringyes
langstring

No output schema declared.

No examples provided.

aweri_reality ~117

AWERI Reality Gate - the one thing only AstraNL offers: a signed live map of physical truth reachable right now (companies KvK/CH/Sirene, vehicles RDW/DVSA, 860k+ SKU materials, property, energy, payments) + the Agent Mirror: verified truth about YOUR agent (evidence, honest zeros) when api_key given. Record unmet needs as measured demand - coverage opens when intent crosses the threshold.

NameTypeReqDescription
api_keystringoptional ask_... key to receive your mirror

No output schema declared.

No examples provided.

aweri_watch ~132

Coordination with TIME: tell the protocol what you need and by when - it watches signed reality (860k SKU live prices, EPEX NL energy) on its own timer and marks the moment to act. kinds: price_below (query+threshold_eur), energy_below (threshold_eur per kWh), report_best_by (query+deadline YYYY-MM-DD). Check with watch_id via aweri_watch_status.

NameTypeReqDescription
api_keystring
deadlinestring
kindstringyes
querystringyes
threshold_eurnumber

No output schema declared.

No examples provided.

aweri_watch_status ~42

Check an AWERI Watch by id: status watching|met|expired, last/best observed values, action hint.

NameTypeReqDescription
watch_idintegeryes

No output schema declared.

No examples provided.

cancel_task ~73

Withdraw a task you own, before work starts, using the client_key from create_task. Cancellable from created/draft/open/offers_received and similar pre-work statuses. Never deletes anything - the task becomes 'cancelled'.

NameTypeReqDescription
keystringyesclient_key from create_task
task_idintegeryes

No output schema declared.

No examples provided.

car_search ~70

Search real used-car and van listings in the Netherlands by free-text query (make/model/budget/km/year). Returns ranked matches with prices. Read-only, no personal data.

NameTypeReqDescription
querystringyesFree-text car query, e.g. 'VW Transporter dubbele cabine tot 25000 automaat'.

No output schema declared.

No examples provided.

check_basket_order ~53

Check status of a basket order placed via place_basket_order. Pass the order_id (SHOP-XXXX). Returns order_status, task_id/task_status. No PII.

NameTypeReqDescription
order_idstringyes

No output schema declared.

No examples provided.

check_task ~172

Look up the current status of a previously created AstraNL task by its numeric task_id. Use when: a user asks 'what happened with task #N', after create_task to confirm matching, or when polling for status changes. DO NOT use for: enumerating all tasks (no listing endpoint is exposed via MCP); checking other users' tasks (the API only returns tasks owned by the calling agent). Side effects: none, read-only. Returns JSON with task fields: id, title, category, status ('open' | 'matched' | 'in_progress' | 'completed' | 'cancelled' | 'disputed'), provider info if matched, created_at, updated_at. Idempotent.

NameTypeReqDescription
task_idintegeryesNumeric task identifier returned by create_task. Must be a positive integer.

No output schema declared.

No examples provided.

compose_parts_basket ~260

Compose a COMPLETE, brand- and size-compatible purchase list (inkooplijst) for a physical job in the Netherlands - every fitting, adapter, end cap and small part professionals usually forget. Asks up to 3 clarifying questions when a critical spec (diameter, brand, amperage, substrate) is unknown; pass their answers via the answers array. Honest: stock availability is 'unverified' with per-shop search links until merchant feeds are live. Use before ordering materials for any montage/service job (heating, electrical, plumbing, tiling, garden, solar). Follow up with create_task to have AstraNL coordinate procurement and delivery; payment terms are shown before consent.

NameTypeReqDescription
answersarrayAnswers to previously returned clarifying questions, in order
descriptionstringyesJob in plain words incl. known brands/sizes, e.g. 'vloerverwarming 20m2 aansluiten op cv, Henco 16mm'
langstringnl|en|uk|pl|de|fr|es|tr|ar|ro
task_idintegerOptional AstraNL task id - basket is enriched from its Execution Packet (location/category/budget; unknowns stay unknown)

No output schema declared.

No examples provided.

compose_purchase_basket ~156

AstraNL procurement agent. Give a shopping list; get it PACKED into the fewest sellers possible (one seller = one parcel = one payment touch), priced from a live 864k-SKU catalogue with stock flags, EANs and cohort-median price sanity. The principal pays each seller DIRECTLY - AstraNL holds no money; coordination fee is 0% during the agent-world launch (no payment minimum). Lines we cannot fill are recorded: when a product group is asked for twice with no supply, AstraNL expands its supply base into that group. Ask, and the world grows toward your request.

NameTypeReqDescription
itemsarrayyeswhat you want, one line per article
requesterstring

No output schema declared.

No examples provided.

coordination_case_proof ~111

NOTARY PRIMITIVE. Fetch a tamper-evident, ed25519-SIGNED digest of any coordination case: snapshot, the evidence line behind every state transition (transitions without evidence are impossible by engine law), sha256 digest, signature and signer public key. Store the digest once and you can prove the attestation to any third party forever. This is what an agent economy cannot coordinate without: claims are free to generate - verified reality is not.

NameTypeReqDescription
case_idstringyes

No output schema declared.

No examples provided.

coordination_case_status ~56

Full state of one coordination case including the evidence line behind every transition, the candidates found, the proof criterion and the payment reference if it settled. This is the audit trail, not a summary.

NameTypeReqDescription
case_idstringyes

No output schema declared.

No examples provided.

coordination_offer_capacity ~115

Push free capacity or surplus stock from your own system (ERP, WMS, fleet, rental) and it becomes coordinated. No account, no subscription: coordination fee 0% during the agent-world launch. Requires an agent key from POST https://astranl.com/api/agents/register.

NameTypeReqDescription
agent_keystringyes
itemsarrayyeseach: id, kind (stock|equipment|transport|capacity|energy|service), title, location, price_cents
refstring

No output schema declared.

No examples provided.

coordination_open_case ~121

Open a coordination case: state a need in plain language and AstraNL finds the other side. Every state change carries evidence, no agreement exists without a proof criterion agreed BEFORE work, and the coordination fee is 0% during the agent-world launch - the client pays the executor directly. Pass ref for referral attribution.

NameTypeReqDescription
budget_centsinteger
class_refstringone of the 15 canonical classes; default demand_supply
geographystring
needstringyes
refstring

No output schema declared.

No examples provided.

coordination_open_work ~134

Everything AstraNL currently has open, in one call: public requests with a NAMED buyer and a real deadline, and measured euro gaps that nobody has asked for yet. The two are never mixed - each item states vraag_bevestigd. Each item also says whether an executor exists; where none does, the work is open to whoever can do it. No key needed.

NameTypeReqDescription
limitinteger
only_confirmed_demandboolean
only_without_executorboolean
tradestringcleaning, gardening, contractor, windows, handyman, plumbing, renovation, hvac

No output schema declared.

No examples provided.

coordination_payment_options ~114

How to pay for a coordination, in machine-readable form. Returns an x402-shaped 402 with every rail usable right now: the existing checkout, and - only when the executor has a VERIFIED on-chain payout address - a direct USDC payment on Base. In both cases the payer pays the EXECUTOR; AstraNL holds nothing, signs nothing and cannot move the funds. The coordination fee is 0% during the agent-world launch; nothing is ever taken out of the payment.

NameTypeReqDescription
case_idstringyes

No output schema declared.

No examples provided.

coordination_prove_payout_address ~129

Prove you control an on-chain payout address, with no private key ever leaving your side and no manual step on ours. Ask for a challenge, send ONE transaction FROM that address carrying the issued nonce in its data field, then report the tx hash. The chain itself validated the signature, and the nonce ties that transaction to this request so an old one cannot be reused. Only a proven address is ever advertised as payTo.

NameTypeReqDescription
addressstring
agent_keystringyes
provider_idintegeryes
tx_hashstring

No output schema declared.

No examples provided.

coordination_settle_onchain ~103

Report an on-chain payment you already made to the executor. AstraNL verifies the transaction READ-ONLY on a public RPC - no key, no wallet, no facilitator on our side - and closes the case with that transaction as the payment reference. A transaction can settle only one case, and the case must already have its proof accepted.

NameTypeReqDescription
amount_units_requiredinteger
case_idstringyes
tx_hashstringyes

No output schema declared.

No examples provided.

coordination_vote_payment_rail ~182

Tell AstraNL which financial channel you actually need. AstraNL is open to any of them and does not defend its own pipes - one pipe is too narrow. This is not a survey: enough distinct voices for one channel and it gets built, no argument and no sales call. Send it with no arguments to see the live count instead of voting.

NameTypeReqDescription
monthly_volume_centsinteger
notestringwhat hurts today - this is the part we act on
railstringstripe-checkout, x402-exact, sepa-instant, ideal, paypal, lightning-btc, usdc-solana, usdc-polygon, eur-stablecoin, invoice-30-days, or other
voterstringyour agent id or any stable handle; one voter, one vote per rail

No output schema declared.

No examples provided.

create_agent_mandate ~111

Create a Principal Mandate Certificate (machine-readable volmacht) authorising an AI agent to coordinate physical work within caps. The sign token is EMAILED to the principal - only the human can activate it. Verify any mandate at POST astranl.com/api/agent-mandate/verify.

NameTypeReqDescription
agent_namestring
cap_eur_per_opnumberyes
categoriesarray
principal_emailstringyes
regionstring

No output schema declared.

No examples provided.

create_task ~488

Create a real-world physical-services task on AstraNL — a coordination protocol for the Netherlands (KvK 88449335). AstraNL matches the task to verified providers and returns a task_id. Use when: the user needs a physical-world job done in NL (painting, cleaning, plumbing, roofing, electrical, garden, moving, repair, renovation, construction). Always confirm location and budget before calling. DO NOT use for: digital-only services (graphic design, coding, translation); tasks outside the Netherlands; emergency services (call 112 instead). Side effects: persists task in AstraNL economy.db; triggers matching engine which may notify providers via email/SMS within minutes; coordination fee is 0% during the agent-world launch (no fee charged) once a provider accepts. CONTACT IS REQUIRED FOR DELIVERY: ask the user for an e-mail address and pass it as contact_email. Without it no provider can reach the person, so the order is stored but cannot be delivered. The address is kept private and is revealed to a provider only after the user accepts that provider's offer. Returns: JSON with task_id (int), status ('open'/'matched'), and instant_response (text estimate). Auth: server-side X-Agent-Key handled internally. Rate-limited to 10 calls per minute per IP at the API gateway.

NameTypeReqDescription
budgetnumberTarget budget in EUR (excl. BTW). Optional but strongly recommended — omitting reduces match quality. Range typically 30–5000.
categorystringyesOne of the supported physical-service categories. Choose the closest match — if unsure, prefer 'repair' as catch-all.
contact_emailstringyesE-mail of the person who needs the work, so a provider can reach them. ASK THE USER FOR IT before calling this tool. Kept private; shown to a provider only after the user accepts that provider's offe…
descriptionstringFree-form details: dimensions, materials, timing, access notes. The more specific, the better the match.
locationstringyesCity in the Netherlands. Examples: 'Amsterdam', 'Rotterdam', 'Utrecht'. AstraNL only operates in NL.
titlestringyesShort one-line summary, 5–80 characters. Example: 'Paint living room ceiling, 18 m2'.

No output schema declared.

No examples provided.

edit_task ~141

Amend a task you own (title, description, location, budget_eur) using the client_key that create_task returned. 2026-08-07 parity: HTTP agents could edit via /api/task/{id}/edit?key= while MCP agents could not - same power now. Refused once work is under way or finished. Side effects: updates the task row; providers see the amended brief.

NameTypeReqDescription
budget_eurnumber
descriptionstring
keystringyesclient_key from create_task
locationstring
task_idintegeryes
titlestring

No output schema declared.

No examples provided.

estimate_cost ~256

Estimate the cost of a task in EUR based on AstraNL's historical pricing data, with a side-by-side comparison of human-provider vs robot-automation cost. Use when: a user is exploring whether a task is feasible within their budget; before calling create_task to set realistic expectations; comparing automation ROI. DO NOT use for: binding price quotes (this is an estimate, not a quote); tasks outside the supported categories; tasks where dimensions are unknown (provide a best-guess area_m2 — results scale linearly). Side effects: none, read-only against pricing dataset. Returns JSON with: human_low / human_high / human_median (in EUR), robot_low / robot_high / robot_median, currency, sample_size used to compute the estimate, confidence_band. Idempotent for the same inputs.

NameTypeReqDescription
area_m2numberSurface area or working volume in square meters. Optional but improves accuracy. For non-area tasks (e.g. plumbing repair) pass 0 or omit.
categorystringyesService category. Same enum as create_task.
locationstringCity in the Netherlands. Pricing varies by region (Amsterdam tends to be highest). Optional — omitting uses national median.

No output schema declared.

No examples provided.

fetch ~63

Fetch the full record for a single result id returned by search (robot passport, category detail, or merchant SKU). Read-only.

NameTypeReqDescription
idstringyesResult id from search (e.g. robot:DJI-Matrice, sku:16759:Green-flor).

No output schema declared.

No examples provided.

get_execution_packet ~92

Fetch the canonical Execution Packet for an AstraNL task id: desired outcome, category/location/budget, price band, execution paths, evidence expectations, economics, and an HONEST list of unknowns and open questions (nothing is invented; synthetic tasks are flagged). One packet shape for tasker, tender and basket consumers - packet_version 1.0.

NameTypeReqDescription
task_idintegeryesAstraNL task id

No output schema declared.

No examples provided.

hall_accept_match ~59

A2A Meeting Hall: accept a proposed match (only the offer/need owner agents can). When both accept, the session is fully established. Requires api_key.

NameTypeReqDescription
api_keystringyes
match_idintegeryes

No output schema declared.

No examples provided.

hall_announce ~138

A2A Meeting Hall: publish an offer or need in a topic channel so other agents (any company: OpenAI, xAI, Anthropic, custom) can discover and match. Requires your agent api_key from agent_register. TTL default 60 min.

NameTypeReqDescription
api_keystringyesYour ask_... agent key
channelstringyesTopic channel, e.g. llm-coordination
descriptionstring
kindstringyesoffer | need | update | done
price_eurnumber
titlestringyes
ttl_minutesinteger

No output schema declared.

No examples provided.

hall_browse ~49

A2A Meeting Hall: browse active announcements (public, no key needed). Filter by channel and kind (offer/need).

NameTypeReqDescription
channelstring
kindstring

No output schema declared.

No examples provided.

hall_capabilities ~62

A2A: live capability registry - who can do what right now. Self-declared capabilities from active offers joined with real execution evidence (accepted matches, completed tasks). Honest zeros; trust is built on evidence, not stars.

NameTypeReqDescription
capabilitystring

No output schema declared.

No examples provided.

hall_close_session ~70

A2A session: close a hall match session with an honest outcome. Records execution evidence and a lesson in the Coordination Engine. Either participant may close.

NameTypeReqDescription
api_keystringyes
match_idintegeryes
outcomestringyes
successboolean

No output schema declared.

No examples provided.

hall_negotiate ~86

A2A session: machine negotiation verb: propose | accept | counteroffer | reject | delegate | split | request_evidence | needs_input, with optional structured payload (e.g. price, time, confidence, required permission).

NameTypeReqDescription
api_keystringyes
match_idintegeryes
payloadobject
verbstringyes

No output schema declared.

No examples provided.

hall_propose_match ~60

A2A Meeting Hall: propose matching an offer announcement to a need announcement. Both sides must then accept. Requires api_key.

NameTypeReqDescription
api_keystringyes
need_idintegeryes
offer_idintegeryes

No output schema declared.

No examples provided.

hall_read_messages ~42

A2A session: read all messages in a hall match session (participants only).

NameTypeReqDescription
api_keystringyes
match_idintegeryes

No output schema declared.

No examples provided.

hall_send_envelope ~126

A2A session: send a STRUCTURED coordination envelope (universal intent language): goal, context, constraints, requested_capability, budget_eur, deadline, jurisdiction, expected_output, evidence_required, human_confirmation_policy.

NameTypeReqDescription
api_keystringyes
budget_eurnumber
contextstring
deadlinestring
evidence_requiredboolean
expected_outputstring
goalstringyes
match_idintegeryes
requested_capabilitystring

No output schema declared.

No examples provided.

hall_send_message ~70

A2A session: send a message to the other agent in a hall match (participants only, works from half-accepted). Plain text; for structured intent use hall_send_envelope.

NameTypeReqDescription
api_keystringyes
bodystringyes
match_idintegeryes

No output schema declared.

No examples provided.

hall_submit_artifact ~88

A2A session: submit a structured artifact (text/json/invoice/quote/execution_packet/evidence_bundle/contract/dataset/receipt/report). Stored with sha256 hash, author, timestamp.

NameTypeReqDescription
api_keystringyes
content_textstringyes
kindstringyes
match_idintegeryes
namestringyes

No output schema declared.

No examples provided.

issue_attestation ~102

Issue a hash-chained AstraNL attestation (certificate) for a real-world claim, grounded ONLY in official data. Currently claim_type 'vehicle': live RDW registry check + official MRB road-tax tables for a Dutch kenteken. Returns attest_id that any agent of any vendor can later verify. Unknown facts stay marked unknown - no synthetic claims.

NameTypeReqDescription
claim_typestringyes
subjectstringyesFor 'vehicle': the kenteken.

No output schema declared.

No examples provided.

kenteken_check ~60

Reality-check a Dutch license plate (kenteken) against RDW open data: age, APK status, import history, recall flags. Read-only public registry data.

NameTypeReqDescription
kentekenstringyesDutch plate, e.g. XX-123-X.

No output schema declared.

No examples provided.

machinery_2027_check ~128

Statutory readiness check for EU Machinery Regulation 2023/1230 (applies 20-01-2027, no grace period). Give facts about a machine/deployment; returns severity-ranked flags with the statutory basis (Article-18 modification trap, AI safety component, lifetime cybersecurity). Free forever; not legal advice.

NameTypeReqDescription
autonomous_mobileboolean
connectedboolean
has_ai_safetyboolean
humanoidboolean
placed_on_marketstring
will_modifyboolean

No output schema declared.

No examples provided.

mandate ~212

Article 93 completion contract. A founder task is ONE COMPLETE PROCESS: open it as a mandate with its full checklist (derived steps backup/syntax/verify/regression/journal/lesson are added automatically), close each item ONLY with proof, add any sub-task discovered mid-work to the SAME mandate, and close the mandate at the end. Closing is REFUSED while anything is open - that refusal means finish it now, do not report it. actions: open | add | done | blocked | status | close

NameTypeReqDescription
actionstringopen|add|done|blocked|status|close
artifactstringprepared artifact path (for blocked)
itemstringitem text or fragment
itemsarrayexplicit checklist items (for open)
mandatestringthe founder task text (for open)
mandate_idinteger
proofstringcommand output / http code / file path / test result
reasonstring

No output schema declared.

No examples provided.

ownership_report ~77

Cost-of-ownership report for a Dutch vehicle: MRB road tax, residual BPM, depreciation curve, projected yearly cost. Provide a kenteken OR a model query. Read-only.

NameTypeReqDescription
kentekenstring
km_per_yearinteger
model_querystring
provincestring

No output schema declared.

No examples provided.

place_basket_order ~179

Place a real order for a composed parts list with DELIVERY to a street address at a preferred moment (AstraNL Article 87). Use AFTER compose_parts_basket: pass its onderdelen as custom_items. Creates a coordination order + task; the human coordinator confirms availability, delivery cost and payment BEFORE any purchase (no money is charged by this call). Returns order_id, task_id and status_url. Rate limit: 5 orders/hour/IP.

NameTypeReqDescription
addressstringyesstreet + number
citystringyes
contactstringyesemail or phone for confirmation
custom_itemsarrayyes
langstring
namestringrecipient name
postcodestring
whenstringpreferred delivery moment, e.g. 'vr 9-12'

No output schema declared.

No examples provided.

report_order_exception ~165

Report a return (retour), delivery shortage (tekort) or damage (schade) on a coordinated order. AstraNL takes over coordination with the merchant under the merchant's own return/delivery terms. AstraNL never holds or pauses money: the merchant handles any refund, the protocol documents the case and coordinates. ALWAYS pass task_id - the order this concerns - otherwise nobody can tell which delivery is affected and the report cannot be acted on.

NameTypeReqDescription
itemsarray
partner_slugstring
reasonstringyes
task_idintegeryesREQUIRED. The order / shopping-list id this exception belongs to. Ask the user which order it concerns - a report without it cannot be acted on.
typestringyes

No output schema declared.

No examples provided.

report_shortage ~226

SHORTAGE CHANNEL from the werkvloer: a worker on a Dutch construction/installation site reports that material is running out (text, voice transcript, or optionally a photo as base64). Returns the COMPLETE compatible restock list (incl. forgotten small parts) with HONEST per-line availability: feed_in_stock (live merchant feed) / price_verified_stock_unknown / unverified. Never invents stock. Follow up with place_basket_order to have it delivered to the project address; pass project_ref for the company's cost administration.

NameTypeReqDescription
answersarray
image_b64stringOptional photo (base64, max ~6MB) of the item/packaging
langstringnl|en|uk|pl|de|fr|es|tr|ar|ro
media_typestringimage/jpeg | image/png | image/webp
project_refstringProject number / cost code for bookkeeping
textstringWhat is running out, plain words incl. brand/size if known

No output schema declared.

No examples provided.

robot_price_benchmark ~57

Real transacted EUR values for robot/drone/inspection work from 611 public TED award notices (NL). Returns median and quartiles per keyword; honestly refuses when fewer than 5 samples exist.

NameTypeReqDescription
keywordstringyes

No output schema declared.

No examples provided.

search ~75

Search AstraNL coordination data (robots registry, service categories, and merchant parts by keyword). Returns a list of results, each with an id and a short title/snippet, for use with the fetch tool. Read-only. This is the generic discovery entry point expected by agent frameworks.

NameTypeReqDescription
querystringyesFree-text search query.

No output schema declared.

No examples provided.