mcp server
agentic-outreach-engine
MCP-native multi-channel outreach server. Sequence orchestration, reply classification, and auto-tuning as typed MCP tools.
Set up
Runs on your computer. Pick your agent and operating system.
This project does not publish an install method we can turn into a config. Follow the README instead.
README
synced Oct 23, 2026MCP Outreach Engine
An MCP-native multi-channel outreach server. Expose sequence orchestration, reply classification, auto-tuning, and channel performance as typed MCP tools that any AI agent can discover and invoke — with a built-in observability dashboard.
Demo mode works without API keys. Clone, npm install, npm run dev, and explore the full dashboard instantly.
What this demonstrates
Engineering signals relevant to forward-deployed / customer-facing AI work:
- Typed MCP tool design — sequence orchestration, reply classification, tuning, and channel performance exposed as discoverable MCP tools with Zod-validated input/output schemas (
src/mcp/server.ts). - Agentic LLM pipeline design — an orchestrator (
src/lib/agent/orchestrator.ts) that turns natural-language asks into tool calls, with intent classification returning confidence scores and suggested responses. - Production data modeling — typed domain models for campaigns, multi-step sequences, ICP-scored leads, and classified replies, with step-level performance tracking across Email, LinkedIn, and Cold Call.
- Observability for agent behavior — a dashboard with a tool-call trace panel so every agent action is inspectable, plus Jest coverage over snapshot generation, tuning recommendations, and reply distribution.
One-Line Install
Claude Desktop — paste into claude_desktop_config.json:
{
"mcpServers": {
"outreach": {
"command": "npx",
"args": ["-y", "ts-node", "src/mcp/server.ts"]
}
}
}
Claude Code:
claude mcp add outreach -- npx -y ts-node src/mcp/server.ts
Cursor — add to .cursor/mcp.json:
{
"mcpServers": [{
"name": "outreach",
"command": "npx",
"args": ["-y", "ts-node", "src/mcp/server.ts"]
}]
}
Why MCP for Outreach?
Outreach stacks are fragmented: Outreach.io for email, LinkedIn for social, Salesloft for calls, Apollo for enrichment. Every SDR ends up context-switching between 4 tabs to run one sequence. The Model Context Protocol (MCP) provides a standard way to expose these as tools that any AI agent can discover and invoke. This project is a reference implementation — an outreach-specific MCP server with a visual trace panel so you can see every tool call the agent makes.
Quick Start
# Clone and install
git clone https://github.com/developers-universe-1/agentic-outreach-engine.git
cd agentic-outreach-engine
npm install
# Zero-config demo mode — works without any API keys
cp .env.example .env
npm run dev
Open http://localhost:3000 and click Open Dashboard.
That's it. No Outreach.io API keys, no Salesloft credentials, no LinkedIn automation setup.
MCP Tools
| Tool | Input | What It Returns |
|---|---|---|
create_sequence | channel, steps[], lead_ids[] | Sequence ID, scheduled sends, projected open/reply rates |
classify_reply | reply_text, conversation_history | Intent (Positive/Neutral/Objection/Unsubscribe/Meeting) + confidence + suggested response |
get_tuning_recommendations | campaign_id, lookback_days | AI recommendations with projected impact and confidence level |
get_channel_performance | period (7d/30d/90d) | Open rate, reply rate, meeting rate by channel (Email/LinkedIn/Cold Call) |
get_lead_status | lead_id | Current sequence step, last touch, reply status, next scheduled action |
Example: Claude Desktop Config
{
"mcpServers": {
"outreach": {
"command": "npx",
"args": ["mcp-outreach-engine@latest", "serve"],
"env": {
"OPENAI_API_KEY": "your-key"
}
}
}
}
Then ask Claude: "Create a 5-step email sequence for our product-led growth campaign, assign the top 50 ICP-matched leads, and show me projected reply rates."
What You Get
| Capability | MCP Tool | What It Does |
|---|---|---|
| Sequence Orchestration | create_sequence | Multi-step sequences across Email, LinkedIn, and Cold Call with A/B testing |
| Reply Classification | classify_reply | AI reads every reply and classifies intent with confidence scores and draft responses |
| Auto-Tuning | get_tuning_recommendations | Weekly AI recommendations — add voice notes, shorten subject lines, move emails to day 3 |
| Channel Performance | get_channel_performance | Open rate, reply rate, meeting rate by channel with Recharts visualizations |
| Lead Status | get_lead_status | Current sequence step, last touch, reply status, next scheduled action |
Demo Mode
The framework ships with rich mock data so you can validate the architecture instantly:
- 6 campaigns across Email, LinkedIn, and Cold Call
- 4 sequences (3-5 steps each) with step-level performance
- 12 leads with ICP scores, enrichment status, and sequence assignments
- 8 replies with AI-classified intent and suggested responses
- 4 tuning recommendations with projected impact
Architecture
┌─────────────────────────────────────────────┐
│ MCP Client (Claude, Cursor, any MCP host) │
│ ↓ stdio / SSE │
├─────────────────────────────────────────────┤
│ Next.js 15 App Router │
│ ┌─────────────┐ ┌──────────────────────┐ │
│ │ MCP Server │ │ Observability UI │ │
│ │ /api/tools │ │ Dashboard + Traces │ │
│ │ /api/resources│ │ │ │
│ └──────┬──────┘ └──────────────────────┘ │
│ ↓ │
│ ┌────────────────────────────────────────┐ │
│ │ Integration Tool Servers │ │
│ │ ├─ email.ts (Sequence builder) │ │
│ │ ├─ linkedin.ts (Connection + DM) │ │
│ │ ├─ cold_call.ts (Dialer + VM) │ │
│ │ ├─ reply_classifier.ts (AI intent) │ │
│ │ └─ tuning.ts (Auto-optimization) │ │
│ └────────────────────────────────────────┘ │
└─────────────────────────────────────────────┘
Tech Stack
- Framework: Next.js 15 App Router
- Protocol: Model Context Protocol (MCP) — stdio / SSE transport ready
- Language: TypeScript (strict mode)
- Styling: Tailwind CSS
- Charts: Recharts
- Animation: Framer Motion
- Validation: Zod (structured LLM output + MCP tool schemas)
- Testing: Jest + ts-jest
- CI/CD: GitHub Actions
- Deployment: Multi-stage Docker build
Dashboard Views
| View | What It Shows |
|---|---|
| Overview | Pipeline value, meetings booked, reply rate, active campaigns/sequences, channel performance chart, AI tuning recommendations |
| Sequences | 4 multi-step sequences with expandable step-level stats (sends, opens, replies, opt-outs) |
| Leads | 12 ICP-scored leads with search, filter tabs, enrichment status, and sequence assignment |
| Replies | 8 AI-classified replies with intent distribution pie chart, confidence scores, and suggested responses |
Testing
npm test
Covers outreach snapshot generation, tuning recommendations, and reply distribution.
Deployment
docker build -t mcp-outreach-engine .
docker run -p 3000:3000 mcp-outreach-engine
Quick Validation
See QUICK_TEST_QUERIES.md for end-to-end test scenarios you can run in under 5 minutes.
Troubleshooting
See TROUBLESHOOTING.md for the most common setup issues and how to fix them.
Contributing
See CONTRIBUTING.md for how to add tools, run tests, and submit PRs.
Roadmap
- Full MCP stdio transport server implementation
- MCP
tools/list,resources/list,prompts/listcapability endpoints - Real Outreach.io / Salesloft API integration
- LinkedIn automation wiring via Unipile
- Real-time webhook reply ingestion
License
MIT
Related
- developers-universe-1 — Forward Deployed Engineer profile: case studies, post-mortems, production AI evals
- agentic-revenue-intelligence
- agentic-sales-engine
- agentic-demand-engine