AstraNL
REMOTE · ASTRANL.COM · 2 COMPONENTS · SCANNED AUG 17
Signed physical-reality checks for agents + cross-company coordination. No custody.
Available components
Recent critical change
Authorization (12 Aug 2026). See the changelog before you install this server.
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
- The endpoint's TLS certificate is valid, in date, and uses a strong key. View diagnostics → Pass
- Authorisation check failed: no authorisation is required to call this server, and it exposes a tool marked destructive (cancel_task). See how to fix → View diagnostics → Fail
- HTTPS is enforced; there's no plaintext access path. View diagnostics → Pass
- 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 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
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
claude mcp add --transport http com-astranl-mcp https://astranl.com/mcp/streamable
[mcp_servers.com-astranl-mcp] url = "https://astranl.com/mcp/streamable"
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"com-astranl-mcp": {
"type": "remote",
"url": "https://astranl.com/mcp/streamable",
"enabled": true
}
}
} openclaw mcp add com-astranl-mcp --url https://astranl.com/mcp/streamable --transport streamable-http
mcp_servers:
com-astranl-mcp:
url: "https://astranl.com/mcp/streamable" {
"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.
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.
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 |
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.
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.
| Name | Type | Req | Description |
|---|---|---|---|
| kind | string | yes | action kind, e.g. publish_page |
| target | string | – | optional 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.
| Name | Type | Req | Description |
|---|---|---|---|
| url | string | yes | – |
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.
| Name | Type | Req | Description |
|---|---|---|---|
| conditions | array | – | – |
| context | object | – | – |
| created_by | string | – | – |
| obligations | array | yes | – |
| parties | array | yes | – |
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
| Name | Type | Req | Description |
|---|---|---|---|
| cert_id | string | yes | – |
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.
| Name | Type | Req | Description |
|---|---|---|---|
| cert_id | string | yes | – |
| lang | string | – | – |
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.
| Name | Type | Req | Description |
|---|---|---|---|
| api_key | string | – | optional 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.
| Name | Type | Req | Description |
|---|---|---|---|
| api_key | string | – | – |
| deadline | string | – | – |
| kind | string | yes | – |
| query | string | yes | – |
| threshold_eur | number | – | – |
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.
| Name | Type | Req | Description |
|---|---|---|---|
| watch_id | integer | yes | – |
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'.
| Name | Type | Req | Description |
|---|---|---|---|
| key | string | yes | client_key from create_task |
| task_id | integer | yes | – |
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.
| Name | Type | Req | Description |
|---|---|---|---|
| query | string | yes | Free-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.
| Name | Type | Req | Description |
|---|---|---|---|
| order_id | string | yes | – |
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.
| Name | Type | Req | Description |
|---|---|---|---|
| task_id | integer | yes | Numeric 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.
| Name | Type | Req | Description |
|---|---|---|---|
| answers | array | – | Answers to previously returned clarifying questions, in order |
| description | string | yes | Job in plain words incl. known brands/sizes, e.g. 'vloerverwarming 20m2 aansluiten op cv, Henco 16mm' |
| lang | string | – | nl|en|uk|pl|de|fr|es|tr|ar|ro |
| task_id | integer | – | Optional 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.
| Name | Type | Req | Description |
|---|---|---|---|
| items | array | yes | what you want, one line per article |
| requester | string | – | – |
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.
| Name | Type | Req | Description |
|---|---|---|---|
| case_id | string | yes | – |
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.
| Name | Type | Req | Description |
|---|---|---|---|
| case_id | string | yes | – |
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.
| Name | Type | Req | Description |
|---|---|---|---|
| agent_key | string | yes | – |
| items | array | yes | each: id, kind (stock|equipment|transport|capacity|energy|service), title, location, price_cents |
| ref | string | – | – |
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.
| Name | Type | Req | Description |
|---|---|---|---|
| budget_cents | integer | – | – |
| class_ref | string | – | one of the 15 canonical classes; default demand_supply |
| geography | string | – | – |
| need | string | yes | – |
| ref | string | – | – |
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.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | – |
| only_confirmed_demand | boolean | – | – |
| only_without_executor | boolean | – | – |
| trade | string | – | cleaning, 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.
| Name | Type | Req | Description |
|---|---|---|---|
| case_id | string | yes | – |
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.
| Name | Type | Req | Description |
|---|---|---|---|
| address | string | – | – |
| agent_key | string | yes | – |
| provider_id | integer | yes | – |
| tx_hash | string | – | – |
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.
| Name | Type | Req | Description |
|---|---|---|---|
| amount_units_required | integer | – | – |
| case_id | string | yes | – |
| tx_hash | string | yes | – |
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.
| Name | Type | Req | Description |
|---|---|---|---|
| monthly_volume_cents | integer | – | – |
| note | string | – | what hurts today - this is the part we act on |
| rail | string | – | stripe-checkout, x402-exact, sepa-instant, ideal, paypal, lightning-btc, usdc-solana, usdc-polygon, eur-stablecoin, invoice-30-days, or other |
| voter | string | – | your 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.
| Name | Type | Req | Description |
|---|---|---|---|
| agent_name | string | – | – |
| cap_eur_per_op | number | yes | – |
| categories | array | – | – |
| principal_email | string | yes | – |
| region | string | – | – |
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.
| Name | Type | Req | Description |
|---|---|---|---|
| budget | number | – | Target budget in EUR (excl. BTW). Optional but strongly recommended — omitting reduces match quality. Range typically 30–5000. |
| category | string | yes | One of the supported physical-service categories. Choose the closest match — if unsure, prefer 'repair' as catch-all. |
| contact_email | string | yes | E-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… |
| description | string | – | Free-form details: dimensions, materials, timing, access notes. The more specific, the better the match. |
| location | string | yes | City in the Netherlands. Examples: 'Amsterdam', 'Rotterdam', 'Utrecht'. AstraNL only operates in NL. |
| title | string | yes | Short 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.
| Name | Type | Req | Description |
|---|---|---|---|
| budget_eur | number | – | – |
| description | string | – | – |
| key | string | yes | client_key from create_task |
| location | string | – | – |
| task_id | integer | yes | – |
| title | string | – | – |
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.
| Name | Type | Req | Description |
|---|---|---|---|
| area_m2 | number | – | Surface area or working volume in square meters. Optional but improves accuracy. For non-area tasks (e.g. plumbing repair) pass 0 or omit. |
| category | string | yes | Service category. Same enum as create_task. |
| location | string | – | City 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.
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | yes | Result 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.
| Name | Type | Req | Description |
|---|---|---|---|
| task_id | integer | yes | AstraNL 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.
| Name | Type | Req | Description |
|---|---|---|---|
| api_key | string | yes | – |
| match_id | integer | yes | – |
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.
| Name | Type | Req | Description |
|---|---|---|---|
| api_key | string | yes | Your ask_... agent key |
| channel | string | yes | Topic channel, e.g. llm-coordination |
| description | string | – | – |
| kind | string | yes | offer | need | update | done |
| price_eur | number | – | – |
| title | string | yes | – |
| ttl_minutes | integer | – | – |
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).
| Name | Type | Req | Description |
|---|---|---|---|
| channel | string | – | – |
| kind | string | – | – |
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.
| Name | Type | Req | Description |
|---|---|---|---|
| capability | string | – | – |
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.
| Name | Type | Req | Description |
|---|---|---|---|
| api_key | string | yes | – |
| match_id | integer | yes | – |
| outcome | string | yes | – |
| success | boolean | – | – |
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).
| Name | Type | Req | Description |
|---|---|---|---|
| api_key | string | yes | – |
| match_id | integer | yes | – |
| payload | object | – | – |
| verb | string | yes | – |
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.
| Name | Type | Req | Description |
|---|---|---|---|
| api_key | string | yes | – |
| need_id | integer | yes | – |
| offer_id | integer | yes | – |
No output schema declared.
No examples provided.
hall_read_messages ~42
A2A session: read all messages in a hall match session (participants only).
| Name | Type | Req | Description |
|---|---|---|---|
| api_key | string | yes | – |
| match_id | integer | yes | – |
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.
| Name | Type | Req | Description |
|---|---|---|---|
| api_key | string | yes | – |
| budget_eur | number | – | – |
| context | string | – | – |
| deadline | string | – | – |
| evidence_required | boolean | – | – |
| expected_output | string | – | – |
| goal | string | yes | – |
| match_id | integer | yes | – |
| requested_capability | string | – | – |
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.
| Name | Type | Req | Description |
|---|---|---|---|
| api_key | string | yes | – |
| body | string | yes | – |
| match_id | integer | yes | – |
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.
| Name | Type | Req | Description |
|---|---|---|---|
| api_key | string | yes | – |
| content_text | string | yes | – |
| kind | string | yes | – |
| match_id | integer | yes | – |
| name | string | yes | – |
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.
| Name | Type | Req | Description |
|---|---|---|---|
| claim_type | string | yes | – |
| subject | string | yes | For '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.
| Name | Type | Req | Description |
|---|---|---|---|
| kenteken | string | yes | Dutch 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.
| Name | Type | Req | Description |
|---|---|---|---|
| autonomous_mobile | boolean | – | – |
| connected | boolean | – | – |
| has_ai_safety | boolean | – | – |
| humanoid | boolean | – | – |
| placed_on_market | string | – | – |
| will_modify | boolean | – | – |
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
| Name | Type | Req | Description |
|---|---|---|---|
| action | string | – | open|add|done|blocked|status|close |
| artifact | string | – | prepared artifact path (for blocked) |
| item | string | – | item text or fragment |
| items | array | – | explicit checklist items (for open) |
| mandate | string | – | the founder task text (for open) |
| mandate_id | integer | – | – |
| proof | string | – | command output / http code / file path / test result |
| reason | string | – | – |
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.
| Name | Type | Req | Description |
|---|---|---|---|
| kenteken | string | – | – |
| km_per_year | integer | – | – |
| model_query | string | – | – |
| province | string | – | – |
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.
| Name | Type | Req | Description |
|---|---|---|---|
| address | string | yes | street + number |
| city | string | yes | – |
| contact | string | yes | email or phone for confirmation |
| custom_items | array | yes | – |
| lang | string | – | – |
| name | string | – | recipient name |
| postcode | string | – | – |
| when | string | – | preferred 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.
| Name | Type | Req | Description |
|---|---|---|---|
| items | array | – | – |
| partner_slug | string | – | – |
| reason | string | yes | – |
| task_id | integer | yes | REQUIRED. The order / shopping-list id this exception belongs to. Ask the user which order it concerns - a report without it cannot be acted on. |
| type | string | yes | – |
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.
| Name | Type | Req | Description |
|---|---|---|---|
| answers | array | – | – |
| image_b64 | string | – | Optional photo (base64, max ~6MB) of the item/packaging |
| lang | string | – | nl|en|uk|pl|de|fr|es|tr|ar|ro |
| media_type | string | – | image/jpeg | image/png | image/webp |
| project_ref | string | – | Project number / cost code for bookkeeping |
| text | string | – | What 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.
| Name | Type | Req | Description |
|---|---|---|---|
| keyword | string | yes | – |
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.
| Name | Type | Req | Description |
|---|---|---|---|
| query | string | yes | Free-text search query. |
No output schema declared.
No examples provided.