AI agents (MCP)
PineLead runs an MCP server, so the AI agent you already use can work with your leads directly: ask Claude Code what needs you today, have Codex draft answers to your replies, triage prospects in Cursor, or get a weekly review. It works as you, through the same limits, credits and checks as the dashboard. Nothing is sent unless you allow it.
The dashboard's ⌘K command bar is built on the same tools, so everything below also works there, typed or spoken.
Connect your agent#
You need your account ID and API key from Settings → API in the dashboard. That page also shows these snippets with your account ID filled in.
Claude Code
Codex
Add the server to ~/.codex/config.toml:
Then keep the token in your environment as account-id:api-key, for example in your shell profile:
Cursor and other clients
Claude Desktop
Through mcp-remote, which bridges a remote server for apps that only run local ones:
Any client that can only send a bearer token can use Authorization: Bearer YOUR_ACCOUNT_ID:YOUR_API_KEY instead of the two headers.
What it can do#
| Name | Type | Description |
|---|---|---|
| get_overview | read | What needs you today: replies awaiting an answer, follow-ups due, drafts waiting, lead counts, credits, whether the agent is on, and whether your agent may send. |
| get_stats | read | How outreach is going over 7, 30 or 90 days: emails sent, replies, reply rate, leads by status, and prospects qualified, rejected and promoted. |
| get_criteria | read | Your own words: who is a fit, your pitch, your sender name and email style. Agents read it before writing in your voice. |
| list_leads · get_lead | read | Leads by status, reply label, launch recency, website gap or search — each with its reply label, follow-up state and launch signals — and one lead with its whole email thread and a short summary of the research on the company. |
| list_follow_ups | read | Reminders that are overdue, due today, and coming up. |
| list_drafts | read | First emails waiting for your approval. |
| list_prospects · get_prospect_activity | read | Companies judged against your criteria, with a score, the reasoning and any addresses found, and what was done with each and why. |
| list_projects | read | Your projects. Every tool takes an optional project_id; the default is the project selected in the dashboard. |
| promote_prospect · reject_prospect | write | Turn a prospect into a lead (with the address research found, or one you give) for a one-time 5-credit unlock per project, or mark it not a fit, with a reason, for free. Nothing is sent. |
| update_lead · add_lead | write | Change a lead’s status, follow-up date or notes, or add a company you want to email. |
| get_lead_intake · enable_lead_webhook · import_leads | write | Connect your own lead generation: get the project’s lead webhook URL and payload (turning it on if needed) to wire up Zapier, Make, n8n, Clay or a script, or add up to 100 leads at once. Duplicates are skipped; nothing is sent. |
| update_draft · discard_draft | write | Edit or delete an unsent draft. Nothing is sent. |
| pause_agent · resume_agent | write | Switch unattended research and drafting off at once, or back on. Auto-approve is never changed by an agent. |
| prepare_drafts · draft_email_for_lead | credits | Have the agent write up to 10 first emails for leads not contacted yet, or one to a named lead. 3 credits each. They wait for approval. |
| run_prospect · research_lead | credits | Research, judge and (if it fits) draft for one company ahead of the queue, up to 15 credits; or research a lead you added by hand, 10 credits. An already-researched company is never charged again. |
| send_draft · send_email | sends | Send a draft, or write and send a reply in a lead’s thread, from your mailbox. Off until you allow it. |
Every result leaves through the same filters as the dashboard, and bodies are trimmed to what an agent needs.
Each tool tells your client what kind it is (read-only, a change, or one that sends), so clients that ask before acting ask at the right moments.
Ready-made prompts#
The server also ships six prompts. In Claude Code they appear as slash commands, for example /mcp__pinelead__morning_brief.
- morning_brief: replies to answer with a suggested reply each, follow-ups due, drafts waiting. Sends nothing.
- answer_replies: drafts an answer to every reply waiting on you and sends each one only after you say yes.
- review_drafts: checks waiting drafts against the research and suggests tighter versions.
- triage_prospects: goes through qualified prospects with you: what each does, the score and the reason, then promotes or rejects the ones you decide.
- weekly_review: emails sent, replies and reply rate against the last 30 days, why prospects were rejected, and up to three changes to your criteria worded for the Limits page. Changes nothing.
- meeting_prep: everything PineLead knows about a lead before a call: what they sell, why they qualified, the exchange so far, and questions worth asking.
Step-by-step walkthroughs: triage prospects from Claude and a weekly outbound review with your agent.
Sending and safety#
Reading, preparing and editing are always allowed: nothing leaves your account. Sending is a separate switch, Let agents send email under Settings → API, and it is off until you turn it on. With it on, an agent can send a draft or reply in a thread from your connected mailbox. Every send goes through the same suppression list and deliverability checks as the Send button, and is held to your mailbox's daily pace like an automatic send. Each one is logged under Limits → Activity as sent by your AI agent.
The server tells agents to send only what you explicitly asked for and to show you the text first. Most clients also ask before running a tool that sends.
In the dashboard: ⌘K and voice#
The dashboard has a small agent of its own, on the same tools. Press ⌘K (Ctrl K on Windows) or click the microphone at the top right, and ask or say what you want. It reads what it needs, answers in a sentence or two with the rows it means a click away, and does what you asked. Follow-up questions keep the context, so “and the other one?” works. Voice works in Chrome, Edge and Safari.
- “What needs me today?”: An answer, with each reply, follow-up and draft a click away.
- “How is outreach going this month?”: Emails sent, replies and reply rate.
- “Why did Palletsmith score 72?”: The reasoning behind the verdict.
- “Open the two newest replies side by side”: Opens them as tabs, split.
- “Write Quoteflow a reply: Tuesday at 3 works”: Puts the reply in the lead’s reply box for you to send.
- “Make the Kiteform draft shorter”: Shows the rewrite; Apply replaces the draft.
- “Promote Palletsmith and reject the agencies”: Settles prospects; nothing is sent.
- “Mark Ledgerkite interested and remind me Friday”: Done at once.
- “Prepare 3 emails”: Asks before spending the credits.
- “Pause the agent”: Research and drafting stop at once.
Reads and safe changes (statuses, follow-ups, notes, rejecting a prospect, pausing the agent) happen at once. Anything that sends an email, spends credits, rewrites or deletes a draft, or switches the agent back on comes back as a card showing exactly what will happen: the email as it would go out, the cost. It runs only when you press its button, and the card can’t be changed on the way. A reply can also go to the lead’s reply box instead (Edit first), for you to finish and send.
Once a request has read text other people wrote (an email, a company's research), any change it makes after that waits for a card too, so an instruction hidden in an email can't change anything on its own.
The command bar is free to use; credits are only spent by what you confirm. It answers up to 200 requests per account per day. If you don’t see Ask ⌘K at the top right, it isn’t on for your account yet.
Limits#
Up to 120 requests a minute per account. Drafting, research and single-company runs spend credits exactly as they do in the dashboard, within your project’s daily limit. A regenerated API key stops the old one within a minute. For the REST API, see the API reference.