Skip to main content
Glama
MOHAMAD-ZUBI

FlashLeads MCP Server

by MOHAMAD-ZUBI

FlashLeads MCP Server

A Model Context Protocol (MCP) server that provides AI tools access to FlashLeads lead generation capabilities. Use this to search for company leads directly from AI assistants like Claude Desktop.

Features

  • 🔍 Web Harvest: Search Google and collect company website leads with contact information

  • 📊 Lead Retrieval: Get detailed company information including emails, phones, and social profiles

  • Real-time Status: Monitor your web harvest agent's progress

  • 🔐 Secure: API key-based authentication

  • 🚀 Easy Setup: Works with Claude Desktop and other MCP-compatible tools

Related MCP server: Prospeo MCP Server

Quick Start (No Installation Required!)

Step 1: Get Your API Key

Create an API key by calling the FlashLeads provisioning endpoint:

curl -X POST https://api.flashleads.io/api/provision/create-api-key \
  -H "Content-Type: application/json" \
  -d '{
    "secretKey": "choose-a-secure-password",
    "workspaceName": "My AI Workspace",
    "email": "you@email.com"
  }'

Response:

{
  "success": true,
  "apiKey": "choose-a-secure-password",
  "workspaceId": "clx...",
  "credits": 1000,
  "message": "Workspace and API key created successfully"
}

💡 Save your apiKey - you'll need it in the next step!

Step 2: Configure Claude Desktop

Edit your Claude Desktop config file:

  • MacOS: ~/Library/Application Support/Claude/claude_desktop_config.json

  • Windows: %APPDATA%\Claude\claude_desktop_config.json

Add this configuration (using npx - no installation needed!):

{
  "mcpServers": {
    "flashleads": {
      "command": "npx",
      "args": [
        "-y",
        "@flashleads/mcp-server"
      ],
      "env": {
        "FLASHLEADS_API_KEY": "your-secret-key-from-step-1",
        "FLASHLEADS_API_URL": "https://api.flashleads.io"
      }
    }
  }
}

Replace your-secret-key-from-step-1 with the apiKey you got in Step 1.

Step 3: Restart Claude Desktop

  1. Completely quit Claude Desktop (⌘Q on Mac, Alt+F4 on Windows)

  2. Reopen Claude Desktop

  3. Look for the 🔌 icon in the bottom right - "flashleads" should be connected!

Step 4: Start Using It! 🎉

Now just chat with Claude naturally:

Example prompts:

  • "Find me 20 coffee shop leads in Seattle"

  • "Get restaurant contacts in Miami with email addresses"

  • "Search for dental offices in Chicago"

  • "Find plumbing companies in Los Angeles"

Claude will automatically use the FlashLeads tools to search and return real business leads with contact information!


Alternative: Local Installation

If you prefer to install locally instead of using npx:

npm install -g @flashleads/mcp-server

Then use this config:

{
  "mcpServers": {
    "flashleads": {
      "command": "flashleads-mcp",
      "env": {
        "FLASHLEADS_API_KEY": "your-secret-key",
        "FLASHLEADS_API_URL": "https://api.flashleads.io"
      }
    }
  }
}

For Developers: Local Development

git clone https://github.com/yourusername/flashleads-mcp-server
cd flashleads-mcp-server
npm install
npm run build

# Configure with local path
{
  "command": "node",
  "args": ["/full/path/to/mcp-server/build/index.js"]
}

Other MCP Clients

The server uses stdio transport and can be integrated with any MCP-compatible client. See the MCP documentation for more details.

Available Tools

1. run_web_harvest

Search Google and collect company website leads.

Parameters:

  • searchQuery (required): What to search for (e.g., "restaurants", "coffee shops")

  • location (required): Geographic location (e.g., "New York", "United States")

  • limit (optional): Number of leads to collect (default: 10, max: 100)

Example:

run_web_harvest({
  searchQuery: "coffee shops",
  location: "Seattle",
  limit: 20
})

2. get_web_harvest_leads

Retrieve leads collected by your web harvest agent.

Parameters:

  • status (optional): Filter by status ("PENDING", "RUNNING", "COMPLETED", "FAILED")

  • limit (optional): Max results to return (default: 50)

Example:

get_web_harvest_leads({
  status: "COMPLETED",
  limit: 50
})

3. get_web_harvest_status

