Local stdio MCP server for selected blastengine API operations.
Strong schema definitions with Zod validation and tool annotations (destructiveHint/readOnlyHint). All 15 tools have descriptions and input schemas. Naming follows verb_noun pattern consistently (send_transaction, bulk_begin, etc.). However, parameter descriptions lack detail on constraints (e.g., email format validation rules, max recipient counts for CC/BCC not stated in descriptions). Output schemas are not documented in the tool definitions. Error handling guidance is minimal, no recovery hints for common failures. Security is well-handled (no secrets in params, environment-based config). Composition is clean: each tool has one responsibility, and tool chains are clear (bulk_begin → bulk_update_recipients → bulk_commit_*).
Create a bulk delivery draft in EDIT status. Requires BLASTENGINE_ENABLE_BULK=true.
Commit bulk delivery immediately. Requires BLASTENGINE_ENABLE_BULK=true and has misdelivery risk.
Commit bulk delivery for a reservation_time. Requires BLASTENGINE_ENABLE_BULK=true and has misdelivery risk.
Download CSV import error zip to a local output_path. File contents are not returned in MCP output.
Import bulk recipients from a local CSV file. immediate=true can trigger delivery after import and has misdelivery risk.
Get CSV recipient import job status and counts.
Output schemas not documented. Tool descriptions state what is returned (e.g., 'Get delivery details') but do not specify the structure of response fields. LLMs cannot plan downstream tool calls or extract specific fields without knowing the response schema.
Parameter descriptions lack constraint details. E.g., 'from_email' states '6-254 chars, valid email format' but does not explain validation rules in the description text itself, only in the schema. LLMs cannot read JSON Schema pattern fields; they rely on description text.
No error recovery guidance. Tool descriptions do not explain what to do if a call fails (e.g., 'If CSV import fails, check file format with blastengine_bulk_import_status'). Agents have no recovery path on errors.
Inferred effective spec: 2025-06-18+.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 62 | 2025-06-18+ | v2 |
Fetch bulk delivery details for human review. This is informational only and does not authorize commit. Delivery data/logs are retained by blastengine for 62 days from delivery start.
Update a bulk delivery draft: optionally replace recipients (to) and/or update delivery fields (from, reply_to, subject, list_unsubscribe, text_part, html_part). All fields are optional; supplying 'to' replaces existing recipients (max defaults to 50), omitting it leaves recipients unchanged.
Search blastengine deliveries. Delivery information is retained for 62 days from delivery start.
Get blastengine delivery details. Delivery information is retained for 62 days from delivery start.
Get a single mail delivery log. Delivery logs are retained for 62 days from delivery start.
List mail delivery logs. Delivery logs are retained for 62 days from delivery start.
Send one transaction email through blastengine. Requires BLASTENGINE_ENABLE_SEND=true. The server never logs bearer tokens, body, or recipients.
Get latest blastengine usage.
Get blastengine usage for a YYYYMM month.
Destructive operations lack confirmation step. Tools like blastengine_bulk_commit_immediate and blastengine_send_transaction modify state irreversibly but do not offer a dry-run or preview-before-execute pattern. Agents cannot verify intent before committing.
List tools lack pagination guidance in descriptions. blastengine_deliveries_list and blastengine_mail_results_list accept size/page parameters but descriptions do not explain pagination behavior or default limits. LLMs may not know to paginate large result sets.