MCP

Connect your agent.

The SalesTeams MCP server exposes discovery and enrichment as tools any MCP-compatible client can call: Claude Desktop, Cursor, or your own agent runtime.

Connect

Your server URL is on your API Keys page once you're signed in, it includes your Cloudflare account subdomain, so it isn't shown here. Two ways to authenticate:

1. OAuth (recommended)

In Claude Desktop: Settings → Integrations → Add MCP Server, paste your server URL. You'll be redirected to log in with your SalesTeams account, no key management.

2. API key

Create a key at Settings → API Keys, then pass it as a Bearer token in your client config:

claude_desktop_config.json
{
  "mcpServers": {
    "salesteams": {
      "url": "<your MCP server URL from Settings → API Keys>",
      "headers": {
        "Authorization": "Bearer st_live_…your_key_here…"
      }
    }
  }
}

Tools

Campaigns are created in the dashboard (Discovery → Configure), MCP tools operate on an existing campaign_id.

whoami

Show the connected SalesTeams account (org + credential). Free.

Input
{}
Output
{ "org_id": "org_...", "account": "Thabo Mokoena", "credential": "api_key" }
match_vertical

Fuzzy-match free text to a SalesTeams business vertical or individual role. Free.

Input
{
  text: string,              // e.g. "pet groomers" or "personal injury lawyers"
  target_type?: "business" | "individual"
}
Output
{ "vertical_id": "vrt_...", "name": "Physiotherapy", "confidence": 0.94 }
run_discovery

Start an async lead-discovery job for a campaign. Returns a job_id, poll get_job_status. Charges credits.

Input
{
  campaign_id: string,
  sources?: ("google_maps" | "brave_search" | "directories" | "linkedin")[],
  target_quantity?: number   // 1-500, default 50
}
Output
{ "job_id": "job_4c1d", "status": "running" }
get_job_status

Poll a discovery job by job_id. Returns progress and whether it is terminal. Free.

Input
{ job_id: string }
Output
{ "job_id": "job_4c1d", "status": "running", "found": 32, "stored": 28, "target": 50 }
light_enrich

Extract email/phone for a company from its website. Charges credits.

Input
{ company_id: string }
Output
{ "company_id": "cmp_...", "email": "info@example.com", "phone": "+27 21 433 8120" }