Skip to main content
Glama

verify_contractor_license

Verify contractor licenses in California, Texas, Florida, and New York by license number, name, or business. Check license status, expiration dates, classifications, and contact information from official state licensing boards.

Instructions

Verify a contractor's license across US states (CA, TX, FL, NY). Search by license number, person name, or business name. Returns license status, expiration, classifications, and contact info from official state licensing boards.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
stateYesUS state code: CA (California CSLB), TX (Texas TDLR), FL (Florida DBPR), NY (New York City)
licenseNumberNoLicense number to look up (e.g. "1096738" for CA, "CGC1507744" for FL)
lastNameNoLast name for person name search
firstNameNoFirst name for person name search (optional)
businessNameNoBusiness or company name to search for
limitNoNumber of results to return (max 25)

Implementation Reference

  • The implementation of the verify_contractor_license tool, including schema validation with zod and the handler logic that calls a backend service.
    server.tool(
      "verify_contractor_license",
      "Verify a contractor's license across US states (CA, TX, FL, NY). Search by license number, person name, or business name. Returns license status, expiration, classifications, and contact info from official state licensing boards.",
      {
        state: z
          .enum(["CA", "TX", "FL", "NY"])
          .describe("US state code: CA (California CSLB), TX (Texas TDLR), FL (Florida DBPR), NY (New York City)"),
        licenseNumber: z
          .string()
          .optional()
          .describe('License number to look up (e.g. "1096738" for CA, "CGC1507744" for FL)'),
        lastName: z
          .string()
          .optional()
          .describe("Last name for person name search"),
        firstName: z
          .string()
          .optional()
          .describe("First name for person name search (optional)"),
        businessName: z
          .string()
          .optional()
          .describe("Business or company name to search for"),
        limit: z
          .number()
          .int()
          .min(1)
          .max(25)
          .default(10)
          .describe("Number of results to return (max 25)"),
      },
      async ({ state, licenseNumber, lastName, firstName, businessName, limit }) => {
        const params = new URLSearchParams();
        params.set("state", state);
        params.set("limit", String(limit));
        if (licenseNumber) params.set("licenseNumber", licenseNumber);
        if (lastName) params.set("lastName", lastName);
        if (firstName) params.set("firstName", firstName);
        if (businessName) params.set("businessName", businessName);
    
        const url = `${BACKEND_URL}/contractor-license/verify?${params.toString()}`;
        const res = await fetch(url);
        const data = await res.json();
    
        if (!data.success) {
          return {
            isError: true,
            content: [{ type: "text", text: `Error: ${data.error}` }],
          };
        }
    
        return {
          content: [{ type: "text", text: JSON.stringify(data, null, 2) }],
        };
      }
    );

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/lulzasaur9192/marketplace-search-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server