mcp-mobile-phone-waterfall-orchestrator
LocalAbout mcp-mobile-phone-waterfall-orchestrator
An MCP server that finds phone numbers for contact lists by trying your Prospeo, Lusha, ContactOut, and FullEnrich keys in sequence. It runs the lookup actor on Apify and returns number details and provider-credit usage.
Key features
- 01Sequential provider lookups
- 02Contact-list and single-contact inputs
- 03E.164 numbers and line details
- 04Do Not Call flags when reported
- 05Provider-credit usage and cost limits
Use cases
- 01Finding mobile numbers for contact lists
- 02Trying multiple configured data providers
- 03Reviewing number country and line type
MCP support
Exposes the `find_mobile_phone` tool to MCP clients. It starts an Apify actor run and returns its dataset; `APIFY_TOKEN` is required, while provider keys are optional and read from the server environment.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
npx -y @mambalabsdev/mcp-mobile-phone-waterfall-orchestratorAPIFY_TOKENSecretApify API token from https://console.apify.com/account/integrationsPROSPEO_API_KEYSecretOptional. Your Prospeo API key.LUSHA_API_KEYSecretOptional. Your Lusha API key (V3).CONTACTOUT_API_KEYSecretOptional. Your ContactOut API token.FULLENRICH_API_KEYSecretOptional. Your FullEnrich API key.Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.
Tools
1Saved tool list · updated 1w ago
| Parameter | Type | Required | Description |
|---|---|---|---|
| string | No | Single contact shortcut: email. | |
| contacts | array | No | People to look up. Give each as many identifiers as you hold. |
| full_name | string | No | Single contact shortcut: full name. |
| mobile_only | enum | No | When true, a landline or VoIP number does not count as found and the chain moves on. Numbers with no reported line type are kept as unknown. Default true.true | false |
| linkedin_url | string | No | Single contact shortcut: LinkedIn profile URL, never opened by the actor. |
| max_contacts | string | No | Ceiling on how many contacts this run processes. |
| company_domain | string | No | Single contact shortcut: company domain. |
| max_charge_usd | string | No | Optional cap on this run's Apify charges. The run stops before a charge that would pass it and keeps every row already paid for. |
| provider_order | array | No | Providers in call order. Default prospeo, lusha, contactout, fullenrich. A provider with no key is skipped and reported. |
| max_provider_credits | string | No | Cap on the provider credits this run may spend on the buyer's own accounts. Remaining contacts are skipped, uncharged. Strongly recommended. |
Details
From the project READMEMobile Phone Waterfall MCP Server
Find a mobile phone number for each contact by calling your own phone data providers in order, Prospeo, Lusha, ContactOut, and FullEnrich, until one returns a number. One row per contact with the number in E.164 format, line type, country, a Do Not Call flag where the provider reports one, and the provider credits it spent.
It runs the Mobile Phone Waterfall
actor (Actor ID 6OOgPktf7RIa5XCOP) on Apify.
The Prospeo path has been run live on a real key (2026-10-19). The Lusha, ContactOut, and
FullEnrich steps are built to each provider's documented API but have not yet been run on a live
key; every run summary lists them under providers_not_live_verified. No key is stored.
Tool
| Tool | What it does |
|---|---|
find_mobile_phone | Looks up mobile numbers for a list of contacts on your own provider keys |
Setup
{
"mcpServers": {
"mamba-mobile-phone-waterfall-orchestrator": {
"command": "npx",
"args": ["-y", "@mambalabsdev/mcp-mobile-phone-waterfall-orchestrator"],
"env": {
"APIFY_TOKEN": "your-apify-token",
"PROSPEO_API_KEY": "optional",
"LUSHA_API_KEY": "optional",
"CONTACTOUT_API_KEY": "optional",
"FULLENRICH_API_KEY": "optional"
}
}
}
}
APIFY_TOKEN is required to run the tool. The provider keys are optional and read from this
server's environment, so they never pass through the model's context. With no provider key set, the
run completes, calls nothing, and charges only the run start fee.
Inputs
contacts (each with any of full_name, first_name, last_name, company_domain,
company_name, linkedin_url, email, id), or the single contact shortcuts full_name,
company_domain, linkedin_url, email. Optional: provider_order, mobile_only,
max_contacts, max_provider_credits, max_charge_usd.
A LinkedIn URL is passed to providers as an identifier. Neither this server nor the actor opens it.
How it runs
The server starts the actor run (POST /v2/acts/{id}/runs), polls it (GET /v2/actor-runs/{runId})
to a terminal status with a run timeout of 1,800 seconds, and returns the dataset. A run that does
not succeed comes back as an error with its run ID.
Cost
Apify charges the actor's pay per event prices to your Apify account: a start event, a charge per contact on which at least one provider was called, and a charge per number found. Your providers charge their own credits on your keys. See the actor's pricing tab for current prices.
License
MIT. Built by Mamba Labs.
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.