Skip to main content
Glama

Why a norm applies to a project

check_norm_for_project
Read-onlyIdempotent

For one norm and a project profile: does it apply, why (by use, authority, stage) and which conditions could change that.

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": "check_norm_for_project"
  }
}

Input Schema

NameRequiredDescriptionDefault
idYesNorm id from search_norms or project_requirements, e.g. u-rb01-preconditions
useNoUse code, or several comma-separated for a mixed building, e.g. residential or retail,office. See list_profile_options.
bedsNoNumber of beds, e.g. in a hotel, hospital or care home; used for thresholds in norms
cityNoMunicipality slug, e.g. tel-aviv, jerusalem. See list_profile_options.
roleNoShow the norms for one party, e.g. architect, developer, fire (fire safety consultant), authority: a role code from list_profile_options. Omit for all parties
siteNoComma-separated plot condition codes that apply; 'none' = checked and none apply; omit = not checked
roomsNoNumber of rooms; used for thresholds in norms
stageNoProject stage: feasibility (היתכנות ותכנון ראשוני), design (תכנון מפורט), permit (רישוי ובקשה להיתר), execution (ביצוע באתר), completion (גמר וטופס 4), operation (תפעול ותחזוקה). Omit = all stages
trackNoPermit track: standard, short or fast. Omit if unknown (no norm is excluded)
statusNonew = new building; existing = existing building
storeysNoNumber of storeys; used for thresholds in norms
featuresNoComma-separated project element codes from list_profile_options (features), e.g. pool; 'none' = checked and none apply; omit = not checked
occupancyNoNumber of occupants; used for occupancy thresholds in norms
floor_areaNoFloor area, m²; used for area thresholds in norms
height_classNoBuilding height class: low, high or multistory. Omit if unknown (no norm is excluded)
dwelling_unitsNoNumber of dwelling units (apartments)
building_heightNoBuilding height, m; used for height thresholds in norms

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed14 schema fields changed
    • addedInput schema / properties / beds / description
      Added value: +"Number of beds, e.g. in a hotel, hospital or care home; used for thresholds in norms"
    • changedInput schema / properties / building_height / description
      Previous value: -"Building height, m"New value: +"Building height, m; used for height thresholds in norms"
    • addedInput schema / properties / dwelling_units / description
      Added value: +"Number of dwelling units (apartments)"
    • changedInput schema / properties / features / description
      Previous value: -"Comma-separated project element codes, e.g. pool; omit = not checked"New value: +"Comma-separated project element codes from list_profile_options (features), e.g. pool; 'none' = checked and none apply; omit = not checked"
    • changedInput schema / properties / floor_area / description
      Previous value: -"Floor area, m²"New value: +"Floor area, m²; used for area thresholds in norms"
    • changedInput schema / properties / height_class / description
      Previous value: -"Building height class"New value: +"Building height class: low, high or multistory. Omit if unknown (no norm is excluded)"
    • changedInput schema / properties / id / description
      Previous value: -"Norm id"New value: +"Norm id from search_norms or project_requirements, e.g. u-rb01-preconditions"
    • changedInput schema / properties / occupancy / description
      Previous value: -"Number of occupants"New value: +"Number of occupants; used for occupancy thresholds in norms"
    • changedInput schema / properties / role / description
      Previous value: -"Whose obligations to show, e.g. a role code from list_profile_options"New value: +"Show the norms for one party, e.g. architect, developer, fire (fire safety consultant), authority: a role code from list_profile_options. Omit for all parties"
    • addedInput schema / properties / rooms / description
      Added value: +"Number of rooms; used for thresholds in norms"
    • changedInput schema / properties / stage / description
      Previous value: -"Project stage"New value: +"Project stage: feasibility (היתכנות ותכנון ראשוני), design (תכנון מפורט), permit (רישוי ובקשה להיתר), execution (ביצוע באתר), completion (גמר וטופס 4), operation (תפעול ותחזוקה). Omit = all stages"
    • changedInput schema / properties / status / description
      Previous value: -"New building or existing building"New value: +"new = new building; existing = existing building"
    • addedInput schema / properties / storeys / description
      Added value: +"Number of storeys; used for thresholds in norms"
    • changedInput schema / properties / track / description
      Previous value: -"Permit track"New value: +"Permit track: standard, short or fast. Omit if unknown (no norm is excluded)"
  2. First observed

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare read-only, idempotent, open-world, non-destructive behavior. The description adds that the tool returns an applicability verdict, reasons by use/authority/stage, and conditions that could change the outcome—useful behavioral context beyond the safety profile.

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

Conciseness5/5

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

A single front-loaded sentence with no filler; it communicates purpose and output shape in one pass.

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

Completeness4/5

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

For a 17-parameter, no-output-schema tool, the description covers the core question and the shape of the answer. The schema handles per-parameter details and omission semantics, so the description is adequate, though it could say more about how partial profiles are treated.

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

Parameters3/5

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

Schema coverage is 100% and each parameter has a detailed description, so the schema does the heavy lifting. The description only hints that use, authority (role), and stage drive the reasoning, adding minimal meaning beyond the schema.

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

Purpose4/5

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

The description states a specific operation: evaluating whether one norm applies to a project profile and explaining why (use, authority, stage) plus conditions that could change the result. This clearly separates it from search_norms (find norms) and get_norm (retrieve a norm), though it does not name those siblings explicitly.

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

Usage Guidelines3/5

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

The phrase 'For one norm and a project profile' implies the scenario, but there is no explicit when-to-use guidance, no exclusions, and no named alternatives. An agent must infer that this is the right tool when it already has a norm id and profile data.

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.