shipmail-mcp 0.7.2 → 0.7.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/plugin.json +1 -1
- package/.codex-plugin/plugin.json +1 -1
- package/.plugin/plugin.json +1 -1
- package/README.md +30 -19
- package/dist/capabilities.d.ts +16 -4
- package/dist/capabilities.js +52 -17
- package/dist/index.js +1606 -224
- package/dist/server.d.ts +4 -1
- package/dist/server.js +1615 -224
- package/package.json +2 -2
- package/server.json +2 -2
- package/skills/shipmail/SKILL.md +2 -0
- package/smithery.yaml +1 -1
package/.plugin/plugin.json
CHANGED
package/README.md
CHANGED
|
@@ -256,20 +256,20 @@ Once connected, ask your agent:
|
|
|
256
256
|
|
|
257
257
|
All tools are namespaced with `shipmail_` to avoid collisions with peer MCP servers.
|
|
258
258
|
|
|
259
|
-
| Group | Tools
|
|
260
|
-
| --------------------------------------- |
|
|
261
|
-
| Status | `shipmail_status`
|
|
262
|
-
| Domains | `shipmail_list_domains`, `shipmail_get_domain`, `shipmail_get_domain_dns_records`, `shipmail_create_domain`, `shipmail_update_domain`, `shipmail_delete_domain`, `shipmail_verify_domain`, `shipmail_search_domains`
|
|
263
|
-
| Mailboxes | `shipmail_list_mailboxes`, `shipmail_get_mailbox`, `shipmail_create_mailbox`, `shipmail_update_mailbox`, `shipmail_delete_mailbox`, `shipmail_suspend_mailbox`, `shipmail_resume_mailbox`, `shipmail_list_mailbox_app_passwords`, `shipmail_create_mailbox_app_password`, `shipmail_revoke_mailbox_app_password`, `shipmail_list_mailbox_forwarding`, `shipmail_create_mailbox_forwarding`, `shipmail_delete_mailbox_forwarding`, `shipmail_list_mailbox_folders`, `
|
|
264
|
-
| Mailbox inbox | `shipmail_list_mailbox_inbox_messages`, `shipmail_get_mailbox_inbox_message`, `shipmail_get_mailbox_inbox_thread`, `shipmail_list_mailbox_inbox_threads`, `
|
|
265
|
-
| Reply scans | `shipmail_create_reply_scan`, `shipmail_get_reply_scan`, `shipmail_list_reply_scan_results`
|
|
266
|
-
| Messages and threads | `shipmail_list_messages`, `shipmail_list_message_analytics`, `shipmail_get_message`, `shipmail_compose_message_with_file` (hosted MCP Apps), `shipmail_prepare_staged_attachment_upload`, `shipmail_send_message`, `shipmail_list_scheduled_messages`, `shipmail_get_scheduled_message`, `shipmail_update_scheduled_message`, `shipmail_cancel_scheduled_message`, `shipmail_reply_to_message`, `shipmail_list_threads`, `shipmail_get_thread`, `shipmail_reply_to_thread`, `shipmail_reply_to_inbox_message`, `shipmail_reply_to_inbox_thread`
|
|
267
|
-
| Webhooks | `shipmail_list_webhooks`, `shipmail_get_webhook`, `shipmail_create_webhook`, `shipmail_update_webhook`, `shipmail_delete_webhook`, `shipmail_rotate_webhook_secret`, `shipmail_test_webhook`, `shipmail_list_webhook_deliveries`, `shipmail_get_webhook_delivery`, `shipmail_replay_webhook_delivery`
|
|
268
|
-
| Suppressions | `shipmail_list_suppressions`, `shipmail_remove_suppression`
|
|
269
|
-
| Audiences | `shipmail_list_audiences`, `shipmail_get_audience`, `shipmail_create_audience`, `shipmail_update_audience`, `shipmail_delete_audience`, `shipmail_get_audience_feed`, `shipmail_update_audience_feed`, `shipmail_rotate_audience_feed`, `shipmail_revoke_audience_feed`, `shipmail_list_subscribers`, `shipmail_get_subscriber`, `shipmail_get_subscriber_by_email`, `shipmail_add_subscriber`, `shipmail_add_subscribers_batch`, `shipmail_update_subscriber`, `shipmail_unsubscribe_subscriber`, `shipmail_resubscribe_subscriber`, `shipmail_remove_subscriber`
|
|
270
|
-
| Newsletters | `shipmail_list_newsletter_sender_identities`, `shipmail_list_newsletter_domains`, `shipmail_list_newsletter_assets`, `shipmail_list_newsletters`, `shipmail_get_newsletter`, `shipmail_preview_newsletter`, `shipmail_create_newsletter`, `shipmail_create_newsletter_from_changelog`, `shipmail_update_newsletter`, `shipmail_run_newsletter_preflight`, `shipmail_send_newsletter_test`, `shipmail_schedule_newsletter`, `shipmail_cancel_newsletter`, `shipmail_resume_newsletter`
|
|
271
|
-
| Cross-organization lists (hosted OAuth) | `shipmail_list_domains_across_organizations`, `shipmail_list_mailboxes_across_organizations`, `shipmail_list_webhooks_across_organizations`, `shipmail_list_suppressions_across_organizations`, `shipmail_list_newsletters_across_organizations`, `shipmail_list_newsletter_sender_identities_across_organizations`, `shipmail_list_newsletter_domains_across_organizations`, `shipmail_list_newsletter_assets_across_organizations`, `shipmail_list_audiences_across_organizations`, `shipmail_list_booking_pages_across_organizations`
|
|
272
|
-
| Partner beta | `shipmail_list_partner_organizations`, `shipmail_create_partner_organization`, `shipmail_get_partner_organization`, `shipmail_update_partner_organization`, `shipmail_resend_partner_ownership_invitation`, `shipmail_suspend_partner_organization`, `shipmail_resume_partner_organization`, `shipmail_offboard_partner_organization`, `shipmail_list_partner_mailbox_credential_grants`, `shipmail_consume_partner_mailbox_credential_grant`, `shipmail_get_partner_usage`
|
|
259
|
+
| Group | Tools |
|
|
260
|
+
| --------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
261
|
+
| Status | `shipmail_status` |
|
|
262
|
+
| Domains | `shipmail_list_domains`, `shipmail_get_domain`, `shipmail_get_domain_dns_records`, `shipmail_create_domain`, `shipmail_update_domain`, `shipmail_delete_domain`, `shipmail_verify_domain`, `shipmail_search_domains` |
|
|
263
|
+
| Mailboxes | `shipmail_list_mailboxes`, `shipmail_get_mailbox`, `shipmail_create_mailbox`, `shipmail_update_mailbox`, `shipmail_delete_mailbox`, `shipmail_suspend_mailbox`, `shipmail_resume_mailbox`, `shipmail_list_mailbox_app_passwords`, `shipmail_create_mailbox_app_password`, `shipmail_revoke_mailbox_app_password`, `shipmail_list_mailbox_forwarding`, `shipmail_create_mailbox_forwarding`, `shipmail_delete_mailbox_forwarding`, `shipmail_list_mailbox_folders`, `shipmail_create_mailbox_folder`, `shipmail_update_mailbox_folder`, `shipmail_delete_mailbox_folder`, `shipmail_list_mailbox_rules`, `shipmail_get_mailbox_rule`, `shipmail_create_mailbox_rule`, `shipmail_update_mailbox_rule`, `shipmail_delete_mailbox_rule`, `shipmail_list_mailbox_identities`, `shipmail_reset_mailbox_password`, `shipmail_set_auto_reply`, `shipmail_set_spam_filter`, `shipmail_inject_sandbox_inbound` |
|
|
264
|
+
| Mailbox inbox | `shipmail_list_mailbox_inbox_messages`, `shipmail_get_mailbox_inbox_message`, `shipmail_get_mailbox_inbox_thread`, `shipmail_list_mailbox_inbox_threads`, `shipmail_update_inbox_thread_attention`, `shipmail_create_inbox_reply_draft`, `shipmail_send_inbox_reply_draft`, `shipmail_update_inbox_message`, `shipmail_move_inbox_message`, `shipmail_delete_inbox_message` |
|
|
265
|
+
| Reply scans | `shipmail_create_reply_scan`, `shipmail_get_reply_scan`, `shipmail_list_reply_scan_results` |
|
|
266
|
+
| Messages and threads | `shipmail_list_messages`, `shipmail_list_message_analytics`, `shipmail_get_message`, `shipmail_compose_message_with_file` (hosted MCP Apps), `shipmail_prepare_staged_attachment_upload`, `shipmail_send_message`, `shipmail_list_scheduled_messages`, `shipmail_get_scheduled_message`, `shipmail_update_scheduled_message`, `shipmail_cancel_scheduled_message`, `shipmail_reply_to_message`, `shipmail_list_threads`, `shipmail_get_thread`, `shipmail_reply_to_thread`, `shipmail_reply_to_inbox_message`, `shipmail_reply_to_inbox_thread` |
|
|
267
|
+
| Webhooks | `shipmail_list_webhooks`, `shipmail_get_webhook`, `shipmail_create_webhook`, `shipmail_update_webhook`, `shipmail_delete_webhook`, `shipmail_rotate_webhook_secret`, `shipmail_test_webhook`, `shipmail_list_webhook_deliveries`, `shipmail_get_webhook_delivery`, `shipmail_replay_webhook_delivery` |
|
|
268
|
+
| Suppressions | `shipmail_list_suppressions`, `shipmail_remove_suppression` |
|
|
269
|
+
| Audiences | `shipmail_list_audiences`, `shipmail_get_audience`, `shipmail_create_audience`, `shipmail_update_audience`, `shipmail_delete_audience`, `shipmail_get_audience_feed`, `shipmail_update_audience_feed`, `shipmail_rotate_audience_feed`, `shipmail_revoke_audience_feed`, `shipmail_list_subscribers`, `shipmail_get_subscriber`, `shipmail_get_subscriber_by_email`, `shipmail_add_subscriber`, `shipmail_add_subscribers_batch`, `shipmail_update_subscriber`, `shipmail_unsubscribe_subscriber`, `shipmail_resubscribe_subscriber`, `shipmail_remove_subscriber` |
|
|
270
|
+
| Newsletters | `shipmail_list_newsletter_sender_identities`, `shipmail_list_newsletter_domains`, `shipmail_list_newsletter_assets`, `shipmail_upload_newsletter_asset_with_file` (hosted MCP Apps), `shipmail_prepare_newsletter_asset_upload`, `shipmail_register_newsletter_asset`, `shipmail_list_newsletters`, `shipmail_get_newsletter`, `shipmail_preview_newsletter`, `shipmail_create_newsletter`, `shipmail_create_newsletter_from_changelog`, `shipmail_update_newsletter`, `shipmail_run_newsletter_preflight`, `shipmail_send_newsletter_test`, `shipmail_schedule_newsletter`, `shipmail_cancel_newsletter`, `shipmail_resume_newsletter` |
|
|
271
|
+
| Cross-organization lists (hosted OAuth) | `shipmail_list_domains_across_organizations`, `shipmail_list_mailboxes_across_organizations`, `shipmail_list_webhooks_across_organizations`, `shipmail_list_suppressions_across_organizations`, `shipmail_list_newsletters_across_organizations`, `shipmail_list_newsletter_sender_identities_across_organizations`, `shipmail_list_newsletter_domains_across_organizations`, `shipmail_list_newsletter_assets_across_organizations`, `shipmail_list_audiences_across_organizations`, `shipmail_list_booking_pages_across_organizations` |
|
|
272
|
+
| Partner beta | `shipmail_list_partner_organizations`, `shipmail_create_partner_organization`, `shipmail_get_partner_organization`, `shipmail_update_partner_organization`, `shipmail_resend_partner_ownership_invitation`, `shipmail_suspend_partner_organization`, `shipmail_resume_partner_organization`, `shipmail_offboard_partner_organization`, `shipmail_list_partner_mailbox_credential_grants`, `shipmail_consume_partner_mailbox_credential_grant`, `shipmail_get_partner_usage` |
|
|
273
273
|
|
|
274
274
|
Cross-organization list tools appear only on hosted OAuth connections with at least two
|
|
275
275
|
organization grants. They return a success or failure section for every organization and paginate
|
|
@@ -298,7 +298,17 @@ credential, and calls `shipmail_send_message` only after the user presses **Uplo
|
|
|
298
298
|
**Upload and schedule**. The upload endpoint follows no source URL, rejects redirects and metadata
|
|
299
299
|
mismatches, and consumes the signed token once.
|
|
300
300
|
|
|
301
|
-
|
|
301
|
+
Newsletter images and videos use the same credential-free upload boundary. For a local file,
|
|
302
|
+
calculate its exact byte size and SHA-256 digest, call
|
|
303
|
+
`shipmail_prepare_newsletter_asset_upload`, then `PUT` the unmodified bytes to `upload_url` with
|
|
304
|
+
`upload_headers`. For video, upload a generated JPEG poster with the `thumbnail_upload_*` fields.
|
|
305
|
+
Then `POST` an empty body to the single-use `complete_url`; its response is the completed
|
|
306
|
+
`newsletter_asset`.
|
|
307
|
+
Supported hosted clients can use `shipmail_upload_newsletter_asset_with_file` to review and upload
|
|
308
|
+
a conversation or library file without exposing the connection credential. Base64 media bytes are
|
|
309
|
+
not accepted in MCP arguments.
|
|
310
|
+
|
|
311
|
+
For mailbox agents, prefer the attention queue or a reply scan followed by
|
|
302
312
|
`shipmail_create_inbox_reply_draft`. The server derives recipients from the thread and records the
|
|
303
313
|
thread version used to create the draft. `shipmail_send_inbox_reply_draft` rejects stale drafts if
|
|
304
314
|
the conversation changed before approval. The direct reply tools remain available as lower-level
|
|
@@ -312,9 +322,10 @@ immediately. Partner grant consumption requires the exact `partner:mailbox_crede
|
|
|
312
322
|
scope and an operator-approved one-time grant. App-password creation and grant consumption do not
|
|
313
323
|
accept idempotency keys.
|
|
314
324
|
|
|
315
|
-
`
|
|
316
|
-
`
|
|
317
|
-
|
|
325
|
+
Use `shipmail_list_mailbox_rules` and `shipmail_get_mailbox_rule` with
|
|
326
|
+
`shipmail_create_mailbox_rule`, `shipmail_update_mailbox_rule`, and `shipmail_delete_mailbox_rule`
|
|
327
|
+
to manage one rule at a time. Custom folder targets must belong to the selected mailbox. Inbox
|
|
328
|
+
rules are deterministic filters for moving, marking as read, starring, or emitting a
|
|
318
329
|
`mailbox.rule_matched` event to subscribed webhook endpoints.
|
|
319
330
|
|
|
320
331
|
The server discovers the effective tool catalog from Shipmail before startup. It fails closed when
|
|
@@ -371,7 +382,7 @@ Shipmail generates the primary credential and never returns it to the partner.
|
|
|
371
382
|
- **Circuit breaker**: Each session enforces per-tool rate limits and a hard total-call ceiling as a runaway-agent guard. These are not abuse controls. Real abuse limits live at the API per API key. Restart the server to reset.
|
|
372
383
|
- **Least-privilege reply workflow**: Use `messages:read` for discovery, add `drafts:write` for reviewable draft creation, and grant `messages:send` only to agents that are allowed to transmit approved mail. A review-only agent does not need send access.
|
|
373
384
|
- **Webhook URL validation**: Webhook URLs must be public https endpoints. Localhost, RFC1918, link-local, ULA, IPv4-mapped IPv6, `0.0.0.0`, decimal-int IPs, `.local`, and `.internal` hosts are rejected at input time.
|
|
374
|
-
- **Destructive annotations**: Tools that delete, retarget,
|
|
385
|
+
- **Destructive annotations**: Tools that delete, retarget, change persistent rules, rotate, reset credentials, or create automatic outbound responses are annotated with `destructiveHint`. Hosts that gate on this annotation will prompt the user. Annotated tools include `shipmail_update_domain`, `shipmail_update_webhook`, `shipmail_rotate_webhook_secret`, `shipmail_delete_mailbox_rule`, `shipmail_delete_mailbox_folder`, `shipmail_reset_mailbox_password`, and `shipmail_set_auto_reply` in addition to obvious deletes.
|
|
375
386
|
|
|
376
387
|
Domain purchase is intentionally excluded.
|
|
377
388
|
|
package/dist/capabilities.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { ApiKeyScope } from 'shipmail/api-key-scopes';
|
|
2
2
|
|
|
3
3
|
declare const MCP_CAPABILITY_VERSION = "1.0.0";
|
|
4
|
-
declare const MCP_PERMISSION_GROUP_NAMES: readonly ["account_status", "mail_read", "drafts", "mail_organize", "send_mail", "calendar_read", "calendar_write", "booking_pages", "forwarding", "mailbox_rules", "webhooks", "credentials", "mailbox_export", "domain_admin", "mailbox_admin", "newsletters", "audiences", "suppressions", "partner_admin"];
|
|
4
|
+
declare const MCP_PERMISSION_GROUP_NAMES: readonly ["account_status", "automations", "mail_read", "drafts", "mail_organize", "send_mail", "calendar_read", "calendar_write", "booking_pages", "forwarding", "mailbox_rules", "members", "webhooks", "credentials", "mailbox_export", "domain_admin", "mailbox_admin", "newsletters", "audiences", "suppressions", "partner_admin"];
|
|
5
5
|
type McpPermissionGroupName = (typeof MCP_PERMISSION_GROUP_NAMES)[number];
|
|
6
|
-
declare const MCP_MEMBER_PERMISSION_GROUP_NAMES: readonly ["account_status", "mail_read", "drafts", "mail_organize", "mailbox_rules", "send_mail", "calendar_read", "calendar_write"];
|
|
6
|
+
declare const MCP_MEMBER_PERMISSION_GROUP_NAMES: readonly ["account_status", "mail_read", "drafts", "mail_organize", "mailbox_rules", "send_mail", "calendar_read", "calendar_write", "automations"];
|
|
7
7
|
type McpRole = "owner" | "member";
|
|
8
8
|
type McpCapabilityEffect = "read" | "local_write" | "external_write" | "destructive";
|
|
9
9
|
type McpRecipientControl = "none" | "server_derived" | "caller_supplied";
|
|
@@ -22,6 +22,12 @@ declare const MCP_PERMISSION_GROUPS: readonly [{
|
|
|
22
22
|
readonly description: "Check whether the Shipmail API is available.";
|
|
23
23
|
readonly scopes: readonly [];
|
|
24
24
|
readonly persistent: false;
|
|
25
|
+
}, {
|
|
26
|
+
readonly name: "automations";
|
|
27
|
+
readonly label: "Automations";
|
|
28
|
+
readonly description: "Read and manage persistent assistant automations.";
|
|
29
|
+
readonly scopes: readonly ["automations:read", "automations:write"];
|
|
30
|
+
readonly persistent: true;
|
|
25
31
|
}, {
|
|
26
32
|
readonly name: "mail_read";
|
|
27
33
|
readonly label: "Read mail";
|
|
@@ -37,7 +43,7 @@ declare const MCP_PERMISSION_GROUPS: readonly [{
|
|
|
37
43
|
}, {
|
|
38
44
|
readonly name: "mail_organize";
|
|
39
45
|
readonly label: "Organize mail";
|
|
40
|
-
readonly description: "Update message state, move messages, and delete messages already in Trash or Junk.";
|
|
46
|
+
readonly description: "Update message state, move messages, manage custom folders, and delete messages already in Trash or Junk.";
|
|
41
47
|
readonly scopes: readonly ["messages:write"];
|
|
42
48
|
readonly persistent: false;
|
|
43
49
|
}, {
|
|
@@ -76,6 +82,12 @@ declare const MCP_PERMISSION_GROUPS: readonly [{
|
|
|
76
82
|
readonly description: "Read and manage persistent server-side sorting, move, read, and star rules.";
|
|
77
83
|
readonly scopes: readonly ["mailbox_rules:read", "mailbox_rules:write"];
|
|
78
84
|
readonly persistent: true;
|
|
85
|
+
}, {
|
|
86
|
+
readonly name: "members";
|
|
87
|
+
readonly label: "Team members";
|
|
88
|
+
readonly description: "Read organization members.";
|
|
89
|
+
readonly scopes: readonly ["members:read"];
|
|
90
|
+
readonly persistent: false;
|
|
79
91
|
}, {
|
|
80
92
|
readonly name: "webhooks";
|
|
81
93
|
readonly label: "Webhooks";
|
|
@@ -131,7 +143,7 @@ declare const MCP_PERMISSION_GROUPS: readonly [{
|
|
|
131
143
|
readonly scopes: readonly ["partner:organizations:read", "partner:organizations:write", "partner:organizations:access", "partner:mailbox_credentials:issue", "partner:usage:read"];
|
|
132
144
|
readonly persistent: true;
|
|
133
145
|
}];
|
|
134
|
-
declare const CAPABILITY_ROWS: readonly [readonly ["shipmail_status", "getStatus", "public"], readonly ["shipmail_create_domain", "createDomain", "domains:write"], readonly ["shipmail_list_domains", "listDomains", "domains:read"], readonly ["shipmail_get_domain", "getDomain", "domains:read"], readonly ["shipmail_get_domain_dns_records", "getDomainDnsRecords", "domains:read"], readonly ["shipmail_update_domain", "updateDomain", "domains:write"], readonly ["shipmail_delete_domain", "deleteDomain", "domains:write"], readonly ["shipmail_verify_domain", "verifyDomain", "domains:write"], readonly ["shipmail_search_domains", "searchDomains", "domains:read"], readonly ["shipmail_create_mailbox", "createMailbox", "mailboxes:write"], readonly ["shipmail_list_mailboxes", "listMailboxes", "mailboxes:read"], readonly ["shipmail_get_mailbox", "getMailbox", "mailboxes:read"], readonly ["shipmail_list_mailbox_app_passwords", "listMailboxAppPasswords", "mailbox_credentials:read"], readonly ["shipmail_create_mailbox_app_password", "createMailboxAppPassword", "mailbox_credentials:write"], readonly ["shipmail_revoke_mailbox_app_password", "revokeMailboxAppPassword", "mailbox_credentials:write"], readonly ["shipmail_suspend_mailbox", "suspendMailbox", "mailboxes:write"], readonly ["shipmail_resume_mailbox", "resumeMailbox", "mailboxes:write"], readonly ["shipmail_create_mailbox_export", "createMailboxExport", "mailboxes:export"], readonly ["shipmail_get_mailbox_export", "getMailboxExport", "mailboxes:export"], readonly ["shipmail_update_mailbox", "updateMailbox", "mailboxes:write"], readonly ["shipmail_delete_mailbox", "deleteMailbox", "mailboxes:write"], readonly ["shipmail_list_mailbox_folders", "listMailboxFolders", "mailboxes:read"], readonly ["shipmail_get_mailbox_rules", "getMailboxRules", "mailbox_rules:read"], readonly ["shipmail_set_mailbox_rules", "updateMailboxRules", "mailbox_rules:write"], readonly ["shipmail_create_mailbox_folder", "createMailboxFolder", "mailboxes:write"], readonly ["shipmail_update_mailbox_folder", "updateMailboxFolder", "mailboxes:write"], readonly ["shipmail_delete_mailbox_folder", "deleteMailboxFolder", "mailboxes:write"], readonly ["shipmail_list_mailbox_identities", "listMailboxIdentities", "mailboxes:read"], readonly ["shipmail_list_mailbox_inbox_messages", "listMailboxInboxMessages", "messages:read"], readonly ["shipmail_get_mailbox_inbox_message", "getMailboxInboxMessage", "messages:read"], readonly ["shipmail_list_mailbox_inbox_threads", "listMailboxInboxThreads", "messages:read"], readonly ["shipmail_get_mailbox_inbox_thread", "getMailboxInboxThread", "messages:read"], readonly ["shipmail_update_inbox_thread_reply_state", "updateMailboxInboxThreadReplyState", "messages:write"], readonly ["shipmail_create_inbox_reply_draft", "createMailboxInboxReplyDraft", "drafts:write"], readonly ["shipmail_send_inbox_reply_draft", "sendMailboxInboxReplyDraft", "messages:send"], readonly ["shipmail_reply_to_inbox_message", "replyToMailboxInboxMessage", "messages:send"], readonly ["shipmail_reply_to_inbox_thread", "replyToMailboxInboxThread", "messages:send"], readonly ["shipmail_update_inbox_message", "updateMailboxInboxMessage", "messages:write"], readonly ["shipmail_move_inbox_message", "moveMailboxInboxMessage", "messages:write"], readonly ["shipmail_delete_inbox_message", "deleteMailboxInboxMessage", "messages:write"], readonly ["shipmail_list_mailbox_forwarding", "listMailboxForwarding", "mailbox_forwarding:read"], readonly ["shipmail_create_mailbox_forwarding", "createMailboxForwarding", "mailbox_forwarding:write"], readonly ["shipmail_delete_mailbox_forwarding", "deleteMailboxForwarding", "mailbox_forwarding:write"], readonly ["shipmail_reset_mailbox_password", "resetMailboxPassword", "mailboxes:write"], readonly ["shipmail_set_auto_reply", "updateAutoReply", "mailboxes:write"], readonly ["shipmail_set_spam_filter", "updateSpamFilter", "mailboxes:write"], readonly ["shipmail_create_mailbox_import", "createMailboxImport", "mailboxes:write"], readonly ["shipmail_list_mailbox_imports", "listMailboxImports", "mailboxes:read"], readonly ["shipmail_get_mailbox_import", "getMailboxImport", "mailboxes:read"], readonly ["shipmail_cancel_mailbox_import", "cancelMailboxImport", "mailboxes:write"], readonly ["shipmail_undo_mailbox_import", "undoMailboxImport", "mailboxes:write"], readonly ["shipmail_inject_sandbox_inbound", "injectSandboxInbound", "messages:write"], readonly ["shipmail_list_messages", "listMessages", "messages:read"], readonly ["shipmail_list_message_analytics", "listMessageAnalytics", "messages:read"], readonly ["shipmail_compose_message_with_file", "prepareStagedAttachmentUpload", "messages:send"], readonly ["shipmail_prepare_staged_attachment_upload", "prepareStagedAttachmentUpload", "messages:send"], readonly ["shipmail_send_message", "sendMessage", "messages:send"], readonly ["shipmail_list_scheduled_messages", "listScheduledMessages", "messages:read"], readonly ["shipmail_get_scheduled_message", "getScheduledMessage", "messages:read"], readonly ["shipmail_update_scheduled_message", "updateScheduledMessage", "messages:send"], readonly ["shipmail_cancel_scheduled_message", "cancelScheduledMessage", "messages:send"], readonly ["shipmail_get_message", "getMessage", "messages:read"], readonly ["shipmail_reply_to_message", "replyToMessage", "messages:send"], readonly ["shipmail_list_threads", "listThreads", "threads:read"], readonly ["shipmail_get_thread", "getThread", "threads:read"], readonly ["shipmail_reply_to_thread", "replyToThread", "messages:send"], readonly ["shipmail_create_reply_scan", "createReplyScan", "messages:write"], readonly ["shipmail_get_reply_scan", "getReplyScan", "messages:read"], readonly ["shipmail_list_reply_scan_results", "listReplyScanResults", "messages:read"], readonly ["shipmail_create_webhook", "createWebhook", "webhooks:write"], readonly ["shipmail_list_webhooks", "listWebhooks", "webhooks:read"], readonly ["shipmail_get_webhook", "getWebhook", "webhooks:read"], readonly ["shipmail_update_webhook", "updateWebhook", "webhooks:write"], readonly ["shipmail_delete_webhook", "deleteWebhook", "webhooks:write"], readonly ["shipmail_rotate_webhook_secret", "rotateWebhookSecret", "webhooks:write"], readonly ["shipmail_test_webhook", "testWebhook", "webhooks:write"], readonly ["shipmail_list_webhook_deliveries", "listWebhookDeliveries", "webhooks:read"], readonly ["shipmail_get_webhook_delivery", "getWebhookDelivery", "webhooks:read"], readonly ["shipmail_replay_webhook_delivery", "replayWebhookDelivery", "webhooks:write"], readonly ["shipmail_list_suppressions", "listSuppressions", "suppressions:read"], readonly ["shipmail_remove_suppression", "removeSuppression", "suppressions:write"], readonly ["shipmail_create_audience", "createAudience", "audiences:write"], readonly ["shipmail_list_audiences", "listAudiences", "audiences:read"], readonly ["shipmail_get_audience", "getAudience", "audiences:read"], readonly ["shipmail_update_audience", "updateAudience", "audiences:write"], readonly ["shipmail_delete_audience", "deleteAudience", "audiences:write"], readonly ["shipmail_get_audience_feed", "getAudienceFeed", "audiences:read"], readonly ["shipmail_update_audience_feed", "updateAudienceFeed", "audiences:write"], readonly ["shipmail_rotate_audience_feed", "rotateAudienceFeedToken", "audiences:write"], readonly ["shipmail_revoke_audience_feed", "revokeAudienceFeedToken", "audiences:write"], readonly ["shipmail_add_subscriber", "addSubscriber", "audiences:write"], readonly ["shipmail_add_subscribers_batch", "addSubscribersBatch", "audiences:write"], readonly ["shipmail_list_subscribers", "listSubscribers", "audiences:read"], readonly ["shipmail_get_subscriber", "getSubscriber", "audiences:read"], readonly ["shipmail_get_subscriber_by_email", "getSubscriberByEmail", "audiences:read"], readonly ["shipmail_update_subscriber", "updateSubscriber", "audiences:write"], readonly ["shipmail_unsubscribe_subscriber", "unsubscribeSubscriber", "audiences:write"], readonly ["shipmail_resubscribe_subscriber", "resubscribeSubscriber", "audiences:write"], readonly ["shipmail_remove_subscriber", "removeSubscriber", "audiences:write"], readonly ["shipmail_list_newsletter_domains", "listNewsletterDomains", "newsletters:read"], readonly ["shipmail_list_newsletter_sender_identities", "listNewsletterSenderIdentities", "newsletters:read"], readonly ["shipmail_create_newsletter", "createNewsletter", "newsletters:write"], readonly ["shipmail_create_newsletter_from_changelog", "createNewsletterFromChangelog", "newsletters:write"], readonly ["shipmail_list_newsletters", "listNewsletters", "newsletters:read"], readonly ["shipmail_get_newsletter", "getNewsletter", "newsletters:read"], readonly ["shipmail_update_newsletter", "updateNewsletter", "newsletters:write"], readonly ["shipmail_list_newsletter_assets", "listNewsletterAssets", "newsletters:read"], readonly ["shipmail_register_newsletter_asset", "uploadNewsletterAsset", "newsletters:write"], readonly ["shipmail_preview_newsletter", "previewNewsletter", "newsletters:read"], readonly ["shipmail_run_newsletter_preflight", "runNewsletterPreflight", "newsletters:write"], readonly ["shipmail_send_newsletter_test", "sendNewsletterTest", "newsletters:write"], readonly ["shipmail_schedule_newsletter", "scheduleNewsletter", "newsletters:write"], readonly ["shipmail_cancel_newsletter", "cancelNewsletter", "newsletters:write"], readonly ["shipmail_resume_newsletter", "resumeNewsletter", "newsletters:write"], readonly ["shipmail_list_calendar_events", "listCalendarEvents", "calendar:read"], readonly ["shipmail_create_calendar_event", "createCalendarEvent", "calendar:write"], readonly ["shipmail_get_calendar_event", "getCalendarEvent", "calendar:read"], readonly ["shipmail_update_calendar_event", "updateCalendarEvent", "calendar:write"], readonly ["shipmail_delete_calendar_event", "deleteCalendarEvent", "calendar:write"], readonly ["shipmail_get_calendar_availability", "getCalendarAvailability", "calendar:read"], readonly ["shipmail_list_booking_pages", "listBookingPages", "booking_pages:read"], readonly ["shipmail_create_booking_page", "createBookingPage", "booking_pages:write"], readonly ["shipmail_get_booking_page", "getBookingPage", "booking_pages:read"], readonly ["shipmail_update_booking_page", "updateBookingPage", "booking_pages:write"], readonly ["shipmail_delete_booking_page", "deleteBookingPage", "booking_pages:write"], readonly ["shipmail_list_partner_organizations", "listPartnerOrganizations", "partner:organizations:read"], readonly ["shipmail_create_partner_organization", "createPartnerOrganization", "partner:organizations:write"], readonly ["shipmail_get_partner_organization", "getPartnerOrganization", "partner:organizations:read"], readonly ["shipmail_update_partner_organization", "updatePartnerOrganization", "partner:organizations:write"], readonly ["shipmail_resend_partner_ownership_invitation", "resendPartnerOwnershipInvitation", "partner:organizations:write"], readonly ["shipmail_suspend_partner_organization", "suspendPartnerOrganization", "partner:organizations:write"], readonly ["shipmail_resume_partner_organization", "resumePartnerOrganization", "partner:organizations:write"], readonly ["shipmail_offboard_partner_organization", "offboardPartnerOrganization", "partner:organizations:write"], readonly ["shipmail_list_partner_mailbox_credential_grants", "listPartnerMailboxCredentialGrants", "partner:mailbox_credentials:issue"], readonly ["shipmail_consume_partner_mailbox_credential_grant", "consumePartnerMailboxCredentialGrant", "partner:mailbox_credentials:issue"], readonly ["shipmail_get_partner_usage", "getPartnerUsage", "partner:usage:read"]];
|
|
146
|
+
declare const CAPABILITY_ROWS: readonly [readonly ["shipmail_status", "getStatus", "public"], readonly ["shipmail_list_automations", "listAutomations", "automations:read"], readonly ["shipmail_create_automation", "createAutomation", "automations:write"], readonly ["shipmail_get_automation", "getAutomation", "automations:read"], readonly ["shipmail_update_automation", "updateAutomation", "automations:write"], readonly ["shipmail_run_automation", "runAutomation", "automations:write"], readonly ["shipmail_create_domain", "createDomain", "domains:write"], readonly ["shipmail_list_domains", "listDomains", "domains:read"], readonly ["shipmail_get_domain", "getDomain", "domains:read"], readonly ["shipmail_get_domain_dns_records", "getDomainDnsRecords", "domains:read"], readonly ["shipmail_update_domain", "updateDomain", "domains:write"], readonly ["shipmail_delete_domain", "deleteDomain", "domains:write"], readonly ["shipmail_verify_domain", "verifyDomain", "domains:write"], readonly ["shipmail_search_domains", "searchDomains", "domains:read"], readonly ["shipmail_create_mailbox", "createMailbox", "mailboxes:write"], readonly ["shipmail_list_mailboxes", "listMailboxes", "mailboxes:read"], readonly ["shipmail_get_mailbox", "getMailbox", "mailboxes:read"], readonly ["shipmail_list_mailbox_app_passwords", "listMailboxAppPasswords", "mailbox_credentials:read"], readonly ["shipmail_create_mailbox_app_password", "createMailboxAppPassword", "mailbox_credentials:write"], readonly ["shipmail_revoke_mailbox_app_password", "revokeMailboxAppPassword", "mailbox_credentials:write"], readonly ["shipmail_suspend_mailbox", "suspendMailbox", "mailboxes:write"], readonly ["shipmail_resume_mailbox", "resumeMailbox", "mailboxes:write"], readonly ["shipmail_create_mailbox_export", "createMailboxExport", "mailboxes:export"], readonly ["shipmail_get_mailbox_export", "getMailboxExport", "mailboxes:export"], readonly ["shipmail_update_mailbox", "updateMailbox", "mailboxes:write"], readonly ["shipmail_delete_mailbox", "deleteMailbox", "mailboxes:write"], readonly ["shipmail_list_mailbox_folders", "listMailboxFolders", "mailboxes:read"], readonly ["shipmail_create_mailbox_folder", "createMailboxFolder", "messages:write"], readonly ["shipmail_update_mailbox_folder", "updateMailboxFolder", "messages:write"], readonly ["shipmail_delete_mailbox_folder", "deleteMailboxFolder", "messages:write"], readonly ["shipmail_list_mailbox_rules", "getMailboxRules", "mailbox_rules:read"], readonly ["shipmail_get_mailbox_rule", "getMailboxRules", "mailbox_rules:read"], readonly ["shipmail_create_mailbox_rule", "updateMailboxRules", "mailbox_rules:write"], readonly ["shipmail_update_mailbox_rule", "updateMailboxRules", "mailbox_rules:write"], readonly ["shipmail_delete_mailbox_rule", "updateMailboxRules", "mailbox_rules:write"], readonly ["shipmail_list_mailbox_identities", "listMailboxIdentities", "mailboxes:read"], readonly ["shipmail_list_mailbox_inbox_messages", "listMailboxInboxMessages", "messages:read"], readonly ["shipmail_get_mailbox_inbox_message", "getMailboxInboxMessage", "messages:read"], readonly ["shipmail_list_mailbox_inbox_threads", "listMailboxInboxThreads", "messages:read"], readonly ["shipmail_get_mailbox_inbox_thread", "getMailboxInboxThread", "messages:read"], readonly ["shipmail_update_inbox_thread_attention", "updateMailboxInboxThreadAttention", "messages:write"], readonly ["shipmail_create_inbox_reply_draft", "createMailboxInboxReplyDraft", "drafts:write"], readonly ["shipmail_send_inbox_reply_draft", "sendMailboxInboxReplyDraft", "messages:send"], readonly ["shipmail_reply_to_inbox_message", "replyToMailboxInboxMessage", "messages:send"], readonly ["shipmail_reply_to_inbox_thread", "replyToMailboxInboxThread", "messages:send"], readonly ["shipmail_update_inbox_message", "updateMailboxInboxMessage", "messages:write"], readonly ["shipmail_move_inbox_message", "moveMailboxInboxMessage", "messages:write"], readonly ["shipmail_delete_inbox_message", "deleteMailboxInboxMessage", "messages:write"], readonly ["shipmail_list_mailbox_forwarding", "listMailboxForwarding", "mailbox_forwarding:read"], readonly ["shipmail_create_mailbox_forwarding", "createMailboxForwarding", "mailbox_forwarding:write"], readonly ["shipmail_delete_mailbox_forwarding", "deleteMailboxForwarding", "mailbox_forwarding:write"], readonly ["shipmail_reset_mailbox_password", "resetMailboxPassword", "mailboxes:write"], readonly ["shipmail_set_auto_reply", "updateAutoReply", "mailboxes:write"], readonly ["shipmail_get_mailbox_delivery_routing", "getMailboxDeliveryRouting", "mailboxes:read"], readonly ["shipmail_update_mailbox_delivery_routing", "updateMailboxDeliveryRouting", "mailboxes:write"], readonly ["shipmail_set_spam_filter", "updateSpamFilter", "mailboxes:write"], readonly ["shipmail_create_mailbox_import", "createMailboxImport", "mailboxes:write"], readonly ["shipmail_list_mailbox_imports", "listMailboxImports", "mailboxes:read"], readonly ["shipmail_get_mailbox_import", "getMailboxImport", "mailboxes:read"], readonly ["shipmail_cancel_mailbox_import", "cancelMailboxImport", "mailboxes:write"], readonly ["shipmail_resume_mailbox_import", "resumeMailboxImport", "mailboxes:write"], readonly ["shipmail_restore_mailbox_import", "restoreMailboxImport", "mailboxes:write"], readonly ["shipmail_undo_mailbox_import", "undoMailboxImport", "mailboxes:write"], readonly ["shipmail_inject_sandbox_inbound", "injectSandboxInbound", "messages:write"], readonly ["shipmail_list_messages", "listMessages", "messages:read"], readonly ["shipmail_list_message_analytics", "listMessageAnalytics", "messages:read"], readonly ["shipmail_compose_message_with_file", "prepareStagedAttachmentUpload", "messages:send"], readonly ["shipmail_prepare_staged_attachment_upload", "prepareStagedAttachmentUpload", "messages:send"], readonly ["shipmail_send_message", "sendMessage", "messages:send"], readonly ["shipmail_list_scheduled_messages", "listScheduledMessages", "messages:read"], readonly ["shipmail_get_scheduled_message", "getScheduledMessage", "messages:read"], readonly ["shipmail_update_scheduled_message", "updateScheduledMessage", "messages:send"], readonly ["shipmail_cancel_scheduled_message", "cancelScheduledMessage", "messages:send"], readonly ["shipmail_get_message", "getMessage", "messages:read"], readonly ["shipmail_reply_to_message", "replyToMessage", "messages:send"], readonly ["shipmail_list_threads", "listThreads", "threads:read"], readonly ["shipmail_get_thread", "getThread", "threads:read"], readonly ["shipmail_reply_to_thread", "replyToThread", "messages:send"], readonly ["shipmail_create_reply_scan", "createReplyScan", "messages:write"], readonly ["shipmail_get_reply_scan", "getReplyScan", "messages:read"], readonly ["shipmail_list_reply_scan_results", "listReplyScanResults", "messages:read"], readonly ["shipmail_list_members", "listMembers", "members:read"], readonly ["shipmail_get_member", "getMember", "members:read"], readonly ["shipmail_create_webhook", "createWebhook", "webhooks:write"], readonly ["shipmail_list_webhooks", "listWebhooks", "webhooks:read"], readonly ["shipmail_get_webhook", "getWebhook", "webhooks:read"], readonly ["shipmail_update_webhook", "updateWebhook", "webhooks:write"], readonly ["shipmail_delete_webhook", "deleteWebhook", "webhooks:write"], readonly ["shipmail_rotate_webhook_secret", "rotateWebhookSecret", "webhooks:write"], readonly ["shipmail_test_webhook", "testWebhook", "webhooks:write"], readonly ["shipmail_list_webhook_deliveries", "listWebhookDeliveries", "webhooks:read"], readonly ["shipmail_get_webhook_delivery", "getWebhookDelivery", "webhooks:read"], readonly ["shipmail_replay_webhook_delivery", "replayWebhookDelivery", "webhooks:write"], readonly ["shipmail_list_suppressions", "listSuppressions", "suppressions:read"], readonly ["shipmail_remove_suppression", "removeSuppression", "suppressions:write"], readonly ["shipmail_create_audience", "createAudience", "audiences:write"], readonly ["shipmail_list_audiences", "listAudiences", "audiences:read"], readonly ["shipmail_get_audience", "getAudience", "audiences:read"], readonly ["shipmail_update_audience", "updateAudience", "audiences:write"], readonly ["shipmail_delete_audience", "deleteAudience", "audiences:write"], readonly ["shipmail_get_audience_feed", "getAudienceFeed", "audiences:read"], readonly ["shipmail_update_audience_feed", "updateAudienceFeed", "audiences:write"], readonly ["shipmail_rotate_audience_feed", "rotateAudienceFeedToken", "audiences:write"], readonly ["shipmail_revoke_audience_feed", "revokeAudienceFeedToken", "audiences:write"], readonly ["shipmail_add_subscriber", "addSubscriber", "audiences:write"], readonly ["shipmail_add_subscribers_batch", "addSubscribersBatch", "audiences:write"], readonly ["shipmail_list_subscribers", "listSubscribers", "audiences:read"], readonly ["shipmail_get_subscriber", "getSubscriber", "audiences:read"], readonly ["shipmail_get_subscriber_by_email", "getSubscriberByEmail", "audiences:read"], readonly ["shipmail_update_subscriber", "updateSubscriber", "audiences:write"], readonly ["shipmail_unsubscribe_subscriber", "unsubscribeSubscriber", "audiences:write"], readonly ["shipmail_resubscribe_subscriber", "resubscribeSubscriber", "audiences:write"], readonly ["shipmail_remove_subscriber", "removeSubscriber", "audiences:write"], readonly ["shipmail_list_newsletter_domains", "listNewsletterDomains", "newsletters:read"], readonly ["shipmail_list_newsletter_sender_identities", "listNewsletterSenderIdentities", "newsletters:read"], readonly ["shipmail_create_newsletter", "createNewsletter", "newsletters:write"], readonly ["shipmail_create_newsletter_from_changelog", "createNewsletterFromChangelog", "newsletters:write"], readonly ["shipmail_list_newsletters", "listNewsletters", "newsletters:read"], readonly ["shipmail_get_newsletter", "getNewsletter", "newsletters:read"], readonly ["shipmail_update_newsletter", "updateNewsletter", "newsletters:write"], readonly ["shipmail_list_newsletter_assets", "listNewsletterAssets", "newsletters:read"], readonly ["shipmail_upload_newsletter_asset_with_file", "prepareNewsletterAssetUpload", "newsletters:write"], readonly ["shipmail_prepare_newsletter_asset_upload", "prepareNewsletterAssetUpload", "newsletters:write"], readonly ["shipmail_register_newsletter_asset", "uploadNewsletterAsset", "newsletters:write"], readonly ["shipmail_preview_newsletter", "previewNewsletter", "newsletters:read"], readonly ["shipmail_run_newsletter_preflight", "runNewsletterPreflight", "newsletters:write"], readonly ["shipmail_send_newsletter_test", "sendNewsletterTest", "newsletters:write"], readonly ["shipmail_schedule_newsletter", "scheduleNewsletter", "newsletters:write"], readonly ["shipmail_cancel_newsletter", "cancelNewsletter", "newsletters:write"], readonly ["shipmail_resume_newsletter", "resumeNewsletter", "newsletters:write"], readonly ["shipmail_list_calendar_events", "listCalendarEvents", "calendar:read"], readonly ["shipmail_create_calendar_event", "createCalendarEvent", "calendar:write"], readonly ["shipmail_get_calendar_event", "getCalendarEvent", "calendar:read"], readonly ["shipmail_update_calendar_event", "updateCalendarEvent", "calendar:write"], readonly ["shipmail_delete_calendar_event", "deleteCalendarEvent", "calendar:write"], readonly ["shipmail_get_calendar_availability", "getCalendarAvailability", "calendar:read"], readonly ["shipmail_list_booking_pages", "listBookingPages", "booking_pages:read"], readonly ["shipmail_create_booking_page", "createBookingPage", "booking_pages:write"], readonly ["shipmail_get_booking_page", "getBookingPage", "booking_pages:read"], readonly ["shipmail_update_booking_page", "updateBookingPage", "booking_pages:write"], readonly ["shipmail_delete_booking_page", "deleteBookingPage", "booking_pages:write"], readonly ["shipmail_list_partner_organizations", "listPartnerOrganizations", "partner:organizations:read"], readonly ["shipmail_create_partner_organization", "createPartnerOrganization", "partner:organizations:write"], readonly ["shipmail_get_partner_organization", "getPartnerOrganization", "partner:organizations:read"], readonly ["shipmail_update_partner_organization", "updatePartnerOrganization", "partner:organizations:write"], readonly ["shipmail_resend_partner_ownership_invitation", "resendPartnerOwnershipInvitation", "partner:organizations:write"], readonly ["shipmail_suspend_partner_organization", "suspendPartnerOrganization", "partner:organizations:write"], readonly ["shipmail_resume_partner_organization", "resumePartnerOrganization", "partner:organizations:write"], readonly ["shipmail_offboard_partner_organization", "offboardPartnerOrganization", "partner:organizations:write"], readonly ["shipmail_list_partner_mailbox_credential_grants", "listPartnerMailboxCredentialGrants", "partner:mailbox_credentials:issue"], readonly ["shipmail_consume_partner_mailbox_credential_grant", "consumePartnerMailboxCredentialGrant", "partner:mailbox_credentials:issue"], readonly ["shipmail_get_partner_usage", "getPartnerUsage", "partner:usage:read"]];
|
|
135
147
|
type McpToolName = (typeof CAPABILITY_ROWS)[number][0];
|
|
136
148
|
type McpCapability = {
|
|
137
149
|
readonly toolName: McpToolName;
|
package/dist/capabilities.js
CHANGED
|
@@ -3,6 +3,7 @@ import { API_KEY_SCOPES, apiKeyScopesGrant } from "shipmail/api-key-scopes";
|
|
|
3
3
|
var MCP_CAPABILITY_VERSION = "1.0.0";
|
|
4
4
|
var MCP_PERMISSION_GROUP_NAMES = [
|
|
5
5
|
"account_status",
|
|
6
|
+
"automations",
|
|
6
7
|
"mail_read",
|
|
7
8
|
"drafts",
|
|
8
9
|
"mail_organize",
|
|
@@ -12,6 +13,7 @@ var MCP_PERMISSION_GROUP_NAMES = [
|
|
|
12
13
|
"booking_pages",
|
|
13
14
|
"forwarding",
|
|
14
15
|
"mailbox_rules",
|
|
16
|
+
"members",
|
|
15
17
|
"webhooks",
|
|
16
18
|
"credentials",
|
|
17
19
|
"mailbox_export",
|
|
@@ -30,7 +32,8 @@ var MCP_MEMBER_PERMISSION_GROUP_NAMES = [
|
|
|
30
32
|
"mailbox_rules",
|
|
31
33
|
"send_mail",
|
|
32
34
|
"calendar_read",
|
|
33
|
-
"calendar_write"
|
|
35
|
+
"calendar_write",
|
|
36
|
+
"automations"
|
|
34
37
|
];
|
|
35
38
|
var MCP_PERMISSION_GROUPS = [
|
|
36
39
|
{
|
|
@@ -40,6 +43,13 @@ var MCP_PERMISSION_GROUPS = [
|
|
|
40
43
|
scopes: [],
|
|
41
44
|
persistent: false
|
|
42
45
|
},
|
|
46
|
+
{
|
|
47
|
+
name: "automations",
|
|
48
|
+
label: "Automations",
|
|
49
|
+
description: "Read and manage persistent assistant automations.",
|
|
50
|
+
scopes: ["automations:read", "automations:write"],
|
|
51
|
+
persistent: true
|
|
52
|
+
},
|
|
43
53
|
{
|
|
44
54
|
name: "mail_read",
|
|
45
55
|
label: "Read mail",
|
|
@@ -57,7 +67,7 @@ var MCP_PERMISSION_GROUPS = [
|
|
|
57
67
|
{
|
|
58
68
|
name: "mail_organize",
|
|
59
69
|
label: "Organize mail",
|
|
60
|
-
description: "Update message state, move messages, and delete messages already in Trash or Junk.",
|
|
70
|
+
description: "Update message state, move messages, manage custom folders, and delete messages already in Trash or Junk.",
|
|
61
71
|
scopes: ["messages:write"],
|
|
62
72
|
persistent: false
|
|
63
73
|
},
|
|
@@ -103,6 +113,13 @@ var MCP_PERMISSION_GROUPS = [
|
|
|
103
113
|
scopes: ["mailbox_rules:read", "mailbox_rules:write"],
|
|
104
114
|
persistent: true
|
|
105
115
|
},
|
|
116
|
+
{
|
|
117
|
+
name: "members",
|
|
118
|
+
label: "Team members",
|
|
119
|
+
description: "Read organization members.",
|
|
120
|
+
scopes: ["members:read"],
|
|
121
|
+
persistent: false
|
|
122
|
+
},
|
|
106
123
|
{
|
|
107
124
|
name: "webhooks",
|
|
108
125
|
label: "Webhooks",
|
|
@@ -175,6 +192,11 @@ var MCP_PERMISSION_GROUPS = [
|
|
|
175
192
|
];
|
|
176
193
|
var CAPABILITY_ROWS = [
|
|
177
194
|
["shipmail_status", "getStatus", "public"],
|
|
195
|
+
["shipmail_list_automations", "listAutomations", "automations:read"],
|
|
196
|
+
["shipmail_create_automation", "createAutomation", "automations:write"],
|
|
197
|
+
["shipmail_get_automation", "getAutomation", "automations:read"],
|
|
198
|
+
["shipmail_update_automation", "updateAutomation", "automations:write"],
|
|
199
|
+
["shipmail_run_automation", "runAutomation", "automations:write"],
|
|
178
200
|
["shipmail_create_domain", "createDomain", "domains:write"],
|
|
179
201
|
["shipmail_list_domains", "listDomains", "domains:read"],
|
|
180
202
|
["shipmail_get_domain", "getDomain", "domains:read"],
|
|
@@ -196,21 +218,20 @@ var CAPABILITY_ROWS = [
|
|
|
196
218
|
["shipmail_update_mailbox", "updateMailbox", "mailboxes:write"],
|
|
197
219
|
["shipmail_delete_mailbox", "deleteMailbox", "mailboxes:write"],
|
|
198
220
|
["shipmail_list_mailbox_folders", "listMailboxFolders", "mailboxes:read"],
|
|
199
|
-
["
|
|
200
|
-
["
|
|
201
|
-
["
|
|
202
|
-
["
|
|
203
|
-
["
|
|
221
|
+
["shipmail_create_mailbox_folder", "createMailboxFolder", "messages:write"],
|
|
222
|
+
["shipmail_update_mailbox_folder", "updateMailboxFolder", "messages:write"],
|
|
223
|
+
["shipmail_delete_mailbox_folder", "deleteMailboxFolder", "messages:write"],
|
|
224
|
+
["shipmail_list_mailbox_rules", "getMailboxRules", "mailbox_rules:read"],
|
|
225
|
+
["shipmail_get_mailbox_rule", "getMailboxRules", "mailbox_rules:read"],
|
|
226
|
+
["shipmail_create_mailbox_rule", "updateMailboxRules", "mailbox_rules:write"],
|
|
227
|
+
["shipmail_update_mailbox_rule", "updateMailboxRules", "mailbox_rules:write"],
|
|
228
|
+
["shipmail_delete_mailbox_rule", "updateMailboxRules", "mailbox_rules:write"],
|
|
204
229
|
["shipmail_list_mailbox_identities", "listMailboxIdentities", "mailboxes:read"],
|
|
205
230
|
["shipmail_list_mailbox_inbox_messages", "listMailboxInboxMessages", "messages:read"],
|
|
206
231
|
["shipmail_get_mailbox_inbox_message", "getMailboxInboxMessage", "messages:read"],
|
|
207
232
|
["shipmail_list_mailbox_inbox_threads", "listMailboxInboxThreads", "messages:read"],
|
|
208
233
|
["shipmail_get_mailbox_inbox_thread", "getMailboxInboxThread", "messages:read"],
|
|
209
|
-
[
|
|
210
|
-
"shipmail_update_inbox_thread_reply_state",
|
|
211
|
-
"updateMailboxInboxThreadReplyState",
|
|
212
|
-
"messages:write"
|
|
213
|
-
],
|
|
234
|
+
["shipmail_update_inbox_thread_attention", "updateMailboxInboxThreadAttention", "messages:write"],
|
|
214
235
|
["shipmail_create_inbox_reply_draft", "createMailboxInboxReplyDraft", "drafts:write"],
|
|
215
236
|
["shipmail_send_inbox_reply_draft", "sendMailboxInboxReplyDraft", "messages:send"],
|
|
216
237
|
["shipmail_reply_to_inbox_message", "replyToMailboxInboxMessage", "messages:send"],
|
|
@@ -223,11 +244,15 @@ var CAPABILITY_ROWS = [
|
|
|
223
244
|
["shipmail_delete_mailbox_forwarding", "deleteMailboxForwarding", "mailbox_forwarding:write"],
|
|
224
245
|
["shipmail_reset_mailbox_password", "resetMailboxPassword", "mailboxes:write"],
|
|
225
246
|
["shipmail_set_auto_reply", "updateAutoReply", "mailboxes:write"],
|
|
247
|
+
["shipmail_get_mailbox_delivery_routing", "getMailboxDeliveryRouting", "mailboxes:read"],
|
|
248
|
+
["shipmail_update_mailbox_delivery_routing", "updateMailboxDeliveryRouting", "mailboxes:write"],
|
|
226
249
|
["shipmail_set_spam_filter", "updateSpamFilter", "mailboxes:write"],
|
|
227
250
|
["shipmail_create_mailbox_import", "createMailboxImport", "mailboxes:write"],
|
|
228
251
|
["shipmail_list_mailbox_imports", "listMailboxImports", "mailboxes:read"],
|
|
229
252
|
["shipmail_get_mailbox_import", "getMailboxImport", "mailboxes:read"],
|
|
230
253
|
["shipmail_cancel_mailbox_import", "cancelMailboxImport", "mailboxes:write"],
|
|
254
|
+
["shipmail_resume_mailbox_import", "resumeMailboxImport", "mailboxes:write"],
|
|
255
|
+
["shipmail_restore_mailbox_import", "restoreMailboxImport", "mailboxes:write"],
|
|
231
256
|
["shipmail_undo_mailbox_import", "undoMailboxImport", "mailboxes:write"],
|
|
232
257
|
["shipmail_inject_sandbox_inbound", "injectSandboxInbound", "messages:write"],
|
|
233
258
|
["shipmail_list_messages", "listMessages", "messages:read"],
|
|
@@ -247,6 +272,8 @@ var CAPABILITY_ROWS = [
|
|
|
247
272
|
["shipmail_create_reply_scan", "createReplyScan", "messages:write"],
|
|
248
273
|
["shipmail_get_reply_scan", "getReplyScan", "messages:read"],
|
|
249
274
|
["shipmail_list_reply_scan_results", "listReplyScanResults", "messages:read"],
|
|
275
|
+
["shipmail_list_members", "listMembers", "members:read"],
|
|
276
|
+
["shipmail_get_member", "getMember", "members:read"],
|
|
250
277
|
["shipmail_create_webhook", "createWebhook", "webhooks:write"],
|
|
251
278
|
["shipmail_list_webhooks", "listWebhooks", "webhooks:read"],
|
|
252
279
|
["shipmail_get_webhook", "getWebhook", "webhooks:read"],
|
|
@@ -293,6 +320,12 @@ var CAPABILITY_ROWS = [
|
|
|
293
320
|
["shipmail_get_newsletter", "getNewsletter", "newsletters:read"],
|
|
294
321
|
["shipmail_update_newsletter", "updateNewsletter", "newsletters:write"],
|
|
295
322
|
["shipmail_list_newsletter_assets", "listNewsletterAssets", "newsletters:read"],
|
|
323
|
+
[
|
|
324
|
+
"shipmail_upload_newsletter_asset_with_file",
|
|
325
|
+
"prepareNewsletterAssetUpload",
|
|
326
|
+
"newsletters:write"
|
|
327
|
+
],
|
|
328
|
+
["shipmail_prepare_newsletter_asset_upload", "prepareNewsletterAssetUpload", "newsletters:write"],
|
|
296
329
|
["shipmail_register_newsletter_asset", "uploadNewsletterAsset", "newsletters:write"],
|
|
297
330
|
["shipmail_preview_newsletter", "previewNewsletter", "newsletters:read"],
|
|
298
331
|
["shipmail_run_newsletter_preflight", "runNewsletterPreflight", "newsletters:write"],
|
|
@@ -370,7 +403,6 @@ var DESTRUCTIVE_TOOLS = /* @__PURE__ */ new Set([
|
|
|
370
403
|
"shipmail_create_mailbox_export",
|
|
371
404
|
"shipmail_rotate_webhook_secret",
|
|
372
405
|
"shipmail_consume_partner_mailbox_credential_grant",
|
|
373
|
-
"shipmail_set_mailbox_rules",
|
|
374
406
|
"shipmail_rotate_audience_feed",
|
|
375
407
|
"shipmail_revoke_audience_feed"
|
|
376
408
|
]);
|
|
@@ -429,6 +461,8 @@ function permissionGroupFor(toolName, requiredScope) {
|
|
|
429
461
|
if (requiredScope === "calendar:read") return "calendar_read";
|
|
430
462
|
if (requiredScope === "calendar:write") return "calendar_write";
|
|
431
463
|
if (requiredScope.startsWith("booking_pages:")) return "booking_pages";
|
|
464
|
+
if (requiredScope.startsWith("automations:")) return "automations";
|
|
465
|
+
if (requiredScope.startsWith("members:")) return "members";
|
|
432
466
|
if (requiredScope.startsWith("webhooks:")) return "webhooks";
|
|
433
467
|
if (requiredScope.startsWith("newsletters:")) return "newsletters";
|
|
434
468
|
if (requiredScope.startsWith("audiences:")) return "audiences";
|
|
@@ -439,7 +473,7 @@ function permissionGroupFor(toolName, requiredScope) {
|
|
|
439
473
|
return "mailbox_admin";
|
|
440
474
|
}
|
|
441
475
|
function effectFor(toolName) {
|
|
442
|
-
if (toolName === "shipmail_status" || toolName === "shipmail_compose_message_with_file" || toolName.startsWith("shipmail_list_") || toolName.startsWith("shipmail_get_") || toolName.startsWith("shipmail_search_") || toolName.startsWith("shipmail_preview_")) {
|
|
476
|
+
if (toolName === "shipmail_status" || toolName === "shipmail_compose_message_with_file" || toolName === "shipmail_upload_newsletter_asset_with_file" || toolName.startsWith("shipmail_list_") || toolName.startsWith("shipmail_get_") || toolName.startsWith("shipmail_search_") || toolName.startsWith("shipmail_preview_")) {
|
|
443
477
|
return "read";
|
|
444
478
|
}
|
|
445
479
|
if (DESTRUCTIVE_TOOLS.has(toolName)) return "destructive";
|
|
@@ -453,10 +487,11 @@ function recipientControlFor(toolName) {
|
|
|
453
487
|
return "none";
|
|
454
488
|
}
|
|
455
489
|
function durationFor(toolName) {
|
|
490
|
+
if (toolName === "shipmail_run_automation") return "one_shot";
|
|
456
491
|
if (toolName.includes("app_password") || toolName.includes("credential_grant") || toolName === "shipmail_rotate_webhook_secret") {
|
|
457
492
|
return "credential";
|
|
458
493
|
}
|
|
459
|
-
if (toolName.includes("forwarding") || toolName.includes("
|
|
494
|
+
if (toolName.includes("forwarding") || toolName.includes("mailbox_rule") || toolName.includes("webhook") || toolName.includes("booking_page") || toolName.includes("automation")) {
|
|
460
495
|
return "persistent";
|
|
461
496
|
}
|
|
462
497
|
if (toolName === "shipmail_send_message" || toolName.includes("schedule_") || toolName.includes("scheduled_message")) {
|
|
@@ -466,7 +501,7 @@ function durationFor(toolName) {
|
|
|
466
501
|
}
|
|
467
502
|
function idempotencyFor(toolName, effect) {
|
|
468
503
|
if (effect === "read") return "none";
|
|
469
|
-
if (toolName === "shipmail_create_mailbox_app_password" || toolName === "shipmail_consume_partner_mailbox_credential_grant" || toolName === "shipmail_prepare_staged_attachment_upload") {
|
|
504
|
+
if (toolName === "shipmail_create_mailbox_app_password" || toolName === "shipmail_consume_partner_mailbox_credential_grant" || toolName === "shipmail_prepare_newsletter_asset_upload" || toolName === "shipmail_prepare_staged_attachment_upload") {
|
|
470
505
|
return "forbidden";
|
|
471
506
|
}
|
|
472
507
|
if (DESTRUCTIVE_PREFIXES.some((prefix) => toolName.startsWith(prefix)) || toolName.startsWith("shipmail_suspend_") || toolName.startsWith("shipmail_resume_")) {
|
|
@@ -499,7 +534,7 @@ function defineCapability(row) {
|
|
|
499
534
|
transports: {
|
|
500
535
|
hostedOAuth: permissionGroup !== "partner_admin",
|
|
501
536
|
directApiKeyHttp: true,
|
|
502
|
-
stdio: toolName !== "shipmail_compose_message_with_file"
|
|
537
|
+
stdio: toolName !== "shipmail_compose_message_with_file" && toolName !== "shipmail_upload_newsletter_asset_with_file"
|
|
503
538
|
}
|
|
504
539
|
};
|
|
505
540
|
}
|