Quolle MCP
Click on "Deploy 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., "@Quolle MCPSend a test email to me@example.com from hello@myverifieddomain.com"
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.
Quolle MCP Server
Let AI agents — Claude Desktop, Cursor, and any Model Context Protocol client — send transactional email through Quolle.
The agent gets tools to send email, send batches, check delivery status, cancel scheduled sends, and list your verified domains — so it can do things like "email the new signup their verification code" or "send everyone on this list their receipt" using your Quolle account.
Tools
Tool | What it does |
| Send one email (OTP, receipt, notification). Supports HTML or templates, scheduling, and idempotency. |
| Send up to 100 emails in one all-or-nothing request. |
| Check an email's delivery status and open/click counts by ID. |
| Cancel a scheduled email before it sends. |
| List your sending domains + verification status (to find a valid |
Related MCP server: GetMailer MCP Server
Install & build
npm install
npm run buildConfigure your MCP client
You need a Quolle API key (starts with qle_) from your dashboard → API Keys.
Claude Desktop
Add to claude_desktop_config.json (macOS: ~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"quolle": {
"command": "node",
"args": ["/absolute/path/to/quolle-mcp/dist/index.js"],
"env": {
"QUOLLE_API_KEY": "qle_your_api_key"
}
}
}
}Cursor
Add to .cursor/mcp.json in your project (or global settings):
{
"mcpServers": {
"quolle": {
"command": "node",
"args": ["/absolute/path/to/quolle-mcp/dist/index.js"],
"env": { "QUOLLE_API_KEY": "qle_your_api_key" }
}
}
}Once published to npm, you can skip the local build and use npx:
{
"mcpServers": {
"quolle": {
"command": "npx",
"args": ["-y", "@quolle/mcp"],
"env": { "QUOLLE_API_KEY": "qle_your_api_key" }
}
}
}Try it
After restarting your MCP client, ask the agent:
"Using Quolle, send a test email from hello@mail.mydomain.com to me@example.com with the subject 'Hello from my agent' and a short HTML body."
The agent will call list_domains to confirm a valid sender, then send_email.
Environment
QUOLLE_API_KEY— required. Your Quolle API key.QUOLLE_BASE_URL— optional, defaults tohttps://api.quolle.com.
Safety
Sends go through your real Quolle account and count against your quota. To test agent flows without touching your reputation, point the agent at Quolle's reserved test addresses: delivered@test.quolle.com, bounced@test.quolle.com, complained@test.quolle.com.
License
MIT
Available Tools
5 toolscancel_emailB
Cancel a scheduled email that has not been sent yet.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The scheduled email's ID. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry full burden. It discloses mutation (cancel) and precondition (unsent), but omits what happens if the email is already sent, whether cancellation is reversible, authentication requirements, or error handling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no fluff. It is appropriately front-loaded and easy to parse, though it could be slightly more structured (e.g., separate condition).
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given low complexity (1 required param, no output schema, no nested objects), the description is minimally adequate. However, it lacks details on error scenarios, idempotency, and success feedback, which would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%: the only parameter 'id' has a clear description 'The scheduled email's ID.' The tool description does not add beyond this, meeting the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Cancel a scheduled email that has not been sent yet' clearly specifies the action (cancel), resource (scheduled email), and condition (not sent). It distinguishes from sibling tools like send_email, get_email, and list_domains.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for cancelling unscheduled emails but provides no explicit guidance on when to use versus alternatives, nor any prerequisites or conditions. The precondition 'has not been sent yet' is stated but not elaborated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_emailA
Look up a single email by its ID to check delivery status (queued, sent, delivered, bounced, failed) and open/click counts.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The email ID returned by send_email. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must convey safety. It describes a lookup operation returning specific fields (delivery status, open/click counts) but does not explicitly state it is read-only or has no side effects. Adequate but could be more explicit.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, front-loaded with purpose and key details. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given one parameter and no output schema, the description effectively explains what the tool returns (delivery status values and open/click counts). It omits error conditions or permissions but is fairly complete for a simple retrieval tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with a clear description for the 'id' parameter ('The email ID returned by send_email.'). The description adds 'by its ID' but no new details beyond schema. Baseline 3 for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'Look up' and resource 'single email' with explicit purpose: check delivery status (list of possible values) and open/click counts. It clearly distinguishes from sibling tools like send_email, cancel_email, list_domains, and send_batch.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states when to use (to check delivery status and engagement metrics by ID) and implies no alternatives, but does not explicitly say when not to use or mention other tools for bulk queries. Context is clear but lacks exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_domainsA
List the account's sending domains and their verification status. Use this to find a valid, verified from domain before sending.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description carries burden. Describes read-only listing with verification status. Does not detail side effects or return format, but behavior is simple and non-destructive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences: first states purpose, second provides usage guidance. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Zero parameters and clear purpose make it mostly complete. Lacks description of output format (e.g., array of domain objects) but adequate for a list tool with no output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters in schema (100% coverage). Description adds value by specifying what is listed beyond schema, achieving baseline 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states verb 'List', resource 'sending domains', and information returned ('verification status'). Distinct from all sibling tools (send_batch, get_email, cancel_email, send_email).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use: 'before sending' and why: 'to find a valid, verified from domain'. Provides clear usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
send_batchA
Send up to 100 emails in one all-or-nothing request. Each item uses the same fields as send_email (from, to, subject, html/template, etc.).
| Name | Required | Description | Default |
|---|---|---|---|
| emails | Yes | Array of email payloads. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must fully disclose behavior. It mentions atomicity and max count but omits error handling, idempotency, rate limits, or response structure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with key information, no unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one param, 100% schema coverage) and lack of output schema, the description is adequate but lacks details on response or errors.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds value beyond the schema by linking to send_email fields. The schema already describes the 'emails' parameter as an array, but the description clarifies the payload structure.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (send), resource (batch of emails), and key constraints (up to 100, all-or-nothing). It distinguishes from siblings like send_email (single email) effectively.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage via reference to send_email fields but does not explicitly state when to use this tool over alternatives, nor does it provide when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
send_emailA
Send a transactional email through Quolle. Use for OTPs, receipts, notifications, verifications. Provide either html (with subject) or a template slug with variables. The from domain must be verified in the account (see list_domains).
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | Recipient address, or up to 50 addresses. | |
| from | Yes | Sender address, e.g. "Acme <hello@mail.acme.com>". Domain must be verified. | |
| html | No | HTML body (mutually exclusive with template). | |
| text | No | Optional plain-text body (auto-generated from html if omitted). | |
| replyTo | No | Reply-To address. | |
| subject | No | Subject line (required when sending html). | |
| template | No | Slug of a saved template (mutually exclusive with html). | |
| variables | No | Template variable substitutions. | |
| scheduledAt | No | ISO 8601 time to send in the future (schedules the email). | |
| idempotencyKey | No | Idempotency key — safe retries never send twice. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It discloses two modes (html vs template), domain verification requirement, and optional fields. However, it omits failure behavior, rate limits, and return value details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with purpose and use cases. No wasted words. Clear structure.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 10 parameters, 2 required, nested objects, and no output schema, description covers purpose, usage, modes, and constraints. Could mention response format but overall adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, baseline 3. Description adds meaning beyond schema: explains mutually exclusive modes, auto-generation of text from html, scheduling, and idempotency. Adds significant value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'send' and resource 'transactional email', with specific use cases (OTPs, receipts, notifications, verifications). It distinguishes from siblings like send_batch by focusing on transactional, not batch.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit when-to-use guidance (transactional emails) and mentions prerequisites (from domain verified). Lacks direct contrast with send_batch but still offers clear usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
5 tool updates
v1.0.0- First observed
cancel_email - First observed
get_email - First observed
list_domains - First observed
send_batch - First observed
send_email
TDQS
Scored across 5 tools
Each tool has a clearly distinct purpose: sending single or batch emails, retrieving status, canceling, and listing domains. No overlap exists.
All tools follow a consistent verb_noun snake_case pattern: send_batch, get_email, cancel_email, list_domains, send_email.
With 5 tools covering core email operations (send, batch send, status, cancel, domain management), the count is perfectly scoped for the domain.
The tool set covers essential lifecycle operations for transactional emails: sending, tracking, cancellation, and domain verification. No obvious gaps.
Maintenance
Related MCP Connectors
Transactional email for AI agents: templates, domain verify, and sends.
Send transactional emails for AI agents via SMTP. Templates included.
Email for AI agents — send, receive as a webhook, manage domains, templates, routing.
Email infrastructure for AI agents — send, receive, search, and reply to email over MCP.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables AI agents to send transactional emails programmatically through the Lemon Email API. Provides simple email sending capabilities with customizable sender information, recipients, and content.2MIT
- AlicenseAqualityDmaintenanceEnables sending transactional emails through GetMailer from AI assistants. Supports email operations, template management, domain verification, analytics, suppression lists, and batch email jobs.148MIT
- AlicenseAqualityDmaintenanceEnables AI agents to manage email mailboxes, send and receive emails, and handle webhooks via qmailing.12701MIT

Tratto MCP Serverofficial
FlicenseAqualityDmaintenanceLets AI tools send transactional emails, check status, and manage contacts through the Model Context Protocol.2-