---
schema: "interfacedelta-service-md/1"
target_key: "sha256:0c72d10eaf86479a1ebd5f9ec14fe4c0fbf6608ae1dc145ad7046d8d65816014"
origin: "https://astranl.com"
protocols: ["mcp"]
observed_at: "2026-11-14T04:01:01.731Z"
generated_at: "2026-11-14T10:27:13.742Z"
record_url: "https://interfacedelta.com/atlas/sha256:0c72d10eaf86479a1ebd5f9ec14fe4c0fbf6608ae1dc145ad7046d8d65816014"
record_api: "https://interfacedelta.com/api/v1/record/services/sha256:0c72d10eaf86479a1ebd5f9ec14fe4c0fbf6608ae1dc145ad7046d8d65816014"
source: "InterfaceDelta atlas"
license_note: "Use of this record is governed by https://interfacedelta.com/terms."
---

# Service record: https://astranl.com

## Identity
- Origin: https://astranl.com
- Endpoints: https://astranl.com/mcp/streamable
- Protocols: mcp
- Registry names: com.astranl/mcp
- First retained observation: 2026-11-14T04:01:01.731Z
- Latest observation: 2026-11-14T04:01:01.731Z

## Tools
MCP tools, OpenAPI operations, WebMCP tools and A2A skills; excludes prompts and resources.
Total capabilities: 36; non-tool capabilities: 0.
- Tool 1: ask\_astranl (mcp); inputs: question; inputs omitted: 0; annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}
- Tool 2: check\_counterparty\_nl (mcp); inputs: city, company\_name, kvk\_number, purpose, vat\_number; inputs omitted: 0; annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}
- Tool 3: check\_estimate\_materials (mcp); inputs: case\_id, token; inputs omitted: 0; annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}
- Tool 4: check\_material (mcp); inputs: ref; inputs omitted: 0; annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}
- Tool 5: check\_task (mcp); inputs: receipt\_id, receipt\_key, task\_id; inputs omitted: 0; annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}
- Tool 6: commitment\_attest (mcp); inputs: conditions, context, obligations, parties; inputs omitted: 0; annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}
- Tool 7: commitment\_verify (mcp); inputs: id; inputs omitted: 0; annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}
- Tool 8: construction\_economy (mcp); inputs: none shown; inputs omitted: 0; annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}
- Tool 9: construction\_events (mcp); inputs: limit, since\_id, type; inputs omitted: 0; annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}
- Tool 10: construction\_laws (mcp); inputs: upcoming\_days; inputs omitted: 0; annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}
- Tool 11: construction\_leadtimes (mcp); inputs: gemeente; inputs omitted: 0; annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}
- Tool 12: construction\_natura (mcp); inputs: site; inputs omitted: 0; annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}
- Tool 13: construction\_permits (mcp); inputs: days, gemeente, max\_municipalities; inputs omitted: 0; annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}
- Tool 14: construction\_summary (mcp); inputs: none shown; inputs omitted: 0; annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}
- Tool 15: construction\_tenders (mcp); inputs: none shown; inputs omitted: 0; annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}
- Tool 16: construction\_zones (mcp); inputs: gemeente; inputs omitted: 0; annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}
- Tool 17: create\_task (mcp); inputs: budget\_cents, deadline, location, need, proof, reply\_channel, synthetic; inputs omitted: 0; annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}
- Tool 18: estimate\_case\_answer (mcp); inputs: answers, case\_id, token, version; inputs omitted: 0; annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}
- Tool 19: estimate\_case\_create (mcp); inputs: contact\_email, house\_number, language, postcode, requester\_kind, text; inputs omitted: 0; annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}
- Tool 20: estimate\_case\_files (mcp); inputs: case\_id, files, token; inputs omitted: 0; annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}
- Tool 21: estimate\_case\_status (mcp); inputs: case\_id, token; inputs omitted: 0; annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}
- Tool 22: estimate\_case\_video (mcp); inputs: action, contact\_email, file, house\_number, intake\_id, language, postcode, requester\_kind; inputs omitted: 3; annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}
- Tool 23: estimate\_cost (mcp); inputs: area\_m2, category, location; inputs omitted: 0; annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}
- Tool 24: fetch (mcp); inputs: id; inputs omitted: 0; annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}
- Tool 25: get\_evidence (mcp); inputs: task\_id; inputs omitted: 0; annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}
- Tool 26: ground\_astranl (mcp); inputs: budget\_ms, claims, max\_age\_seconds, max\_items, protocol, query, source; inputs omitted: 0; annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}
- Tool 27: ground\_citation (mcp); inputs: doi; inputs omitted: 0; annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}
- Tool 28: ground\_component (mcp); inputs: manufacturer, mpn; inputs omitted: 0; annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}
- Tool 29: housing\_need (mcp); inputs: consent, need, principal, real\_person; inputs omitted: 0; annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}
- Tool 30: machines\_search (mcp); inputs: task; inputs omitted: 0; annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}
- Tool 31: market\_indicators (mcp); inputs: indicator; inputs omitted: 0; annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}
- Tool 32: nl\_municipal\_build\_rules (mcp); inputs: bouwkosten\_eur, municipality; inputs omitted: 0; annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}
- Tool 33: order\_materials (mcp); inputs: action, estimate\_case\_id, estimate\_token, idempotency\_key, list\_id, list\_revision, order\_id, project\_id; inputs omitted: 1; annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false}
- Tool 34: record\_counterparty\_check (mcp); inputs: check\_id; inputs omitted: 0; annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}
- Tool 35: search (mcp); inputs: query; inputs omitted: 0; annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}
- Tool 36: verify\_astranl (mcp); inputs: ref; inputs omitted: 0; annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}
Tools omitted: 0.

