Score a lead
Pull the leads waiting on a verdict with the context needed to judge them, decide in your own model, and write back the company ICP score, the decision-maker score and the reason.
For builders
You already have an agent. It does not need another SaaS UI — it needs a registry, real company data, a place to put scores, and a queue to drop drafts into. That is what Lead Scorer exposes: 104 MCP tools, typed responses, and a hard human-approval boundary at the send.
Credits pay for provider work we run for you. Exactly three tools do that: enrich_leads, enrich_company, find_lead_contact_info. The other 101 do not
touch the billing path at all.
That is deliberate. When your agent classifies a company or writes a first touch, the inference already happened — in your model, on your tokens. Lead Scorer's job at that point is to hold the result, not to charge you for thinking it did not do.
Every place the product would normally call an LLM has a matching pair: one tool hands you the queue and the context, one takes your verdict back.
Pull the leads waiting on a verdict with the context needed to judge them, decide in your own model, and write back the company ICP score, the decision-maker score and the reason.
Read the companies that have no classification yet and push back the one your model decided on.
Take the queue of leads needing business context, research them however you like, and submit the structured enrichment.
Read the product, the lead's enrichment and the angle for a campaign action, write the message with your own model, and push it into the approval queue.
Longer motions — discovery from a brief, key-people lookups — are exposed as runs rather
than as one blocking call. list_workflows tells you what exists and what each one takes, start_workflow_run kicks one off, and get_workflow_run polls it. Every run answers with the same shape, whatever it is doing underneath.
get_workflow_run
{
"run_id": "…",
"workflow_key": "…",
"status": "awaiting_company_approval",
"processed": 42,
"total": 120,
"awaiting": {
"action": "approve_companies",
"context": { … }
},
"result": { "lead_list_id": 91, "company_list_id": null },
"error": null
}When a run needs a decision, it stops and fills awaiting with the action that resolves it and the context to decide on. Your agent — or you
— answers with advance_workflow_run.
Note approve_credit_charge: a run that is about to spend stops and asks, rather than spending and telling
you afterwards.
Every tool returns two things: a text block for the model to read, and a typed structuredContent object for your code. No prose parsing, no regex over an answer.
{
"content": [{ "type": "text", "text": "…" }],
"structuredContent": { "list_id": 91, "total": 250, "leads": [ … ] }
}Your agent can build the whole campaign and still not send it. Launching is a human action in the app, under your daily cap and sending window.
The three billable tools estimate before they run, require an explicit confirmation above the threshold, and refuse any call targeting more than 250 leads.
OAuth 2.1 means the agent acts as you, on your workspace, and you can revoke it at any time. Nothing is shared across accounts.
Streamable HTTP at https://mcp.lead-scorer.com/mcp. Use OAuth 2.1 if your client supports it; otherwise send Authorization: Bearer <MCP API key>.
Server URL
https://mcp.lead-scorer.com/mcpOAuth — the login command opens your browser.
claude mcp add --transport http lead-scorer https://mcp.lead-scorer.com/mcp
claude mcp login lead-scorer.claude/skills/ and your agent has the method, not just the tools.