- Language
- TypeScript
- Last commit
- 2h ago
- Forks
- 0
- Open issues
- 0
- Registry update
- Oct 15, 2026
Connect
npm$claude mcp add opensdr-mcp \ -e APOLLO_API_KEY=<apollo-api-key> \ -e HUNTER_API_KEY=<hunter-api-key> \ -e EXA_API_KEY=<exa-api-key> \ -e TAVILY_API_KEY=<tavily-api-key> \ -e INSTANTLY_API_KEY=<instantly-api-key> \ -e HUBSPOT_ACCESS_TOKEN=<hubspot-access-token> \ -e OPENSDR_READ_ONLY=<opensdr-read-only> \ -e OPENSDR_MAX_CREDITS_PER_CALL=<opensdr-max-credits-per-call> \ -e OPENSDR_DATA_DIR=<opensdr-data-dir> \ -- npx -y [email protected]
Environment variables
APOLLO_API_KEYsecretApollo API key for people/company search and enrichment (optional)
HUNTER_API_KEYsecretHunter API key for email finding and verification (optional)
EXA_API_KEYsecretExa API key for buying signals and account research (optional)
TAVILY_API_KEYsecretTavily API key, an alternative to Exa for signals and research (optional)
INSTANTLY_API_KEYsecretInstantly API v2 key for draft campaigns and lead enrollment (optional)
HUBSPOT_ACCESS_TOKENsecretHubSpot private-app token for contact sync (optional)
OPENSDR_READ_ONLYSet to 1 to disable every tool that writes to an external service
OPENSDR_MAX_CREDITS_PER_CALLHard cap on estimated paid provider credits per tool call
OPENSDR_DATA_DIRLocal data directory for lists, cache and suppression list (default ~/.opensdr)
Security review
Review passedReviewed 1h ago.
- metadata
- scanned
- packages
- 1 checked
No findings.
Tools
This server runs on your machine, so its tool list is not fetched before install — the README below describes what it offers.
OpenSDR
The open-source AI SDR for Claude and any MCP client.
Find prospects, verify their emails, spot buying signals, draft grounded outreach and stage campaigns, all from a conversation with your AI assistant, using your own API keys.
Quick start · Demo · How it works · Docs · Contributing
What it does
OpenSDR is an MCP server that gives your AI assistant the toolkit of a sales development rep (SDR). You describe who you want to reach; your assistant does the legwork:
- 🔎 Find prospects that match your ideal customer profile (Apollo).
- ✉️ Find and verify work emails with a cost-aware waterfall: Apollo → Hunter → free local checks.
- 📈 Spot buying signals (funding, hiring, leadership changes, launches) with a source link for every one (Tavily or Exa).
- ✍️ Draft grounded outreach: every personalized line cites a real, sourced fact.
- 🚀 Stage campaigns and CRM records in Instantly and HubSpot, only after you approve a preview.
Why it's useful
| The usual way | With OpenSDR |
|---|---|
| Four or five SaaS tools (contact database, email finder, signals, sequencer) plus marked-up credits | Your own API keys, $0 markup. Pay providers directly, only for what you use. |
| Prospect lists and strategy uploaded to someone else's cloud | Local-first. Runs on your machine. No OpenSDR server, no telemetry. |
| "AI SDRs" that send email on their own and burn your domain | Nothing is sent without your approval. Campaigns are created as drafts; you press go. |
| Generic, made-up personalization | Grounded copy. Every first line cites a provider field or a signal URL. |
| Credits wasted on repeat lookups | Credit-aware. Per-call budgets, cost estimates and a 30-day enrichment cache. |
| Hard to try before buying | Zero-key demo mode. Every tool works on fictional data before you add a single key. |
See it in action
A real session in demo mode (no keys, fictional .example companies):
You: Find VP Engineering leaders at B2B software and fintech companies, get their emails, and check for buying signals.
| Prospect | Company | Email (verified) | Signal |
|---|---|---|---|
| Amara Haddad, VP Engineering | Bluepeak | [email protected] | Raised a $25M Series B (source) |
| Sofia Doe, VP Engineering | Ledgerly | [email protected] | Raised a $25M Series B |
| Lena Alvarez, VP Engineering | Wellspring Care | [email protected] | Raised a $25M Series B |
You: Meridian Pay asked us not to contact them. Push the rest into my Instantly campaign.
Preview (nothing sent yet)
eligible: 4 excluded: 1 (suppressed: Meridian Pay)
confirmation_token: 1045338e… single-use, expires in 15 min
→ Claude shows you the list and waits for your approval before confirming.
Full walkthrough → (find → enrich → signals → draft → stage)
Quick start
Requires Node.js 22.12+.
1. Add OpenSDR to your assistant. Claude Desktop → Settings → Developer → Edit Config:
{
"mcpServers": {
"opensdr": { "command": "npx", "args": ["-y", "opensdr-mcp"] }
}
}
Claude Code: claude mcp add opensdr -- npx -y opensdr-mcp. Cursor and other clients: see getting started.
2. Try it with no keys. Restart your client and ask: "Find VP Engineering leaders at fintech companies and draft outreach." Or pick the built-in autonomous_sdr_workflow prompt.
3. Add the providers you have. Every key is optional; add them to env:
"env": {
"APOLLO_API_KEY": "…",
"HUNTER_API_KEY": "…",
"TAVILY_API_KEY": "…"
}
Also supported: EXA_API_KEY, INSTANTLY_API_KEY, HUBSPOT_ACCESS_TOKEN. Where to get each key and every setting: configuration.
How it works
You ──▶ AI assistant ──MCP──▶ OpenSDR (on your machine) ──your keys──▶ Apollo · Hunter · Tavily/Exa · Instantly · HubSpot
│
├─ safety gates: preview + confirm · do-not-contact list · read-only switch · credit budget
├─ engine: email waterfall · signal rules · outreach briefs
└─ local store: ~/.opensdr (lists, cache, suppression)
- Find: your ideal customer profile becomes precise search filters. Search never returns emails, so it's cheap.
- Enrich: each person goes through the email waterfall, stopping at the first verified result, within your credit budget. Every result shows a trail of what was tried and what it cost.
- Research: buying signals give a reason to reach out now, each with a source URL.
- Draft: an outreach brief hands your assistant sourced facts, a sequence framework and writing rules. The assistant writes; you approve.
- Stage: campaign creation, lead enrollment and CRM sync each return a preview and a single-use token, and run only after you confirm.
OpenSDR has no AI model of its own: your assistant does the thinking and writing, and OpenSDR handles data, verification and safe execution. More on the architecture, waterfall and signals →
Tools
| Area | Tools |
|---|---|
| System | sdr_provider_status |
| Prospect | sdr_lookup_filters · sdr_search_people · sdr_search_companies |
| Enrich | sdr_waterfall_enrich_person · sdr_enrich_company · sdr_verify_email |
| Manage | sdr_save_prospects · sdr_list_prospects · sdr_export_csv · sdr_manage_suppression |
| Signals | sdr_detect_buying_signals · sdr_research_account |
| Engage | sdr_prepare_outreach_brief · sdr_create_campaign · sdr_push_to_campaign · sdr_sync_hubspot |
Plus 3 built-in prompts (autonomous_sdr_workflow, icp_prospecting, cold_outreach_sequence) and 4 resources (opensdr://providers, opensdr://lists, opensdr://lists/{name}, opensdr://profile). Full reference →
Safety and privacy
- Preview + confirm for every external write, and the confirm is rejected if anything you approved changed in between.
- Campaigns are drafts, never activated, and leads only go into draft or paused campaigns.
- Do-not-contact list honored by every push, sync and export, with no override.
- Read-only mode (
OPENSDR_READ_ONLY=1) and a per-call credit cap. - Your keys and data stay on your machine: no OpenSDR server, no telemetry, keys never logged or stored.
- Never automates LinkedIn: it only drafts notes for you to send.
You're responsible for complying with CAN-SPAM, GDPR, CASL and your providers' terms. Safety, privacy and compliance →
Documentation
| Getting started | Install in Claude Desktop, Claude Code or Cursor; demo mode; troubleshooting |
| Demo walkthrough | A real end-to-end session |
| Configuration | API keys, settings, modes, seller profile, local data |
| Tools reference | All tools, prompts, resources and error codes |
| How it works | Architecture, email waterfall, signals, preview + confirm |
| Safety and privacy | Every guard, what stays local, compliance |
| Provider API notes | How each provider's API is used |
Roadmap
- More sequencers: Smartlead, Lemlist
- More CRMs: Salesforce, Pipedrive
- Remote transport (Streamable HTTP) for web-based clients
- Ideal-customer fit scoring and reply tracking
Have a provider you need? Open a provider request.
Contributing
Contributions are welcome, whether you write the code yourself or with an AI coding agent.
- Start here: CONTRIBUTING.md covers setup, checks and the PR process.
- Add a provider: data sources, sequencers and CRMs plug in behind small capability interfaces; follow the add-provider guide.
- Using an AI agent? AGENTS.md holds the architecture rules and safety invariants. Codex, Cursor and Copilot read it automatically; Claude Code and Gemini CLI load it through
CLAUDE.mdandGEMINI.md. - Security issues: please report privately, see SECURITY.md.
License
MIT © Arif
OpenSDR is an independent open-source project, not affiliated with or endorsed by Anthropic, Apollo.io, Hunter, Exa, Tavily, Instantly or HubSpot. Product names are trademarks of their respective owners.
From the server's repository — third-party content, read it before running anything it suggests.
More in Marketing
CitedIndex
com.citedindex
Look up AI-visibility and GEO tools: price, AI engines covered, limits and a source for each fact.
Guia da Maquininha
io.github.canalthailexa-lgtm
Brazilian card machine MDR rates, tiers and monthly cost comparison.
OpenLeads
io.github.Samyrrrrrr990
Find leads with honest email evidence, then work them: CRM, sequences, tasks, deals. No API keys.
HubSpot Auditor
io.github.M-Pineapple
Read-only MCP server that audits a HubSpot portal: what works, what is broken, what is missing.
mcp-server
io.github.localseodata
53 local SEO data tools: rankings, reviews, audits, keywords, AI visibility.
Conduyt CRM
com.conduyt
Conduyt CRM tools for AI agents: contacts, deals, pipelines, tasks, automations, messaging, reports
Listing from the official MCP Registry · repository facts from GitHub, 1h ago.