Skip to main content
Glama

Belgium Data Desk

Borehole, CPT or groundwater-well details from DOV

get_subsurface_record
Read-only

Details of one DOV record by id from subsurface_at_location: for a borehole ('boring/…') its depth, purpose and layer-by-layer interpretations (formal stratigraphy with formation names, the logged lithological description, hydrogeological units) plus ids of further interpretations; for a groundwater screen ('filter/…') the aquifer, screen depth, water levels (latest, lowest, highest, last 12 readings, yearly means) and groundwater quality (every result of the latest lab sample, and trends of nitrate, chloride, sulphate, ammonium, conductivity and pH); for a CPT ('sondering/…') cone resistance and sleeve friction per metre with the Robertson soil behaviour type; for a soil profile ('bodemlocatie/…') its classification, site (water table, drainage, land use, parent material) and per horizon the Munsell colour, texture, organic carbon, pH and lime; or one interpretation ('interpretatie/…'). Codes are decoded with DOV's published code lists; every answer starts with key_facts. Examples: Layer-by-layer log of one borehole → {"id":"boring/2016-140688"}; Water levels and groundwater quality at one monitoring screen → {"id":"filter/1978-006372"}; Soil behaviour per metre from one cone penetration test → {"id":"sondering/1984-065526"}.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "id": "<id>"
    },
    "name": "get_subsurface_record"
  }
}

Input Schema

NameRequiredDescriptionDefault
idYesRecord id such as 'boring/2016-140688', 'filter/1978-006372', 'sondering/1984-065526', 'bodemlocatie/1964-007478' or 'interpretatie/1993-088861' (a DOV URL for the record also works).

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, openWorldHint=true and destructiveHint=false, so the safety profile is covered. The description adds real value beyond that - which fields come back per record type, that codes are decoded via DOV code lists, and that every response starts with key_facts. It does not say what happens on an unknown or malformed id, which is the remaining behavioral gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with purpose and id source, then a dense but purposeful per-type enumeration, then examples. No filler sentences, though the core content is delivered as one very long semicolon-chained sentence that is harder to scan than a short bulleted structure would be.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, so the description carries the full burden of describing return values - and it does so per record type at field-level granularity, plus notes the key_facts envelope and decoded codes. For a single-parameter lookup tool this is complete enough to call correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the schema already documents the id format and URL fallback, so the baseline is 3. The description goes further by tying each id prefix ('boring/', 'filter/', 'sondering/', 'bodemlocatie/', 'interpretatie/') to the content it unlocks, which is genuinely useful meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Details of one DOV record by id') and then enumerates exactly what is returned for each record type: borehole, groundwater screen, CPT, soil profile, interpretation. This distinguishes it cleanly from the sibling subsurface_at_location, which supplies the ids.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'by id from subsurface_at_location' makes the upstream tool explicit, and the three worked examples map concrete intent to concrete ids, which functions as when-to-use guidance. It stops short of an explicit exclusion (e.g., 'use search_subsurface instead when you only have a location and no id').

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.