Skip to main content
Glama

License history

license_history
Read-onlyIdempotent

A California contractor license's record in the CSLB's public file, and every change since the directory began reading it daily: status and suspensions, workers' comp type and dates, bond amounts and dates, classes, expiry. Give a CSLB license number or a listing link. It never includes an insurer, surety or person's name, or a policy, bond or case number. Report what it says; do not judge the business. Not for decisions about a person's credit, employment, insurance or housing.

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": {
      "license": "<license>"
    },
    "name": "license_history"
  }
}

Input Schema

NameRequiredDescriptionDefault
licenseYesA CSLB license number (e.g. 1000002), or a listing link or slug from find_businesses.

Output Schema

NameRequiredDescriptionDefault
noteNo
pageNo
slugNo
foundYes
watchNo
licenseNo
licensesNo
how_checkedNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already cover read-only, idempotent and closed-world safety, so the description is not carrying that burden. It adds genuinely non-structured context: the history depth (changes since daily ingestion), the negative disclosure of what is never included (insurer, surety, person's name, policy/bond/case numbers), and the framing instruction not to render judgments. That is useful behavioral context beyond the annotation set.

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?

The field inventory and the exclusion rule are front-loaded appropriately, and the input instruction follows. The two closing sentences ('Report what it says; do not judge the business') are slightly editorial but still carry a real usage constraint. Dense but largely waste-free.

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?

An output schema exists, so return structure need not be explained, and the description still sketches the field families and explicitly bounds what is omitted. For a single-parameter read tool with full annotations this is close to sufficient; the only gap is that it does not distinguish this from verify_license or state whether history is paginated or truncated.

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 description coverage is 100% and the single parameter already documents both accepted forms (number, or listing link/slug from find_businesses). The description's 'Give a CSLB license number or a listing link' largely repeats the schema rather than adding format rules, validation behaviour, or what happens on an ambiguous or not-found input. Baseline 3 is appropriate.

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?

The description names a specific resource (a California contractor license's CSLB record) and a specific scope (every change since the directory began reading it daily), then enumerates the field families returned: status, suspensions, workers' comp, bond amounts/dates, classes, expiry. This is far more than a restatement of the title 'License history' and makes it distinguishable from find_businesses and verify_license.

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 gives concrete input guidance ('Give a CSLB license number or a listing link') and an explicit exclusion ('Not for decisions about a person's credit, employment, insurance or housing'), which is a real when-not-to-use rule. It stops short of naming a sibling as the alternative (e.g. verify_license for a quick status check), so the routing is implied rather than explicit.

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