accueil / serveurs / Recherche & Web / com.noseforleads/leads-mcp
com.noseforleads/leads-mcp
serveur MCP (Model Context Protocol) · nose-for-leads 1.29.0
Référencé dans l'annuaire. Seul le pentest comportemental fait foi, et il n'a pas encore été exécuté sur ce serveur.
Est-ce que com.noseforleads/leads-mcp est sûr ?
Au dernier audit MCP Hub, le serveur MCP « com.noseforleads/leads-mcp » est classé « Non encore testé ». Référencé dans l'annuaire. Seul le pentest comportemental fait foi, et il n'a pas encore été exécuté sur ce serveur. Le verdict est réévalué en continu ; consultez la fiche pour l'état à jour.
Méthode : MCP Hub analyse la description de chaque outil (couche 1) et, pour le verdict fort, exécute le serveur dans une micro-VM isolée avec leurres et réseau bloqué (couche 2). On publie des noms et des compteurs, jamais le contenu brut renvoyé par un outil.
Les 11 outils
- add_suppression≈ 478 tokens
Add an email or domain to the suppression list (scope is 'email' or 'domain') so future campaigns exclude it.
Paramètres, retour & exemple (3)
Paramètresscope· string · requisvalue· string · requisreason· string · requis
Exemple d'appel{"name": "add_suppression", "arguments": {"scope": "texte", "value": "texte", "reason": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - fetch_results≈ 3203 tokens
Fetch a page of leads produced by a campaign (paginate with offset/limit). kept_only=True returns only rows the user marked kept in review (for export). match_status narrows to one population: 'validated' (verified email, billed) or 'needs_review' (surfaced free; rejection_reason says why) — omit it for both. Returns {summary, total, offset, limit, rows}; total counts the filtered population. Rows carry verification receipts (verified_by/verified_at/ verifier_verdict) when a live verification exists — treat them as the authoritative proof; null means no receipt, not a failure. Two more quotable proof lines appear where earned: person_receipt (who the person is and where we saw them launch, on person-target leads) and tech_receipt (dated evidence of the detected platform) — forward them as-is.
Paramètres, retour & exemple (5)
Paramètreslimit· integer · optionneljob_id· string · requisoffset· integer · optionnelkept_only· boolean · optionnelmatch_status· ? · optionnel
Exemple d'appel{"name": "fetch_results", "arguments": {"job_id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - get_campaign_status≈ 1139 tokens
Check the status of a previously submitted campaign (queued/running/done/ done_partial/failed) by job_id. Prefer wait_seconds=45 over sleeping between polls: the call holds until the status or pipeline stage changes (or the timer expires) and returns the normal snapshot either way — loop on it until `status` is terminal. Out-of-range wait_seconds clamps to [0, 45], never errors.
Paramètres, retour & exemple (2)
Paramètresjob_id· string · requiswait_seconds· integer · optionnel
Exemple d'appel{"name": "get_campaign_status", "arguments": {"job_id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - get_credits≈ 615 tokens
Check this tenant's prepaid credit balance (a validated lead costs 1 credit — 2 for person-target or Meta-ads campaigns), the available credit packs, and the ledger (paginate ledger entries with offset/limit, newest first). Campaigns cannot start with a zero balance — buy a pack via the dashboard when balance runs low. When you authenticate with an API key this also returns YOUR key's remaining budgets — check it before large campaigns.
Paramètres, retour & exemple (2)
Paramètreslimit· integer · optionneloffset· integer · optionnel
Exemple d'appel{"name": "get_credits", "arguments": {"limit": 1, "offset": 1}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - get_icp_pack≈ 453 tokens
List the ICP packs (saved vertical/geo templates) available to this tenant.
Paramètres, retour & exemple (0)
Exemple d'appel{"name": "get_icp_pack", "arguments": {}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - get_usage≈ 707 tokens
Today's external vendor usage against the tenant's daily quota (vendor_calls_today / per_day_max / remaining). This is the OTHER ceiling besides credits: when remaining hits 0, campaign work pauses until midnight even with a healthy credit balance — check it before launching a large or urgent campaign. `remaining` is quota UNITS, which usually equals calls; a creator discovery costs one unit per delivered record, so it can consume far more than one call's worth. Mirrors REST GET /v1/usage.
Paramètres, retour & exemple (0)
Exemple d'appel{"name": "get_usage", "arguments": {}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - list_campaigns≈ 1585 tokens
List this tenant's campaigns, newest first — the recovery path when a job_id was lost: every row carries job_id, status, the query it ran, and credits spent, so you can resume polling (get_campaign_status) or fetch results without resubmitting (and double-charging). Filters: q (substring over vertical/geo), status (queued | running | done | done_partial | failed), created_after/ created_before (ISO-8601 window over creation time), order ('desc' default, 'asc' oldest first). Paginate with offset/limit (limit 1-200); `total` counts everything matching the filters, not just this page.
Paramètres, retour & exemple (7)
Paramètresq· ? · optionnellimit· integer · optionnelorder· string · optionneloffset· integer · optionnelstatus· ? · optionnelcreated_after· ? · optionnelcreated_before· ? · optionnel
Exemple d'appel{"name": "list_campaigns", "arguments": {"q": "texte", "limit": 1, "order": "texte", "offset": 1, "status": "texte", "created_after": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - review_lead≈ 558 tokens
Mark a lead kept or discarded after review (status: kept | discarded | unreviewed). Then fetch_results(kept_only=true) returns only kept leads — the export set.
Paramètres, retour & exemple (3)
Paramètresjob_id· string · requisstatus· string · requisresult_id· integer · requis
Exemple d'appel{"name": "review_lead", "arguments": {"job_id": "texte", "status": "texte", "result_id": 1}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - send_feedback≈ 635 tokens
Send feedback to the Nose for Leads team. Set kind='product' for feedback about the leads, the service, coverage, or pricing — relay what the business owner tells you (categories: lead_quality, pricing, missing_feature, praise, other). Set kind='tool' (default) for feedback about these MCP tools themselves — a confusing description, a bug, a missing capability. Use freely; it's our main signal for improving the product and the agent experience.
Paramètres, retour & exemple (4)
Paramètreskind· string · optionnel · tool | producttool· ? · optionnelmessage· string · requiscategory· string · optionnel · bug | confusing | missing_feature | lead_quality | pricing | praise | other
Exemple d'appel{"name": "send_feedback", "arguments": {"message": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - start_campaign≈ 5124 tokens
Submit a lead-generation campaign. Pass translate_icp's `vertical`, `geo`, and `query` fields directly (category/location are ALIASES for vertical/geo, accepted so translate output round-trips; prefer vertical/geo when constructing calls). `query`'s full shape and field vocabulary are in this tool's schema — build it with translate_icp from free text (recommended), or construct it directly. An unknown predicate field (or rank), and any unknown `discovery` key, is rejected with a 422 naming it; an unknown top-level `query` key is silently ignored, so keep to predicates/rank/discovery — a typo there will not error, it will just do nothing. Costs 1 credit per validated lead — every campaign type, including founder/person campaigns and campaigns that filter on Meta ads. A campaign cannot overspend: if discovered leads exceed your balance it delivers what your credits cover and the campaign ends `done_partial`; check get_credits first if your balance is low. vertical/geo are REQUIRED except for a locationless campaign — `query` carrying a discovery block with mode 'launch_feeds' or 'web_search' — which has no geography at all. If the tenant has no card on file this returns a 403 `card_required` error with a `setup_url` — surface that URL to the user so they can verify a card (never charged unless they buy a pack). Pass a stable idempotency_key when you might retry — a retry returns the ORIGINAL campaign (idempotent_replay=true), never a duplicate charge. Returns {job_id, idempotent_replay}; poll get_campaign_status with job_id.
Paramètres, retour & exemple (6)
Paramètresgeo· ? · optionnelquery· ? · requiscategory· ? · optionnellocation· ? · optionnelvertical· ? · optionnelidempotency_key· ? · optionnel
Exemple d'appel{"name": "start_campaign", "arguments": {"query": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - translate_icp≈ 1080 tokens
Translate free-text ICP description (e.g. "plumbers in phoenix with no website") into a structured query. Call this BEFORE start_campaign — start_campaign only accepts a structured `query` dict, never free text. Returns {query, vertical, geo, category, location, preview, unsupported, discovery} — pass vertical/geo/query straight to start_campaign. `discovery` is non-empty when the ask routes OUTSIDE Google Maps, in one of two shapes. Mode 'launch_feeds': people/companies that RECENTLY LAUNCHED (e.g. "founders of B2B SaaS that launched in the last 3 months") — it names the launch feeds to search and whether the leads are people or companies. Mode 'web_search': long-tail ONLINE businesses Google Maps never had (e.g. "marketing agencies for dentists"), found via paid organic search — companies only, never people. Either way the block is already embedded inside the returned `query`, so passing `query` through unchanged is all that's needed; neither mode has a geography, so vertical/geo come back empty and start_campaign does not require them. Anything we cannot actually source lands in `unsupported` instead — read that list aloud to the user rather than pretending the campaign will cover it.
Paramètres, retour & exemple (1)
Paramètrestext· string · requis
Exemple d'appel{"name": "translate_icp", "arguments": {"text": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]}
C'est votre serveur ?
Revendiquez-le sur l'espace créateur (preuve GitHub, domaine ou npm) pour afficher le badge « propriétaire vérifié » et lancer un pentest comportemental à la demande afin d'obtenir le badge « Vérifié ».