Skip to content

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.

EndpointPOST /api/v1/auth/patient-otp-login
InputPhone 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.

EndpointPOST /api/v1/auth/verify_otp_login
InputPhone 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.

EndpointPOST /api/v1/patients/create
InputName, 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.

EndpointGET /api/v1/patients/info
"Show my profile"
"What's my account information?"

Medication Search (3 tools)

search_medications

Search for medications across nearby pharmacies.

EndpointGET /api/v1/search?q=
InputSearch 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.

EndpointGET /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.

EndpointGET /api/v1/branch/stocks/{stockId}
InputStock 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.

EndpointPOST /api/v1/patients/findNearbyPharmacies
InputLocation (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.

EndpointPOST /api/v1/patients/plan-order
InputMedication, quantity, delivery address
"Order 2 packs of Amoxicillin 500mg for delivery"
"Place an order for my diabetes medication"

What happens:

  1. Agent searches medications and shows options
  2. Pharmacy selection widget appears — compare price, ETA, and ratings across pharmacies
  3. Agent asks for delivery address
  4. Agent confirms the order (MCP elicitation — native yes/no prompt)
  5. 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.

EndpointPOST /api/v1/patients/plan-order (refill flag)
InputPrevious 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 a payment link for a specific pharmacy/branch.

EndpointPOST /api/v1/branch/{id}/payment-link
InputBranch 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.

EndpointGET /api/v1/orders/{identifier}
InputOrder 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.

EndpointGET /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:

WidgetTriggered byWhat it shows
Pharmacy selectionplace_order responsePrice, ETA, ratings comparison grid
OTP loginAuthentication stepPhone input + OTP entry form
Order trackingcheck_order_status responseStatus badge + delivery timeline