Skip to main content
Glama

Craft Quantities: construction material calculators

Get one calculator's input fields

get_calculator
Read-onlyIdempotent

Returns the input fields of one calculator, identified by its slug: each field's id, label, accepted units, range and default value in metric and US units, with the calculator's version, page and citation. It computes nothing.

Input Schema

NameRequiredDescriptionDefault
slugYesThe calculator's slug, such as concrete-calculator.
detailNofull (the default): the whole answer. summary: the result lines, the citation line and the page only — fewer tokens to read.full

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • changedInput schema / properties / slug / description
      Previous value: -"A calculator slug, such as concrete-calculator."New value: +"The calculator's slug, such as concrete-calculator."
    • changedOutput schema / anyOf
      Previous value: -[
      -  {
      -    "properties": {
      -      "calculator": {
      -        "properties": {
      -          "category": {
      -            "type": "string"
      -          },
      -          "description": {
      -            "type": "string"
      -          },
      -          "json": {
      -            "description": "The calculator's static API document, with its test vectors.",
      -            "type": "string"
      -          },
      -          "lastVerified": {
      -            "description": "The date the calculator's sources were last checked.",
      -            "type": "string"
      -          },
      -          "slug": {
      -            "type": "string"
      -          },
      -          "title": {
      -            "type": "string"
      -          },
      -          "url": {
      -            "description": "The calculator's page on craftquantities.com.",
      -            "type": "string"
      -          },
      -          "version": {
      -            "description": "The calculator's own version; a result names the calculator that produced it.",
      -            "type": "string"
      -          }
      -        },
      -        "required": [
      -          "slug",
      -          "title",
      -          "category",
      -          "version",
      -          "lastVerified",
      -          "url",
      -          "json"
      -        ],
      -        "type": "object"
      -      },
      -      "changelog": {
      -        "items": {
      -          "properties": {
      -            "change": {
      -              "type": "string"
      -            },
      -            "date": {
      -              "type": "string"
      -            },
      -            "version": {
      -              "type": "string"
      -            }
      -          },
      -          "type": "object"
      -        },
      -        "type": "array"
      -      },
      -      "citation": {
      -        "properties": {
      -          "accessDate": {
      -            "anyOf": [
      -              {
      -                "type": "string"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ]
      -          },
      -          "author": {
      -            "type": "string"
      -          },
      -          "formats": {
      -            "properties": {
      -              "apa": {
      -                "type": "string"
      -              },
      -              "bibtex": {
      -                "type": "string"
      -              },
      -              "harvard": {
      -                "type": "string"
      -              },
      -              "plain": {
      -                "type": "string"
      -              }
      -            },
      -            "required": [
      -              "plain",
      -              "apa",
      -              "harvard",
      -              "bibtex"
      -            ],
      -            "type": "object"
      -          },
      -          "sourcesChecked": {
      -            "anyOf": [
      -              {
      -                "type": "string"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ]
      -          },
      -          "title": {
      -            "type": "string"
      -          },
      -          "url": {
      -            "type": "string"
      -          },
      -          "version": {
      -            "anyOf": [
      -              {
      -                "type": "string"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ]
      -          }
      -        },
      -        "required": [
      -          "author",
      -          "title",
      -          "url",
      -          "formats",
      -          "accessDate"
      -        ],
      -        "type": "object"
      -      },
      -      "inputs": {
      -        "items": {
      -          "properties": {
      -            "acceptedUnits": {
      -              "items": {
      -                "type": "string"
      -              },
      -              "type": "array"
      -            },
      -            "baseUnit": {
      -              "type": "string"
      -            },
      -            "dimension": {
      -              "type": "string"
      -            },
      -            "help": {
      -              "type": "string"
      -            },
      -            "id": {
      -              "type": "string"
      -            },
      -            "label": {
      -              "type": "string"
      -            },
      -            "money": {
      -              "enum": [
      -                "rate",
      -                "amount"
      -              ]
      -            },
      -            "opening": {
      -              "required": [
      -                "metric",
      -                "imperial"
      -              ],
      -              "type": "object"
      -            },
      -            "options": {
      -              "items": {
      -                "properties": {
      -                  "label": {
      -                    "type": "string"
      -                  },
      -                  "value": {
      -                    "type": "string"
      -                  }
      -                },
      -                "required": [
      -                  "value",
      -                  "label"
      -                ],
      -                "type": "object"
      -              },
      -              "type": "array"
      -            },
      -            "range": {
      -              "properties": {
      -                "max": {
      -                  "type": "number"
      -                },
      -                "min": {
      -                  "type": "number"
      -                }
      -              },
      -              "type": "object"
      -            },
      -            "type": {
      -              "enum": [
      -                "number",
      -                "select"
      -              ]
      -            }
      -          },
      -          "required": [
      -            "id",
      -            "label",
      -            "type",
      -            "help",
      -            "opening"
      -          ],
      -          "type": "object"
      -        },
      -        "type": "array"
      -      },
      -      "licence": {
      -        "properties": {
      -          "attribution": {
      -            "type": "string"
      -          },
      -          "name": {
      -            "type": "string"
      -          },
      -          "url": {
      -            "type": "string"
      -          }
      -        },
      -        "required": [
      -          "name",
      -          "url",
      -          "attribution"
      -        ],
      -        "type": "object"
      -      },
      -      "related": {
      -        "items": {
      -          "type": "string"
      -        },
      -        "type": "array"
      -      },
      -      "sources": {
      -        "items": {
      -          "properties": {
      -            "label": {
      -              "description": "The source as the calculator cites it.",
      -              "type": "string"
      -            },
      -            "references": {
      -              "items": {
      -                "properties": {
      -                  "body": {
      -                    "type": "string"
      -                  },
      -                  "document": {
      -                    "type": "string"
      -                  },
      -                  "edition": {
      -                    "type": "string"
      -                  },
      -                  "kind": {
      -                    "enum": [
      -                      "code",
      -                      "standard"
      -                    ]
      -                  },
      -                  "section": {
      -                    "type": "string"
      -                  }
      -                },
      -                "required": [
      -                  "kind",
      -                  "document"
      -                ],
      -                "type": "object"
      -              },
      -              "type": "array"
      -            },
      -            "url": {
      -              "description": "Only where the calculator gives one; none is invented.",
      -              "type": "string"
      -            }
      -          },
      -          "required": [
      -            "label"
      -          ],
      -          "type": "object"
      -        },
      -        "type": "array"
      -      },
      -      "standards": {
      -        "items": {
      -          "properties": {
      -            "page": {
      -              "type": "string"
      -            },
      -            "publisher": {
      -              "type": "string"
      -            },
      -            "title": {
      -              "type": "string"
      -            }
      -          },
      -          "required": [
      -            "title",
      -            "page"
      -          ],
      -          "type": "object"
      -        },
      -        "type": "array"
      -      },
      -      "testCases": {
      -        "type": "integer"
      -      }
      -    },
      -    "required": [
      -      "calculator",
      -      "inputs",
      -      "sources",
      -      "standards",
      -      "citation",
      -      "licence"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "properties": {
      -      "citation": {
      -        "description": "The one citation line, built from the answer's own data.",
      -        "type": "string"
      -      },
      -      "detail": {
      -        "const": "summary"
      -      },
      -      "lines": {
      -        "description": "The result lines, as the report's table gives them.",
      -        "items": {
      -          "additionalProperties": {
      -            "type": "string"
      -          },
      -          "type": "object"
      -        },
      -        "type": "array"
      -      },
      -      "more": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ]
      -      },
      -      "notes": {
      -        "description": "What a professional must decide, when to call one, a false-friend warning, that adoption is local: kept in every summary.",
      -        "items": {
      -          "type": "string"
      -        },
      -        "type": "array"
      -      },
      -      "open": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ]
      -      },
      -      "title": {
      -        "type": "string"
      -      },
      -      "tool": {
      -        "type": "string"
      -      },
      -      "url": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ]
      -      }
      -    },
      -    "required": [
      -      "detail",
      -      "tool",
      -      "title",
      -      "lines",
      -      "notes",
      -      "citation",
      -      "url",
      -      "open",
      -      "more"
      -    ],
      -    "type": "object"
      -  }
      -]New value: +[
      +  {
      +    "properties": {
      +      "calculator": {
      +        "properties": {
      +          "category": {
      +            "type": "string"
      +          },
      +          "description": {
      +            "type": "string"
      +          },
      +          "json": {
      +            "description": "The calculator's static API document, with its test vectors.",
      +            "type": "string"
      +          },
      +          "lastVerified": {
      +            "description": "The date the calculator's sources were last checked.",
      +            "type": "string"
      +          },
      +          "slug": {
      +            "type": "string"
      +          },
      +          "title": {
      +            "type": "string"
      +          },
      +          "url": {
      +            "description": "The calculator's page on craftquantities.com.",
      +            "type": "string"
      +          },
      +          "version": {
      +            "description": "The calculator's own version; a result names the calculator that produced it.",
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "slug",
      +          "title",
      +          "category",
      +          "version",
      +          "lastVerified",
      +          "url",
      +          "json"
      +        ],
      +        "type": "object"
      +      },
      +      "changelog": {
      +        "items": {
      +          "properties": {
      +            "change": {
      +              "type": "string"
      +            },
      +            "date": {
      +              "type": "string"
      +            },
      +            "version": {
      +              "type": "string"
      +            }
      +          },
      +          "type": "object"
      +        },
      +        "type": "array"
      +      },
      +      "citation": {
      +        "properties": {
      +          "accessDate": {
      +            "anyOf": [
      +              {
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ]
      +          },
      +          "author": {
      +            "type": "string"
      +          },
      +          "formats": {
      +            "properties": {
      +              "apa": {
      +                "type": "string"
      +              },
      +              "bibtex": {
      +                "type": "string"
      +              },
      +              "harvard": {
      +                "type": "string"
      +              },
      +              "plain": {
      +                "type": "string"
      +              }
      +            },
      +            "required": [
      +              "plain",
      +              "apa",
      +              "harvard",
      +              "bibtex"
      +            ],
      +            "type": "object"
      +          },
      +          "sourcesChecked": {
      +            "anyOf": [
      +              {
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ]
      +          },
      +          "title": {
      +            "type": "string"
      +          },
      +          "url": {
      +            "type": "string"
      +          },
      +          "version": {
      +            "anyOf": [
      +              {
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ]
      +          }
      +        },
      +        "required": [
      +          "author",
      +          "title",
      +          "url",
      +          "formats",
      +          "accessDate"
      +        ],
      +        "type": "object"
      +      },
      +      "inputs": {
      +        "items": {
      +          "properties": {
      +            "acceptedUnits": {
      +              "items": {
      +                "type": "string"
      +              },
      +              "type": "array"
      +            },
      +            "baseUnit": {
      +              "type": "string"
      +            },
      +            "dimension": {
      +              "type": "string"
      +            },
      +            "help": {
      +              "type": "string"
      +            },
      +            "id": {
      +              "type": "string"
      +            },
      +            "label": {
      +              "type": "string"
      +            },
      +            "money": {
      +              "enum": [
      +                "rate",
      +                "amount"
      +              ]
      +            },
      +            "opening": {
      +              "required": [
      +                "metric",
      +                "imperial"
      +              ],
      +              "type": "object"
      +            },
      +            "options": {
      +              "items": {
      +                "properties": {
      +                  "label": {
      +                    "type": "string"
      +                  },
      +                  "value": {
      +                    "type": "string"
      +                  }
      +                },
      +                "required": [
      +                  "value",
      +                  "label"
      +                ],
      +                "type": "object"
      +              },
      +              "type": "array"
      +            },
      +            "range": {
      +              "properties": {
      +                "max": {
      +                  "type": "number"
      +                },
      +                "min": {
      +                  "type": "number"
      +                }
      +              },
      +              "type": "object"
      +            },
      +            "type": {
      +              "enum": [
      +                "number",
      +                "select"
      +              ]
      +            }
      +          },
      +          "required": [
      +            "id",
      +            "label",
      +            "type",
      +            "help",
      +            "opening"
      +          ],
      +          "type": "object"
      +        },
      +        "type": "array"
      +      },
      +      "licence": {
      +        "properties": {
      +          "attribution": {
      +            "type": "string"
      +          },
      +          "name": {
      +            "type": "string"
      +          },
      +          "url": {
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "name",
      +          "url",
      +          "attribution"
      +        ],
      +        "type": "object"
      +      },
      +      "related": {
      +        "items": {
      +          "type": "string"
      +        },
      +        "type": "array"
      +      },
      +      "testCases": {
      +        "type": "integer"
      +      }
      +    },
      +    "required": [
      +      "calculator",
      +      "inputs",
      +      "citation",
      +      "licence"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "properties": {
      +      "citation": {
      +        "description": "The one citation line, built from the answer's own data.",
      +        "type": "string"
      +      },
      +      "detail": {
      +        "const": "summary"
      +      },
      +      "lines": {
      +        "description": "The result lines, as the report's table gives them.",
      +        "items": {
      +          "additionalProperties": {
      +            "type": "string"
      +          },
      +          "type": "object"
      +        },
      +        "type": "array"
      +      },
      +      "more": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "notes": {
      +        "description": "What a professional must decide, when to call one, a false-friend warning, that adoption is local: kept in every summary.",
      +        "items": {
      +          "type": "string"
      +        },
      +        "type": "array"
      +      },
      +      "open": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "title": {
      +        "type": "string"
      +      },
      +      "tool": {
      +        "type": "string"
      +      },
      +      "url": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      }
      +    },
      +    "required": [
      +      "detail",
      +      "tool",
      +      "title",
      +      "lines",
      +      "notes",
      +      "citation",
      +      "url",
      +      "open",
      +      "more"
      +    ],
      +    "type": "object"
      +  }
      +]
  2. First observed

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds genuinely new behavioral context not in annotations: it lists exactly what is returned (units in metric and US, version, page, citation) and asserts it performs no computation, clarifying it is a pure lookup.

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?

A single dense sentence front-loads the core action and ends with the differentiator 'It computes nothing'. Every clause is substantive, though the field enumeration is somewhat list-heavy given an output schema already exists.

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?

With an output schema present, the return-field enumeration is arguably redundant, but nothing an agent needs to call the tool correctly is missing: slug identification, the detail-mode trade-off, and the no-computation caveat are all present. Only the explicit sibling routing is absent.

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%: the slug pattern/example and the detail enum (full vs summary token trade-off) are fully documented in the schema. The description confirms slug-based identification but adds no syntax or format meaning beyond what the schema already provides, so baseline 3 applies.

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+resource ('Returns the input fields of one calculator') and enumerates the returned content. Critically, 'It computes nothing' cleanly distinguishes it from the sibling 'calculate', so an agent can separate the two without opening schemas.

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?

'It computes nothing' implies the agent should not use this to compute and should look elsewhere (e.g., calculate), giving clear context. However, it never explicitly names the alternative tool or states the positive 'use this when you need field metadata' condition, so routing is inferred rather than spelled out.

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.

Resources