Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

ai.spideriq/leads

NPM · @SPIDERIQ/MCP-LEADS

SpiderIQ Leads: lead-gen MCP (jobs, campaigns, IDAP, Maps, People, Verify, company intel, spiderPR)

Available components

0 this week 70 Trust /100

Last scanned (20 hours ago)

Scores higher than 39% of npm servers

Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →

Supply Chain Security81
  • No malware found by supply-chain analysis.Pass
  • CVE check failed: a known high-severity CVE affects zod 3.25.76, a direct dependency. A fixed version is available. View diagnostics → Fail
  • No install/post-install scripts declared.Pass
  • 31 of 98 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency19
  • Repository check failed: the declared repository URL returned HTTP 404. See how to fix → View diagnostics → Fail
  • Provenance check failed: no build-provenance attestation is published. See how to fix → View diagnostics → Fail
  • Clear OSI-approved license (MIT).Pass
  • Actively maintained (last published 10 days ago).Pass
  • Security-disclosure policy not yet verified: we couldn't inspect the source repository.Unverified
Schema Quality & AI Usability66
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 9196 tokens (~180/item across 51 items; 51 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management100
  • No destabilizing schema changes in the last 30 days.Pass
Tool Coverage99
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 98% of tool parameters carry a description.Partial
Tool Safety75
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • 0 of 3 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation; "logout" implies "remove" and declares no destructiveHint at all, which the MCP spec reads as destructive by default. See how to fix → Fail
  • An AI judge read all 51 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 27 Oct 26 0
    • Stability: 0.97 → pass security
  • 26 Oct 26 0
    • Stability: pass → 0.97 functional
  • 24 Oct 26 −6
    • CVE-2023-54404 affects this package: high ▼ security
    • Known CVEs: pass → fail ▼ security
  • 20 Oct 26 +1
    • Stability: 0.97 → pass security
  • 19 Oct 26 −1
    • Stability: pass → 0.97 functional
  • 17 Oct 26 +2
    • Stability: 0.87 → pass security
  • 16 Oct 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 83 to 87. That category is still filling its 30-day observation window: 25 days of observed history at the previous scan, 26 at this one. The score rises as the window fills, whether or not the server changes.

  • 14 Oct 26 −3
    • Stability: pass → 0.80 functional
Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 4 Nov 2026 · Analysed npm/@spideriq/mcp-leads@1.9.0

Provenance No attestation

The registry publishes no build provenance for this version, so there is nothing to verify.

Result No attestation
Ecosystem npm

Background: How many MCP packages publish verified provenance →

Vulnerabilities 1 finding
ID CVE Severity Vector Fix available
GHSA-mrhx-c7xc-m3w5 CVE-2023-54404 high CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H yes

Background: What a vulnerability scan can and cannot prove →

Dependencies 98 packages
Packages resolved 98
Stale 30
No linked repository 1
Tree resolution Complete

Background: SBOMs and build attestations, explained →

MCP tools · 51 exposed · ~9,196 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
cancel_job ~40

Cancel a pending or queued job.

NameTypeReqDescription
job_idstringyesJob ID to cancel
workspacestring–Workspace name (default: default)

No output schema declared.

No examples provided.

capture_landing_page ~223

Capture a landing page — screenshots, HTML bundle, and AI-extracted marketing content. Useful for competitive analysis, ad tracking, and archiving landing pages. This is a convenience wrapper for submit_job with type=spiderLanding.

NameTypeReqDescription
ad_idstring–Facebook Ad ID for correlation with ad library data
capture_full_pageboolean–Capture full-page screenshot (default: true)
capture_html_bundleboolean–Download self-contained HTML (default: true)
capture_screenshotboolean–Capture above-fold screenshot (default: true)
dismiss_popupsboolean–Dismiss cookie/popup banners via AI (default: true)
extract_contentboolean–AI-extract marketing content (default: true)
testboolean–Route to test queue (default: false)
timeout_secondsnumber–Max capture time 10-300 seconds (default: 60)
urlstringyesLanding page URL to capture
workspacestring–Workspace name (default: default)

No output schema declared.

No examples provided.

check_access_status ~152

Check the status of a PAT access request. Returns 'pending', 'active', 'denied', 'expired', or 'revoked' (matches the backend PATRequestStatus enum). Once status==='active', the token is saved to ~/.spideriq/credentials.json automatically. Multi-brand approvals save one entry per workspace under client_id, with the first aliased as 'default' so existing tools (upload_local_file, etc.) keep working without --workspace.

NameTypeReqDescription
api_urlstring–API URL (default: https://spideriq.ai)
poll_tokenstringyesPoll token from request_access
request_idstringyesRequest ID from request_access

No output schema declared.

No examples provided.

company_intel_batch ~150

Research multiple companies in batch (max 50). Same pipeline as single but processes all companies in parallel. Returns job_id to poll.

NameTypeReqDescription
companiesarrayyesArray of companies to research. Each: { company_name (required), city?, country_code?, domain?, linkedin_url? }
configobject–Advanced pipeline config applied to all companies
max_employeesnumber–Max employees per company (1-2000, default 20)
profile_modestring–Employee detail level for all companies: 'short', 'full', 'full_email'. Default: short
testboolean–Route to test queue
workspacestring––

No output schema declared.

No examples provided.

company_intel_research ~275

Research a single company through the full intelligence pipeline: Perplexity discovery → website crawl → company registry → email verification → people/LinkedIn. Returns job_id to poll for results.

NameTypeReqDescription
citystring–City/location hint (helps discovery)
company_namestringyesCompany name to research (required)
configobject–Advanced pipeline config — toggle steps: { discovery: { enabled }, site: { enabled, mode, max_pages }, company_data: { enabled }, verify: { enabled }, people: { enabled } }
country_codestring–ISO 2-letter country code (e.g. "US", "DE")
domainstring–Known domain — skips Perplexity discovery step
linkedin_urlstring–Known LinkedIn company URL
max_employeesnumber–Max employees to extract per company (1-2000, default 20)
profile_modestring–Employee detail level: 'short' = name+title+location ($4/1K), 'full' = +skills/education/experience ($8/1K), 'full_email' = +email discovery ($12/1K). Default: short
testboolean–Route to test queue
workspacestring––

No output schema declared.

No examples provided.

continue_campaign ~40

Resume a stopped or paused campaign.

NameTypeReqDescription
campaign_idstringyesCampaign ID to resume
workspacestring–Workspace name (default: default)

No output schema declared.

No examples provided.

create_campaign ~578

Create a new multi-location scraping campaign. Campaigns orchestrate Google Maps searches across multiple locations with optional website scraping and email verification. The backend automatically selects the appropriate WindMill workflow: - Maps + Site + Verify: Full pipeline (default) - Maps + Site: Skip email verification - Maps only: Quick business search without site scraping Provide a search query, country code, and optionally a workflow config to control which steps run. SMARTLEAD EXPORT (push leads to an outreach campaign automatically): set workflow.smartlead = { enabled: true, connection_id, remote_campaign_id }. When enabled, the campaign's VERIFIED leads are pushed into that SmartLead campaign automatically when the run finishes (no separate push step). You MUST discover the two ids first: call list_outreach_connections (→ connection_id) then list_outreach_campaigns(connection_id) (→ remote_campaign_id). Those two tools live in the SpiderMail slice / kitchen-sink @spideriq/mcp. field_map is optional (backend defaults already map location + VayaPin pin_name). Only leads with a verified email are exported; set only_with_vayapin_seo:true to restrict to businesses that got a VayaPin SEO pin. SCOPING US ZIP CAMPAIGNS ("state = country"): the US is too large to scrape whole. To run a US ZIP campaign, scope it to ONE STATE: set filter = { mode: "regions", admin_regions: ["Texas"], include_postcodes: true }. Discover valid state names with list_regions(country_code="US") (or list_countries, which lists the 50 states as country-equivalent units). One state runs every ZIP in it as its own Maps search — list_regions returns each state's postcode_count so you can size it first. Scoping a postcode (ZIP) run to all of the US — or omitting the state — is rejected by the API (422, >10K location cap). Pick exactly one state per campaign.

NameTypeReqDescription
country_codestringyes2-letter ISO country code (e.g., "US", "DE", "IL")
filterobject–Location filter configuration. For a US ZIP campaign, scope to ONE state: { mode: "regions", admin_regions: ["Texas"], include_postcodes: true }.
max_resultsnumber–Max results per location (1-500, default: 100)
namestring–Campaign name (auto-generated if not provided)
search_querystringyesWhat to search for (e.g., "restaurants", "dentists", "plumbers")
testboolean–Route to test queue (default: false)
workflowobject–Workflow configuration to control which pipeline steps run
workspacestring–Workspace name (default: default)

No output schema declared.

No examples provided.

create_video ~234

Stitch AI-generated video scenes into a final video with transitions and music. Supports portrait (9:16) and landscape (16:9), fade transitions, background music, and SpiderMedia upload. This is a convenience wrapper for submit_job with type=spiderVideo.

NameTypeReqDescription
aspect_ratiostring–Aspect ratio (default: 9:16 portrait)
music_urlstring–Background music URL (mp3, wav)
music_volumenumber–Music volume 0-1 (default: 0.3)
preprocessboolean–Auto-fix invalid formats with FFmpeg (default: false)
project_namestringyesOutput filename without extension
scenesarrayyesVideo scenes to stitch (1-50)
testboolean–Route to test queue (default: false)
transition_framesnumber–Fade transition in frames (default: 15 = 0.5s at 30fps)
uploadboolean–Upload result to SpiderMedia (default: false)
workspacestring–Workspace name (default: default)

No output schema declared.

No examples provided.

delete_campaign ~82

Delete a campaign and all of its data. Irreversible. The campaign must be STOPPED first — this fails with a 409 if it still has active jobs. Call stop_campaign, wait for in-flight jobs to settle, then delete.

NameTypeReqDescription
campaign_idstringyesCampaign ID to delete
workspacestring–Workspace name (default: default)

No output schema declared.

No examples provided.

get_api_info ~33

Get information about the SpiderIQ API and your connection.

NameTypeReqDescription
workspacestring–Workspace name (default: default)

No output schema declared.

No examples provided.

get_auth_status ~33

Check if you are authenticated and get current user info.

NameTypeReqDescription
workspacestring–Workspace name (default: default)

No output schema declared.

No examples provided.

get_campaign_status ~95

Get detailed status and progress of a campaign. Returns: - Campaign configuration (query, country, workflow settings) - Progress: completed/failed/pending locations and percentage - Total businesses found - Which WindMill workflow is being used

NameTypeReqDescription
campaign_idstringyesCampaign ID to check
formatstring–Response format (default: json)
workspacestring–Workspace name (default: default)

No output schema declared.

No examples provided.

get_company_data ~296

Look up company data from public registries (US SEC EDGAR, UK Companies House, EU VIES VAT). Modes: - search: Search by company name (e.g., "Apple Inc" in US) - lookup: Look up by registry ID (e.g., CIK "0000320193" in US) - vat: Validate EU VAT number (e.g., "GB123456789") This is a convenience wrapper for submit_job with type=spiderCompanyData.

NameTypeReqDescription
countrystring–Country code ISO 3166-1 alpha-2 (US, GB, EU, etc.)
financials_modestring–Financials extraction method (UK only, default: auto)
identifierstring–Registry-specific company ID — CIK (US), Company Number (UK)
include_financialsboolean–Extract financial data from filings (UK only)
limitnumber–Max results 1-100 (default: 10, search mode only)
modestring–Operation mode (default: search)
namestring–Company name to search for (required for search mode)
testboolean–Route to test queue (default: false)
vat_numberstring–EU VAT number with country prefix (e.g., "GB123456789")
workspacestring–Workspace name (default: default)

No output schema declared.

No examples provided.

get_event_status ~35

Get event stream status — service health, active subscriptions, and whether your client is currently connected.

NameTypeReqDescription
workspacestring––

No output schema declared.

No examples provided.

get_job_results ~57

Get the results of a completed job.

NameTypeReqDescription
formatstring–Response format (default: json)
job_idstringyesJob ID to get results for
workspacestring–Workspace name (default: default)

No output schema declared.

No examples provided.

get_job_status ~55

Get the current status of a job.

NameTypeReqDescription
formatstring–Response format (default: json)
job_idstringyesJob ID to check
workspacestring–Workspace name (default: default)

No output schema declared.

No examples provided.

get_queue_stats ~48

Get statistics about job queues (pending jobs, consumers, etc.).

NameTypeReqDescription
formatstring–Response format (default: json)
workspacestring–Workspace name (default: default)

No output schema declared.

No examples provided.

health_check ~51

Check if the SpiderIQ API is healthy and responsive.

NameTypeReqDescription
api_urlstring–API URL (default: https://spideriq.ai)
workspacestring–Workspace name (default: default)

No output schema declared.

No examples provided.

idap_batch_fetch ~144

Batch fetch up to 100 resources by their idap:// refs. Accepts an array of ref strings (e.g., "idap://businesses/uuid1", "idap://emails/uuid2"). Returns results keyed by ref, plus errors for missing/invalid refs. Efficient for board views or CRM sync — one call instead of N individual fetches.

NameTypeReqDescription
fieldsstring–Comma-separated fields to return
includestring–Comma-separated related types to include
refsarrayyesArray of idap:// ref strings (max 100)
workspacestring–Workspace name (default: default)

No output schema declared.

No examples provided.

idap_delete_business ~724

🔴 DESTRUCTIVE — delete a business + cascade across per-tenant tables. IRREVERSIBLE. Hard-deletes the business row in norm_cli_<client>.businesses AND cascades to linked tables (pins, business_contacts, business_registry, company_registry, contacts, phones, domains, linkedin_profiles). Transactional — all-or-nothing. Audit row written to public.idap_deletions_audit in the same transaction. WHEN TO USE: - Surfacing a duplicate via idap_resolve_resource + manual review, then cleaning up the duplicate. - Tenant cleanup of stale/incorrect business records. - Cascading removal of contact/email/phone associations for a business. RECOMMENDED FLOW: 1. Resolve target with idap_resolve_resource (e.g. {resource_type: 'businesses', domain: 'example.com'}) → get the canonical business_id (UUID). 2. (Optional) idap_find_duplicates (D.1) to confirm this isn't unique-data destruction. 3. Call idap_delete_business with the resolved UUID + a short audit reason. ⚠️ DOES NOT TOUCH cs.vayapin.com. VayaPin pin pages are permanent per VayaPin §10. Response includes vayapin_pins_remain_external (boolean) + vayapin_pin_data_set_ids_orphaned (array). Tell the user about any remaining external URLs. ⚠️ DOES NOT CASCADE THE 'emails' TABLE. emails is a tenant-wide canonical store (UNIQUE on the email column) shared across businesses via business_contacts (M:N). Only the link row is removed; the email's verification metadata stays. Other businesses still reference the same email. WHAT AUTO-CASCADES (Postgres ON DELETE CASCADE): booking_flows, services — surfaced in response.auto_cascaded {table: count}. WHAT BLOCKS THE DELETE (returns 409 Conflict, never partial): bookings rows referencing this business or its contacts via ON DELETE NO ACTION FK. Response.detail.blocking_booking_ids lists up to 50 blocking IDs. Caller must re-point or delete those bookings before retrying. AUTH: Tenant-owner only — caller's client_id IS the tenant scope. No super-admin override in V1. Second DELETE on t…

NameTypeReqDescription
business_idstringyesUUID of the business to delete. Resolve alternate keys via idap_resolve_resource first.
reasonstring–Optional free-text reason recorded in the audit log (max 500 chars). e.g. "duplicate of <other_uuid>".
workspacestring–Workspace name (default: default)

No output schema declared.

No examples provided.

idap_fetch_resource ~223

Fetch a single resource from the client's normalized data store. Returns the resource data with active flags and optional related resources. Use field projection (`fields`) to reduce token usage. Use `include` to fetch related data in one call (e.g., a business + its emails and phones). Resource types: businesses, domains, contacts, emails, phones, company_registry, linkedin_profiles, media. Example ref format: idap://businesses/550e8400-e29b-41d4-a716-446655440000

NameTypeReqDescription
fieldsstring–Comma-separated fields to return (projection). E.g., "name,domain,email"
includestring–Comma-separated related types to include. E.g., "emails,phones" for businesses
resource_idstringyesUUID of the resource
resource_typestringyesIDAP resource type: businesses, domains, contacts, emails, phones, company_registry, linkedin_profiles, media, pins
workspacestring–Workspace name (default: default)

No output schema declared.

No examples provided.

idap_find_duplicates ~379

Find duplicate resources sharing a common external key. Used in dedupe workflows before calling the (future) delete endpoint. Returns clusters where two or more resources share the same value for a whitelisted key. Each cluster has `count >= 2` (single-occurrence values are filtered out server-side). Whitelisted `key` values per `resource_type` (Wave D.1, 2026-05-24): - businesses → google_place_id, domain, phone_e164 (direct columns on businesses) vat, registration_number, lei, tax_id (joined via company_registry.business_id) Other resource types are not yet supported (returns 400 with the list of currently-supported types). Response shape: ``` { "resource_type": "businesses", "key": "google_place_id", "clusters": [ { "key_value": "ChIJ...", "count": 3, "resource_ids": ["uuid", "uuid", "uuid"] }, ... ], "total_clusters": N } ``` Default `limit` = 100; max = 500. Clusters are ordered by count DESC, then key_value ASC. Use this BEFORE the (forthcoming) DELETE endpoint to confirm which duplicates to remove.

NameTypeReqDescription
keystringyesClustering key. For businesses (Wave D.1): google_place_id, domain, phone_e164 (direct columns) or vat, registration_number, lei, tax_id (joined via company_registry).
limitinteger–Maximum clusters to return (1..500). Default 100.
resource_typestringyesIDAP resource type: businesses, domains, contacts, emails, phones, company_registry, linkedin_profiles, media, pins
workspacestring–Workspace name (default: default)

No output schema declared.

No examples provided.

idap_list_resources ~311

List resources from the client's normalized data with filtering and cursor-based pagination. Supports incremental sync via `since` parameter — only returns resources modified after that timestamp. Use `flags` to filter (e.g., "qualified" for flagged-only, or "-rejected" to exclude rejected). Returns items array, cursor for next page, and has_more boolean.

NameTypeReqDescription
campaign_idstring–Filter by campaign ID
cursorstring–Pagination cursor from previous response
fieldsstring–Comma-separated fields to return
flagsstring–Filter by flags. "qualified" = must have flag. "-rejected" = exclude flag
includestring–Comma-separated related types to include
limitnumber–Max results per page (1-500, default: 100)
orderstring–Sort order (default: desc)
resource_typestringyesIDAP resource type: businesses, domains, contacts, emails, phones, company_registry, linkedin_profiles, media, pins
sincestring–ISO 8601 datetime — only resources modified after this time
sortstring–Sort column (e.g., created_at, name)
sourcestring–Filter by source worker (e.g., spiderMaps, spiderSite)
untilstring–ISO 8601 datetime — only resources modified before this time
workspacestring–Workspace name (default: default)

No output schema declared.

No examples provided.

idap_media ~160

Get the URL for an IDAP media resource (screenshot, photo, document). Returns a URL to the media proxy endpoint — does not return binary data. The URL supports: - ?thumb=true — 400px thumbnail - ?download=true — Content-Disposition: attachment - Conditional requests (If-None-Match, If-Modified-Since → 304) Use the URL in markdown, HTML, or pass it to other tools.

NameTypeReqDescription
downloadboolean–Return download URL with Content-Disposition header (default: false)
media_idstringyesUUID of the media resource
thumbboolean–Return 400px thumbnail URL (default: false)
workspacestring–Workspace name (default: default)

No output schema declared.

No examples provided.

idap_resolve_resource ~644

Resolve a single resource by external identifier instead of UUID. Use this when you have an external identifier (Google place_id, domain, email, VAT, LEI, etc.) and need the canonical IDAP record without first listing or searching. Accepted (resource_type, identifier) pairs — server enforces this allowlist: - businesses → place_id, domain pin_name, pin_data_set_id, account_id, pin_subscription_id (Wave D.1 — joined via pins.business_id) - domains → domain - emails → email - contacts → email, linkedin, twitter - linkedin_profiles → url - company_registry → vat, registration_number, lei, tax_id, source_id - pins → pin_name, pin_data_set_id, account_id, pin_subscription_id (IDAP PR 2) Wave D.1 (2026-05-24): the 4 VayaPin pin keys now also resolve a `businesses` row directly — the service joins through `pins.business_id` so you can look up a business by any of the pin identifiers without first resolving the pin and then the business. Exactly ONE identifier must be supplied — supplying two or zero returns a 400 envelope. Supplying an identifier that isn't valid for the resource_type returns a 400 envelope listing the allowed keys. Returns 404 if no row matches in the client's tenant scope. Added by IDAP PR 1 (2026-05-19); pins resource added by PR 2 (2026-05-24); businesses-by-pin-key joined lookup added by Wave D.1 (2026-05-24).

NameTypeReqDescription
account_idstring–VayaPin account UUID (pins)
domainstring–Domain name (businesses, domains)
emailstring–Email address (emails, contacts)
fieldsstring–Comma-separated field projection
includestring–Comma-separated related types to include
leistring–Legal Entity Identifier (company_registry)
linkedinstring–LinkedIn profile URL on a contact
pin_data_set_idstring–VayaPin data set UUID (pins)
pin_namestring–VayaPin PIN name e.g. "BB:TAPAS" (pins)
pin_subscription_idstring–VayaPin subscription UUID (pins)
place_idstring–Google Place ID (businesses)
registration_numberstring–National registration number (company_registry)
resource_typestringyesIDAP resource type: businesses, domains, contacts, emails, phones, company_registry, linkedin_profiles, media, pins
source_idstring–Registry source id (company_registry, dev/admin only)
tax_idstring–National tax id (company_registry)
twitterstring–Twitter profile URL on a contact
urlstring–LinkedIn URL (linkedin_profiles)
vatstring–VAT number (company_registry)
workspacestring–Workspace name (default: default)

No output schema declared.

No examples provided.

idap_search ~176

Full-text search within a resource type. Uses PostgreSQL tsvector for relevance-ranked results. Search fields vary by type: - businesses: name, address, category - domains: domain, title - contacts: name, email, title - emails: address - phones: phone_number Returns the same format as idap_list_resources.

NameTypeReqDescription
fieldsstring–Comma-separated fields to return
flagsstring–Filter by flags
limitnumber–Max results (1-500, default: 20)
qstringyesSearch query string
resource_typestringyesIDAP resource type: businesses, domains, contacts, emails, phones, company_registry, linkedin_profiles, media, pins
workspacestring–Workspace name (default: default)

No output schema declared.

No examples provided.

idap_stats ~105

Get aggregate statistics for a resource type. Returns total count, flag distribution (how many resources have each flag), source breakdown (which workers generated the data), and last-24h activity counts. Useful for dashboards, health checks, and understanding data coverage.

NameTypeReqDescription
resource_typestringyesIDAP resource type: businesses, domains, contacts, emails, phones, company_registry, linkedin_profiles, media, pins
workspacestring–Workspace name (default: default)

No output schema declared.

No examples provided.

idap_write_flags ~253

Add or remove flags on a resource. Flags are bidirectional metadata for lead qualification, workflow control, and agent coordination. Common flags: qualified, priority, rejected, do_not_contact, duplicate, reviewed, needs_enrichment. Behavioral flags: - "rejected" → excluded from default list responses - "do_not_contact" → respected by outreach workers - "duplicate" → triggers FuzzIQ merge Flags are idempotent (adding an existing flag is a no-op). Removes are soft-deletes (history preserved).

NameTypeReqDescription
addarray–Flags to add (e.g., ["qualified", "priority"])
flagged_bystring–Who is flagging (e.g., "agent:claude-code", "user:martin")
reasonstring–Reason for flagging
removearray–Flags to remove (e.g., ["needs_enrichment"])
resource_idstringyesUUID of the resource to flag
resource_typestringyesIDAP resource type: businesses, domains, contacts, emails, phones, company_registry, linkedin_profiles, media, pins
workspacestring–Workspace name (default: default)

No output schema declared.

No examples provided.

lead_search ~215

Find leads for a search query in a location. Full pipeline: Google Maps → website crawl → email verification → VayaPin profile. Returns job_id to poll for results via get_job_results.

NameTypeReqDescription
country_codestring–ISO 2-letter country code (default: "US")
langstring–Language code for results (default: "en")
locationstring–Location to search in (e.g. "Berlin", "Boston, MA"). If omitted, include location in search_query.
max_resultsnumber–Max businesses to find (default: 20, max: 500)
search_querystringyesWhat to search for (e.g. "restaurants", "plumbers", "software companies")
testboolean–Route to test queue
workflowobject–Pipeline config: { spidersite: { enabled, mode }, spiderverify: { enabled }, vayapin: { enabled } }. Defaults to full pipeline.
workspacestring––

No output schema declared.

No examples provided.

list_campaigns ~100

List your campaigns with optional status filtering.

NameTypeReqDescription
country_codestring–Filter by country code
formatstring–Response format (default: json)
pagenumber–Page number (default: 1)
page_sizenumber–Results per page (1-100, default: 20)
statusstring–Filter by campaign status
workspacestring–Workspace name (default: default)

No output schema declared.

No examples provided.

list_countries ~88

List available countries (with location counts) you can target with a campaign. To target the US by ZIP, pick a STATE instead (the US is too large to scrape whole) — use list_regions(country_code="US"), or list_selectable_units which returns the 50 US states as country-equivalent units alongside real countries.

NameTypeReqDescription
workspacestring–Workspace name (default: default)

No output schema declared.

No examples provided.

list_jobs ~93

List your submitted jobs with optional filtering.

NameTypeReqDescription
formatstring–Response format (default: json)
pagenumber–Page number (default: 1)
per_pagenumber–Results per page (default: 20)
statusstring–Filter by status
typestring–Filter by job type
workspacestring–Workspace name (default: default)

No output schema declared.

No examples provided.

list_regions ~122

List the admin regions (US states / provinces) of a country, each with its city_count and postcode_count. This is how you discover valid state names for a US ZIP campaign: pick ONE state, then create_campaign with filter { mode: "regions", admin_regions: [state], include_postcodes: true }. A state's postcode_count is roughly how many Maps searches the ZIP run fans out into.

NameTypeReqDescription
country_codestringyes2-letter ISO country code, e.g. "US".
workspacestring–Workspace name (default: default)

No output schema declared.

No examples provided.

list_selectable_units ~166

List selectable geo units for a typeahead picker — countries plus, by default, the 50 US states as top-level "country-equivalent" units (so you target "Florida" the same way as "Germany"). Each unit has unit_id ("DE" or "US:Florida"), label, and kind ("country"|"state"). With states_as_units=true (default), "all of US" is intentionally NOT selectable (a US ZIP campaign must scope to one state). Set states_as_units=false to get plain countries (US as a whole) for non-ZIP use.

NameTypeReqDescription
states_as_unitsboolean–When true (default), replace the US with its 50 states as top-level units.
workspacestring–Workspace name (default: default)

No output schema declared.

No examples provided.

list_workspaces ~19

List all configured workspaces and their authentication status.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

logout ~25

Remove stored authentication credentials.

NameTypeReqDescription
workspacestring–Workspace name (default: default)

No output schema declared.

No examples provided.

pr_get_result ~93

Get the SpiderPR wire-distribution result for a job — provider order id, distribution status (queued|submitted|published|failed), published URL, and wire report URL. Convenience wrapper for get_job_results.

NameTypeReqDescription
formatstring–Response format (default: json).
job_idstringyesSpiderPR job ID to get results for.
workspacestring–Workspace name (default: default).

No output schema declared.

No examples provided.

pr_submit ~324

Submit a press release to the wire for distribution (SpiderPR). You author the release (title + body, plus optional summary/category/tags/contact); the job is dispatched to the SpiderPR wire worker, which renders it to wire-ready HTML, submits it to the provider, and polls until it is published. This is a convenience wrapper for submit_job with type=spiderPR. Poll get_job_results (or pr_get_result) for the {provider_order_id, status, published_url, wire_report_url}. Status flows queued → submitted → published (or failed).

NameTypeReqDescription
bodystringyesFull body of the release, plain text or HTML (required, max 50000 chars).
categorystring–Release category/topic (e.g. 'Technology', 'Finance').
contactobject–Media/press contact carried on the release (all fields optional).
formatstring–Response format (default: json).
prioritynumber–Job priority 0 (lowest) to 10 (highest). Default 5.
scheduled_release_atstring–Requested wire release time (ISO 8601). Omit for ASAP.
summarystring–Short summary / subheadline of the release.
tagsarray–Keyword tags for the release (max 25).
testboolean–Route to the test queue (default: false).
titlestringyesHeadline of the press release (required, max 300 chars).
workspacestring–Workspace name (default: default).

No output schema declared.

No examples provided.

request_access ~157

Request access to SpiderIQ API. This sends an approval email to the admin. After calling this, use check_access_status to poll for approval. Once approved, the token is automatically saved for subsequent API calls.

NameTypeReqDescription
api_urlstring–API URL (default: https://spideriq.ai)
emailstringyesAdmin email address (the person who will approve access)
projectstring–Project name (shown in approval email)
recover_asstring–Recover an existing agent by its OPVS address (username). Only takes effect when NO PAT is stored — a held PAT always rotates the SAME account.
scopesarray–Requested permission scopes (default: jobs:submit, jobs:read)

No output schema declared.

No examples provided.

retry_campaign_location ~157

Retry one location in a campaign (re-dispatches worker jobs). Use the location's `id` from list_campaign_jobs (campaign_locations.id), NOT the job_id. - retry_mode "full": re-run the whole workflow from SpiderMaps - retry_mode "site": keep Maps results, re-run SpiderSite + SpiderVerify - retry_mode "verify": keep Site results, re-run SpiderVerify only Max 3 retries per location.

NameTypeReqDescription
campaign_idstringyesCampaign ID
location_idnumberyescampaign_locations.id (the `id` from list_campaign_jobs)
retry_modestring–Retry depth (default: full)
workspacestring–Workspace name (default: default)

No output schema declared.

No examples provided.

retry_failed_locations ~98

Retry every failed location in a campaign (up to max_locations, default 10). Locations that already hit the 3-retry cap are skipped, not errored. Useful after a campaign finishes with some failed locations.

NameTypeReqDescription
campaign_idstringyesCampaign ID
max_locationsnumber–Max locations to retry, 1-50 (default: 10)
workspacestring–Workspace name (default: default)

No output schema declared.

No examples provided.

scrape_website ~128

Scrape a website to extract contact information, social links, and content. This is a convenience wrapper for submit_job with type=spiderSite.

NameTypeReqDescription
extract_emailsboolean–Extract email addresses (default: true)
extract_phonesboolean–Extract phone numbers (default: true)
extract_socialboolean–Extract social media links (default: true)
max_pagesnumber–Maximum pages to crawl (default: 10)
urlstringyesWebsite URL to scrape
workspacestring–Workspace name (default: default)

No output schema declared.

No examples provided.

search_google_maps ~79

Search Google Maps for businesses. This is a convenience wrapper for submit_job with type=spiderMaps.

NameTypeReqDescription
max_resultsnumber–Maximum results to return (default: 20)
search_querystringyesSearch query (e.g., "restaurants in New York")
workspacestring–Workspace name (default: default)

No output schema declared.

No examples provided.

search_people ~314

Search for people on LinkedIn — profile lookup, search, research, or company employee extraction. Modes: - profile: Get a single LinkedIn profile by URL - search: Search people by natural language query (e.g., "CTO fintech Israel") - research: Deep research on a LinkedIn profile - company: Extract employees from a LinkedIn company page This is a convenience wrapper for submit_job with type=spiderPeople.

NameTypeReqDescription
company_urlstring–LinkedIn company URL (required for company mode)
icp_descriptionstring–Ideal Customer Profile for lead scoring
linkedin_urlstring–LinkedIn profile URL (required for profile/research modes)
max_employeesnumber–Max employees to extract 1-2000 (default: 100)
modestringyesOperation mode
person_namestring–Person name (optional, extracted from LinkedIn if not provided)
product_descriptionstring–Your product description for lead scoring
profile_modestring–Employee detail level: short ($4/1K), full ($8/1K), full_email ($12/1K)
search_limitnumber–Max profiles in search 1-50 (default: 10)
search_querystring–Natural language search query (required for search mode)
testboolean–Route to test queue (default: false)
workspacestring–Workspace name (default: default)

No output schema declared.

No examples provided.

stop_campaign ~46

Stop an active campaign. Can be resumed later with continue_campaign.

NameTypeReqDescription
campaign_idstringyesCampaign ID to stop
workspacestring–Workspace name (default: default)

No output schema declared.

No examples provided.

submit_job ~254

Submit a new scraping job to SpiderIQ. Available job types: - spiderSite: Scrape website content and extract contact info - spiderMaps: Search Google Maps for businesses - spiderMapsEnrich: Enrich Google Maps place with details - spiderVerify: Verify email addresses - spiderPeople: Find people information - spiderPhone: Extract phone-related data - spiderFacebookPage: Scrape Facebook pages - spiderPublicInstagram: Scrape public Instagram profiles - spiderPublicLinkedin: Scrape public LinkedIn profiles - spiderLanding: Capture landing page screenshots - spiderVideo: Generate video content - spiderMail: Send emails - spiderCompanyData: Research company information - spiderVayapin: VayaPin export - spiderSocial: Social Media Enrichment — recover a missing email/phone/website/socials for one business from its social handles Each job type requires different payload fields. See API documentation for details.

NameTypeReqDescription
formatstring–Response format (default: json)
payloadobjectyesJob payload (varies by job type)
typestringyesJob type to submit
workspacestring–Workspace name (default: default)

No output schema declared.

No examples provided.

submit_social_enrichment ~521

Recover a missing email / phone / real website / social links for ONE business from its public social handles (Social Media Enrichment). Given the business's known social handles (Facebook preferred, then Instagram) and optionally a single social-only website (linktr.ee / facebook / instagram URL), the job recovers whatever contact info it can and folds it in additively (never overwrites what you passed). If the business already has a usable email, the job self-skips (`has_email`) — recovery is only spent where it's needed. Requires the account's **Social Media Enrichment** plan to be enabled (entitlement-gated). Provide at least one social handle or a social-only website, or the job self-skips (`no_social_handle`). This is a convenience wrapper for submit_job with type=spiderSocial. Poll get_job_results for the recovered {email, phone, website, socials} — or the typed skip reason.

NameTypeReqDescription
business_namestring–Business name (context only).
campaign_idstring–Campaign context — scopes the per-campaign usage cap. Usually omitted for standalone submissions.
country_codestring–ISO-2 country code, e.g. "US", "DE" (context only).
emailstring–An email already known for the business. If present, the job self-skips (has_email).
facebookstring–Facebook page URL or handle (preferred source).
formatstring–Response format (default: json).
instagramstring–Instagram profile URL or handle.
linkedinstring–LinkedIn page URL or handle.
phonestring–A phone already known for the business (folded, never overwritten).
place_idstring–Stable business identifier (Google place_id). Used as the exactly-once recovery key.
social_mediaobject–Alternative to the individual handle fields: a map of {platform: url|handle}, e.g. {"facebook": "https://facebook.com/acme", "instagram": "acme"}. Merged with any individual handle fields above.
testboolean–Route to the test queue (default: false).
tiktokstring–TikTok profile URL or handle.
twitterstring–Twitter/X profile URL or handle.
websitestring–A single social-only website (linktr.ee / facebook / instagram URL), if known.
workspacestring–Workspace name (default: default).

No output schema declared.

No examples provided.

submit_vayapin ~322

Create a VayaPin business profile from enriched data. Requires business basics (name, country, coordinates) and website content (markdown URL or direct content). This is a convenience wrapper for submit_job with type=spiderVayapin.

NameTypeReqDescription
business_addressstring–Full business address
business_namestringyesBusiness name for the VayaPin profile
business_phonestring–Business phone number
country_codestringyes2-letter ISO country code (e.g., "DK", "US", "DE")
domainstring–Website domain (e.g., "example.com")
emails_verifiedarray–Verified emails from SpiderVerify [{email, status, source}]
facebookstring–Facebook page URL
gmaps_linkstring–Google Maps URL
instagramstring–Instagram profile URL
latitudenumberyesLatitude from Google Maps
linkedinstring–LinkedIn page URL
logostring–Logo image URL
longitudenumberyesLongitude from Google Maps
markdown_compendiumstring–Direct markdown content (alternative to markdown_url)
markdown_urlstring–URL to crawled website markdown file (from SpiderSite/SpiderMedia)
original_websitestring–Original website URL
testboolean–Route to test queue (default: false)
twitterstring–Twitter/X profile URL
workspacestring–Workspace name (default: default)

No output schema declared.

No examples provided.

subscribe_events ~99

Subscribe to real-time job events (SSE). Opens a short-lived connection and returns a buffer of recent events. Event types: job.queued, job.started, job.completed, job.failed, connected.

NameTypeReqDescription
duration_secondsnumber–How long to listen for events (default: 5, max: 30)
max_eventsnumber–Max events to collect before returning (default: 50)
workspacestring––

No output schema declared.

No examples provided.

update_campaign ~123

Update a campaign's configuration. Workflow config changes are merged with existing settings. Use this to change the search query, max results, or toggle workflow steps (site scraping, email verification) on an active campaign.

NameTypeReqDescription
campaign_idstringyesCampaign ID to update
max_resultsnumber–New max results per location
namestring–New campaign name
search_querystring–New search query
workflowobject–Updated workflow configuration (merged with existing)
workspacestring–Workspace name (default: default)

No output schema declared.

No examples provided.

Install

How do I install the ai.spideriq/leads MCP server?

ai.spideriq/leads runs locally as an npm package, launched with npx -y @spideriq/mcp-leads. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

npm · @spideriq/mcp-leads

# add to Claude Code
claude mcp add ai-spideriq-leads -- npx -y @spideriq/mcp-leads
Common questions

What is the ai.spideriq/leads MCP server?

ai.spideriq/leads is an MCP server listed in the public MCP registry as ai.spideriq/leads. SpiderIQ Leads: lead-gen MCP (jobs, campaigns, IDAP, Maps, People, Verify, company intel, spiderPR). This page covers its npm package (@spideriq/mcp-leads).

Is the ai.spideriq/leads MCP server safe to use?

ai.spideriq/leads scores 70 out of 100 on VerifyMCP. We recorded 1 known advisory against it as of 4 November 2026. It declares no install or post-install scripts. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the ai.spideriq/leads MCP server expose?

ai.spideriq/leads exposes 51 tools: request_access, check_access_status, get_auth_status, logout, list_workspaces, and 46 more. Their descriptions and schemas cost roughly 9,196 tokens of context every time the server is loaded.

Is the ai.spideriq/leads MCP server still maintained?

ai.spideriq/leads is still listed as active in the MCP registry. We last reached this channel on 4 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

What licence is the ai.spideriq/leads MCP server under?

ai.spideriq/leads declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.