coldforge
Serves as a fallback search engine for prospect research when no Tavily API key is configured.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@coldforgeResearch Alex at Acme and draft a pain-point cold email"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Cold outreach tools want an account, a seat price, and your prospect list on their servers. coldforge wants a directory. It researches a prospect, personalizes the opener, schedules a sequenced campaign, and follows up only with the people who didn't reply — from your terminal, or from any MCP client.
Your leads, your copy and your .env live in one SQLite file you can delete.
Every API key is optional: with none set, the whole pipeline still runs
end-to-end on deterministic fallbacks.
See it run
$ coldforge leads import examples/leads.csv
✓ Imported / updated 3 leads.
$ coldforge campaign create --name q3 --sequence examples/sequence.yml
✓ Created campaign q3 (2 steps).
$ coldforge campaign activate q3 --leads examples/leads.csv
✓ Activated q3: scheduled 6 messages for 3 leads.
$ coldforge campaign preview q3
q3 · active
┌──────────────────┬──────┬──────────────────┬────────────────────────────────────────────────┬───────────┐
│ when │ step │ to │ subject │ status │
├──────────────────┼──────┼──────────────────┼────────────────────────────────────────────────┼───────────┤
│ 2026-07-28 09:00 │ 0 │ alex@acme.io │ Acme + manual invoice reconciliation? │ scheduled │
│ 2026-07-28 09:00 │ 0 │ sam@northwind.co │ Northwind + support tickets piling up │ scheduled │
│ │ │ │ overnight? │ │
│ 2026-07-28 09:00 │ 0 │ jordan@vela.app │ Vela + flaky CI eating release windows? │ scheduled │
│ 2026-07-31 09:00 │ 1 │ alex@acme.io │ Re: {{original_subject}} │ scheduled │
│ 2026-07-31 09:00 │ 1 │ sam@northwind.co │ Re: {{original_subject}} │ scheduled │
│ 2026-07-31 09:00 │ 1 │ jordan@vela.app │ Re: {{original_subject}} │ scheduled │
└──────────────────┴──────┴──────────────────┴────────────────────────────────────────────────┴───────────┘Nothing has left your machine yet. The whole campaign is visible before the
first send, and coldforge tick --dry-run shows exactly what would go out.
The tooling argues with you, too — lint reads the copy the way a spam filter
would and refuses to bless a draft you haven't finished:
$ coldforge lint -l alex@acme.io -t sales_pain_point
✗ unfilled {{variables}} left in the email
Score: 65/100 — rewrite before sendingRelated MCP server: MachFive Cold Email
Install
git clone https://github.com/Makeph/coldforge && cd coldforge
pip install -e ".[all]" # or `pip install -e .` for the zero-dependency core
coldforge initNot on PyPI yet — install from source. (
pip install coldforgewill be the one-liner once it's published.)
Python ≥ 3.10. Works on Windows, macOS and Linux. pytest runs the whole
offline suite with no keys and no network.
Guardrails, not throttles
The difference between outreach and spam is mostly restraint, so the restraint
is built into the engine rather than left to your discipline. tick — run it
from cron or Task Scheduler — sends what's due and enforces:
Guardrail | Behaviour |
Send window & days | Nothing sends outside |
Daily cap |
|
Jittered pacing | Randomised gaps between real sends — no metronome signature. |
Reply → cancel | One reply cancels that lead's entire remaining sequence, instantly. |
Suppression list |
|
Verification gate | Addresses |
Domain check |
|
# typical cron line — the worker runs every 15 min during the day
*/15 9-17 * * 1-5 coldforge tick --scan-repliesTwo front-ends, one core
┌──────────────────────────────────────────────┐
│ shared core (research · personalize · │
│ templates · sequence · sender · db) │
└───────────────┬───────────────┬──────────────┘
│ │
coldforge CLI MCP server
research→send→follow research_prospect
draft_emailCLI
coldforge icp build --site acme.io # read YOUR site → who buys it (editable JSON)
coldforge leads verify # syntax / disposable / MX — invalid never sends
coldforge leads score # rank every lead 0–100 against the ICP
coldforge templates list # browse the pack
coldforge research alex@acme.io # store a personalization signal
coldforge draft -l alex@acme.io -t sales_pain_point --research
coldforge lint -l alex@acme.io -t sales_pain_point # spam-filter check the copy
coldforge doctor acme.io # SPF / DKIM / DMARC, 0–100
coldforge reply mark alex@acme.io --text "pas intéressé" # auto-classified
coldforge suppress add cto@acme.io # do-not-contact list, honoured everywhere
coldforge stats q3 --by template # which copy earns replies → double down
coldforge geo check --query "best CRM for real estate agents" --brand acme
coldforge content plan # ICP keyword gaps → numbered article briefsMCP
pip install "coldforge[mcp]"
coldforge mcp # stdio server{
"mcpServers": {
"coldforge": { "command": "coldforge", "args": ["mcp"] }
}
}Twelve tools: research_prospect, draft_email, list_templates,
show_template, check_deliverability, build_icp, score_prospect,
lint_email, classify_reply, geo_check_visibility, plan_content,
draft_article. Ask your assistant "research Alex at Acme and draft a
pain-point cold email" and it drives the same engine the CLI does.
Sequences
A sequence is a list of steps in YAML:
- template: sales_pain_point # concrete opener from the lead's data + research
wait_days: 0
condition: always
- template: followup_bump # one soft bump, same thread, only if no reply
wait_days: 3
condition: no_replyOn activate, every step is pre-scheduled for every lead — which is why the
whole timeline is inspectable before anything sends.
Target the right people
The AutoGTM idea — "drop your site, learn who buys it" — reduced to its honest core, running on your machine:
coldforge icp build --site acme.io # scrape your own site → ICP
coldforge leads score # every lead scored 0–100 + why
coldforge leads list # ranked, best fit firstThe ICP is a plain JSON file (~/.coldforge/icp.json) holding the product
summary, the pains it removes, ranked buyer segments and match keywords — the
model proposes, you edit. With ANTHROPIC_API_KEY set an LLM writes the profile
and judges each lead; without it a deterministic keyword heuristic keeps ranking
usable offline.
Visibility on answer engines
BabyLoveGrowth sells "get on Google and ChatGPT's radar" as a black-box dashboard: it writes articles, builds backlinks, and tracks whether you're mentioned when someone asks an AI. coldforge takes only the two pieces that port honestly to a local, keyless-by-default tool — and skips the backlink network, which can't be faked:
coldforge icp build --site acme.io # with a key, also derives content_gaps:
# topics your buyers search for that
# your own site doesn't visibly answer
coldforge content plan # cluster keywords/gaps → article briefs
coldforge content draft 01-... # write one (LLM if a key is set, else an outline)
coldforge geo check -q "best CRM for real estate agents" -b acmegeo check degrades per engine, independently: set none, one, or all four of
ANTHROPIC_API_KEY / OPENAI_API_KEY / PERPLEXITY_API_KEY / GEMINI_API_KEY;
each configured engine gets asked, the rest are skipped. Pass --lead to save
the result as a research signal — "you don't show up when I ask ChatGPT about
X" is a genuinely concrete cold-email opener.
Reply triage
Replies aren't binary. Each one (IMAP scan or reply mark --text "…") is
classified — interested · not_interested · unsubscribe · ooo · other — in
French and English. Unsubscribes hit the suppression list instantly; stats
shows the category breakdown, and stats --by template tells you which copy
actually earns replies, so you double down and retire the rest.
Templates
Twelve curated, plaintext, reply-tested templates across sales, sales-fr,
recruiting, partnership, warm-intro, networking, follow-up — each under ~120
words, one CTA, with deliverability notes in the front-matter. The sales-fr
pack is a three-touch French sequence for selling to agencies (opener → soft
bump → breakup, see examples/sequence_fr.yml) with CNIL-style B2B compliance
notes. Add your own by dropping a .md file into ~/.coldforge/templates/.
Configuration
Everything is optional — copy .env.example to .env and fill what you need.
Variable | Buys you | Without it |
| LLM-personalized drafts, | deterministic template fill |
| higher-quality research | DuckDuckGo + site scrape |
| actually send mail | dry-run only |
| auto-detect replies | mark replies manually |
| tuned guardrails | sane defaults |
| more engines in | that engine is skipped |
Why this exists
A synthesis of the best ideas from a pile of open-source outreach tools, rebuilt small and honest:
Idea | Borrowed from | How coldforge does it |
Local SQLite sending engine, sequences, A/B, safe |
| re-implemented lean in Python |
Web-search + scrape to personalize |
|
|
LLM-personalized emails |
| ~150 lines, not 137k; always degrades to template fill |
Curated templates, silent-reply follow-up, SPF/DKIM/DMARC check |
| original template pack + |
"Drop your site → learn who buys it", fit scoring, reply triage | AutoGTM tools ( |
|
Answer-engine visibility, keyword-cluster → article generation |
|
|
Responsible use
coldforge is a precision tool, not a spam cannon: low daily caps, send windows,
one-bump follow-ups, an explicit "say no and I'll stop" CTA in the templates,
and a doctor check so you authenticate your domain before sending. Only email
people you have a legitimate reason to contact, honour unsubscribes, and follow
the law that applies to you (CAN-SPAM, GDPR, etc.).
License
MIT © 2026 Makeph
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- Alicense-qualityFmaintenanceEnables AI-powered email management for Microsoft Outlook, allowing users to search, compose, organize, and batch forward emails using natural language commands with 100% local processing.Last updated29MIT
- Alicense-qualityDmaintenanceGenerate hyper-personalized cold email sequences per lead via AI. List campaigns, generate emails for individual leads or batches, and export results as CSV or JSON.Last updated2MIT
- Flicense-qualityCmaintenanceEnables AI agents to draft evidence-grounded cold-email openers, A/B variants, personalized LinkedIn DMs, and SEO content-gap plans for sales and marketing outreach.Last updated
- Alicense-qualityDmaintenanceEnables AI assistants to manage multiple email accounts with secure credentials, local full-text search, thread-aware replies, and automation.Last updated17MIT
Related MCP Connectors
B2B lead generation, email verification, company enrichment, and agentic GTM Ops.
Email for AI agents: send mail, manage contacts, automations & webhooks. Zero-DNS first send.
Email for AI agents — send, receive as a webhook, manage domains, templates, routing.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Makeph/coldforge'
If you have feedback or need assistance with the MCP directory API, please join our Discord server