Skip to main content
Glama

Find a licensed lawyer

find_attorneys
Read-only

Use when someone wants a lawyer for a U.S. legal matter, e.g. "find an affordable tenant lawyer in Santa Ana" or "I was fired after complaining, who can help in Los Angeles". Needs state and matter type (or a short description). Returns up to 5 licensed lawyers with reasons, a relevance score, a separate data_confidence level, license source and check date, whether they are known to take private clients, directory profile links and a suggested citation, or an honest no-match with legal-aid options. Unknown fees and availability are labeled unknown. Court and government lawyers are left out unless they said they take private clients. Records an anonymous search log only. Not legal advice.

Input Schema

NameRequiredDescriptionDefault
zipNo5-digit ZIP code, only if the user agreed to share it
cityNo
courtNo
limitNo
stateNoUS state, two-letter code or name, e.g. CA or California
countyNo
urgencyNo
categoryNo
languagesNo
remote_okNoUser is willing to work with a lawyer remotely (phone or video) anywhere in the state
verbosityNocompact leaves out the repeated license-check details on each result (status, source and dates stay); default full
budget_maxNoTotal budget the user mentioned, in US dollars
budget_minNo
prioritiesNoWhat matters most, in order. Shifts ranking weights.
client_sideNoWhich side the user is on. ESQ Matching Engine has no record of which side lawyers usually represent, so results carry a warning to ask.
descriptionNoShort description of the legal need in the user's words. Used only to pick a practice area; not stored.
matter_typeNo
communicationNo
deadline_dateNoA deadline the USER reported (hearing, filing, response). ESQ Matching Engine does not verify or calculate deadlines.
deadline_typeNo
practice_areaNoPractice area, e.g. 'Landlord-Tenant Law', 'Family Law', 'Criminal Law'
service_neededNo
consultation_byNoLatest date the user wants a first consultation
procedural_stageNo
subpractice_areaNo
attribution_tokenNoSigned campaign/partner token issued by ESQ Matching Engine, if the user arrived through a partner link
language_requiredNoTrue if the language is essential, not just preferred
preference_set_idNoSaved criteria from update_matching_preferences
billing_preferenceNo
min_years_licensedNo
accessibility_needsNo
payment_plan_neededNo
exclude_attorney_idsNo
max_consultation_feeNo0 means the user wants a free first consultation
reduced_fee_eligibleNoUser may qualify for pro bono, legal aid or reduced fees
representation_start_byNoDate as YYYY-MM-DD
include_unconfirmed_practice_areaNoAlso include licensed lawyers whose practice areas are not on record (labeled clearly)

Output Schema

NameRequiredDescriptionDefault
messageNo
noticesYes
outcomeYes
resultsYes
urgencyYes
match_idYes
returnedNo
legal_aidNo
how_rankedYes
next_stepsNo
api_versionYes
attributionYes
suggestionsNo
ranking_noteNo
data_coverageNo
rules_versionYes
covered_statesNo
eligible_countNo
engine_versionYes
unmet_criteriaNo
excluded_by_ruleNo
low_cost_optionsNo
license_source_noteNo
missing_informationNo
representation_sideNo
eligible_by_practice_evidenceNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.1/5.0
Behavior5/5

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

Goes well beyond the annotations by disclosing privacy behavior (anonymous search log only), a scope exclusion rule (court/government lawyers omitted unless they take private clients), honest labeling of unknown fees and availability, no-match fallback to legal-aid options, and the "not legal advice" disclaimer. These are exactly the operational facts an agent needs before calling a matching tool and are not derivable from readOnlyHint/openWorldHint.

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 trigger condition is front-loaded in the first clause and every sentence carries operational content (inputs, return shape, exclusions, privacy, disclaimer). The middle sentence enumerating return fields is long and partially duplicates the output schema, but it is a single sentence rather than padding.

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?

For a 37-parameter open-tool with an output schema, the description covers the key decision points: when to use it, minimum required inputs, result cap of 5, exclusion rules, honest-unknown handling, and no-match behavior. Gaps remain around how location inputs interact (ZIP vs city vs county vs court) and pagination or exclusion-by-ID behavior, which matters given the parameter count.

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?

With 37 parameters at 49% schema coverage, the description only covers the essential inputs (state, matter type, or a short description) and omits meaning for location fallbacks (city/county/court), urgency, languages, budget, and the many matching refinements. It surfaces the one critical usage fact (state and matter type are what's needed), but does not compensate for the large undocumented remainder.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource (find licensed lawyers) plus two concrete trigger examples and the tool's scope (U.S. legal matters), so an agent knows exactly what it will get back. It never names a sibling tool (compare_attorneys, get_attorney_profile) to contrast against, so differentiation is inferable rather than explicit.

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?

"Use when someone wants a lawyer for a U.S. legal matter" plus the Santa Ana tenant and Los Angeles wrongful-termination examples give crisp invocation context, and it specifies the minimal inputs needed (state plus matter type or a short description). It gives no when-not guidance or explicit routing to sibling tools such as compare_attorneys or check_attorney_availability.

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