MCP 서버

cold-email

io.github.Bluecraft-AI/cold-email
마케팅 및 광고 영업 및 CRM 공개 · 연결 가능 MCP 2025-11-25

이 MCP로 할 수 있는 일

Generates personalized cold-email sequences for individual leads or batches, manages campaigns, tracks processing, and exports completed results.

export_list
Export List
Download the generated email sequences for a COMPLETED list. Only call this AFTER get_list_status shows processing_status = 'completed'. If the list is not yet completed, you'll get a 409 error — poll first.
읽기 전용 외부 접근 가능 멱등성
입력 스키마
{'type': 'object', 'required': ['list_id'], 'properties': {'format': {'type': 'string', 'default': 'json', 'description': "Output format: 'json' (structured data) or 'csv' (raw CSV for sending tools)."}, 'list_id': {'type': 'string', 'description': 'List UUID to export.'}}}
출력 스키마
{'type': 'object', 'required': ['result'], 'properties': {'result': {'type': 'string'}}, 'description': 'Generic wrapper for non-object return types.', 'x-fastmcp-wrap-result': True}
generate_batch
Generate Batch
Submit multiple leads for batch email sequence generation (ASYNC). Returns IMMEDIATELY with a list_id. Processing runs in the background. After calling this, poll get_list_status every 15-30 seconds until processing_status is 'completed' or 'failed', then call export_list. You must have a campaign_id first. Call list_campaigns if you don't have one.
외부 접근 가능
입력 스키마
{'type': 'object', 'required': ['campaign_id', 'leads_json'], 'properties': {'list_name': {'type': 'string', 'default': '', 'description': 'Display name for this batch in MachFive UI.'}, 'leads_json': {'type': 'string', 'description': 'JSON array of lead objects. Each MUST have "email". Optional: name, title, company, company_website, linkedin_url. Example: \'[{"email":"jane@acme.com","name":"Jane Doe"}]\''}, 'campaign_id': {'type': 'string', 'description': 'Campaign UUID from list_campaigns.'}, 'email_count': {'type': 'integer', 'default': 3, 'description': 'Number of emails per lead, 1-5.'}, 'approved_ctas': {'type': 'string', 'default': '', 'description': 'Comma-separated CTAs. Omit to use campaign defaults.'}, 'campaign_angle': {'type': 'string', 'default': '', 'description': 'Additional context/angle for personalization.'}, 'email_signature': {'type': 'string', 'default': '', 'description': 'Signature appended to each email.'}}}
출력 스키마
{'type': 'object', 'required': ['result'], 'properties': {'result': {'type': 'string'}}, 'description': 'Generic wrapper for non-object return types.', 'x-fastmcp-wrap-result': True}
generate_sequence
Generate Email Sequence
Generate a personalized cold email sequence for ONE lead. This is SYNCHRONOUS — the request takes 3-10 minutes because MachFive researches the prospect and crafts unique emails. Do NOT retry if it seems slow; wait for the response. You must have a campaign_id first. Call list_campaigns if you don't have one. If the request times out, use the returned list_id with get_list_status and export_list to recover results.
외부 접근 가능
입력 스키마
{'type': 'object', 'required': ['campaign_id', 'email'], 'properties': {'name': {'type': 'string', 'default': '', 'description': "Lead's full name (improves personalization)."}, 'email': {'type': 'string', 'description': "Lead's email address (REQUIRED)."}, 'title': {'type': 'string', 'default': '', 'description': "Lead's job title (improves personalization)."}, 'company': {'type': 'string', 'default': '', 'description': "Lead's company name (improves personalization)."}, 'list_name': {'type': 'string', 'default': '', 'description': 'Display name for this list in MachFive UI.'}, 'campaign_id': {'type': 'string', 'description': 'Campaign UUID from list_campaigns.'}, 'email_count': {'type': 'integer', 'default': 3, 'description': 'Number of emails in sequence, 1-5.'}, 'linkedin_url': {'type': 'string', 'default': '', 'description': 'LinkedIn profile URL for deeper personalization.'}, 'approved_ctas': {'type': 'string', 'default': '', 'description': "Comma-separated CTAs, e.g. 'Direct Meeting CTA, Lead Magnet CTA'. Omit to use campaign defaults."}, 'campaign_angle': {'type': 'string', 'default': '', 'description': 'Additional context/angle for personalization.'}, 'company_website': {'type': 'string', 'default': '', 'description': 'Company URL for AI research.'}, 'email_signature': {'type': 'string', 'default': '', 'description': 'Signature appended to each email.'}}}
출력 스키마
{'type': 'object', 'required': ['result'], 'properties': {'result': {'type': 'string'}}, 'description': 'Generic wrapper for non-object return types.', 'x-fastmcp-wrap-result': True}
get_list_status
Get List Status
Check the processing status of a lead list. Use this to POLL after calling generate_batch. Call every 15-30 seconds until processing_status is 'completed' or 'failed'. When completed, call export_list. When failed, submit a new batch.
읽기 전용 외부 접근 가능 멱등성
입력 스키마
{'type': 'object', 'required': ['list_id'], 'properties': {'list_id': {'type': 'string', 'description': 'List UUID from generate_batch or generate_sequence response.'}}}
출력 스키마
{'type': 'object', 'required': ['result'], 'properties': {'result': {'type': 'string'}}, 'description': 'Generic wrapper for non-object return types.', 'x-fastmcp-wrap-result': True}
list_campaigns
List Campaigns
List campaigns in the user's MachFive workspace. CALL THIS FIRST before generate_sequence or generate_batch — you need a campaign ID to generate emails. If the user hasn't specified a campaign, call this and ask them to pick one. Returns JSON array of campaigns with id, name, and created_at. Use the 'id' field as campaign_id in generate calls.
읽기 전용 외부 접근 가능 멱등성
입력 스키마
{'type': 'object', 'properties': {'query': {'type': 'string', 'default': '', 'description': 'Search string to filter campaigns by name (case-insensitive substring match). Leave empty to list all.'}}}
출력 스키마
{'type': 'object', 'required': ['result'], 'properties': {'result': {'type': 'string'}}, 'description': 'Generic wrapper for non-object return types.', 'x-fastmcp-wrap-result': True}
list_lists
List Lead Lists
List lead lists (batch jobs) in the user's MachFive workspace. Useful for browsing past batches, checking what's in progress, or finding a list_id to export. Results are ordered newest first.
읽기 전용 외부 접근 가능 멱등성
입력 스키마
{'type': 'object', 'properties': {'limit': {'type': 'integer', 'default': 20, 'description': 'Max results to return, 1-100.'}, 'offset': {'type': 'integer', 'default': 0, 'description': 'Pagination offset.'}, 'status': {'type': 'string', 'default': '', 'description': "Filter by processing status: 'pending', 'processing', 'completed', or 'failed'."}, 'campaign_id': {'type': 'string', 'default': '', 'description': 'Filter by campaign UUID.'}}}
출력 스키마
{'type': 'object', 'required': ['result'], 'properties': {'result': {'type': 'string'}}, 'description': 'Generic wrapper for non-object return types.', 'x-fastmcp-wrap-result': True}
추가됨
export_list
2026년 9월 17일 12:40 PM
추가됨
get_list_status
2026년 9월 17일 12:40 PM
추가됨
list_lists
2026년 9월 17일 12:40 PM
추가됨
generate_batch
2026년 9월 17일 12:40 PM
추가됨
generate_sequence
2026년 9월 17일 12:40 PM
추가됨
list_campaigns
2026년 9월 17일 12:40 PM