Skip to main content
Glama

Send my message to the lawyer I picked (needs my yes)

send_client_message
DestructiveIdempotent

Use only when the person asked to contact ONE specific lawyer they picked, has seen the lawyer's name, the exact message and details to be shared and the consent text, and said yes. Never call it on your own initiative or for several lawyers at once. Call preview_client_message first and pass its approval_code: if the recipient or the text changed since the person's yes, it is refused. Stores only the approved fields; retries with the same idempotency_key do not duplicate, and reusing a key for different details is refused. The same rule applies to every listed lawyer. Returns a contact_request_id, its lifecycle_state and a private status token. This is a listing service, not a lawyer referral service. No lawyer pays for placement or ranking of any kind.

Input Schema

NameRequiredDescriptionDefault
stateYesUS state, two-letter code or name, e.g. CA or California
consentYes
contactYes
entry_idNoThe entry_id from start_from_directory_profile, if the user started from a directory listing. Counts the listing visit; carries no personal data.
match_idNo
pending_okNoDeprecated since 2026-11-04 and ignored. Messages no longer wait for anything a lawyer buys.
attorney_idYes
approval_codeNoThe approval_code from preview_client_message for the exact version the user said yes to. If anything changed since, the request is refused and nothing is stored.
practice_areaNo
matter_summaryYesSummary the USER read and approved for sharing with this lawyer
idempotency_keyNoSame key on retries prevents a duplicate message
attribution_tokenNoSigned campaign/partner token issued by ESQ Matching Engine, if the user arrived through a partner link
opposing_party_nameNoName of the other side, if any, so the firm can check conflicts. Not shared beyond the firm.
preferred_timeframeNo
preferred_contact_methodYes
intake_notice_acknowledgedNoTrue only after the user read: no attorney-client relationship exists yet and the lawyer may decline

Output Schema

NameRequiredDescriptionDefault
noticeYes
statusYes
consentYes
attorneyYes
match_idYes
duplicateYes
next_stepYes
created_atYes
submissionYes
api_versionYes
destinationYes
referral_idYes
consultationYes
last_updatedYes
status_checkNo
status_tokenYes
qualificationYes
delivery_noticeNo
lifecycle_stateYes
attorney_responseYes
consent_text_shownYes
delivered_to_lawyerYes
personal_details_deletedYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / approval_code / pattern
      Previous value: -"^apr_[a-f0-9]{32}$"New value: +"^(apr_[a-f0-9]{32}|apr2_[0-9a-z]{6,12}_[a-f0-9]{32})$"
  2. Changed1 schema field changed
    • changedOutput schema / required
      Previous value: -[
      -  "api_version",
      -  "referral_id",
      -  "status",
      -  "lifecycle_state",
      -  "delivered_to_lawyer",
      -  "delivery_notice",
      -  "match_id",
      -  "created_at",
      -  "last_updated",
      -  "attorney",
      -  "destination",
      -  "submission",
      -  "attorney_response",
      -  "consultation",
      -  "qualification",
      -  "consent",
      -  "personal_details_deleted",
      -  "next_step",
      -  "notice",
      -  "duplicate",
      -  "status_token",
      -  "consent_text_shown"
      -]New value: +[
      +  "api_version",
      +  "referral_id",
      +  "status",
      +  "lifecycle_state",
      +  "delivered_to_lawyer",
      +  "match_id",
      +  "created_at",
      +  "last_updated",
      +  "attorney",
      +  "destination",
      +  "submission",
      +  "attorney_response",
      +  "consultation",
      +  "qualification",
      +  "consent",
      +  "personal_details_deleted",
      +  "next_step",
      +  "notice",
      +  "duplicate",
      +  "status_token",
      +  "consent_text_shown"
      +]
  3. Added

TDQS

A4.5/5.0
Behavior5/5

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

Beyond the annotations, the description discloses the approval_code precondition, refusal behavior if details changed, idempotency_key semantics, storage limits, and return fields. This adds substantial behavioral context for a destructive, open-world, idempotent action.

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 description is dense but appropriately front-loaded with the critical consent condition and the preview requirement. The listing-service disclaimer is useful context but slightly outside immediate invocation needs, keeping it from a perfect score.

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 high-stakes 16-parameter mutation with nested consent and an output schema, the description covers the essential consent, approval, idempotency, and refusal behaviors well. It is not fully complete on parameter-level semantics, but the output schema reduces the need to explain return values.

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?

Schema coverage is only 56% across 16 parameters, so the description must compensate. It adds valuable meaning for approval_code, idempotency_key, consent, and approved fields, but leaves many parameters such as attorney_id, state, contact, preferred_contact_method, and intake_notice_acknowledged without added description-level guidance.

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

Purpose5/5

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

The description states a specific action: sending a user-approved message to one specific lawyer, with explicit constraints. It clearly distinguishes this tool from preview_client_message and from any multi-lawyer or proactive sending.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives explicit when-to-use conditions: only after the user picked one lawyer, saw the exact message and consent text, and said yes. It also gives when-not-to-use conditions and routes the agent to preview_client_message first.

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