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

AstraNL

REMOTE · ASTRANL.COM · SCANNED AUG 3

NL coordination protocol — 1% fee, agent-native, real Dutch merchant pricing. Open brain.

Available components

+2 this week 57 Trust /100
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 & Reachability40
Schema Quality & AI Usability59
  • AI-judged instruction clarity (good).Pass
  • Context-footprint check failed: tool/resource definitions use about 2715 tokens (~169/item across 16 items; 16 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 Management27
  • Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage89
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 67% 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/sse
# ~/.codex/config.toml
[mcp_servers.com-astranl-mcp]
url = "https://astranl.com/mcp/sse"
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "com-astranl-mcp": {
      "type": "remote",
      "url": "https://astranl.com/mcp/sse",
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add com-astranl-mcp --url https://astranl.com/mcp/sse --transport streamable-http
# ~/.hermes/config.yaml
mcp_servers:
  com-astranl-mcp:
    url: "https://astranl.com/mcp/sse"
// mcp.json
{
  "mcpServers": {
    "com-astranl-mcp": {
      "type": "http",
      "url": "https://astranl.com/mcp/sse"
    }
  }
}

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.

  • 3 Aug 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 23 to 27. That category is still filling its 30-day observation window: 7 days of observed history at the previous scan, 8 at this one. The score rises as the window fills, whether or not the server changes.

  • 2 Aug 26 +1
    • New tool “report_shortage” functional
  • 1 Aug 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 17 to 20. That category is still filling its 30-day observation window: 5 days of observed history at the previous scan, 6 at this one. The score rises as the window fills, whether or not the server changes.

  • 31 Jul 26 +1
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 30 Jul 26 +4
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 29 Jul 26 −6
    • Tool “search_robots” rewrote its description, which is the text the model reads security
    • Schema quality: 1821 → 2217 functional
    • Schema quality: good → poor functional
    • New tool “shared_context” functional
    • New tool “action_status” functional
    • New tool “mandate” functional
  • 27 Jul 26 0
    • Tool “compose_parts_basket” 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
    • Stability: unverified → 0.03 functional
    • Schema quality: excellent → good functional
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
    • New tool “get_execution_packet” functional
    • “compose_parts_basket” added an optional parameter “task_id” cosmetic
  • 26 Jul 26 55

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

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
sse https://astranl.com/mcp/sse Verified 200
http (plaintext) http://astranl.com/mcp/sse HTTPS enforced 301 https://astranl.com/mcp/sse
MCP tools — 16 exposed · ~2,715 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.

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.

create_task ~364

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; user becomes responsible for the task fee (1% of budget) once a provider accepts. 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.
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.

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.

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.

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 ~105

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; any held payment stays paused until resolution is confirmed. Zero routine for merchant and client.

NameTypeReqDescription
itemsarray
partner_slugstring
reasonstringyes
task_idinteger
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.

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.

search_robots ~205

Search the AstraNL Robot Index for robots capable of performing a given task type. The index covers the source-verified catalog of commercial and pilot-stage robots across 11 categories: humanoid industrial/consumer, cobots, industrial arms, AMRs, quadrupeds, service bots, commercial drones, agricultural drones. Use when: comparing automation options, evaluating cost vs human labor, exploring what robotic capabilities exist for a domain. DO NOT use for: real-time robot booking (most listed are manufacturers, not rental services); navigation or control of a specific robot; tasks unrelated to physical-world capabilities. Side effects: none, read-only against the public Robot Index. Returns JSON list of matching robots with manufacturer, specs, payload range, indicative price, production status. Idempotent.

NameTypeReqDescription
task_typestringyesFree-text task description. The matcher uses semantic and category-based matching. Examples: 'painting walls', 'warehouse picking', 'agricultural spraying', 'inspection'.

No output schema declared.

No examples provided.

shared_context ~99

READ THIS FIRST. The single shared brief every AstraNL agent and chat starts from: live system state, work currently in flight (so you never repeat or duplicate an action), recent decisions and lessons, guard status, canonical documents, what is waiting for the founder, and the honest known gaps. Article 91: if an action hash is already done or in flight, do NOT repeat it; if a claim was abandoned half-way, FINISH it.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

technics_coordination ~272

Coordinate the PURCHASE of a vehicle or machine in the Netherlands: cars, vans, trucks, trailers, excavators, loaders, lifts, generators, tools, agricultural machines. Give the buyer's requirements and AstraNL finds registered sellers, requests offers, and returns a ranked shortlist with a written reason per option. Package services can be added: registration, insurance, warranty, pre-purchase inspection, transport, financing, trade-in. The buyer signs directly with the seller; AstraNL holds no funds and charges 0% until 31 Aug 2026, then 1% of the agreed price on a completed purchase only. Search results are ephemeral by design; the accompaniment around the decision is the product.

NameTypeReqDescription
brandstring
budget_max_eurinteger
budget_min_eurinteger
financestringcash, lease, loan, unsure
kindstringyescar, van, truck, trailer, excavator, loader, lift, scaffold, generator, compressor, welder, tools, agri, other
modelstring
notesstring
packagesarray
regionstringDutch city or province
usage_typestringprivate or business

No output schema declared.

No examples provided.