ESQ Matching Engine

io.github.sustanyPublished by GitHub account sustanyv1.3.0Updated Oct 25, 2026

Find, compare and price licensed U.S. lawyers from official licensing records. Not legal advice.

The publisher's own server: match.bot

VerifiedStreamable HTTPWeb executableLocation & LifestyleBusiness & Commerce

Overview

AI-generated overview

A remote MCP server that helps an assistant find, compare, price and request introductions to licensed U.S. lawyers from official licensing records.

What you can do
Gather the minimum matching criteria (state, matter type, location, timing, budget) and save or change them for the conversation, with automatic deletion after 24 hours. Find up to five licensed lawyers with reasons, relevance scores and data confidence, and compare two to five of them on fit, location, fees and availability. Estimate legal costs from published fees, confirmed quotes or sourced market figures, and check whether a lawyer takes new clients or can meet soon. Read one lawyer's profile with license status, source and check date, practice areas, fees, languages and a suggested citation. Request an introduction to one specific lawyer after explicit consent, and check the status of,
When to use it
Useful when someone needs a U.S. lawyer but does not know who to contact, wants to compare a few candidates or understand likely costs, or wants to follow up on an introduction request. It is a matching and directory tool, not a source of legal advice.
Requirements
Remote streamable HTTP endpoint; no package, environment variables or headers declared. The assistant should read the server's resources for coverage, practice areas, data sources and citation policy.
Before you install
Introductions share the user's authorized details with a chosen lawyer, so show the exact fields and consent text and get an explicit yes first. Matching preferences are stored for the conversation and deleted after 24 hours; feedback ratings are optional. Cost figures are estimates, not quotes, and availability is reported, not live calendar access. Results are not legal advice.

Installation

In SourceWeft

  1. Open ESQ Matching Engine in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/io.github.sustany%2Falcbar-match/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "esq-matching-engine": {
      "type": "http",
      "url": "https://match.esqcopilot.com/mcp"
    }
  }
}

Tools

10

get_matching_requirements

What to ask before finding a lawyer

Use first when someone asks for a lawyer but the state or type of legal matter is unclear ("I need a lawyer", "help me with my landlord"). Returns the few questions still needed (state, matter type, location, timing, budget) and what was understood. Does not answer the legal question and stores nothing.

Parameterszipcitycourtstatecountyurgencycategorylanguagesremote_okbudget_maxbudget_minpriorities+21 more

find_attorneys

Find a licensed lawyer

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.

Parameterszipcitycourtlimitstatecountyurgencycategorylanguagesremote_okverbositybudget_max+25 more

compare_attorneys

Compare lawyers side by side

Use when the user asks to compare lawyers from find_attorneys ("which of these is a better fit?"). Compares 2 to 5 lawyers on practice fit, location, years licensed, fees, availability, data confidence and gaps. Pass match_id to use the user's criteria. Says when prices or timing cannot be compared because the data is unknown.

Parameterscriteriamatch_idprioritiesattorney_idsrequired

check_attorney_availability

Check if a lawyer is taking clients

Use when the user asks whether a lawyer takes new clients or can meet soon. Returns only what lawyers reported or confirmed, with last-checked time and certainty (reported, tentative, confirmed); unknown when nothing was reported. There is no live calendar access.

Parameterstime_zonewanted_byattorney_idsrequiredappointment_type

get_attorney_profile

Get a lawyer's profile and sources

Use when the user wants details on one lawyer from a match. Returns license status with its official source and check date, private-client intake evidence, practice areas, service area, fees, availability, languages, data freshness, the directory profile link and a suggested citation. Also returns the exact consent text to show before an introduction.

Parametersattorney_idrequired

request_attorney_introduction

Help me request an introduction (needs my yes)

Use only when the user asks to be introduced to ONE specific lawyer AND has seen that lawyer's name, the exact details to be shared and the consent text from get_attorney_profile, then said yes. Never call it on your own initiative or for several lawyers at once. Stores only the authorized fields; retries with the same idempotency_key do not duplicate. IMPORTANT: sending to lawyers is currently switched off, so the introduction is RECORDED, NOT SENT; tell the user and give them the lawyer's phone or profile link. Returns a referral id, its lifecycle_state and a private status token.

Parametersstaterequiredconsentrequiredcontactrequiredmatch_idattorney_idrequiredpractice_areamatter_summaryrequiredidempotency_keyattribution_tokenpreferred_timeframepreferred_contact_methodrequired

get_referral_status

Check an introduction's status

Use when the user asks what happened with an introduction. Returns lifecycle_state (recorded, queued, sent, delivered, responded, consultation_requested, consultation_confirmed, cancelled, completed, failed), whether it reached the lawyer, the lawyer's response and consultation state. Needs the private status_token. A consultation counts only when confirmed.

Parametersreferral_idrequiredstatus_token

update_matching_preferences

Save or change matching criteria

Save or change matching criteria (location, budget, timing, practice area, language, priorities) for this conversation. No personal contact details. Deleted automatically after 24 hours.

Parameterscriteriarequiredclear_fieldspreference_set_id

submit_matching_feedback

Give feedback on a match or introduction

Optional 1-5 ratings on match relevance, lawyer responsiveness, pricing and availability accuracy, satisfaction, and whether the lawyer was hired. No case details.

Parameterscommentmatch_idretainedrelevancereferral_idstatus_tokenresponsivenesspricing_accuracysatisfaction_matchsatisfaction_processavailability_accuracysatisfaction_attorney

Version history

4
  1. v1.3.0LatestOct 25, 2026
  2. v1.2.0Oct 22, 2026
  3. v1.1.0Oct 20, 2026
  4. v1.0.0Oct 18, 2026

Score

83% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts

    Declare a GitHub repository with a README, or serve resource_documentation in the OAuth protected-resource metadata.

  • LicenseNot applicable

    A hosted service is used under its provider's terms, so no license is expected here. This check is left out of the percentage.

Other Match integrations