Reference
SDK & MCP
Two first-party ways to consume the API beyond raw REST: a typed TypeScript client, and narrow MCP tools for agent frameworks.
TypeScript SDK
@jubal/lawfirm-sdk tracks the OpenAPI spec and covers attorneys, firms and bar admissions:
import { LawfirmClient } from "@jubal/lawfirm-sdk";
const client = new LawfirmClient({ apiKey: process.env.LAWFIRM_API_KEY! });
const matches = await client.attorneys.lookup({ name: "smith", jurisdiction: "FL" });
const firm = await client.firms.getById(matches[0].attorney.currentFirmId!);Errors throw with the API's status and message; the response types re-export from @jubal/lawfirm-types, so your application code and the wire format can't drift.
MCP tools
The same surface is exposed as narrow, well-named MCP tools for agent use — your agent does the reasoning, the tools supply verifiable ground truth with provenance attached:
lookup_attorney,search_attorneys,lookup_firm,find_attorneys_at_firm,list_firm_attorneysverify_bar_admission,get_attorney_assertions
Tool definitions ship in @jubal/lawfirm-mcp; the Anthropic registry listing is coming. Design rule: tools are narrow and named for what they answer — no generic “query” escape hatch — because agents pick better tools when the names carry the semantics.