search_members
Status: Verified | Module: verify
Find a member when they cannot recall their Member ID. At least one of first_name, last_name, phone, or member_id is required; optional dob narrows results. Use BEFORE verify_member as the pre-verification lookup. No session required.
Strategy
Section titled “Strategy”Start with last_name first → if 15+ results come back, ask the member for first_name → if results are still ambiguous, ask for dob and re-call. Treat the search as an interactive narrowing loop, not a single-shot query — speech-to-text often garbles names on phone calls, so a single failure is not a dead end.
Annotations
Section titled “Annotations”| Hint | Value |
|---|---|
| readOnlyHint | true |
| destructiveHint | false |
| idempotentHint | true |
| Field | Type | Required | Description |
|---|---|---|---|
first_name |
string | no | Member first name (partial match supported) |
last_name |
string | no | Member last name (partial match supported) |
dob |
string | no | Date of birth (MM/DD/YYYY) — narrows results |
phone |
string | no | Phone number (10-digit, any format) |
member_id |
string | no | Medicaid ID (when partially known) |
At least one of first_name, last_name, phone, or member_id is required.
Output
Section titled “Output”| Field | Type | Description |
|---|---|---|
status |
string | success or error |
candidates |
MemberCandidate[] | Matching members with masked PII |
MemberCandidate
Section titled “MemberCandidate”| Field | Type | Description |
|---|---|---|
member_id |
string | Medicaid ID |
name |
string | Full name |
dob |
string | Masked: **/**/YYYY |
phone |
string | Masked: ***-***-XXXX |
Example Request
Section titled “Example Request”{ "jsonrpc": "2.0", "id": 11, "method": "tools/call", "params": { "name": "search_members", "arguments": { "name": "John Doe", "dob": "01/15/1990" } }}Example Response
Section titled “Example Response”{ "status": "success", "candidates": [ { "member_id": "MED-12345", "name": "John Doe", "dob": "**/**/1990", "phone": "***-***-4567" } ]}