Self-hosted cold-email platform with remote MCP tools · Early-stage active project

AbdelftahZowail/Quickly

MIT-licensed, self-hosted cold-email application with campaign sequencing, inbox rotation, reply processing, analytics, REST APIs, webhooks, an n8n community node, and a remote MCP server that exposes lead-related tools; it can serve Claude Code only as a separately deployed MCP tool surface by inference, because supplied files document Cursor and generic MCP clients but no Claude Code-specific setup.

sales outreachemail automationcampaign managementlead managementworkflow automationanalyticsself-hosted business softwareAI-assisted reply processing
Routing score
80.0
Readiness
Self-hostable with substantial production configuration
License
MIT
Maintenance
active
Components
19
Revision
0

Selection

Select when

  • You need a self-hosted alternative to hosted cold-email campaign platforms.
  • You want Gmail, Microsoft 365, Outlook.com, and SMTP senders in one campaign system.
  • You need REST, webhook, n8n, or MCP access to outreach and lead workflows.
  • You want reply classification through either hosted AI providers or local Ollama.
  • You can administer PostgreSQL, OAuth applications, TLS, backups, and email-provider settings.
  • You need campaign sequencing, inbox rotation, reply tracking, and analytics in one application.
  • You are prepared to review applicable anti-spam law and provider acceptable-use policies.

Boundaries

Avoid when

  • You need a native Claude Code plugin, hook, skill, or verified Claude-specific installation path.
  • You want a coding-agent framework rather than a sales-outreach application.
  • You cannot operate a database-backed internet service or manage production secrets.
  • You require a fully audited security and privacy posture.
  • You need turnkey mailbox OAuth without creating Google or Microsoft application credentials.
  • You cannot accept the compliance and sender-reputation risks of automated outreach.
  • You require verified MCP tool schemas, permission boundaries, or Claude Code compatibility from the supplied evidence.
  • You need guaranteed encryption at rest without validating the separate encryption-key configuration.

Strengths

Capabilities

Builds unlimited-step sequences with configurable delays, threading, HTML or plain-text bodies, and template variables.Rotates campaign sends across Gmail, Microsoft 365, Outlook.com, and generic SMTP inboxes while respecting configured limits.Supports per-step subject and body variants with open, click, and reply analytics.Imports and exports leads through CSV and maps extra columns to custom personalization fields.Provides a unified inbox with threaded replies and documented Gmail or Microsoft synchronization paths.Classifies replies into six categories through 19 stated providers, including local Ollama operation.Tracks opens and clicks through pixels, wrapped links, custom domains, or the separate Quickly Beacon proxy.Provides campaign, step, timeline, bounce, unsubscribe, and system-health analytics.Exposes more than 90 stated REST endpoints authenticated by JWTs or API keys.Emits 15 documented webhook event types with bearer-token authentication and event filtering.Includes a TypeScript n8n community node covering campaigns, leads, sequences, inboxes, settings, webhooks, schedules, and Unibox operations.Hosts a remote Streamable HTTP MCP endpoint at /api/mcp for lead-related tools.Supports test-mode simulation of sends, opens, and clicks without delivering messages.Schedules campaigns by priority-first or round-robin strategy with configurable timezone and sending windows.Supports email verification through a configurable HTTP provider.Supports Railway, Docker Compose, reverse-proxy, and local-development deployment layouts documented in first-party files.Uses PostgreSQL for application state and APScheduler with a PostgreSQL job store for background scheduling.Supports encrypted downloadable backups and optional persisted local backups when explicitly configured.Includes JWT HS256, bcrypt passwords, HMAC API keys, optional Fernet field encryption, SSRF checks, and response security headers.Closes public registration after the first account and relies on administrators to invite additional users.

Risk profile

