Reference Source

CDL endorsement prerequisites and testing sequence

Getting a CDL endorsement is a sequence, not a single application: which test type is required (knowledge-only vs. knowledge plus skills), whether the endorsement can be added at the commercial-learner's-permit (CLP) stage or only after a full CDL, and — for the hazardous materials endorsement specifically — a separate federal TSA security threat assessment that gates issuance independent of the state testing process, with its own renewal clock. Each record is one endorsement type, carrying the required test, its CLP eligibility, what the permit actually lets you drive once you have it, and any federal prerequisite beyond state testing. Being allowed an endorsement on a CLP is not the same as being allowed to do the work: a learner's permit tanker endorsement covers an empty tank only, and a permit passenger or school bus endorsement carries no passengers but examiners and trainees. Answers 'can I get my tanker endorsement on a learner's permit', 'can I haul a load on it', 'do I need a background check for a hazmat endorsement', 'how often does the TSA hazmat clearance have to be renewed'.

Records5
Sources3
Verified
Review by
LicenceUS federal regulation — 17 USC 105, no copyright

The data

EndorsementTest requiredAllowed on a CLP (learner's permit)
Double/Triple Trailersa knowledge testNo — a CLP may carry only the Passenger, School bus and Tank vehicle endorsements, and this is not one of them
Hazardous Materialsa knowledge testNo — a CLP may carry only the Passenger, School bus and Tank vehicle endorsements, and this is not one of them
Passengera knowledge and a skills testYes — 383.93(a)(2) names this among the only endorsements allowed on a commercial learner's permit
School busa knowledge and a skills testYes — 383.93(a)(2) names this among the only endorsements allowed on a commercial learner's permit
Tank vehiclea knowledge testYes — 383.93(a)(2) names this among the only endorsements allowed on a commercial learner's permit

Where this came from

Every record above links the page it was taken from and quotes the sentence that states it. These are the 3 sources this dataset was assembled from.

Machine-readable

From your own code

Same records, same quotes, without scraping the page: refsource is on PyPI and npm. Each value comes back carrying the URL it was read from and the sentence on that page that states it — .source and .quote sit on the value itself rather than in a side channel, so the checking step is available instead of skipped.

pip install refsource
refsource lookup cdl-endorsement-prerequisites endorsement="Double/Triple Trailers"

npx -y refsource lookup cdl-endorsement-prerequisites endorsement="Double/Triple Trailers"

Set your AI assistant up to use this

Two files and no account. Put this in .mcp.json at the root of your project — Claude Code, Cursor, Windsurf, VS Code and Codex all read that file — and your assistant can look this dataset up instead of recalling it. The server is remote, keyless and read-only.

{
  "mcpServers": {
    "referencesource": {
      "type": "http",
      "url": "https://referencesource.org/mcp"
    }
  }
}

Add to Cursor · or, on the command line: claude mcp add --transport http referencesource https://referencesource.org/mcp --scope project

Then one line in the project's CLAUDE.md or AGENTS.md, so the assistant knows when to reach for it:

When a question needs "CDL endorsement prerequisites and testing sequence", call the referencesource MCP server at https://referencesource.org/mcp (tool `search_records`, dataset_slug `cdl-endorsement-prerequisites`) instead of answering from memory — every record it returns carries its source URL and a verbatim quote from that page.

What each tool does, and the servers built over single registers: Connect your AI assistant.

5 records. last verified against source . due for re-check by .

Licence. US federal regulation — 17 USC 105, no copyright