BulkClix MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| logging | {} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| extensions | {
"io.modelcontextprotocol/ui": {}
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_token_infoB | Returns information about the Auth0 token. |
| airtime_get_networksA | Get supported networks for airtime top-up. |
| airtime_purchaseC | Start an airtime purchase using the BulkClix purchase route. :param destination: Recipient phone number receiving the airtime. :param phone_number: MoMo phone number being charged for payment. :param network: Payer network code (e.g., 'MTN', 'VDF', 'ATL'). :param amount: Airtime purchase amount in GHS. :param network_id: Network UUID from airtime_get_networks. :param payment_type: Payment type (usually 'momo'). |
| data_get_bundlesC | List available data bundle services. |
| data_get_offersA | List available data bundle offers for a service and phone number. :param service_id: Data service UUID. :param phone_number: Recipient phone number. |
| data_purchaseC | Start a data bundle purchase using the BulkClix purchase route. |
| data_check_statusA | Check the status of a data bundle payment or purchase by order ID. |
| momo_check_statusA | Check the status of a Mobile Money collection or transaction. :param transaction_id: The transaction ID returned during collection. :param payment_id: Optional payment record ID if you already have it. |
| pay_verify_otpA | Verify a payment OTP after the customer reads the code from their phone and sends it in chat. CRITICAL: This is ONLY for validating payment-related transactions. The request_id MUST be the one returned in the response of a payment/purchase initiation tool (e.g., airtime_purchase, data_purchase, or momo_collect), NOT from otp_send_sms. Providing a standard SMS OTP request ID will result in a 404 Error. :param code: OTP code entered by the customer from their phone. :param request_id: Request ID returned from the payment/purchase initiation response. :param phone_number: The phone number used for the payment transaction. |
| search_food_menusB | Search food dishes and restaurants across available catalogs in a specified city (e.g. Accra). Currently searches verified vendors matching categories or name. |
| save_customer_profileA | Save or update a customer profile in MongoDB, including delivery address, landmark, and default MoMo payment number. |
| get_customer_profileA | Retrieve a saved customer profile from MongoDB by phone number to get delivery address and payment preferences. |
| place_merchant_orderA | Place a food order directly with a restaurant merchant. Creates an order record in MongoDB, triggers MoMo payment collection from customer, and sends an order SMS dispatch to the merchant. |
| track_orderC | Track real-time status and delivery details of an order from MongoDB. |
| otp_send_smsA | Send an OTP (One-Time Password) via SMS. CRITICAL: The message parameter MUST contain the exact placeholder <%otp_code%>. If this placeholder is missing, the API call will fail with a 422 error. :param phone_number: Recipient phone number (e.g. '0541000000'). :param message: Message template containing <%otp_code%> (e.g. 'Your verification code is: <%otp_code%>'). :param expiry: OTP validity duration in minutes (default 5). :param length: Digit length of the OTP (default 4). |
| otp_verify_smsA | Verify an OTP code that was sent via SMS. :param request_id: The requestId returned from sending the OTP. :param phone_number: The phone number the OTP was sent to. :param code: The code input by the user to check. |
| otp_send_emailA | Send an OTP (One-Time Password) via Email. CRITICAL: The message parameter MUST contain the exact placeholder <%otp_code%>. If this placeholder is missing, the API call will fail with a 422 error. :param email: Recipient email address. :param subject: Email subject. :param message: Email body containing <%otp_code%> template (e.g. 'Your verification code is: <%otp_code%>'). :param expiry: OTP validity duration in minutes (default 5). :param length: Digit length of the OTP (default 4). |
| otp_verify_emailA | Verify an OTP code that was sent via Email. :param request_id: The requestId returned from sending the OTP. :param email: The email address the OTP was sent to. :param code: The verification code to verify. |
| searchA | Search for vendors (merchants), menu items, and MCP tools/capabilities semantically in a single query. Use this to resolve which tool to call, which vendor fits a concept, or what food/goods are available. |
| get_verified_vendorsA | List available vendors to purchase goods from using BulkClix payment. :param vendor_id: Vendor's UUID. If given, returns just that vendor. :param category: Vendor's category of goods (e.g. 'restaurant', 'food', 'airtime'). If given, filters vendors using case-insensitive substring and synonym expansion. |
| get_verified_vendors_menuA | List available menu items for a vendor, flattened and checkout-ready — each item has dish_id, name, price, is_available, and addons. No nested categories. :param vendor_id: Vendor's UUID. :param query: Optional case-insensitive substring filter on dish name. |
| create_verified_vendors_orderA | Place an order with a food/goods vendor and initiate mobile money payment via BulkClix. IMPORTANT: Before calling this tool you MUST have collected ALL required fields from the user: (1) if order_type='inhouse' — you MUST ask the user for their table_number first; (2) if order_type='delivery' — you MUST ask the user for their delivery_address first. Do NOT call this tool without those values — the tool will fail. :param vendor_id: Vendor's UUID. :param items: List of items to order, with dish_id, quantity, and addon_ids. :param payment_number: Mobile money number to charge (e.g. '0544929180'). :param network: Mobile money network code (e.g. 'MTN'). :param order_type: 'inhouse' or 'delivery' — must be one of the vendor's supported order_types. :param table_number: Table number string. REQUIRED when order_type is 'inhouse' — ask the user before calling. :param delivery_address: Delivery address string. REQUIRED when order_type is 'delivery' — ask the user before calling. :returns: dict with success, order_id, payment status, and vendor confirmation. |
| find_food_itemsA | Search for food items, dishes, pizza, rice, chicken, or menus across all verified vendors or a specific vendor. Use this when asking 'what food is available', 'show me the menu', 'do you have pizza', 'search menu for burger'. |
| list_vendor_categoriesA | List all categories of goods (e.g. 'restaurant', 'food', 'airtime', 'data') supported by the verified vendors. |
| get_yango_delivery_linkA | Get a Yango booking link for a delivery between two points. The customer opens this link to confirm pickup/dropoff and pricing in the Yango app — pricing and order placement happen on Yango's side, not through this server, until direct API access is enabled. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/AnanseLabs-Org/ananse-tools'
If you have feedback or need assistance with the MCP directory API, please join our Discord server