Tools
The Famasi MCP server exposes 13 individual tools for finding and ordering medications. These are available on ChatGPT, Claude.ai, and OpenClaw.
All tools require phone-based OTP authentication.
Authentication (2 tools)
request_patient_otp
Send a one-time password to a phone number.
| Endpoint | POST /api/v1/auth/patient-otp-login |
| Input | Phone number |
"I want to log in""Send me an OTP"The agent prompts for your phone number, then triggers an SMS with a 6-digit code.
verify_patient_otp
Verify the OTP and establish a session.
| Endpoint | POST /api/v1/auth/verify_otp_login |
| Input | Phone number, OTP code |
"My code is 482913"If the number isn’t registered, the agent automatically offers to create an account.
Account (2 tools)
create_patient
Register a new individual account.
| Endpoint | POST /api/v1/patients/create |
| Input | Name, phone, email (optional), location |
"Create my account — my name is Amina Yusuf"Typically triggered automatically after OTP verification when the phone number is new.
get_patient_info
Fetch the authenticated individual’s profile.
| Endpoint | GET /api/v1/patients/info |
"Show my profile""What's my account information?"Medication Search (3 tools)
search_medications
Search for medications across nearby pharmacies.
| Endpoint | GET /api/v1/search?q= |
| Input | Search query |
"Find Panadol near me""Search for Amoxicillin 500mg""I need diabetes medication"Returns medications with prices, pharmacy names, and availability.
get_recent_medications
List recently ordered or viewed medications.
| Endpoint | GET /api/v1/patients/recent-meds |
"Show my recent medications""What did I order last time?"get_medication_details
Get detailed information about a specific medication/stock item.
| Endpoint | GET /api/v1/branch/stocks/{stockId} |
| Input | Stock ID |
"Tell me more about this Amoxicillin""What's the dosage and manufacturer?"Pharmacy Discovery (1 tool)
find_nearby_pharmacy
Find pharmacies near the individual’s location.
| Endpoint | POST /api/v1/patients/findNearbyPharmacies |
| Input | Location (coordinates or address) |
"Find pharmacies near Ikeja, Lagos""Which pharmacies are close to me?"Returns pharmacies with distance, ratings, and operating hours.
Ordering (3 tools)
place_order
Place a medication order for delivery or pickup.
| Endpoint | POST /api/v1/patients/plan-order |
| Input | Medication, quantity, delivery address |
"Order 2 packs of Amoxicillin 500mg for delivery""Place an order for my diabetes medication"What happens:
- Agent searches medications and shows options
- Pharmacy selection widget appears — compare price, ETA, and ratings across pharmacies
- Agent asks for delivery address
- Agent confirms the order (MCP elicitation — native yes/no prompt)
- Returns a checkout link for payment
Payment is via checkout link in v1. In-channel payment is planned for v2.
request_refill
Reorder a previous medication.
| Endpoint | POST /api/v1/patients/plan-order (refill flag) |
| Input | Previous order reference |
"Refill my last order""Reorder my blood pressure medication"Same flow as place_order but pre-fills medication details from order history.
get_checkout_link
Get a payment link for a specific pharmacy/branch.
| Endpoint | POST /api/v1/branch/{id}/payment-link |
| Input | Branch ID, order details |
"Get the payment link"Returns a URL the individual opens to complete payment.
Order Tracking (2 tools)
check_order_status
Check the current status of an order.
| Endpoint | GET /api/v1/orders/{identifier} |
| Input | Order ID or reference |
"Where's my order?""Check status of ORD-12345"Order tracking widget appears showing status badge and delivery timeline.
get_order_history
List past orders.
| Endpoint | GET /api/v1/orders/orders |
"Show my order history""What have I ordered before?"Typical conversation flow
Full interaction example — search, authenticate, order, pay
Individual: "I need to buy Amoxicillin"
Agent: I'll help you find Amoxicillin. Let me search nearby pharmacies. → calls search_medications
Agent: I found 5 options. Here are the results: [medication list with prices]
Which one would you like to order?
Individual: "The 500mg capsules from HealthPlus"
Agent: To place this order, I'll need to verify your identity. What's your phone number?
Individual: "+2348012345678"
Agent: → calls request_patient_otp I've sent an OTP to your phone. Please enter the code.
Individual: "492718"
Agent: → calls verify_patient_otp ✓ Verified.
I'll place the order now. Please confirm: - Amoxicillin 500mg × 1 - HealthPlus Pharmacy, Ikeja - ₦2,400
Proceed?
Individual: "Yes"
Agent: → calls place_order ✓ Order placed. Here's your payment link: https://pay.famasi.africa/checkout/abc123
Complete payment to confirm delivery.Widgets
Three interactions use visual widgets instead of plain text:
| Widget | Triggered by | What it shows |
|---|---|---|
| Pharmacy selection | place_order response | Price, ETA, ratings comparison grid |
| OTP login | Authentication step | Phone input + OTP entry form |
| Order tracking | check_order_status response | Status badge + delivery timeline |