AI Skill Report Card
Searching MagDent Patients
YAML--- name: searching-magdent-patients description: Searches for patients in the MagDent platform using MCP integration. Use when you need to find patient records by name, phone, or ID. ---
Searching MagDent Patients
Quick Start15 / 15
Bash# Search by patient name <use_mcp_tool> <server_name>magdent</server_name> <tool_name>search_patients</tool_name> <arguments>{"query": "Иванов", "type": "name", "limit": 10}</arguments> </use_mcp_tool> # Search by phone <use_mcp_tool> <server_name>magdent</server_name> <tool_name>search_patients</tool_name> <arguments>{"query": "79001234567", "type": "phone"}</arguments> </use_mcp_tool>
Recommendation▾
Add completeness section covering error handling, authentication requirements, and what to do when MCP server is unavailable
Workflow13 / 15
Progress:
- Normalize search input (remove spaces, format phone)
- Call MagDent search_patients tool
- Handle multiple results or no results
- Display formatted patient information
- Offer follow-up actions (view history, schedule)
Step-by-step Process:
-
Prepare Search Query
- Names: Remove extra spaces, capitalize properly
- Phones: Strip to digits only, add country code if missing
- IDs: Validate format (usually numeric)
-
Execute MagDent Search
Bash<use_mcp_tool> <server_name>magdent</server_name> <tool_name>search_patients</tool_name> <arguments>{"query": "normalized_input", "type": "name|phone|id"}</arguments> </use_mcp_tool> -
Handle Results
- Single match: Display full details
- Multiple matches: Show list with key identifiers
- No matches: Suggest alternative spellings or broader search
Recommendation▾
Remove some verbose explanations in workflow section - Claude knows how to normalize strings and handle basic data processing
Examples20 / 20
Example 1: Successful Name Search Input: "Петров Иван" Output:
JSON{ "success": true, "results": [ { "patient_id": "P001234", "full_name": "Петров Иван Сергеевич", "phone": "79001234567", "birth_date": "1985-03-15", "last_appointment": "2024-01-20", "status": "active" } ] }
Example 2: Multiple Matches Input: "Иванов" Output:
JSON{ "success": true, "results": [ {"patient_id": "P001235", "full_name": "Иванов Петр Андреевич", "phone": "79001111111"}, {"patient_id": "P001236", "full_name": "Иванов Алексей Викторович", "phone": "79002222222"} ] }
Example 3: No Results Input: "Сидоровский" Output:
JSON{ "success": true, "results": [], "message": "Пациент не найден" }
Recommendation▾
Include a template for displaying search results to users in a consistent format
Best Practices
- Always search by phone first if available (most accurate)
- Use partial name matching: "Иван" finds "Иванов Иван"
- Format phones consistently: remove +7, spaces, dashes
- Limit initial results to 10 patients max
- Sort results by last appointment date (recent first)
- Ask for clarification when multiple exact matches exist
Common Pitfalls
- Don't search with single letters or numbers
- Avoid searching without patient consent verification
- Don't display sensitive data in logs or error messages
- Never assume Cyrillic/Latin spelling consistency
- Don't ignore inactive/archived patient status
- Avoid broad searches that return hundreds of results