Skip to main content
Glama
sjk4425

ncloud-mcp-server

by sjk4425

ncloud_sens_send_mail

Send email via Naver Cloud SENS Mail API, supporting templates, individual or group delivery, attachments, and dry-run preview before sending.

Instructions

Send email through SENS Mail (POST /mail/v2/services/{serviceId}/requests — the unified API that replaced Cloud Outbound Mailer on 2026-09-17). Either templateNo, or all of senderAddress/title/body, is required; either recipients or recipientGroupFilter is required. Returns HTTP 202 with requestId (track with ncloud_sens_get_mail_request). Use dryRun=true to preview the request body without sending.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
bodyNoBody (≤500 KB UTF-8, HTML allowed, supports ${key} substitution). Required unless templateNo is given
titleNoSubject (≤500 bytes UTF-8, supports ${key} substitution). Required unless templateNo is given
dryRunNoIf true, returns the request preview without sending
serviceIdNoMail service ID in NRN form (e.g. ncp:mail:kr:1********2:main). Defaults to NCLOUD_SENS_MAIL_SERVICE_ID / NCLOUD_SENS_SERVICE_ID. Find it with ncloud_sens_list_projects (mailService.serviceId). A 'Forbidden' reply means that project's Mail channel is not enabled (useMail=false) — pick a project with useMail=true.
individualNotrue (default) = one mail per recipient; false = grouped mail (enables CC/BCC, disables advertising)
parametersNoShared ${key} substitution values
recipientsNoRecipients (≤100,000; at least one TO). Required unless recipientGroupFilter is given
senderNameNoSender display name (≤69 bytes UTF-8)
templateNoNoTemplate number — when set, sender/title/body come from the template
advertisingNotrue = advertising mail (adds the (광고) notice and unsubscribe text; not allowed with individual=false)
attachFileIdsNoAttachment file IDs (≤10 MB each, ≤20 MB total)
senderAddressNoSender address (≤254 bytes). Required unless templateNo is given
confirmAndSendNotrue = send only after console approval (default false)
unsubscribeMessageNoCustom unsubscribe text (when useBasicUnsubscribeMessage=false)
reservationDateTimeNoScheduled send time, ISO 8601 with offset (e.g. 2026-10-01T09:00:00+09:00), at most 30 days ahead
recipientGroupFilterNoSend to address groups instead of explicit recipients (individual=true only)
useBasicUnsubscribeMessageNoUse the default unsubscribe text for advertising mail (default true)

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv1.16.0

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations are empty, so the description carries the full burden, and it delivers: HTTP 202 with requestId (async acceptance), migration context (unified API that replaced Cloud Outbound Mailer on 2026-09-17), and the dryRun=true preview-without-sending escape hatch. It omits auth requirements, rate limits, and cost implications of dispatching mail, but the core operational behavior of a mail-send tool is well disclosed.

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 the verb-resource pair, followed by endpoint, constraints, response contract, and the dry-run hint. Every sentence earns its place; there is zero filler.

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?

For a 17-parameter tool with nested objects and no output schema, the description covers the critical decision paths, the response contract (202 + requestId), and the safe-preview path. Remaining details live in a fully described schema, so nothing needed to invoke the tool correctly is missing — though auth and quota behavior would round it out.

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%, so per-parameter meaning is fully handled by the schema — the baseline of 3 applies. The description adds value beyond the schema by encoding the conditional requirements (templateNo XOR direct content; recipients XOR recipientGroupFilter) that the schema cannot express, since it declares zero required fields.

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?

States a specific verb and resource ('Send email through SENS Mail') and pins it to the exact endpoint (POST /mail/v2/services/{serviceId}/requests). The explicit SENS Mail channel plus the reference to the tracking sibling ncloud_sens_get_mail_request clearly separates it from send_sms, send_alimtalk, and send_brandmessage.

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 concrete operational guidance: the conditional parameter groupings (templateNo OR senderAddress/title/body; recipients OR recipientGroupFilter) and the dryRun preview switch — exactly the decision knowledge an agent needs. It names the follow-up tracking tool but does not explicitly state when to prefer this over sibling SENS channels, though the channel distinction is largely self-evident from the name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Deploy Server

Other Tools