Risks and limitations

  • Uncertainty: only selected first-party files were supplied, so MCP tool definitions, API implementation, authorization checks, queue behavior, tests, migrations, and backup code were not directly inspected.
  • Uncertainty: repository creation, update, push, and example timestamps extend into 2026 relative to this analysis context, so recency and release state cannot be independently reconciled.
  • Uncertainty: no supplied file documents Claude Code configuration, minimum version, integration testing, or native extension packaging.
  • Uncertainty: the exact scope and write impact of the lead-related MCP tools cannot be established without the referenced docs/MCP.md file.
  • The application disables Fernet protection and stores sensitive columns, including SMTP and IMAP passwords, as plaintext when QUICKLY_ENCRYPTION_KEY is absent.
  • The installation guide emphasizes QUICKLY_SECRET_KEY but its supplied environment-variable table does not document QUICKLY_ENCRYPTION_KEY, increasing configuration risk.
  • The repository claims self-hosted data control, but Gmail, Microsoft, SMTP, verification, webhook, tracking, hosted AI, and PaaS integrations can transmit operational or lead data externally.
  • The n8n package contains placeholder repository and homepage URLs and describes Community Nodes UI installation conditionally on future npm publication.
  • The two supplied READMEs differ on first-login wording, with one describing username/password registration and the installation guide directing Google or Microsoft sign-in.
  • Production deployment requires OAuth applications, sender permissions, DNS, HTTPS, database persistence, and deliverability controls beyond starting containers.
  • Tracking pixels, link wrapping, cold outreach, and automated classification introduce legal, consent, privacy, and provider-policy obligations not assessed by the repository evidence.
  • No independent security audit, privacy assessment, deliverability benchmark, MCP safety review, or production compatibility matrix was supplied.

The supplied code implements JWT HS256, bcrypt, HMAC API keys, optional Fernet-backed SQLAlchemy fields, SSRF checks against private and reserved networks, webhook URL validation, hostname validation, CSP, frame denial, MIME sniffing protection, referrer and permissions policies, and proxy-aware HSTS. OAuth connects Google and Microsoft accounts, while n8n can use API keys or short-lived JWTs. Important caveat: if QUICKLY_ENCRYPTION_KEY is unset, the code explicitly leaves sensitive columns such as SMTP and IMAP passwords in plaintext; operators must also set a stable QUICKLY_SECRET_KEY to prevent session invalidation. No independent audit or complete authorization review was supplied.

Component inventory

19 documented components

standalone application

Quickly web application

Self-hosted cold-email UI for campaigns, sequences, inbox rotation, leads, replies, analytics, settings, and team access.

README.md
service

Quickly backend service

FastAPI service providing authentication, scheduling, email-provider integrations, tracking, Unibox sync, and application APIs.

README.md
web module

Quickly frontend

React and Vite browser interface for the Quickly platform.

frontend/package.json
workflow

Campaign workflow

Assign inboxes, build multi-step sequences, add A/B variants, import CSV leads, and start scheduled outreach.

docs/INSTALL.md
user-facing module

Unified inbox (Unibox)

Synchronizes replies across connected Gmail and Microsoft accounts with threaded viewing, composing, and replying.

README.md
service

AI reply classification

Classifies replies into six outreach categories through 19 providers, including Anthropic Claude and local Ollama.

docs/INSTALL.md
API

REST API

JWT- and API-key-secured automation surface covering more than 90 documented application endpoints.

README.md
MCP service

Quickly MCP server

Remote Streamable HTTP MCP endpoint exposing lead tools to compatible AI clients.

README.md
plugin

Quickly n8n node

Community n8n node mapping Quickly resources and operations to its JSON REST API.

n8n-node/README.md
n8n credential

Quickly API credentials

Reusable n8n credential supporting a Quickly base URL plus API-key or Bearer-token authentication.

n8n-node/README.md
event service

Outbound webhooks

Delivers 15 documented email, lead, limit, and token events to configured HTTPS endpoints.

docs/README.md
tracking service

Quickly Beacon

Separate tracking proxy serving branded pixels and redirects, then posting signed events back to Quickly.

docs/INSTALL.md
deployment workflow

Docker deployment workflows

Documented production layouts cover no-Caddy, in-Compose Caddy, and host-Caddy deployments with PostgreSQL.

docs/INSTALL.md
deployment workflow

