Skip to content
Conduit

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, 2026

MCP Outreach Engine

MCP Next.js TypeScript Tailwind Jest License

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

ToolInputWhat It Returns
create_sequencechannel, steps[], lead_ids[]Sequence ID, scheduled sends, projected open/reply rates
classify_replyreply_text, conversation_historyIntent (Positive/Neutral/Objection/Unsubscribe/Meeting) + confidence + suggested response
get_tuning_recommendationscampaign_id, lookback_daysAI recommendations with projected impact and confidence level
get_channel_performanceperiod (7d/30d/90d)Open rate, reply rate, meeting rate by channel (Email/LinkedIn/Cold Call)
get_lead_statuslead_idCurrent 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

CapabilityMCP ToolWhat It Does
Sequence Orchestrationcreate_sequenceMulti-step sequences across Email, LinkedIn, and Cold Call with A/B testing
Reply Classificationclassify_replyAI reads every reply and classifies intent with confidence scores and draft responses
Auto-Tuningget_tuning_recommendationsWeekly AI recommendations — add voice notes, shorten subject lines, move emails to day 3
Channel Performanceget_channel_performanceOpen rate, reply rate, meeting rate by channel with Recharts visualizations
Lead Statusget_lead_statusCurrent 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

ViewWhat It Shows
OverviewPipeline value, meetings booked, reply rate, active campaigns/sequences, channel performance chart, AI tuning recommendations
Sequences4 multi-step sequences with expandable step-level stats (sends, opens, replies, opt-outs)
Leads12 ICP-scored leads with search, filter tabs, enrichment status, and sequence assignment
Replies8 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/list capability endpoints
  • Real Outreach.io / Salesloft API integration
  • LinkedIn automation wiring via Unipile
  • Real-time webhook reply ingestion

License

MIT

Related

↑↓ navigate openesc close