Skip to main content
Glama
Quolle-main

Quolle MCP

by Quolle-main

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_email

Send one email (OTP, receipt, notification). Supports HTML or templates, scheduling, and idempotency.

send_batch

Send up to 100 emails in one all-or-nothing request.

get_email

Check an email's delivery status and open/click counts by ID.

cancel_email

Cancel a scheduled email before it sends.

list_domains

List your sending domains + verification status (to find a valid from).

Related MCP server: GetMailer MCP Server

Install & build

npm install
npm run build

Configure 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_KEYrequired. Your Quolle API key.

  • QUOLLE_BASE_URL — optional, defaults to https://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 tools
cancel_emailB

Cancel a scheduled email that has not been sent yet.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThe scheduled email's ID.

TDQS

B3.4/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThe email ID returned by send_email.

TDQS

A4/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.6/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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.).

ParametersJSON Schema
NameRequiredDescriptionDefault
emailsYesArray of email payloads.

TDQS

A3.7/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
toYesRecipient address, or up to 50 addresses.
fromYesSender address, e.g. "Acme <hello@mail.acme.com>". Domain must be verified.
htmlNoHTML body (mutually exclusive with template).
textNoOptional plain-text body (auto-generated from html if omitted).
replyToNoReply-To address.
subjectNoSubject line (required when sending html).
templateNoSlug of a saved template (mutually exclusive with html).
variablesNoTemplate variable substitutions.
scheduledAtNoISO 8601 time to send in the future (schedules the email).
idempotencyKeyNoIdempotency key — safe retries never send twice.

TDQS

A4.2/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

  1. 5 tool updatesv1.0.0
    • First observedcancel_email
    • First observedget_email
    • First observedlist_domains
    • First observedsend_batch
    • First observedsend_email

TDQS

A4.2/5.0

Scored across 5 tools

Disambiguation5/5

Each tool has a clearly distinct purpose: sending single or batch emails, retrieving status, canceling, and listing domains. No overlap exists.

Naming Consistency5/5

All tools follow a consistent verb_noun snake_case pattern: send_batch, get_email, cancel_email, list_domains, send_email.

Tool Count5/5

With 5 tools covering core email operations (send, batch send, status, cancel, domain management), the count is perfectly scoped for the domain.

Completeness5/5

The tool set covers essential lifecycle operations for transactional emails: sending, tracking, cancellation, and domain verification. No obvious gaps.

Maintenance

ActivitySlowing
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI agents to send transactional emails programmatically through the Lemon Email API. Provides simple email sending capabilities with customizable sender information, recipients, and content.
    2
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    Enables sending transactional emails through GetMailer from AI assistants. Supports email operations, template management, domain verification, analytics, suppression lists, and batch email jobs.
    14
    8
    MIT
  • F
    license
    A
    quality
    D
    maintenance
    Lets AI tools send transactional emails, check status, and manage contacts through the Model Context Protocol.
    2
    -