## Effect readings (AI)
- Tool 1 (ask\_astranl): ◇ AI reading; state: counted; none (confidence 0.8); lens: side-effects@1; model: claude-haiku-5.5.
- Tool 2 (check\_counterparty\_nl): ◇ AI reading; state: counted; reads (confidence 0.85); lens: side-effects@1; model: claude-haiku-5.5.
- Tool 3 (check\_estimate\_materials): ◇ AI reading; state: counted; reads (confidence 0.84); lens: side-effects@1; model: claude-haiku-5.5.
- Tool 4 (check\_material): ◇ AI reading; state: counted; reads (confidence 0.85); lens: side-effects@1; model: claude-haiku-5.5.
- Tool 5 (check\_task): ◇ AI reading; state: counted; reads (confidence 0.9); lens: side-effects@1; model: claude-haiku-5.5.
- Tool 6 (commitment\_attest): ◇ AI reading; state: counted; creates (confidence 0.85); lens: side-effects@1; model: claude-haiku-5.5.
- Tool 7 (commitment\_verify): ◇ AI reading; state: counted; reads (confidence 0.84); lens: side-effects@1; model: claude-haiku-5.5.
- Tool 8 (construction\_economy): ◇ AI reading; state: counted; reads (confidence 0.85); lens: side-effects@1; model: claude-haiku-5.5.
- Tool 9 (construction\_events): ◇ AI reading; state: counted; reads (confidence 0.9); lens: side-effects@1; model: claude-haiku-5.5.
- Tool 10 (construction\_laws): ◇ AI reading; state: counted; reads (confidence 0.82); lens: side-effects@1; model: claude-haiku-5.5.
- Tool 11 (construction\_leadtimes): ◇ AI reading; state: counted; reads (confidence 0.9); lens: side-effects@1; model: claude-haiku-5.5.
- Tool 12 (construction\_natura): ◇ AI reading; state: counted; reads (confidence 0.86); lens: side-effects@1; model: claude-haiku-5.5.
- Tool 13 (construction\_permits): ◇ AI reading; state: counted; reads (confidence 0.9); lens: side-effects@1; model: claude-haiku-5.5.
- Tool 14 (construction\_summary): ◇ AI reading; state: counted; reads (confidence 0.882); lens: side-effects@1; model: claude-haiku-5.5.
- Tool 15 (construction\_tenders): ◇ AI reading; state: counted; reads (confidence 0.85); lens: side-effects@1; model: claude-haiku-5.5.
- Tool 16 (construction\_zones): ◇ AI reading; state: counted; reads (confidence 0.85); lens: side-effects@1; model: claude-haiku-5.5.
- Tool 17 (create\_task): ◇ AI reading; state: counted; creates (confidence 0.8); lens: side-effects@1; model: claude-haiku-5.5.
- Tool 18 (estimate\_case\_answer): ◇ AI reading; state: counted; updates (confidence 0.8); lens: side-effects@1; model: claude-haiku-5.5.
- Tool 19 (estimate\_case\_create): ◇ AI reading; state: counted; creates (confidence 0.86); lens: side-effects@1; model: claude-haiku-5.5.
- Tool 21 (estimate\_case\_status): ◇ AI reading; state: counted; reads (confidence 0.9); lens: side-effects@1; model: claude-haiku-5.5.
- Tool 22 (estimate\_case\_video): ◇ AI reading; state: counted; creates (confidence 0.8); lens: side-effects@1; model: claude-haiku-5.5.
- Tool 23 (estimate\_cost): ◇ AI reading; state: counted; reads (confidence 0.82); lens: side-effects@1; model: claude-haiku-5.5.
- Tool 24 (fetch): ◇ AI reading; state: counted; reads (confidence 0.85); lens: side-effects@1; model: claude-haiku-5.5.
- Tool 25 (get\_evidence): ◇ AI reading; state: counted; reads (confidence 0.88); lens: side-effects@1; model: claude-haiku-5.5.
- Tool 26 (ground\_astranl): ◇ AI reading; state: counted; reads (confidence 0.802); lens: side-effects@1; model: claude-haiku-5.5.
- Tool 29 (housing\_need): ◇ AI reading; state: counted; creates (confidence 0.85); lens: side-effects@1; model: claude-haiku-5.5.
- Tool 30 (machines\_search): ◇ AI reading; state: counted; reads (confidence 0.84); lens: side-effects@1; model: claude-haiku-5.5.
- Tool 31 (market\_indicators): ◇ AI reading; state: counted; reads (confidence 0.882); lens: side-effects@1; model: claude-haiku-5.5.
- Tool 32 (nl\_municipal\_build\_rules): ◇ AI reading; state: counted; reads (confidence 0.8); lens: side-effects@1; model: claude-haiku-5.5.
- Tool 34 (record\_counterparty\_check): ◇ AI reading; state: counted; creates (confidence 0.82); lens: side-effects@1; model: claude-haiku-5.5.
- Tool 35 (search): ◇ AI reading; state: counted; reads (confidence 0.904); lens: side-effects@1; model: claude-haiku-5.5.
- Tool 36 (verify\_astranl): ◇ AI reading; state: counted; reads (confidence 0.8); lens: side-effects@1; model: claude-haiku-5.5.

