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_attorneys
  • verify_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.