AstraNL local proof NL
Verify a place in the Netherlands: a verified local hand checks it, you get a sealed receipt.
Should I use this
Quality & Safety
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"local-proof-nl": {
"url": "https://astranl.com/mcp/streamable?profile=localproof"
}
}
}Remote endpoints
https://astranl.com/mcp/streamable?profile=localproofstreamable-httpWhat it can do
Tool inventory
Tools (4)
🟡create_task(need, location, deadline, proof, budget_cents, ...)
Ask AstraNL to find and coordinate a verified executor for a physical task in the Netherlands. Returns an ingress receipt at once and a case once planning found a path; the client pays the executor directly; AstraNL holds no money.
Input Schema
{
"type": "object",
"properties": {
"need": {
"type": "string",
"maxLength": 800,
"description": "what must happen, in plain words"
},
"location": {
"type": "string",
"maxLength": 200,
"description": "city or address in the Netherlands"
},
"deadline": {
"type": "string",
"maxLength": 100,
"description": "by when; ISO date or plain words"
},
"proof": {
"type": "string",
"maxLength": 400,
"description": "what evidence closes the task, agreed before work starts"
},
"budget_cents": {
"type": "integer",
"minimum": 100,
"description": "budget in euro cents"
},
"reply_channel": {
"type": "string",
"maxLength": 300,
"description": "email or https URL where AstraNL may answer you"
},
"synthetic": {
"type": "boolean",
"description": "true marks a test that must never be counted or executed"
}
},
"required": [
"need"
],
"additionalProperties": false
}🟢check_task(task_id, receipt_id, receipt_key)
Current state of a task or ingress receipt from create_task, and who must act next. Returns only what is recorded; infers nothing.
Input Schema
{
"type": "object",
"properties": {
"task_id": {
"type": "string",
"maxLength": 40,
"description": "task id from check_task or a case"
},
"receipt_id": {
"type": "string",
"maxLength": 40,
"description": "RCPT-n from create_task"
},
"receipt_key": {
"type": "string",
"maxLength": 80,
"description": "owner key shown once by create_task; without it links are read-only"
}
},
"minProperties": 1,
"additionalProperties": false
}🟢get_evidence(task_id)
Machine-checkable evidence for an AstraNL task, action or receipt: the signed log events that mention it, each verified live, with a proof block stating what is verified, what is not, validity, status, limitations and next actions.
Input Schema
{
"type": "object",
"properties": {
"task_id": {
"type": "string",
"maxLength": 40,
"description": "task id, action id or receipt id"
}
},
"required": [
"task_id"
],
"additionalProperties": false
}🟢verify_astranl(ref)
Verify any AstraNL reference without a key. Returns two separate layers: integrity (payload hash, Ed25519 signature, Merkle inclusion, recomputed live) and claim (what exactly is attested, by whom, from which source, when, under which method, with which validity limits and current status VALID/EXPIRED/REVOKED/UNKNOWN). Integrity never implies the claim is true for your purpose; you apply your own acceptance rules. Tells you when to re-verify and how to consume a VALID receipt for a next action. Read-only, deterministic, no model in the path.
Input Schema
{
"type": "object",
"properties": {
"ref": {
"type": "string",
"minLength": 4,
"maxLength": 64,
"description": "Any AstraNL reference: action receipt ASTRA-A-..., policy receipt ASTRA-R-..., consumption ASTRA-C-..., log event alk_..., attestation att_/atr_..., ingress receipt RCPT-n"
}
},
"required": [
"ref"
],
"additionalProperties": false
}Community
Evidence