使用说明
码头外展MCP
基于AI的外展自动化服务器 模型上下文协议在GitHub上查找潜在客户,用Claude AI丰富他们,根据实时市场数据验证你的产品论点,并用你的声音发送个性化的冷电子邮件——所有这些都可以通过Telegram控制。
专为 码头(TalentWharf) 但可用于任何B2B外联用例。
它做什么
find prospects → enrich with AI → filter by ICP → send personalised email → track pipeline
| 工具 | 说明 |
|---|---|
find_contacts |
按关键字、位置、语言、关注者在GitHub上搜索技术潜在客户 |
enrich_contact |
Claude AI深入分析GitHub个人资料:角色、资历、公司规模、ICP匹配度、谈话要点、建议电子邮件 |
research_market |
搜索网络(Brave)以验证您的产品论点,绘制竞争对手地图,查找痛点讨论 |
find_customers_web |
寻找真正的潜在客户:有资金的初创公司、沮丧的ATS用户、积极招聘的创始人 |
search_contacts |
按状态、角色或公司查询您保存的辅助数据库联系人列表 |
send_email |
通过Gmail OAuth2发送并自动更新联系人状态 |
log_outreach |
在Supabase中提升联系人+状态 |
get_outreach_stats |
使用ASCII图表按状态进行管道计数 |
建筑
Telegram bot
└── Claude (claude-sonnet-4-6) — agentic loop
├── GitHub API — prospect discovery (free)
├── Brave Search API — market + customer research (free tier)
├── Claude Haiku — profile enrichment + ICP scoring
├── Gmail OAuth2 — email sending
└── Supabase — contact pipeline storage
MCP server (stdio)
└── Same tools, usable from Claude Desktop or any MCP client
ICP过滤器
每次接触都会在两个维度上评分:
- 候选人_核心 --适合作为潜在雇员(1-10)
- beta_user_score --适合作为产品测试用户(1-10)
并通过ICP过滤:
- 通行证: 拥有20-100名员工的公司或种子/A轮初创公司积极招聘
- 自动跳过: 独立自由职业者、500+企业、未组建团队的公司
设置
1.克隆并安装
git clone https://github.com/your-username/wharf-outreach-mcp
cd wharf-outreach-mcp
npm install
2.配置环境
cp .env.example .env
填写 .env --请参阅中的评论 .env.example 获取每个密钥的位置:
| 变量 | 必填 | 免费等级 |
|---|---|---|
GITHUB_TOKEN |
可选 | 是--5000需求/小时vs 60需求/小时 |
BRAVE_API_KEY |
用于网络研究 | 是-2000次查询/月 |
GMAIL_CLIENT_ID |
是 | 是 |
GMAIL_CLIENT_SECRET |
是 | 是 |
GMAIL_REFRESH_TOKEN |
是 | 是 |
SUPABASE_URL |
是 | 是 |
SUPABASE_SERVICE_KEY |
是 | 是 |
ANTHROPIC_API_KEY |
是 | 按次付费 |
TELEGRAM_BOT_TOKEN |
对于Telegram机器人 | 是 |
TELEGRAM_ALLOWED_CHAT_ID |
推荐 | -- |
3.Gmail OAuth2刷新令牌
运行一次性助手脚本:
node scripts/get-refresh-token.js
按照提示操作。粘贴结果 GMAIL_REFRESH_TOKEN 进入你的 .env.
先决条件: 添加
http://localhost:3000作为Google Cloud Console OAuth2客户端中的授权重定向URI。
4.运行Supabase迁移
粘贴 supabase/migrations/001_outreach.sql 进入您的Supabase SQL编辑器,或运行:
supabase db push
5.建造
npm run build
6.个性化你的写作声音(可选但推荐)
cp voice.example.txt voice.txt
编辑 voice.txt 用你自己写作的真实例子。机器人会用它来匹配你在每封电子邮件草稿中的风格。 voice.txt 被忽视并留在当地。
跑步
电报机器人
npm run bot
机器人接受自然语言——不需要命令:
“在伦敦找到10位种子创始人,丰富他们,并向最优秀的人发送测试邀请” “根据市场验证我的产品论点” “告诉我谁回复了,但还没有预订”
内置命令: /stats, /pending, /replied, /clear
MCP服务器(克劳德桌面)
npm start
添加 claude_desktop_config.json:
{
"mcpServers": {
"wharf-outreach": {
"command": "node",
"args": ["/absolute/path/to/wharf-outreach-mcp/dist/index.js"],
"env": {
"GITHUB_TOKEN": "...",
"BRAVE_API_KEY": "...",
"GMAIL_CLIENT_ID": "...",
"GMAIL_CLIENT_SECRET": "...",
"GMAIL_REFRESH_TOKEN": "...",
"SUPABASE_URL": "...",
"SUPABASE_SERVICE_KEY": "...",
"ANTHROPIC_API_KEY": "..."
}
}
}
}
外联渠道
pending → sent → replied → booked
根据您的用例进行定制
系统提示、ICP筛选器和电子邮件编写规则位于:
src/bot/agent.ts--agent系统提示+工作流voice.txt--你的写作声音(仅限于本地)humanizer.md--反人工智能写作协议适用于每一份草稿
编辑这些以匹配您的产品、ICP和色调。
文件结构
src/
index.ts MCP server entrypoint
bot.ts Telegram bot entrypoint
lib/
github.ts GitHub API client + profile fetcher
enrichment.ts Claude Haiku profile analysis
search.ts Brave Search API wrapper
gmail.ts Gmail OAuth2 sender
supabase.ts Supabase client + types
bot/
agent.ts Agentic loop + system prompt
telegram.ts Telegraf bot
toolDefs.ts Tool definitions for Claude API
tools/
findContacts.ts find_contacts
enrichContact.ts enrich_contact
researchMarket.ts research_market
findCustomersWeb.ts find_customers_web
searchContacts.ts search_contacts
sendEmail.ts send_email
logOutreach.ts log_outreach
getStats.ts get_outreach_stats
supabase/migrations/
001_outreach.sql DB schema
scripts/
get-refresh-token.js One-time Gmail OAuth2 helper
voice.example.txt Template for your writing voice profile
humanizer.md Anti-AI writing protocol
.env.example Environment variable reference
技术栈
- 运行时间: Node.js+TypeScript
- MCP:
@modelcontextprotocol/sdk - 人工智能:
@anthropic-ai/sdk(十四行诗4.6为代理,俳句为富集) - 机器人程序:
telegraf - 数据库:
@supabase/supabase-js - 电子邮件:
googleapis(Gmail API) - 搜索:
axios→ 勇敢搜索API+GitHub API
许可证
麻省理工学院