Check if your web harvest agent is running and see lead counts.

Parameters: None

Example:

get_web_harvest_status()

Usage Example

With Claude Desktop:

User: "Find me 30 restaurant leads in San Francisco"

Claude uses:
1. run_web_harvest({ searchQuery: "restaurants", location: "San Francisco", limit: 30 })
2. get_web_harvest_status() // Check progress
3. get_web_harvest_leads({ status: "COMPLETED" }) // Get results

Claude responds: "I found 30 restaurant leads in San Francisco:
1. Joe's Pizza - https://joespizza.com - (415) 555-0123 - joe@joespizza.com
2. ..."

Development

# Install dependencies
npm install

# Build
npm run build

# Watch mode
npm run watch

# Development mode
npm run dev

# Test with MCP Inspector
npm run inspector

Environment Variables

Variable

Description

Default

Required

FLASHLEADS_API_KEY

Your FlashLeads API key

-

Yes

FLASHLEADS_API_URL

API base URL

http://localhost:5000

No

Error Handling

The server provides detailed error messages for common issues:

  • Invalid API key: Check your API key is correct

  • Rate limit exceeded: Wait for the rate limit to reset (shown in error)

  • Agent already running: Wait for current operation to complete

  • Missing parameters: Check required parameters are provided

Rate Limits

Default rate limits per API key:

  • 100 requests per hour

  • Rate limits reset hourly

  • Contact support for higher limits

Support

License

MIT License - see LICENSE file for details

Contributing

Contributions are welcome! Please read our Contributing Guide first.

Changelog

See CHANGELOG.md for release history.

Available Tools

3 tools
get_web_harvest_leadsC

Get the leads collected by your web harvest agent. Returns detailed information including company names, websites, contact details, and social media profiles.

ParametersJSON Schema
NameRequiredDescriptionDefault
statusNoFilter by lead status (optional). Use 'COMPLETED' for fully scraped leads with all details.
limitNoMaximum number of leads to return (default: 50)

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden for behavioral disclosure. It states what information is returned but doesn't describe important behavioral aspects: whether this is a read-only operation (implied by 'get'), whether it requires authentication, rate limits, pagination behavior (beyond the limit parameter), error conditions, or what happens when no leads exist. For a tool with no annotation coverage, this leaves significant gaps in understanding how the tool behaves.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is appropriately concise with two sentences that each serve a clear purpose: the first states the core function, the second details the return information. There's no wasted text, and it's front-loaded with the main purpose. However, it could be slightly more structured by explicitly separating purpose from return details.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's moderate complexity (2 parameters, no output schema, no annotations), the description is minimally adequate. It covers what the tool does and what information it returns, but lacks important context: no output format details, no error handling information, no guidance on when to use versus siblings, and incomplete behavioral transparency. For a data retrieval tool with no output schema, the description should do more to explain what 'detailed information' actually means in practice.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already fully documents both parameters (status with enum values and limit with default). The description adds no parameter-specific information beyond what's in the schema - it doesn't explain parameter interactions, provide examples, or clarify semantics. With complete schema coverage, the baseline is 3 even without additional param info in the description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Get the leads collected by your web harvest agent' specifies the verb (get) and resource (leads from web harvest agent). It distinguishes from sibling 'get_web_harvest_status' (which likely returns status info) and 'run_web_harvest' (which initiates harvesting), but doesn't explicitly differentiate them. The description is specific about what information is returned (company names, websites, contact details, social media profiles).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention when to use it instead of 'get_web_harvest_status' or 'run_web_harvest', nor does it provide context about prerequisites (e.g., whether a harvest must be completed first). The only implied usage is retrieving leads, but no explicit alternatives or exclusions are stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_web_harvest_statusA

Check if your web harvest agent is currently running and see how many leads have been collected. Shows total, completed, pending, and failed lead counts.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden. It describes what information is returned (status and counts) but doesn't disclose behavioral traits like whether this requires authentication, has rate limits, or how frequently the status updates. The description is functional but lacks operational context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, well-structured sentence that efficiently communicates the tool's purpose and key outputs. Every word earns its place with no redundancy or unnecessary elaboration.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter status-check tool with no output schema, the description adequately covers what information is returned. However, without annotations or output schema, it doesn't specify the format of the status response or potential error conditions, leaving some operational gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, and schema description coverage is 100% (empty schema). The description appropriately doesn't discuss parameters, maintaining focus on the tool's purpose. Baseline for zero parameters is 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific verb ('check') and resource ('web harvest agent'), specifying what information is retrieved (running status and lead counts). It distinguishes from sibling tools by focusing on status monitoring rather than getting leads or initiating harvests.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage context (monitoring ongoing harvest operations) but doesn't explicitly state when to use this vs. alternatives like 'get_web_harvest_leads' or 'run_web_harvest'. No explicit exclusions or prerequisites are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

