冷外展MCP
你的AI驱动的冷电子邮件代理——查找公司、写电子邮件、发送电子邮件、记录一切。
“停止花几个小时手动研究公司和撰写外联电子邮件。 粘贴你的简历一次。让人工智能找到与你技能相匹配的公司,写 在Notion中自动发送听起来像人的电子邮件,并跟踪所有内容。"
______________________________________________________________________
它做什么
Cold Outreach MCP是一个定制的MCP服务器,它将Claude变成了一个完整的外展自动化代理。 你只需粘贴一次简历,克劳德就可以:
- 发现 与您的技能和背景相匹配的公司——无需手动输入URL
- 研究 每家公司都会抓取他们的网站,查找联系电子邮件,找出痛点
- 推荐 每家公司的电子邮件类型-- *机会推介* 或 *角色查询*
- 请您确认 --在发送任何建议之前,您都会对其进行审核和批准
- 生成 听起来像真人写的电子邮件——简短、具体、没有流行语
- 发送 通过Gmail/Outlook/任何发送之间有速率限制的SMTP提供商
- 日志 每次外展都会自动指向您拥有的Notion数据库
循环中的一切都是人的——克劳德提议,你决定,诺顿回忆道。
______________________________________________________________________
建筑
You (Claude Desktop)
│
▼
┌───────────────────────┐
│ Cold Outreach MCP │ ← This repo
│ (Node.js server) │
└────────┬──────────────┘
│
┌─────┴──────────────────────┐
│ │
▼ ▼
Anthropic API Notion API
(Claude for research, (Outreach Tracker DB
email generation, read & write)
company discovery)
│
▼
SMTP Server
(Gmail / Outlook /
any SMTP provider)______________________________________________________________________
10个MCP工具
| 工具 | 它做什么 |
|---|---|
setup_notion_db | 一次性迁移--将所有必需的列添加到Notion数据库中 |
parse_profile | 从简历文本中提取你的角色、技能、经验和优势 |
discover_companies | 查找与您的个人资料匹配的真实公司——无需手动输入URL |
find_company_email | 抓取公司网站以查找联系人电子邮件 |
research_company | 分析一家公司——总结、发现的问题、电子邮件类型的推荐 |
generate_email | 根据您的个人资料、公司数据和电子邮件类型写一封外联电子邮件 |
send_email | 通过SMTP发送电子邮件 |
log_to_notion | 手动将外展记录记录记录到Notion |
retry_failed | 重新发送您的Notion跟踪器中标记为“失败”的所有电子邮件 |
bulk_outreach | 一次最多可容纳15家公司的完整管道(两阶段:研究→ 确认→ 发送) |
______________________________________________________________________
概念数据库架构
你做 不 需要手动创建这些列。 跑 setup_notion_db 一旦完成,它就会在您现有的数据库中创建所有内容。| 列 | 类型 | 注释 |
|---|---|---|
| 公司 | 职务 | 公司名称 |
| 网站 | URL | 源URL |
| 电子邮件 | 电子邮件 | 使用的联系电子邮件 |
| 类型 | 选择 | opportunity_pitch / role_inquiry |
| 状态 | 选择 | pending / sent / failed / replied |
| 发送日期 | 日期 | ISO日期 |
| 备注 | 文本 | 错误消息+完整的电子邮件正文 |
______________________________________________________________________
电子邮件类型
机会推介 --当研究发现他们网站上的特定问题时使用。
“你的入职流程有一些粗糙之处——我以前也解决过类似的问题,我想我会联系你。”
角色查询 --当公司看起来很合适但没有发现明显问题时使用。
“我是Flutter的开发人员,你的产品吸引了我的眼球。只是想看看是否有像我这样的人的空间。”
这两种类型都不超过120个单词,并且写得听起来像真人,而不是模板。
______________________________________________________________________
需求
| 工具 | 版本 | 下载 |
|---|---|---|
| Node.js | 18或更高版本 | https://nodejs.org(选择LTS) |
| Git | 任何最新版本 | https://git-scm.com |
| 克劳德桌面 | 最新 | https://claude.ai/download |
| 一个Notion帐户 | -- | https://notion.so |
打开终端并运行以下命令,验证Node.js和Git是否已安装:
node --version # should print v18.x.x or higher
git --version # should print git version x.x.x如果其中之一显示“找不到命令”,请在继续之前从上面的链接安装。
______________________________________________________________________
安装指南
步骤1--克隆、安装和构建
git clone https://github.com/YOUR_USERNAME/cold-outreach-mcp.git
cd cold-outreach-mcp
npm install
npm run build之后 npm run build 你应该看到一个 dist/ 文件夹。如果你遇到TypeScript错误,请确保安装了Node.js 18+。
记下此文件夹的完整路径——您将在步骤4中需要它:
# macOS / Linux
pwd
# Windows (PowerShell)
Get-Location______________________________________________________________________
第2步-获取API密钥
人类学(克劳德·艾伊)
- 首选 console.anthropic.com/settings/keys
- 点击 创建密钥
- 复制密钥——它以开头
sk-ant-...
概念
- 首选 notion.so/my集成
- 点击 +新集成 → 给它起个名字(例如“冷外展”)→ 选择您的工作区
- 点击 提交 → 复制 内部集成令牌 (开始于
ntn_...或secret_...)
Gmail应用密码
- 您的Google帐户必须启用双因素身份验证
- 首选 myaccount.google.com/apppasswords
- 为邮件生成密码→ 复制16个字符的代码(使用时不带空格)
见解: 使用smtp.office365.com,港口587,以及您的常规Microsoft密码(或应用程序密码,如果您的组织需要)。
______________________________________________________________________
步骤3--设置Notion数据库
- 首选 注意,所以 并创建一个新的 全页数据库 (表格视图)
- 从URL复制其ID:
https://notion.so/yourworkspace/My-Database-abc123def456?v=...
↑
this is your database IDID是路径末尾的32个字符串,位于 ?v=.
- 将您的集成连接到此数据库:
- 在Notion中打开数据库 - 点击 ... (右上)→ 连接 → 连接到 → 选择您的集成
将数据库ID放在手边——您将在步骤4中使用它。
______________________________________________________________________
步骤4--在Claude Desktop注册
找到操作系统的Claude Desktop配置文件:
| 操作系统 | 配置文件路径 |
|---|---|
| macOS | ~/Library/Application Support/Claude/claude_desktop_config.json |
| 窗户 | %APPDATA%\Claude\claude_desktop_config.json |
| Linux | ~/.config/Claude/claude_desktop_config.json |
打开或创建文件:
# macOS — open in TextEdit
open -a TextEdit ~/Library/Application\ Support/Claude/claude_desktop_config.json# macOS — if the file does not exist yet
mkdir -p ~/Library/Application\ Support/Claude
touch ~/Library/Application\ Support/Claude/claude_desktop_config.json
open -a TextEdit ~/Library/Application\ Support/Claude/claude_desktop_config.json# Linux
mkdir -p ~/.config/Claude
nano ~/.config/Claude/claude_desktop_config.json# Windows (PowerShell)
New-Item -ItemType Directory -Force -Path "$env:APPDATA\Claude" | Out-Null
notepad "$env:APPDATA\Claude\claude_desktop_config.json"将其粘贴到文件中,将所有占位符值替换为真实数据:
{
"mcpServers": {
"cold-outreach": {
"command": "node",
"args": ["/FULL/PATH/TO/cold-outreach-mcp/dist/index.js"],
"env": {
"ANTHROPIC_API_KEY": "sk-ant-...",
"NOTION_API_KEY": "ntn_...",
"NOTION_DATABASE_ID": "your_database_id",
"SMTP_HOST": "smtp.gmail.com",
"SMTP_PORT": "587",
"SMTP_USER": "you@gmail.com",
"SMTP_PASS": "yourapppassword",
"SENDER_EMAIL": "you@gmail.com",
"SENDER_NAME": "Your Name"
}
}
}
}替换 /FULL/PATH/TO/cold-outreach-mcp 随着输出 pwd 从步骤1开始。
已经有其他MCP服务器了吗? 添加"cold-outreach": { ... }阻塞现有的"mcpServers"object--不要替换整个文件。
Windows路径注释: 在路径中使用双反斜杠或正斜杠:"C:\\Users\\you\\cold-outreach-mcp\\dist\\index.js"或"C:/Users/you/cold-outreach-mcp/dist/index.js"
______________________________________________________________________
步骤5--重新启动克劳德桌面
完全退出Claude Desktop(不仅仅是关闭窗口——使用 退出 从菜单或任务栏)。 重新打开它。你应该看到 🔨 工具图标 在聊天输入栏中。
单击图标确认列出了所有10个Cold Outreach工具。如果您看到零个工具或错误,请参阅下面的故障排除部分。
______________________________________________________________________
步骤6--运行Notion迁移(一次)
在Claude中,键入:
Use setup_notion_db这会将所有必需的列添加到您的Notion数据库中。再次运行是安全的,它不会复制任何东西。
______________________________________________________________________
用法
完整的工作流程
整个流程从给克劳德的一条消息开始。您从不手动粘贴URL。
第一步——开始
Here is my CV:
[paste your full CV or resume as plain text]
Parse my profile, find 10 companies that match my background, research each one, and show me your recommendations before sending anything.克劳德将自动:
- 将简历解析为结构化的个人资料
- 根据您的技能发现匹配的公司
- 对每家公司进行报废和研究
- 按公司返回推荐,如下所示:
1. stripe.com
→ Recommended: opportunity_pitch
→ Reason: Checkout onboarding has visible friction — good fit for your UX work
2. linear.app
→ Recommended: role_inquiry
→ Reason: Fast-growing team, no clear gap spotted — strong product match步骤2--确认并发送
查看建议,然后告诉Claude你希望每家公司选择哪种类型:
Looks good. Send opportunity_pitch to stripe.com and linear.app, role_inquiry to the rest.克劳德负责第二阶段 bulk_outreach --生成电子邮件,发送电子邮件,并将所有内容记录到Notion。
______________________________________________________________________
想缩小公司搜索范围吗?
添加利基提示 discover_companies:
Parse my CV, then find 10 companies in the "developer tools" space that match my profile.
[paste CV]或者直接使用该工具:
Use discover_companies with:
- profile: [your parsed profile]
- niche: "fintech startups"
- count: 10______________________________________________________________________
单个工具命令
查找一家公司的联系电子邮件:
Use find_company_email with website_url: "https://somecompany.com"研究一家公司:
Use research_company with website_url: "https://somecompany.com"发送一封电子邮件:
Use send_email with:
- to: "contact@somecompany.com"
- subject: "Quick note"
- body: "Hi, ..."重试所有失败的发送:
Use retry_failed______________________________________________________________________
每日限额
服务器强制执行最大值 每15家公司 bulk_outreach 呼叫 并添加了a 2秒延迟 在发送之间避免垃圾邮件过滤器。
______________________________________________________________________
没有Claude桌面的测试
选项1:MCP检查员(推荐)
MCP Inspector是一个基于浏览器的官方工具,用于交互式测试任何MCP服务器,不需要Claude Desktop。
npm run build
npx @modelcontextprotocol/inspector node dist/index.js传递您的环境变量,以便工具可以连接到实际服务:
# macOS / Linux
ANTHROPIC_API_KEY=sk-ant-... \
NOTION_API_KEY=ntn_... \
NOTION_DATABASE_ID=your_id \
SMTP_HOST=smtp.gmail.com \
SMTP_PORT=587 \
SMTP_USER=you@gmail.com \
SMTP_PASS=yourpassword \
SENDER_EMAIL=you@gmail.com \
SENDER_NAME="Your Name" \
npx @modelcontextprotocol/inspector node dist/index.js# Windows (PowerShell)
$env:ANTHROPIC_API_KEY="sk-ant-..."
$env:NOTION_API_KEY="ntn_..."
$env:NOTION_DATABASE_ID="your_id"
$env:SMTP_HOST="smtp.gmail.com"
$env:SMTP_PORT="587"
$env:SMTP_USER="you@gmail.com"
$env:SMTP_PASS="yourpassword"
$env:SENDER_EMAIL="you@gmail.com"
$env:SENDER_NAME="Your Name"
npx @modelcontextprotocol/inspector node dist/index.js检查器在浏览器中打开 http://localhost:5173。单击 连接那么 工具 直接查看和调用任何工具。
______________________________________________________________________
选项2:烟雾测试(验证服务器是否启动)
# macOS / Linux
echo '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}' | node dist/index.js
# Windows (PowerShell)
echo '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}' | node dist/index.js您应该看到一个列出所有10个工具的JSON响应。如果服务器崩溃或没有打印任何内容,请使用以下命令检查您的Node.js版本 node --version.
______________________________________________________________________
故障排除
不🔨 Claude Desktop中的工具图标
- 确保您完全退出(而不仅仅是关闭)并重新打开Claude Desktop
- 检查配置文件路径是否适合您的操作系统——一个错误的字符会破坏它
- 检查
args路径指向dist/index.js,不src/index.ts - 在Windows上,确保反斜杠加倍:
\\
工具图标显示,但没有Cold Outreach工具
- 打开克劳德桌面→ 设置→ 开发人员--检查旁边的错误消息
cold-outreach - 运行上述烟雾测试以验证服务器本身是否正确启动
- 检查一下
npm run build已完成,无任何错误dist/index.js存在
setup_notion_db 失败
- 确保
NOTION_DATABASE_ID在Claude Desktop配置中设置正确 - 确保您的Notion集成已连接到数据库(而不仅仅是页面)
- 数据库ID为32个字符——请仔细检查是否复制了完整字符串
电子邮件未发送
- Gmail:确保您使用的是应用程序密码(16个字符,无空格),而不是常规密码
- Gmail:必须在您的Google帐户上启用2FA才能使用应用程序密码
- Outlook:使用
smtp.office365.com,港口587 - 检查
SMTP_USER,SMTP_PASS,以及SENDER_EMAIL都在Claude Desktop配置中设置
未找到Claude Desktop配置文件 如果您从未配置过MCP服务器,则该文件可能还不存在。使用上述步骤4中的命令创建它。确保JSON是有效的——一个额外的逗号或缺少的大括号会悄无声息地打断它。
discover_companies 返回错误类型的公司 添加一个 niche 提示缩小范围:
Use discover_companies with:
- profile: [your profile]
- niche: "B2B SaaS developer tools"______________________________________________________________________
项目结构
src/
├── config/env.ts — environment variable loading
├── types/index.ts — shared TypeScript types
├── prompts/ — Claude prompt templates
│ ├── researchPrompt.ts
│ ├── opportunityPitchPrompt.ts
│ └── roleInquiryPrompt.ts
├── services/ — all business logic
│ ├── scraper.ts — website scraping + email extraction
│ ├── claude.ts — AI calls (research, email gen, discovery, profile parse)
│ ├── notion.ts — Notion read/write
│ ├── email.ts — SMTP sending with retry
│ └── profileParser.ts — CV/resume parsing
└── tools/ — MCP tool wrappers (10 tools)
├── setupNotion.ts
├── parseProfile.ts
├── discoverCompanies.ts
├── findEmail.ts
├── researchCompany.ts
├── generateEmail.ts
├── sendEmail.ts
├── logToNotion.ts
├── retryFailed.ts
└── bulkOutreach.ts______________________________________________________________________
技术栈
- 运行时:Node.js 18+与TypeScript
- MCP-SDK:
@modelcontextprotocol/sdk(官方Anthropic SDK) - 人工智能:克洛德·维亚
@anthropic-ai/sdk--研究、电子邮件生成、公司发现 - 网络抓取:
axios+cheerio - 邮件发送:
nodemailer(SMTP) - 存储:通知REST API(
@notionhq/client) - 主机:克劳德桌面
______________________________________________________________________
许可证
麻省理工学院——免费使用、分叉和构建。
______________________________________________________________________
作者
建造于 丹尼尔A。 (编者按)
