FlashLeads MCP Server
Enables AI agents to search Google and collect company website leads with contact information through the FlashLeads web harvest capabilities.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@FlashLeads MCP Serverfind 15 tech startups in Austin with email addresses"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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.jsonWindows:
%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
Completely quit Claude Desktop (⌘Q on Mac, Alt+F4 on Windows)
Reopen Claude Desktop
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-serverThen 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 inspectorEnvironment Variables
Variable | Description | Default | Required |
| Your FlashLeads API key | - | Yes |
| API base URL |
| 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
📧 Email: support@flashleads.io
🐛 Issues: GitHub Issues
📖 Docs: FlashLeads Documentation
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 toolsget_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.
| Name | Required | Description | Default |
|---|---|---|---|
| status | No | Filter by lead status (optional). Use 'COMPLETED' for fully scraped leads with all details. | |
| limit | No | Maximum number of leads to return (default: 50) |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| searchQuery | Yes | What to search for (e.g., 'restaurants', 'coffee shops', 'plumbers', 'real estate agents') | |
| location | Yes | Geographic location (e.g., 'United States', 'New York', 'London, UK', 'California') | |
| limit | No | Number of leads to collect (default: 10, max: 100) |
TDQS
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.
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.
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.
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.
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.
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
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.
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.
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.
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
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
Search companies, enrich contacts, and reveal emails and phones from your AI agent.
Find verified B2B emails and phone numbers; search and enrich people and companies for prospecting.
Search B2B contacts, enrich verified emails and phone numbers, and export results.
B2B sales intelligence: find companies, extract leads, enrich contacts with emails/phones.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables 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.

Prospeo MCP Serverofficial
AlicenseAqualityFmaintenanceEnables AI tools to search and enrich B2B leads, including finding professional emails, company profiles, and filtering people and companies by various criteria.5227MIT- AlicenseBqualityDmaintenanceEnables AI-assisted B2B lead generation by discovering, extracting, scoring, and exporting company leads from any MCP-compatible agent.315MIT
- AlicenseNot gradedqualityDmaintenanceGives AI assistants the power to find verified emails, phone numbers, and rich contact data from 575M+ professionals across 30M+ companies via GrowthToolkit's API.MIT
Appeared in Searches
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- 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/MOHAMAD-ZUBI/mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server