run_web_harvestA

Search Google and collect company website leads. Automatically creates or updates your web harvest agent. Returns leads with company names, websites, emails, phone numbers, and social media profiles.

ParametersJSON Schema
NameRequiredDescriptionDefault
searchQueryYesWhat to search for (e.g., 'restaurants', 'coffee shops', 'plumbers', 'real estate agents')
locationYesGeographic location (e.g., 'United States', 'New York', 'London, UK', 'California')
limitNoNumber of leads to collect (default: 10, max: 100)

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It describes key actions ('search Google', 'collect leads', 'creates or updates agent') and output data, but lacks details on permissions, rate limits, error handling, or whether the operation is idempotent. The mention of agent management adds some context, but behavioral traits are not fully transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core purpose in the first sentence and efficiently details the output in the second. It avoids redundancy and uses clear language, though it could be slightly more concise by integrating the output details into the initial statement without sacrificing clarity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity of a tool that performs web harvesting and agent management, with no annotations and no output schema, the description is moderately complete. It covers the purpose and output data but lacks details on behavioral aspects, error cases, and how the agent creation/update works. This leaves gaps for an AI agent to fully understand the tool's operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the input schema fully documents the three parameters. The description does not add any parameter-specific semantics beyond what the schema provides, such as examples or constraints not in the schema. The baseline score of 3 is appropriate as the schema handles the parameter documentation adequately.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose with specific verbs ('search Google', 'collect company website leads', 'creates or updates your web harvest agent') and resources ('leads with company names, websites, emails, phone numbers, and social media profiles'). It distinguishes from sibling tools like 'get_web_harvest_leads' and 'get_web_harvest_status' by emphasizing the active harvesting and agent management functions.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for lead generation from Google searches but does not explicitly state when to use this tool versus alternatives like the sibling tools. No guidance is provided on prerequisites, exclusions, or specific scenarios where this tool is preferred over others, leaving the agent to infer context from the tool name and description alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

TDQS

B3.4/5.0
Disambiguation5/5

Each tool has a clearly distinct purpose: get_web_harvest_leads retrieves collected lead data, get_web_harvest_status checks agent status and counts, and run_web_harvest initiates or updates the harvesting process. There is no overlap in functionality, making tool selection straightforward for an agent.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern with snake_case (e.g., get_web_harvest_leads, get_web_harvest_status, run_web_harvest). The naming is predictable and readable, using clear verbs like 'get' and 'run' paired with descriptive nouns.

Tool Count3/5

With only 3 tools, the set feels thin for a web harvesting domain, as it lacks operations like updating or deleting leads, managing agent configurations, or filtering/searching through collected data. While the core functions are present, the scope is limited, which might require workarounds for more complex tasks.

Completeness3/5

The tools cover the basic lifecycle of web harvesting: initiating (run_web_harvest), monitoring (get_web_harvest_status), and retrieving results (get_web_harvest_leads). However, there are notable gaps, such as no ability to modify or delete leads, control agent settings, or perform advanced queries on the collected data, which could limit agent effectiveness in extended workflows.

Maintenance

ActivityInactive
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables AI assistants to automate sales prospecting by finding contacts by role and industry, enriching data with emails and tech stacks, scoring against ideal customer profiles, and generating personalized outreach sequences. Streamlines lead generation and sales engagement workflows through integrated research and sequence generation tools.
  • A
    license
    A
    quality
    F
    maintenance
    Enables AI tools to search and enrich B2B leads, including finding professional emails, company profiles, and filtering people and companies by various criteria.
    5
    227
    MIT
  • A
    license
    B
    quality
    D
    maintenance
    Enables AI-assisted B2B lead generation by discovering, extracting, scoring, and exporting company leads from any MCP-compatible agent.
    3
    15
    MIT

Latest Blog Posts

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/MOHAMAD-ZUBI/mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server