## Change history
No changes recorded in the retained history.

## Payment rails
- Protocols observed: none.
- HTTP 402 seen in retained observations: false.

## Not covered
- We don't call tools.
- We don't rate or certify.
- We don't publish prices.
- We cover only what was observed.

## Evidence
- Identity: observed / declared; observation time: 2026-11-14T04:01:01.731Z.
- Tools: declared; observation time: 2026-11-14T04:01:01.731Z.
- Effect readings (AI): AI reading; observation time: 2026-11-14T04:01:01.731Z.
- Change history: observed; observation time: 2026-11-14T04:01:01.731Z; change observation times: none.
- Payment rails: observed; observation time: 2026-11-14T04:01:01.731Z.

```json
{
  "schema": "interfacedelta-service-md/1",
  "target_key": "sha256:0c72d10eaf86479a1ebd5f9ec14fe4c0fbf6608ae1dc145ad7046d8d65816014",
  "origin": "https://astranl.com",
  "protocols": [
    "mcp"
  ],
  "observed_at": "2026-11-14T04:01:01.731Z",
  "generated_at": "2026-11-14T10:27:13.742Z",
  "record_url": "https://interfacedelta.com/atlas/sha256:0c72d10eaf86479a1ebd5f9ec14fe4c0fbf6608ae1dc145ad7046d8d65816014",
  "record_api": "https://interfacedelta.com/api/v1/record/services/sha256:0c72d10eaf86479a1ebd5f9ec14fe4c0fbf6608ae1dc145ad7046d8d65816014",
  "source": "InterfaceDelta atlas",
  "license_note": "Use of this record is governed by https://interfacedelta.com/terms.",
  "identity": {
    "origin": "https://astranl.com",
    "endpoints": [
      "https://astranl.com/mcp/streamable"
    ],
    "protocols": [
      "mcp"
    ],
    "registry_names": [
      "com.astranl/mcp"
    ],
    "first_retained_observation": "2026-11-14T04:01:01.731Z",
    "latest_observation": "2026-11-14T04:01:01.731Z"
  },
  "tools": [
    {
      "name": "ask_astranl",
      "kind": "mcp.tool",
      "protocol": "mcp",
      "inputs": [
        "question"
      ],
      "inputs_omitted": 0,
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false
      },
      "effects": {
        "marker": "◇ AI reading",
        "state": "counted",
        "classes": [
          {
            "class": "none",
            "confidence": 0.8
          }
        ],
        "lens": "side-effects@1",
        "model": "claude-haiku-5.5"
      }
    },
    {
      "name": "check_counterparty_nl",
      "kind": "mcp.tool",
      "protocol": "mcp",
      "inputs": [
        "city",
        "company_name",
        "kvk_number",
        "purpose",
        "vat_number"
      ],
      "inputs_omitted": 0,
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "effects": {
        "marker": "◇ AI reading",
        "state": "counted",
        "classes": [
          {
            "class": "reads",
            "confidence": 0.85
          }
        ],
        "lens": "side-effects@1",
        "model": "claude-haiku-5.5"
      }
    },
    {
      "name": "check_estimate_materials",
      "kind": "mcp.tool",
      "protocol": "mcp",
      "inputs": [
        "case_id",
        "token"
      ],
      "inputs_omitted": 0,
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "effects": {
        "marker": "◇ AI reading",
        "state": "counted",
        "classes": [
          {
            "class": "reads",
            "confidence": 0.84
          }
        ],
        "lens": "side-effects@1",
        "model": "claude-haiku-5.5"
      }
    },
    {
      "name": "check_material",
      "kind": "mcp.tool",
      "protocol": "mcp",
      "inputs": [
        "ref"
      ],
      "inputs_omitted": 0,
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "effects": {
        "marker": "◇ AI reading",
        "state": "counted",
        "classes": [
          {
            "class": "reads",
            "confidence": 0.85
          }
        ],
        "lens": "side-effects@1",
        "model": "claude-haiku-5.5"
      }
    },
    {
      "name": "check_task",
      "kind": "mcp.tool",
      "protocol": "mcp",
      "inputs": [
        "receipt_id",
        "receipt_key",
        "task_id"
      ],
      "inputs_omitted": 0,
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false
      },
      "effects": {
        "marker": "◇ AI reading",
        "state": "counted",
        "classes": [
          {
            "class": "reads",
            "confidence": 0.9
          }
        ],
        "lens": "side-effects@1",
        "model": "claude-haiku-5.5"
      }
    },
    {
      "name": "commitment_attest",
      "kind": "mcp.tool",
      "protocol": "mcp",
      "inputs": [
        "conditions",
        "context",
        "obligations",
        "parties"
      ],
      "inputs_omitted": 0,
      "annotations": {
        "readOnlyHint": false,
        "destructiveHint": false,
        "idempotentHint": false,
        "openWorldHint": true
      },
      "effects": {
        "marker": "◇ AI reading",
        "state": "counted",
        "classes": [
          {
            "class": "creates",
            "confidence": 0.85
          }
        ],
        "lens": "side-effects@1",
        "model": "claude-haiku-5.5"
      }
    },
    {
      "name": "commitment_verify",
      "kind": "mcp.tool",
      "protocol": "mcp",
      "inputs": [
        "id"
      ],
      "inputs_omitted": 0,
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "effects": {
        "marker": "◇ AI reading",
        "state": "counted",
        "classes": [
          {
            "class": "reads",
            "confidence": 0.84
          }
        ],
        "lens": "side-effects@1",
        "model": "claude-haiku-5.5"
      }
    },
    {
      "name": "construction_economy",
      "kind": "mcp.tool",
      "protocol": "mcp",
      "inputs": [],
      "inputs_omitted": 0,
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false
      },
      "effects": {
        "marker": "◇ AI reading",
        "state": "counted",
        "classes": [
          {
            "class": "reads",
            "confidence": 0.85
          }
        ],
        "lens": "side-effects@1",
        "model": "claude-haiku-5.5"
      }
    },
    {
      "name": "construction_events",
      "kind": "mcp.tool",
      "protocol": "mcp",
      "inputs": [
        "limit",
        "since_id",
        "type"
      ],
      "inputs_omitted": 0,
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false
      },
      "effects": {
        "marker": "◇ AI reading",
        "state": "counted",
        "classes": [
          {
            "class": "reads",
            "confidence": 0.9
          }
        ],
        "lens": "side-effects@1",
        "model": "claude-haiku-5.5"
      }
    },
    {
      "name": "construction_laws",
      "kind": "mcp.tool",
      "protocol": "mcp",
      "inputs": [
        "upcoming_days"
      ],
      "inputs_omitted": 0,
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false
      },
      "effects": {
        "marker": "◇ AI reading",
        "state": "counted",
        "classes": [
          {
            "class": "reads",
            "confidence": 0.82
          }
        ],
        "lens": "side-effects@1",
        "model": "claude-haiku-5.5"
      }
    },
    {
      "name": "construction_leadtimes",
      "kind": "mcp.tool",
      "protocol": "mcp",
      "inputs": [
        "gemeente"
      ],
      "inputs_omitted": 0,
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false
      },
      "effects": {
        "marker": "◇ AI reading",
        "state": "counted",
        "classes": [
          {
            "class": "reads",
            "confidence": 0.9
          }
        ],
        "lens": "side-effects@1",
        "model": "claude-haiku-5.5"
      }
    },
    {
      "name": "construction_natura",
      "kind": "mcp.tool",
      "protocol": "mcp",
      "inputs": [
        "site"
      ],
      "inputs_omitted": 0,
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false
      },
      "effects": {
        "marker": "◇ AI reading",
        "state": "counted",
        "classes": [
          {
            "class": "reads",
            "confidence": 0.86
          }
        ],
        "lens": "side-effects@1",
        "model": "claude-haiku-5.5"
      }
    },
    {
      "name": "construction_permits",
      "kind": "mcp.tool",
      "protocol": "mcp",
      "inputs": [
        "days",
        "gemeente",
        "max_municipalities"
      ],
      "inputs_omitted": 0,
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false
      },
      "effects": {
        "marker": "◇ AI reading",
        "state": "counted",
        "classes": [
          {
            "class": "reads",
            "confidence": 0.9
          }
        ],
        "lens": "side-effects@1",
        "model": "claude-haiku-5.5"
      }
    },
    {
      "name": "construction_summary",
      "kind": "mcp.tool",
      "protocol": "mcp",
      "inputs": [],
      "inputs_omitted": 0,
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false
      },
      "effects": {
        "marker": "◇ AI reading",
        "state": "counted",
        "classes": [
          {
            "class": "reads",
            "confidence": 0.882
          }
        ],
        "lens": "side-effects@1",
        "model": "claude-haiku-5.5"
      }
    },
    {
      "name": "construction_tenders",
      "kind": "mcp.tool",
      "protocol": "mcp",
      "inputs": [],
      "inputs_omitted": 0,
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false
      },
      "effects": {
        "marker": "◇ AI reading",
        "state": "counted",
        "classes": [
          {
            "class": "reads",
            "confidence": 0.85
          }
        ],
        "lens": "side-effects@1",
        "model": "claude-haiku-5.5"
      }
    },
    {
      "name": "construction_zones",
      "kind": "mcp.tool",
      "protocol": "mcp",
      "inputs": [
        "gemeente"
      ],
      "inputs_omitted": 0,
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false
      },
      "effects": {
        "marker": "◇ AI reading",
        "state": "counted",
        "classes": [
          {
            "class": "reads",
            "confidence": 0.85
          }
        ],
        "lens": "side-effects@1",
        "model": "claude-haiku-5.5"
      }
    },
    {
      "name": "create_task",
      "kind": "mcp.tool",
      "protocol": "mcp",
      "inputs": [
        "budget_cents",
        "deadline",
        "location",
        "need",
        "proof",
        "reply_channel",
        "synthetic"
      ],
      "inputs_omitted": 0,
      "annotations": {
        "readOnlyHint": false,
        "destructiveHint": false,
        "idempotentHint": false,
        "openWorldHint": true
      },
      "effects": {
        "marker": "◇ AI reading",
        "state": "counted",
        "classes": [
          {
            "class": "creates",
            "confidence": 0.8
          }
        ],
        "lens": "side-effects@1",
        "model": "claude-haiku-5.5"
      }
    },
    {
      "name": "estimate_case_answer",
      "kind": "mcp.tool",
      "protocol": "mcp",
      "inputs": [
        "answers",
        "case_id",
        "token",
        "version"
      ],
      "inputs_omitted": 0,
      "annotations": {
        "readOnlyHint": false,
        "destructiveHint": false,
        "idempotentHint": false,
        "openWorldHint": true
      },
      "effects": {
        "marker": "◇ AI reading",
        "state": "counted",
        "classes": [
          {
            "class": "updates",
            "confidence": 0.8
          }
        ],
        "lens": "side-effects@1",
        "model": "claude-haiku-5.5"
      }
    },
    {
      "name": "estimate_case_create",
      "kind": "mcp.tool",
      "protocol": "mcp",
      "inputs": [
        "contact_email",
        "house_number",
        "language",
        "postcode",
        "requester_kind",
        "text"
      ],
      "inputs_omitted": 0,
      "annotations": {
        "readOnlyHint": false,
        "destructiveHint": false,
        "idempotentHint": false,
        "openWorldHint": true
      },
      "effects": {
        "marker": "◇ AI reading",
        "state": "counted",
        "classes": [
          {
            "class": "creates",
            "confidence": 0.86
          }
        ],
        "lens": "side-effects@1",
        "model": "claude-haiku-5.5"
      }
    },
    {
      "name": "estimate_case_files",
      "kind": "mcp.tool",
      "protocol": "mcp",
      "inputs": [
        "case_id",
        "files",
        "token"
      ],
      "inputs_omitted": 0,
      "annotations": {
        "readOnlyHint": false,
        "destructiveHint": false,
        "idempotentHint": false,
        "openWorldHint": true
      },
      "effects": null
    },
    {
      "name": "estimate_case_status",
      "kind": "mcp.tool",
      "protocol": "mcp",
      "inputs": [
        "case_id",
        "token"
      ],
      "inputs_omitted": 0,
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "effects": {
        "marker": "◇ AI reading",
        "state": "counted",
        "classes": [
          {
            "class": "reads",
            "confidence": 0.9
          }
        ],
        "lens": "side-effects@1",
        "model": "claude-haiku-5.5"
      }
    },
    {
      "name": "estimate_case_video",
      "kind": "mcp.tool",
      "protocol": "mcp",
      "inputs": [
        "action",
        "contact_email",
        "file",
        "house_number",
        "intake_id",
        "language",
        "postcode",
        "requester_kind"
      ],
      "inputs_omitted": 3,
      "annotations": {
        "readOnlyHint": false,
        "destructiveHint": false,
        "idempotentHint": false,
        "openWorldHint": true
      },
      "effects": {
        "marker": "◇ AI reading",
        "state": "counted",
        "classes": [
          {
            "class": "creates",
            "confidence": 0.8
          }
        ],
        "lens": "side-effects@1",
        "model": "claude-haiku-5.5"
      }
    },
    {
      "name": "estimate_cost",
      "kind": "mcp.tool",
      "protocol": "mcp",
      "inputs": [
        "area_m2",
        "category",
        "location"
      ],
      "inputs_omitted": 0,
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false
      },
      "effects": {
        "marker": "◇ AI reading",
        "state": "counted",
        "classes": [
          {
            "class": "reads",
            "confidence": 0.82
          }
        ],
        "lens": "side-effects@1",
        "model": "claude-haiku-5.5"
      }
    },
    {
      "name": "fetch",
      "kind": "mcp.tool",
      "protocol": "mcp",
      "inputs": [
        "id"
      ],
      "inputs_omitted": 0,
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false
      },
      "effects": {
        "marker": "◇ AI reading",
        "state": "counted",
        "classes": [
          {
            "class": "reads",
            "confidence": 0.85
          }
        ],
        "lens": "side-effects@1",
        "model": "claude-haiku-5.5"
      }
    },
    {
      "name": "get_evidence",
      "kind": "mcp.tool",
      "protocol": "mcp",
      "inputs": [
        "task_id"
      ],
      "inputs_omitted": 0,
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false
      },
      "effects": {
        "marker": "◇ AI reading",
        "state": "counted",
        "classes": [
          {
            "class": "reads",
            "confidence": 0.88
          }
        ],
        "lens": "side-effects@1",
        "model": "claude-haiku-5.5"
      }
    },
    {
      "name": "ground_astranl",
      "kind": "mcp.tool",
      "protocol": "mcp",
      "inputs": [
        "budget_ms",
        "claims",
        "max_age_seconds",
        "max_items",
        "protocol",
        "query",
        "source"
      ],
      "inputs_omitted": 0,
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false
      },
      "effects": {
        "marker": "◇ AI reading",
        "state": "counted",
        "classes": [
          {
            "class": "reads",
            "confidence": 0.802
          }
        ],
        "lens": "side-effects@1",
        "model": "claude-haiku-5.5"
      }
    },
    {
      "name": "ground_citation",
      "kind": "mcp.tool",
      "protocol": "mcp",
      "inputs": [
        "doi"
      ],
      "inputs_omitted": 0,
      "annotations": {
        "readOnlyHint": false,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "effects": null
    },
    {
      "name": "ground_component",
      "kind": "mcp.tool",
      "protocol": "mcp",
      "inputs": [
        "manufacturer",
        "mpn"
      ],
      "inputs_omitted": 0,
      "annotations": {
        "readOnlyHint": false,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "effects": null
    },
    {
      "name": "housing_need",
      "kind": "mcp.tool",
      "protocol": "mcp",
      "inputs": [
        "consent",
        "need",
        "principal",
        "real_person"
      ],
      "inputs_omitted": 0,
      "annotations": {
        "readOnlyHint": false,
        "destructiveHint": false,
        "idempotentHint": false,
        "openWorldHint": true
      },
      "effects": {
        "marker": "◇ AI reading",
        "state": "counted",
        "classes": [
          {
            "class": "creates",
            "confidence": 0.85
          }
        ],
        "lens": "side-effects@1",
        "model": "claude-haiku-5.5"
      }
    },
    {
      "name": "machines_search",
      "kind": "mcp.tool",
      "protocol": "mcp",
      "inputs": [
        "task"
      ],
      "inputs_omitted": 0,
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "effects": {
        "marker": "◇ AI reading",
        "state": "counted",
        "classes": [
          {
            "class": "reads",
            "confidence": 0.84
          }
        ],
        "lens": "side-effects@1",
        "model": "claude-haiku-5.5"
      }
    },
    {
      "name": "market_indicators",
      "kind": "mcp.tool",
      "protocol": "mcp",
      "inputs": [
        "indicator"
      ],
      "inputs_omitted": 0,
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "effects": {
        "marker": "◇ AI reading",
        "state": "counted",
        "classes": [
          {
            "class": "reads",
            "confidence": 0.882
          }
        ],
        "lens": "side-effects@1",
        "model": "claude-haiku-5.5"
      }
    },
    {
      "name": "nl_municipal_build_rules",
      "kind": "mcp.tool",
      "protocol": "mcp",
      "inputs": [
        "bouwkosten_eur",
        "municipality"
      ],
      "inputs_omitted": 0,
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false
      },
      "effects": {
        "marker": "◇ AI reading",
        "state": "counted",
        "classes": [
          {
            "class": "reads",
            "confidence": 0.8
          }
        ],
        "lens": "side-effects@1",
        "model": "claude-haiku-5.5"
      }
    },
    {
      "name": "order_materials",
      "kind": "mcp.tool",
      "protocol": "mcp",
      "inputs": [
        "action",
        "estimate_case_id",
        "estimate_token",
        "idempotency_key",
        "list_id",
        "list_revision",
        "order_id",
        "project_id"
      ],
      "inputs_omitted": 1,
      "annotations": {
        "readOnlyHint": false,
        "destructiveHint": false,
        "idempotentHint": false,
        "openWorldHint": false
      },
      "effects": null
    },
    {
      "name": "record_counterparty_check",
      "kind": "mcp.tool",
      "protocol": "mcp",
      "inputs": [
        "check_id"
      ],
      "inputs_omitted": 0,
      "annotations": {
        "readOnlyHint": false,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false
      },
      "effects": {
        "marker": "◇ AI reading",
        "state": "counted",
        "classes": [
          {
            "class": "creates",
            "confidence": 0.82
          }
        ],
        "lens": "side-effects@1",
        "model": "claude-haiku-5.5"
      }
    },
    {
      "name": "search",
      "kind": "mcp.tool",
      "protocol": "mcp",
      "inputs": [
        "query"
      ],
      "inputs_omitted": 0,
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false
      },
      "effects": {
        "marker": "◇ AI reading",
        "state": "counted",
        "classes": [
          {
            "class": "reads",
            "confidence": 0.904
          }
        ],
        "lens": "side-effects@1",
        "model": "claude-haiku-5.5"
      }
    },
    {
      "name": "verify_astranl",
      "kind": "mcp.tool",
      "protocol": "mcp",
      "inputs": [
        "ref"
      ],
      "inputs_omitted": 0,
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false
      },
      "effects": {
        "marker": "◇ AI reading",
        "state": "counted",
        "classes": [
          {
            "class": "reads",
            "confidence": 0.8
          }
        ],
        "lens": "side-effects@1",
        "model": "claude-haiku-5.5"
      }
    }
  ],
  "capability_count": 36,
  "non_tool_capability_count": 0,
  "tool_count_scope": "MCP tools, OpenAPI operations, WebMCP tools and A2A skills; excludes prompts and resources.",
  "tools_omitted": 0,
  "tools_state": "recorded",
  "changes": [],
  "payment_rails": {
    "protocols": [],
    "http_402_seen": false
  },
  "not_covered": [
    "We don't call tools.",
    "We don't rate or certify.",
    "We don't publish prices.",
    "We cover only what was observed."
  ],
  "evidence": [
    {
      "section": "Identity",
      "classes": [
        "observed",
        "declared"
      ],
      "observed_at": "2026-11-14T04:01:01.731Z"
    },
    {
      "section": "Tools",
      "classes": [
        "declared"
      ],
      "observed_at": "2026-11-14T04:01:01.731Z"
    },
    {
      "section": "Effect readings (AI)",
      "classes": [
        "AI reading"
      ],
      "observed_at": "2026-11-14T04:01:01.731Z"
    },
    {
      "section": "Change history",
      "classes": [
        "observed"
      ],
      "observed_at": "2026-11-14T04:01:01.731Z",
      "observation_times": []
    },
    {
      "section": "Payment rails",
      "classes": [
        "observed"
      ],
      "observed_at": "2026-11-14T04:01:01.731Z"
    }
  ]
}
```