Railway deployment

Runs the published Quickly image with a Railway PostgreSQL service and platform-provided HTTPS.

docs/INSTALL.md
administration workflow

Backup and restore

Creates, downloads, optionally encrypts, and restores PostgreSQL-backed .qbk backups from Settings.

docs/INSTALL.md
provider integration

Gmail inbox integration

Connects Gmail for sending and reply sync through Google OAuth, with optional Pub/Sub push notifications.

docs/INSTALL.md
provider integration

Microsoft 365 inbox integration

Connects Microsoft 365, Office 365, and Outlook.com accounts through Microsoft Graph OAuth.

docs/INSTALL.md
provider integration

SMTP and IMAP inbox integration

Supports generic SMTP relays for sending and optional IMAP reply synchronization; Amazon SES is documented as send-only.

docs/INSTALL.md
classification

Claude Code relationship

Unclassified: supplied first-party files document a standalone app and generic MCP endpoint, but no Claude Code-specific plugin, skill, hook, command, or setup.

README.md

Technical profile

Requirements and configuration

License
MIT according to repository metadata, README, and package files.
Primary Language
Python, with a React frontend and a TypeScript n8n package.
Backend
Python 3.12, FastAPI, Uvicorn, SQLAlchemy 2 async, and APScheduler.
Frontend
React 18, Vite 5, Tailwind CSS, React Router, Recharts, and React Quill.
Database
PostgreSQL 15, with SQLite used as a documented test fallback.
Deployment
Docker images and several Docker Compose layouts, Railway or similar PaaS, reverse-proxy hosting, and manual local development.
Authentication
JWT HS256, bcrypt passwords, HMAC API keys, Google OAuth, and Microsoft OAuth.
Email Integrations
Gmail API, Microsoft Graph, generic SMTP, and optional IMAP reply synchronization.
Ai
any-llm-sdk with 19 stated providers, including Anthropic and local Ollama.
Automation
More than 90 stated REST endpoints, 15 webhook events, and n8n-nodes-quickly version 1.0.0.
Mcp
mcp Python dependency constrained to >=1.2,<2 and a remote Streamable HTTP endpoint at /api/mcp.
Tracking
Open pixels, wrapped links, Quickly Beacon, and an advanced Caddy on-demand TLS path.
Repository Status
Public, non-archived repository with 36 stars, 14 forks, two open issues, and main as the default branch in supplied metadata.

Classification

How it enters the stack

Standalone ApplicationTool Surface

Evidence: Quickly is a separately deployed web application and exposes lead-related tools through remote MCP. Inference: Claude Code could consume that tool surface through compatible MCP support, but no Claude-specific configuration or validation was supplied, so it is not classified as a native Claude extension.

Standalone · high setup effort · medium confidence · automated

Evidence and risk

Primary sources

first_party_fileREADME.mdhttps://github.com/AbdelftahZowail/Quickly/blob/main/README.md
first_party_filedocs/README.mdhttps://github.com/AbdelftahZowail/Quickly/blob/main/docs/README.md
first_party_filen8n-node/README.mdhttps://github.com/AbdelftahZowail/Quickly/blob/main/n8n-node/README.md
first_party_filedocs/INSTALL.mdhttps://github.com/AbdelftahZowail/Quickly/blob/main/docs/INSTALL.md
first_party_fileapp/security.pyhttps://github.com/AbdelftahZowail/Quickly/blob/main/app/security.py
first_party_filerequirements.txthttps://github.com/AbdelftahZowail/Quickly/blob/main/requirements.txt
first_party_filefrontend/package.jsonhttps://github.com/AbdelftahZowail/Quickly/blob/main/frontend/package.json
first_party_filen8n-node/package.jsonhttps://github.com/AbdelftahZowail/Quickly/blob/main/n8n-node/package.json

Routing context

Conflicts, complements, and synergies

similar_to

gh_twentyhq_twenty

Both are self-hosted business applications that expose operational records through MCP, but Quickly targets cold-email outreach while Twenty targets CRM and app development.

medium confidence