Skip to content
Conduit

mcp server

openoutbound

The open-source AI SDR engine any agent can drive. MCP server, Agent Skill, CLI and REST API for finding leads, reading buying signals, writing and sending email and LinkedIn outreach, handling replie

xyluxx/openoutboundcommunitylistedunreviewed

Set up

Runs on your computer. Pick your agent and operating system.

Before you start

  • Node.js 20 or newer
~/Library/Application Support/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "openoutbound": {
      "command": "npx",
      "args": [
        "-y",
        "openoutbound"
      ]
    }
  }
}

same format Cursor, GitHub Copilot CLI, Junie, JetBrains AI Assistant, Augment (Auggie CLI), Factory Droid, Kiro, Devin CLI +12

Values in angle brackets are placeholders. Restart Claude Desktop after editing its config.Claude Desktop docs

README

synced Oct 17, 2026

Why OpenOutbound

  • An engine, not a prompt. Sending limits, approvals, suppression lists, compliance rules and budgets are enforced by code. An agent cannot blast 300 LinkedIn invites or email someone who unsubscribed, even if it tries. Retries, timeouts and crashes never send anything twice (how).
  • Any agent, any brain. One registry powers an MCP server, an Agent Skill, a CLI and a REST API. Drive it from Claude, Codex, Cursor or a cron job. Think with Anthropic, OpenAI, OpenRouter, a local model, or your own Claude or ChatGPT subscription.
  • Every part is a plug-in. Your mailboxes, your data providers, your LinkedIn provider, your CRM. Skip what you do not need; it still works with nothing but a CSV and one mailbox.

Quickstart

Try it in the sandbox: two demo client workspaces with fake mailboxes, fake prospects and simulated replies. Nothing leaves your machine and no API keys are needed. You need Node 22 or 24, pnpm and git (on Node 25 and later, get pnpm with npm install -g pnpm@11).

git clone https://github.com/xyluxx/openoutbound && cd openoutbound
pnpm install && pnpm build
node dist/cli/main.js init       # .env with a fresh secret key, local database
node dist/cli/main.js sandbox    # seeds the demo workspaces

Start the server in a second terminal and leave it running, so the CLI and your agent share the local database:

node dist/cli/main.js serve

Connect your agent from the same folder (Claude Code shown; Codex, Cursor, VS Code and others). init prints this command with your paths filled in.

claude mcp add openoutbound -- node "$PWD/dist/cli/main.js" --home "$PWD" mcp --workspace northwind

Then ask it:

What needs my attention in OpenOutbound? Then draft a campaign for our best offer and show me five sample emails before anything is sent.

What the agent asks to do waits for you: node dist/cli/main.js approvals list --workspace northwind. The first hour walks through it step by step, and Going live lists what must be true before anything reaches a real person.

How it works

The engine does the repetitive work on a schedule: sequencing, sending, reply sync, signal monitors, reports. Agents and people steer it through four doors. Every call passes the same safety gate: scopes, limits, approvals, budgets and an audit log with the reason for each action.

What it does

LeadsImport CSV, Excel or JSON, search Apollo or Google Maps, or hand over a list. Dedupe, ICP fit scoring with reasons, email finding and verification.
Research and signalsSourced research briefs. 15 built-in buying signals plus your own, written in plain English. Free collectors for website changes, job boards, news and tech stack.
CampaignsAs many as you want, each with its own offer, senders, schedule, review level, writing rules and priority. Email and LinkedIn steps, waits, branches, A/B variants, templates.
AI writing you can checkEvery fact about a prospect has a source. A checker reviews every message. Review every message, only first messages, or only when the checker is unsure. Preview on real leads and teach it with corrections.
SendingYour own mailboxes over SMTP/IMAP or OAuth. Daily caps, ramp-up, recipient-timezone windows, one-click unsubscribe, bounce auto-pause, a daily DNS check. A send with no clear answer is looked up in the Sent folder, never blindly repeated.
LinkedInProfile visits, likes, comments, invites and messages inside conservative limits. Posting through LinkedIn's official API.
InboxReplies from every channel in one place, classified, with the right next step and drafted answers. Unsubscribes, privacy requests, angry replies and prompt-injection attempts are handled by locked rules. Answer a lead yourself from the mailbox and the engine steps back from that thread at its next sync; on LinkedIn, hand a conversation over with reply_to_thread action take_over.
MeetingsReplies offer your booking link, and Calendly, Cal.com or any booking tool reports bookings back, matched to the right lead. The engine never confirms a time itself. Held, no-show and qualified meetings are counted.
Lead fileWhat each lead told you, with its source, reaches the next email in any campaign. Notes, promises to keep and holds on a whole company.
Operator toolsOne call for where things stand, what goes out next and why something is blocked. A problems list names the fix for each problem, and readiness says exactly what still stands between a workspace and its first real send.
Strategy and changesA strategy page agents read first. Changes to settings, offers, ICPs and campaigns are logged, with undo; agents propose changes, you approve them, and the engine reports whether they helped.
ReportsFunnels by step and variant with A/B leaders, sender health, which signals lead to meetings, pipeline with meetings held, AI and data costs, scheduled summaries to Slack or email.
CRMHubSpot, Pipedrive or your own endpoint, or your agent syncs any CRM. You choose when people go there and what is written. Customers, open deals and do-not-contact flags flow back and stop outreach at once.
Compliance built inConsent-required countries, unsubscribe and postal address in every email, suppression everywhere, ad and AI disclosure lines, data retention.
Agency readyMany client workspaces kept apart, scoped API keys, budgets per workspace, a kill switch, an audit log, a cross-client report, and a working setup copied to the next client.

Plug-ins

SlotBuilt in
AI brainAnthropic, OpenAI, OpenRouter, Gemini, Ollama, LM Studio, any OpenAI-compatible API, Claude Code CLI, Codex CLI, or your connected agent
Lead dataCSV, Excel, JSON, Apollo, Google Maps
Email finder and checkerIcypeas, Findymail, Hunter, Prospeo, MillionVerifier, Reoon, built-in website crawler
ResearchParallel, Exa, Tavily, Firecrawl, built-in fetcher
SignalsBuilt-in collectors, PredictLeads, Crustdata, any tool via webhook
LinkedInUnipile for outreach, LinkedIn official API for posting
CRM and alertsHubSpot, Pipedrive, webhooks, Slack, email

Need something else? Write a provider in one file.

Documentation

Status

OpenOutbound is an early release (0.x). The engine, doors and providers are covered by tests against recorded fixtures; real-world provider behavior can differ, so start in the sandbox, then with low volume. See the roadmap.

Contributing

Issues and pull requests are welcome. Read CONTRIBUTING.md and AGENTS.md. Security issues: SECURITY.md.

License

Apache-2.0

↑↓ navigate openesc close