shipmail-mcp 0.8.7 → 0.9.0
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 +9 -3
- package/.codex-plugin/plugin.json +9 -8
- package/.plugin/plugin.json +3 -3
- package/README.md +20 -24
- package/assets/shipmail-logo.png +0 -0
- package/assets/shipmail-logo.svg +1 -7
- package/assets/shipmail-mark-400.png +0 -0
- package/assets/shipmail-mark.png +0 -0
- package/assets/shipmail-mark.svg +1 -6
- package/dist/capabilities.d.ts +2 -8
- package/dist/capabilities.js +5 -65
- package/dist/index.js +192 -528
- package/dist/server.d.ts +2 -2
- package/dist/server.js +192 -523
- package/distribution/shipmail/.claude-plugin/plugin.json +29 -0
- package/distribution/shipmail/.codex-plugin/plugin.json +46 -0
- package/distribution/shipmail/.mcp.json +8 -0
- package/distribution/shipmail/.plugin/plugin.json +24 -0
- package/distribution/shipmail/README.md +35 -0
- package/distribution/shipmail/assets/shipmail-logo.png +0 -0
- package/distribution/shipmail/assets/shipmail-logo.svg +1 -0
- package/distribution/shipmail/assets/shipmail-mark-400.png +0 -0
- package/distribution/shipmail/assets/shipmail-mark.png +0 -0
- package/distribution/shipmail/assets/shipmail-mark.svg +1 -0
- package/distribution/shipmail/skills/shipmail/SKILL.md +73 -0
- package/distribution/shipmail/skills/shipmail/agents/openai.yaml +13 -0
- package/package.json +4 -3
- package/server.json +2 -2
- package/skills/shipmail/SKILL.md +2 -2
- package/smithery.yaml +1 -1
|
@@ -1,13 +1,19 @@
|
|
|
1
1
|
{
|
|
2
|
+
"displayName": "Shipmail",
|
|
2
3
|
"name": "shipmail",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "
|
|
4
|
+
"version": "0.9.0",
|
|
5
|
+
"description": "Modern email for your business. Inboxes, calendars, newsletters, bookings, an AI assistant, and an API for your agents. Everything on your own domain, in one subscription.",
|
|
5
6
|
"author": {
|
|
6
7
|
"name": "Shipmail",
|
|
7
|
-
"email": "
|
|
8
|
+
"email": "hi@shipmail.to",
|
|
8
9
|
"url": "https://shipmail.to"
|
|
9
10
|
},
|
|
10
11
|
"homepage": "https://shipmail.to/docs/mcp",
|
|
12
|
+
"privacyPolicyUrl": "https://shipmail.to/privacy",
|
|
13
|
+
"supportUrl": "https://shipmail.to/support",
|
|
14
|
+
"documentationUrl": "https://shipmail.to/docs/mcp",
|
|
15
|
+
"termsOfServiceUrl": "https://shipmail.to/terms",
|
|
16
|
+
"icon": "./assets/shipmail-mark.svg",
|
|
11
17
|
"repository": "https://github.com/shipmail-to/shipmail-mcp",
|
|
12
18
|
"license": "MIT",
|
|
13
19
|
"keywords": [
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "shipmail",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "
|
|
3
|
+
"version": "0.9.0",
|
|
4
|
+
"description": "Modern email for your business. Inboxes, calendars, newsletters, bookings, an AI assistant, and an API for your agents. Everything on your own domain, in one subscription.",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Shipmail",
|
|
7
|
-
"email": "
|
|
7
|
+
"email": "hi@shipmail.to",
|
|
8
8
|
"url": "https://shipmail.to"
|
|
9
9
|
},
|
|
10
10
|
"homepage": "https://shipmail.to/docs/mcp",
|
|
@@ -21,8 +21,8 @@
|
|
|
21
21
|
"skills": "./skills/",
|
|
22
22
|
"interface": {
|
|
23
23
|
"displayName": "Shipmail",
|
|
24
|
-
"shortDescription": "
|
|
25
|
-
"longDescription": "
|
|
24
|
+
"shortDescription": "Modern email for your business",
|
|
25
|
+
"longDescription": "Search and triage your inbox, draft and send replies you approve, write and schedule newsletters, manage calendars and booking pages, set up automations, and add domains and mailboxes, all on your own domain through Shipmail's hosted MCP server.",
|
|
26
26
|
"developerName": "Shipmail",
|
|
27
27
|
"category": "Productivity",
|
|
28
28
|
"websiteURL": "https://shipmail.to",
|
|
@@ -31,12 +31,13 @@
|
|
|
31
31
|
"capabilities": [
|
|
32
32
|
"Email",
|
|
33
33
|
"Calendar",
|
|
34
|
+
"Newsletters",
|
|
34
35
|
"Automation"
|
|
35
36
|
],
|
|
36
37
|
"defaultPrompt": [
|
|
37
|
-
"
|
|
38
|
-
"
|
|
39
|
-
"
|
|
38
|
+
"Summarize my unread emails and draft replies to the customer ones, but do not send anything.",
|
|
39
|
+
"Find a free 30-minute slot tomorrow afternoon and put a call on my calendar.",
|
|
40
|
+
"Turn this month's changelog into a newsletter and send me a test."
|
|
40
41
|
],
|
|
41
42
|
"composerIcon": "./assets/shipmail-mark.png",
|
|
42
43
|
"logo": "./assets/shipmail-logo.png"
|
package/.plugin/plugin.json
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "shipmail",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "
|
|
3
|
+
"version": "0.9.0",
|
|
4
|
+
"description": "Modern email for your business. Inboxes, calendars, newsletters, bookings, an AI assistant, and an API for your agents. Everything on your own domain, in one subscription.",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Shipmail",
|
|
7
|
-
"email": "
|
|
7
|
+
"email": "hi@shipmail.to",
|
|
8
8
|
"url": "https://shipmail.to"
|
|
9
9
|
},
|
|
10
10
|
"homepage": "https://shipmail.to/docs/mcp",
|
package/README.md
CHANGED
|
@@ -94,6 +94,9 @@ This repository is also a portable agent plugin. It combines the hosted MCP conn
|
|
|
94
94
|
safety-focused Shipmail skill, so supported clients can install the server and its operating
|
|
95
95
|
guidance together:
|
|
96
96
|
|
|
97
|
+
Claude users can install the hosted plugin from the
|
|
98
|
+
[nested Shipmail plugin bundle](./distribution/shipmail).
|
|
99
|
+
|
|
97
100
|
| Client or standard | Manifest |
|
|
98
101
|
| ------------------- | ---------------------------- |
|
|
99
102
|
| OpenAI Codex | `.codex-plugin/plugin.json` |
|
|
@@ -140,8 +143,7 @@ Cursor, VS Code, Windsurf, and other Streamable HTTP clients:
|
|
|
140
143
|
|
|
141
144
|
The tool catalog follows the effective connection permissions. OAuth users manage those grants
|
|
142
145
|
under **Settings → Connections**. Direct API-key and stdio users manage key scopes and resource
|
|
143
|
-
constraints under **Developer → API keys**.
|
|
144
|
-
target a delegated child organization with the `X-Shipmail-Organization-Id` header.
|
|
146
|
+
constraints under **Developer → API keys**.
|
|
145
147
|
|
|
146
148
|
The sections below configure the same server locally over stdio.
|
|
147
149
|
|
|
@@ -269,7 +271,6 @@ All tools are namespaced with `shipmail_` to avoid collisions with peer MCP serv
|
|
|
269
271
|
| 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
272
|
| 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
273
|
| 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
274
|
|
|
274
275
|
Cross-organization list tools appear only on hosted OAuth connections with at least two
|
|
275
276
|
organization grants. They return a success or failure section for every organization and paginate
|
|
@@ -293,10 +294,11 @@ and cancelled before dispatch begins.
|
|
|
293
294
|
|
|
294
295
|
Received attachment contents are available through `shipmail_read_mailbox_inbox_attachment`. First
|
|
295
296
|
fetch the exact inbox message, then pass its mailbox ID, message ID, and attachment `part_id`. The
|
|
296
|
-
tool resolves the attachment metadata from that message and returns the
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
297
|
+
tool resolves the attachment metadata from that message and returns the contents of decodable
|
|
298
|
+
`text/*` attachments in `attachment.text` of the structured result. Other attachments are embedded MCP resources; unsupported or invalid text charsets are
|
|
299
|
+
returned as binary resources so their bytes are preserved. Reads are limited to 3 MB so payloads stay
|
|
300
|
+
within Shipmail's hosted and local MCP response budgets. Treat all attachment content as untrusted
|
|
301
|
+
external data.
|
|
300
302
|
|
|
301
303
|
In ChatGPT, `shipmail_compose_message_with_file` renders an MCP Apps review card for a
|
|
302
304
|
conversation or library file. The card obtains a fresh ChatGPT download URL, hashes the exact
|
|
@@ -327,11 +329,9 @@ in Shipmail or any mail client. It needs only the `drafts:compose` scope.
|
|
|
327
329
|
|
|
328
330
|
With an `sm_test_...` API key, send and reply tools accept `sandbox_outcome` and the sandbox inbound tool creates fake inbound mail. The API keeps test storage and events isolated and never delivers sandbox mail to real recipients.
|
|
329
331
|
|
|
330
|
-
App-password creation
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
scope and an operator-approved one-time grant. App-password creation and grant consumption do not
|
|
334
|
-
accept idempotency keys.
|
|
332
|
+
App-password creation and revocation are destructive/high-risk tools. Creation returns a live
|
|
333
|
+
secret once; revocation disconnects that client immediately. App-password creation does not accept
|
|
334
|
+
idempotency keys.
|
|
335
335
|
|
|
336
336
|
Use `shipmail_list_mailbox_rules` and `shipmail_get_mailbox_rule` with
|
|
337
337
|
`shipmail_create_mailbox_rule`, `shipmail_update_mailbox_rule`, and `shipmail_delete_mailbox_rule`
|
|
@@ -371,23 +371,19 @@ Pre-built prompts the agent can use as guided workflows:
|
|
|
371
371
|
|
|
372
372
|
## Configuration
|
|
373
373
|
|
|
374
|
-
| Variable
|
|
375
|
-
|
|
|
376
|
-
| `SHIPMAIL_API_KEY`
|
|
377
|
-
| `SHIPMAIL_API_KEY_FILE`
|
|
378
|
-
| `SHIPMAIL_BASE_URL`
|
|
379
|
-
| `
|
|
380
|
-
|
|
381
|
-
In a delegated partner session, call `shipmail_create_mailbox` with `generate_password: true`.
|
|
382
|
-
Shipmail generates the primary credential and never returns it to the partner.
|
|
383
|
-
| `SHIPMAIL_ALLOW_INSECURE_BASE_URL` | No | Set to `1` to permit a non-https or non-`shipmail.to` base URL. Local development only. |
|
|
384
|
-
| `SHIPMAIL_MCP_DEBUG` | No | Set to `1` to include `request_id` and `status` in stderr tool-call logs. |
|
|
374
|
+
| Variable | Required | Description |
|
|
375
|
+
| ---------------------------------- | -------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
376
|
+
| `SHIPMAIL_API_KEY` | Yes (or `SHIPMAIL_API_KEY_FILE`) | Shipmail API key (`sm_live_...`). |
|
|
377
|
+
| `SHIPMAIL_API_KEY_FILE` | No | Path to a file containing the API key. Takes precedence over `SHIPMAIL_API_KEY`. Reduces env-trace leak surface (Docker secrets, systemd `LoadCredential`). |
|
|
378
|
+
| `SHIPMAIL_BASE_URL` | No | Override the API base URL. Must be https on a `shipmail.to` host. Defaults to `https://shipmail.to/api/v1`. |
|
|
379
|
+
| `SHIPMAIL_ALLOW_INSECURE_BASE_URL` | No | Set to `1` to permit a non-https or non-`shipmail.to` base URL. Local development only. |
|
|
380
|
+
| `SHIPMAIL_MCP_DEBUG` | No | Set to `1` to include `request_id` and `status` in stderr tool-call logs. |
|
|
385
381
|
|
|
386
382
|
## Security
|
|
387
383
|
|
|
388
384
|
- **Tool namespacing**: All tools are prefixed with `shipmail_` to avoid collisions with peer MCP servers in the same host.
|
|
389
385
|
- **Structured outputs**: Successful tools return both text fallback content and structured MCP `structuredContent`.
|
|
390
|
-
- **Idempotency**: Mutating tools accept an optional `idempotency_key`. When omitted, the server generates a fresh key per tool call. Supply your own key if a specific request must stay idempotent across MCP retries. Mailbox app-password creation
|
|
386
|
+
- **Idempotency**: Mutating tools accept an optional `idempotency_key`. When omitted, the server generates a fresh key per tool call. Supply your own key if a specific request must stay idempotent across MCP retries. Mailbox app-password creation is excluded because its one-time plaintext secret must never be cached.
|
|
391
387
|
- **Input sanitization**: Email content, addresses, and error text are stripped of ASCII control characters, DEL, and Unicode directional or BiDi markers (U+061C, U+200E/F, U+202A-E, U+2066-9). Long strings are truncated.
|
|
392
388
|
- **Error redaction**: 5xx and unexpected Shipmail errors are redacted to a generic message; the original `request_id` is preserved for support. Generic `Error` thrown values (network errors, deserialization) are redacted to "Internal MCP error" before reaching the LLM. Detail lands on stderr.
|
|
393
389
|
- **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.
|
package/assets/shipmail-logo.png
CHANGED
|
Binary file
|
package/assets/shipmail-logo.svg
CHANGED
|
@@ -1,7 +1 @@
|
|
|
1
|
-
<svg viewBox="0 0 395 100" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
-
<rect width="395" height="100" fill="#fff"/>
|
|
3
|
-
<path d="M 25 25 L 60 50 L 25 75" fill="none" stroke="#141211" stroke-width="12" stroke-linecap="round" stroke-linejoin="round"/>
|
|
4
|
-
<path d="M 55 75 L 85 75" fill="none" stroke="#F26522" stroke-width="12" stroke-linecap="round"/>
|
|
5
|
-
<path d="M 25 25 L 15 25 L 15 75 L 25 75" fill="none" stroke="#141211" stroke-width="12" stroke-linecap="round" stroke-linejoin="round"/>
|
|
6
|
-
<path d="M146.97 74.05Q140.22 74.05 135.87 71.21Q131.52 68.37 130.61 63.34L140.78 61.74Q141.44 64.03 143.01 65.20Q144.58 66.36 147.38 66.36Q149.67 66.36 150.99 65.56Q152.31 64.76 152.31 63.44Q152.31 61.15 148.01 60.30L141.88 59.10Q131.49 57.13 131.49 49Q131.49 43.75 135.68 40.80Q139.87 37.85 146.94 37.85Q153.53 37.85 157.52 40.46Q161.51 43.06 162.42 47.58L152.75 49.12Q151.68 45.38 147.13 45.38Q145.15 45.38 143.78 46.19Q142.42 46.99 142.42 48.34Q142.42 49.40 143.26 50.20Q144.11 51 146.37 51.44L153.09 52.70Q163.42 54.65 163.42 62.18Q163.42 65.79 161.30 68.46Q159.18 71.13 155.48 72.59Q151.77 74.05 146.97 74.05 M178.39 53.36L178.39 73.39L167.43 73.39L167.43 26.61L178.17 26.61L178.17 45.26Q179.58 41.87 182.21 39.86Q184.83 37.85 188.91 37.85Q194.40 37.85 197.73 41.46Q201.06 45.07 201.06 51.04L201.06 73.39L190.10 73.39L190.10 53.17Q190.10 50.22 188.60 48.54Q187.09 46.86 184.39 46.86Q181.72 46.86 180.06 48.57Q178.39 50.28 178.39 53.36 M217.63 73.39L206.67 73.39L206.67 38.29L217.63 38.29L217.63 73.39M212.14 34.18Q209.81 34.18 208.15 32.64Q206.48 31.10 206.48 28.90Q206.48 26.70 208.15 25.17Q209.81 23.63 212.14 23.63Q214.49 23.63 216.16 25.17Q217.82 26.70 217.82 28.90Q217.82 31.10 216.16 32.64Q214.49 34.18 212.14 34.18 M234.23 86.51L223.28 86.51L223.28 38.29L234.11 38.29L234.11 44.32L234.48 44.32Q235.14 42.75 236.40 41.26Q237.66 39.76 239.63 38.81Q241.61 37.85 244.41 37.85Q248.11 37.85 251.30 39.80Q254.48 41.74 256.45 45.73Q258.41 49.72 258.41 55.87Q258.41 61.84 256.51 65.84Q254.61 69.84 251.42 71.87Q248.24 73.89 244.34 73.89Q240.32 73.89 237.92 71.99Q235.52 70.09 234.48 67.71L234.23 67.71L234.23 86.51M240.61 65.35Q243.78 65.35 245.46 62.75Q247.14 60.14 247.14 55.87Q247.14 51.60 245.46 49.01Q243.78 46.42 240.61 46.42Q237.47 46.42 235.72 48.96Q233.98 51.51 233.98 55.87Q233.98 60.17 235.72 62.76Q237.47 65.35 240.61 65.35 M273.63 73.39L262.67 73.39L262.67 38.29L272.75 38.29L273.25 45.26Q274.70 41.30 277.44 39.56Q280.19 37.82 283.36 37.82Q286.69 37.82 288.90 39.73Q291.12 41.65 292.40 45.95Q294.01 41.62 297.13 39.72Q300.25 37.82 303.80 37.82Q308.73 37.82 311.89 40.99Q315.04 44.16 315.04 49.72L315.04 73.39L304.12 73.39L304.12 52.20Q304.12 49.53 302.72 48.15Q301.32 46.77 299.15 46.77Q296.83 46.77 295.48 48.29Q294.13 49.81 294.13 52.32L294.13 73.39L283.61 73.39L283.61 52.04Q283.61 49.62 282.25 48.19Q280.88 46.77 278.72 46.77Q276.49 46.77 275.06 48.27Q273.63 49.78 273.63 52.54 M330.51 74.02Q325.46 74.02 322.21 71.44Q318.96 68.87 318.96 63.66Q318.96 59.76 320.75 57.47Q322.54 55.18 325.51 54.08Q328.47 52.98 332.02 52.67Q336.48 52.29 338.41 51.74Q340.34 51.19 340.34 49.56L340.34 49.43Q340.34 47.61 339.07 46.62Q337.80 45.64 335.57 45.64Q333.28 45.64 331.80 46.61Q330.33 47.58 329.89 49.25L319.96 47.96Q321 43.47 325.03 40.66Q329.07 37.85 335.66 37.85Q340.03 37.85 343.56 39.20Q347.09 40.55 349.18 43.17Q351.27 45.79 351.27 49.56L351.27 73.39L340.97 73.39L340.97 68.46L340.69 68.46Q337.77 74.02 330.51 74.02M333.84 66.77Q336.60 66.77 338.52 65.13Q340.43 63.50 340.43 60.89L340.43 57.54Q339.49 58.04 337.70 58.38Q335.91 58.73 334.38 58.98Q329.32 59.73 329.32 63.16Q329.32 64.91 330.59 65.84Q331.86 66.77 333.84 66.77 M367.87 73.39L356.91 73.39L356.91 38.29L367.87 38.29L367.87 73.39M362.37 34.18Q360.05 34.18 358.39 32.64Q356.72 31.10 356.72 28.90Q356.72 26.70 358.39 25.17Q360.05 23.63 362.37 23.63Q364.73 23.63 366.39 25.17Q368.06 26.70 368.06 28.90Q368.06 31.10 366.39 32.64Q364.73 34.18 362.37 34.18 M373.51 26.61L384.47 26.61L384.47 73.39L373.51 73.39" fill="#141211"/>
|
|
7
|
-
</svg>
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 -77.42 504.95 99.10" aria-label="shipmail" role="img"><path fill="#161615" fill-rule="evenodd" transform="translate(0 -68.52) scale(1.507) translate(-24.86 -23)" d="M30.87 23L68 23A16 16 0 0 1 84 39L84 61A16 16 0 0 1 68 77L30.87 77A6 6 0 0 1 26.7 66.68L40.27 53.6A5 5 0 0 0 40.27 46.4L26.7 33.32A6 6 0 0 1 30.87 23ZM49 58H69A4 4 0 0 1 73 62V62A4 4 0 0 1 69 66H49A4 4 0 0 1 45 62V62A4 4 0 0 1 49 58Z"/><path fill="#FFDD1F" transform="translate(0 -68.52) scale(1.507) translate(-24.86 -23)" d="M49 58H69A4 4 0 0 1 73 62V62A4 4 0 0 1 69 66H49A4 4 0 0 1 45 62V62A4 4 0 0 1 49 58Z"/><path fill="#161615" d="M144.11304979253111 1.2046680497925313Q139.669163208852 1.2046680497925313 135.4662102351314 0.04015560165975107Q131.26325726141079 -1.1243568464730291 127.71617911479944 -3.2526037344398344Q124.1691009681881 -5.38085062240664 121.59914246196404 -8.352365145228216L129.97827800829876 -16.811811894882435Q132.6285477178423 -13.840297372060858 136.1354702627939 -12.300999308437069Q139.6423928077455 -10.76170124481328 143.9256569847856 -10.76170124481328Q147.3522683264177 -10.76170124481328 149.1325 -11.765591286307055Q150.9127316735823 -12.76948132780083 150.9127316735823 -14.67017980636238Q150.9127316735823 -16.811811894882435 149.02541839557398 -17.962939142461963Q147.1381051175657 -19.114066390041494 144.1665905947441 -19.957334024896266Q141.19507607192253 -20.800601659751038 137.90231673582295 -21.777721300138314Q134.60955739972337 -22.75484094052559 131.62465767634853 -24.441376210235134Q128.63975795297372 -26.127911479944675 126.76582987551868 -29.086040802213Q124.89190179806361 -32.044170124481326 124.89190179806361 -36.72899031811895Q124.89190179806361 -41.68151452282158 127.32800829875518 -45.308903872752424Q129.76411479944676 -48.93629322268327 134.23477178423235 -50.95745850622407Q138.70542876901797 -52.978623789764875 144.83585062240664 -52.978623789764875Q151.23397648686029 -52.978623789764875 156.44081950207467 -50.743295297372065Q161.64766251728906 -48.507966804979255 165.02073305670817 -44.03730982019364L156.61482710926694 -35.57786307053942Q154.25903181189489 -38.4155255878285 151.28751728907332 -39.713890041493784Q148.31600276625173 -41.01225449515906 144.96970262793914 -41.01225449515906Q141.81079529737207 -41.01225449515906 140.16441562932226 -40.06190525587829Q138.51803596127246 -39.11155601659751 138.51803596127246 -37.37147994467497Q138.51803596127246 -35.470781466113415 140.3919640387275 -34.39996542185339Q142.26589211618256 -33.32914937759336 145.23740663900412 -32.52603734439834Q148.2089211618257 -31.722925311203323 151.48829529737205 -30.692264868603047Q154.76766943291838 -29.661604426002768 157.73918395573997 -27.85460235131397Q160.71069847856154 -26.047600276625175 162.5846265560166 -23.049315352697096Q164.45855463347164 -20.051030428769018 164.45855463347164 -15.259128630705394Q164.45855463347164 -7.683105117565699 158.970622406639 -3.239218533886584Q153.48269017980635 1.2046680497925313 144.11304979253111 1.2046680497925313ZM206.46131396957122 0.0V-29.634834024896268Q206.46131396957122 -34.266113416320884 203.57011065006915 -37.17070193637621Q200.67890733056709 -40.07529045643154 196.174377593361 -40.07529045643154Q193.10916666666668 -40.07529045643154 190.75022994467497 -38.763540802213Q188.39129322268326 -37.45179114799447 187.0661583679115 -35.08261065006916Q185.7410235131397 -32.71343015214385 185.7410235131397 -29.634834024896268L180.25309128630707 -32.47249654218534Q180.25309128630707 -38.495836791147994 182.83643499308437 -43.06019017980636Q185.4197786998617 -47.62454356846473 189.9891600318751 -50.207887275242044Q194.55854136388848 -52.791230982019364 200.4162312628571 -52.791230982019364Q206.32746196403872 -52.791230982019364 210.87843015214384 -50.23465767634855Q215.42939834024895 -47.67808437067774 217.9859716459198 -43.18065698478562Q220.5425449515906 -38.683229598893504 220.5425449515906 -32.76697095435685V0.0ZM171.65979253112033 0.0V-77.42H185.7410235131397V0.0ZM229.75156293222685 0.0V-51.72041493775934H243.8327939142462V0.0ZM236.79217842323652 -60.019239280774556Q233.39233748271093 -60.019239280774556 231.1436237897649 -62.33487897648686Q228.89491009681882 -64.65051867219917 228.89491009681882 -68.05035961272476Q228.89491009681882 -71.45020055325035 231.1436237897649 -73.76584024896266Q233.39233748271093 -76.08147994467497 236.79217842323652 -76.08147994467497Q240.29910096818813 -76.08147994467497 242.4942738589212 -73.76584024896266Q244.68944674965422 -71.45020055325035 244.68944674965422 -68.05035961272476Q244.68944674965422 -64.65051867219917 242.4942738589212 -62.33487897648686Q240.29910096818813 -60.019239280774556 236.79217842323652 -60.019239280774556ZM282.8640387275242 1.0708160442600276Q277.26902489626553 1.0708160442600276 272.77159751037345 -1.2046680497925313Q268.2741701244813 -3.48015214384509 265.58374481327803 -7.468941908713694Q262.8933195020747 -11.457731673582296 262.67915629322266 -16.54410788381743V-34.908603042876905Q262.8933195020747 -39.994979253112035 265.6239004149378 -44.050695020746886Q268.35448132780084 -48.106410788381744 272.8491928758995 -50.448820885200554Q277.3439044239982 -52.791230982019364 282.8640387275242 -52.791230982019364Q290.0385062240664 -52.791230982019364 295.7138312586445 -49.23076763485477Q301.38915629322264 -45.67030428769018 304.6551452282157 -39.58003803596127Q307.9211341632088 -33.48977178423237 307.9211341632088 -25.77989626556017Q307.9211341632088 -18.15033195020747 304.6551452282157 -12.073450899031812Q301.38915629322264 -5.996569847856155 295.7138312586445 -2.462876901798064Q290.0385062240664 1.0708160442600276 282.8640387275242 1.0708160442600276ZM254.11262793914244 21.684024896265562V-51.72041493775934H268.1938589211618V-38.133415979755505L265.8112932226833 -25.53896265560166L268.0600069156293 -13.010414937759336V21.684024896265562ZM280.4163488802 -11.886058091286309Q284.29290888658363 -11.886058091286309 287.2460187586445 -13.666289764868605Q290.1991286307054 -15.4465214384509 291.8856639004149 -18.607262358134864Q293.57219917012446 -21.76800327781883 293.57219917012446 -25.87010885011084Q293.57219917012446 -29.982849239280775 291.8856639004149 -33.128371369294605Q290.1991286307054 -36.273893499308436 287.2525651613423 -38.054125172890735Q284.3060016919792 -39.83435684647303 280.45288328029113 -39.83435684647303Q276.599764868603 -39.83435684647303 273.61505913364203 -38.06265639961698Q270.630353398681 -36.29095595276093 268.9837797422174 -33.137638046600706Q267.3372060857538 -29.984320140440477 267.3372060857538 -25.863737631662943Q267.3372060857538 -21.764336099585062 268.9702005532503 -18.60542876901798Q270.60319502074685 -15.4465214384509 273.5880947441217 -13.666289764868605Q276.5729944674965 -11.886058091286309 280.4163488802 -11.886058091286309ZM314.93497925311203 0.0V-51.72041493775934H329.0162102351314V0.0ZM348.6656846473029 0.0V-30.51825726141079Q348.6656846473029 -35.04245504840941 345.8547925311203 -37.55887275242047Q343.04390041493775 -40.07529045643154 338.89448824343015 -40.07529045643154Q336.0568257261411 -40.07529045643154 333.83488243430156 -38.93754840940526Q331.612939142462 -37.79980636237898 330.3145746887967 -35.67155947441218Q329.0162102351314 -33.54331258644537 329.0162102351314 -30.51825726141079L323.52827800829874 -33.19529737206086Q323.52827800829874 -39.21863762102352 326.1651625172891 -43.58221300138313Q328.8020470262794 -47.945788381742744 333.29947441217155 -50.36850968188105Q337.79690179806363 -52.791230982019364 343.4186860304288 -52.791230982019364Q348.85307745504844 -52.791230982019364 353.2300380359613 -50.3818948824343Q357.60699861687414 -47.97255878284924 360.1769571230982 -43.62236860304288Q362.7469156293223 -39.27217842323652 362.7469156293223 -33.22206777316736V0.0ZM382.39639004149376 0.0V-30.51825726141079Q382.39639004149376 -35.04245504840941 379.5854979253112 -37.55887275242047Q376.7746058091286 -40.07529045643154 372.625193637621 -40.07529045643154Q369.8678423236515 -40.07529045643154 367.6057434301522 -38.93754840940526Q365.34364453665285 -37.79980636237898 364.0452800829876 -35.67155947441218Q362.7469156293223 -33.54331258644537 362.7469156293223 -30.51825726141079L354.68902489626555 -32.41895573997234Q355.09058091286306 -38.683229598893504 357.9951694329184 -43.22081258644537Q360.89975795297374 -47.758395573997234 365.62473374827107 -50.274813278008295Q370.34970954356845 -52.791230982019364 376.13211618257264 -52.791230982019364Q381.8877524204703 -52.791230982019364 386.47887621023517 -50.355124481327806Q391.07 -47.91901798063624 393.77381051175655 -43.44836099585062Q396.47762102351317 -38.97770401106501 396.47762102351317 -32.71343015214385V0.0ZM427.26358229598895 1.0708160442600276Q420.19619640387276 1.0708160442600276 414.56102697095434 -2.462876901798064Q408.925857538036 -5.996569847856155 405.67325380359614 -12.073450899031812Q402.4206500691563 -18.15033195020747 402.4206500691563 -25.77989626556017Q402.4206500691563 -33.48977178423237 405.67325380359614 -39.58003803596127Q408.925857538036 -45.67030428769018 414.56102697095434 -49.23076763485477Q420.19619640387276 -52.791230982019364 427.26358229598895 -52.791230982019364Q432.83182572614106 -52.791230982019364 437.2221715076072 -50.515746887966806Q441.6125172890733 -48.24026279391425 444.2761721991701 -44.25147302904564Q446.93982710926696 -40.26268326417704 447.12721991701244 -35.17630705394191V-16.54410788381743Q446.93982710926696 -11.457731673582296 444.31632780082987 -7.468941908713694Q441.69282849239283 -3.48015214384509 437.26232710926695 -1.2046680497925313Q432.83182572614106 1.0708160442600276 427.26358229598895 1.0708160442600276ZM429.887081604426 -11.886058091286309Q435.77656984785614 -11.886058091286309 439.39057399723373 -15.80792185338866Q443.0045781466113 -19.72978561549101 443.0045781466113 -25.86020746887967Q443.0045781466113 -29.982849239280775 441.3715836791148 -33.128371369294605Q439.73858921161826 -36.273893499308436 436.7938450899032 -38.054125172890735Q433.8491009681881 -39.83435684647303 429.91385200553253 -39.83435684647303Q426.0589142461964 -39.83435684647303 423.11417012448135 -38.054125172890735Q420.1694260027663 -36.273893499308436 418.4695055325035 -33.11498616874135Q416.76958506224065 -29.956078838174275 416.76958506224065 -25.86020746887967Q416.76958506224065 -21.764336099585062 418.45612033195016 -18.60542876901798Q420.1426556016597 -15.4465214384509 423.1007849239281 -13.666289764868605Q426.0589142461964 -11.886058091286309 429.887081604426 -11.886058091286309ZM442.2817773167358 0.0V-13.89383817427386L444.5304910096819 -26.502697095435686L442.2817773167358 -39.00447441217151V-51.72041493775934H456.2291562932227V0.0ZM466.5089903181189 0.0V-51.72041493775934H480.5902213001383V0.0ZM473.5496058091286 -60.019239280774556Q470.14976486860303 -60.019239280774556 467.90105117565696 -62.33487897648686Q465.6523374827109 -64.65051867219917 465.6523374827109 -68.05035961272476Q465.6523374827109 -71.45020055325035 467.90105117565696 -73.76584024896266Q470.14976486860303 -76.08147994467497 473.5496058091286 -76.08147994467497Q477.05652835408017 -76.08147994467497 479.25170124481326 -73.76584024896266Q481.4468741355463 -71.45020055325035 481.4468741355463 -68.05035961272476Q481.4468741355463 -64.65051867219917 479.25170124481326 -62.33487897648686Q477.05652835408017 -60.019239280774556 473.5496058091286 -60.019239280774556ZM490.8700553250346 0.0V-77.42H504.951286307054V0.0Z"/></svg>
|
|
Binary file
|
package/assets/shipmail-mark.png
CHANGED
|
Binary file
|
package/assets/shipmail-mark.svg
CHANGED
|
@@ -1,6 +1 @@
|
|
|
1
|
-
<svg viewBox="0 0
|
|
2
|
-
<rect width="100" height="100" fill="#fff"/>
|
|
3
|
-
<path d="M 25 25 L 60 50 L 25 75" fill="none" stroke="#141211" stroke-width="12" stroke-linecap="round" stroke-linejoin="round"/>
|
|
4
|
-
<path d="M 55 75 L 85 75" fill="none" stroke="#F26522" stroke-width="12" stroke-linecap="round"/>
|
|
5
|
-
<path d="M 25 25 L 15 25 L 15 75 L 25 75" fill="none" stroke="#141211" stroke-width="12" stroke-linecap="round" stroke-linejoin="round"/>
|
|
6
|
-
</svg>
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1024 1024"><rect width="1024" height="1024" rx="230.4" fill="#FFDD1F"/><g transform="translate(-72.38 -24.8) scale(10.74)"><path fill="#161615" d="M30.87 23L68 23A16 16 0 0 1 84 39L84 61A16 16 0 0 1 68 77L30.87 77A6 6 0 0 1 26.7 66.68L40.27 53.6A5 5 0 0 0 40.27 46.4L26.7 33.32A6 6 0 0 1 30.87 23ZM49 58H69A4 4 0 0 1 73 62V62A4 4 0 0 1 69 66H49A4 4 0 0 1 45 62V62A4 4 0 0 1 49 58Z" fill-rule="evenodd"/></g></svg>
|
package/dist/capabilities.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ApiKeyScope } from 'shipmail/api-key-scopes';
|
|
2
2
|
|
|
3
3
|
declare const MCP_CAPABILITY_VERSION = "1.1.0";
|
|
4
|
-
declare const MCP_PERMISSION_GROUP_NAMES: readonly ["account_status", "automations", "mail_read", "drafts", "compose_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"
|
|
4
|
+
declare const MCP_PERMISSION_GROUP_NAMES: readonly ["account_status", "automations", "mail_read", "drafts", "compose_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"];
|
|
5
5
|
type McpPermissionGroupName = (typeof MCP_PERMISSION_GROUP_NAMES)[number];
|
|
6
6
|
declare const MCP_MEMBER_PERMISSION_GROUP_NAMES: readonly ["account_status", "mail_read", "drafts", "compose_drafts", "mail_organize", "mailbox_rules", "send_mail", "calendar_read", "calendar_write", "automations"];
|
|
7
7
|
type McpRole = "owner" | "member";
|
|
@@ -142,14 +142,8 @@ declare const MCP_PERMISSION_GROUPS: readonly [{
|
|
|
142
142
|
readonly description: "Read and remove suppressed recipient addresses.";
|
|
143
143
|
readonly scopes: readonly ["suppressions:read", "suppressions:write"];
|
|
144
144
|
readonly persistent: false;
|
|
145
|
-
}, {
|
|
146
|
-
readonly name: "partner_admin";
|
|
147
|
-
readonly label: "Partner administration";
|
|
148
|
-
readonly description: "Manage delegated partner organizations, credential grants, and usage.";
|
|
149
|
-
readonly scopes: readonly ["partner:organizations:read", "partner:organizations:write", "partner:organizations:access", "partner:mailbox_credentials:issue", "partner:usage:read"];
|
|
150
|
-
readonly persistent: true;
|
|
151
145
|
}];
|
|
152
|
-
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_read_mailbox_inbox_attachment", "downloadMailboxInboxAttachment", "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_draft", "createMailboxInboxDraft", "drafts:compose"], 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_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"]];
|
|
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_read_mailbox_inbox_attachment", "downloadMailboxInboxAttachment", "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_draft", "createMailboxInboxDraft", "drafts:compose"], 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_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"]];
|
|
153
147
|
type McpToolName = (typeof CAPABILITY_ROWS)[number][0];
|
|
154
148
|
type McpCapability = {
|
|
155
149
|
readonly toolName: McpToolName;
|
package/dist/capabilities.js
CHANGED
|
@@ -22,8 +22,7 @@ var MCP_PERMISSION_GROUP_NAMES = [
|
|
|
22
22
|
"mailbox_admin",
|
|
23
23
|
"newsletters",
|
|
24
24
|
"audiences",
|
|
25
|
-
"suppressions"
|
|
26
|
-
"partner_admin"
|
|
25
|
+
"suppressions"
|
|
27
26
|
];
|
|
28
27
|
var MCP_MEMBER_PERMISSION_GROUP_NAMES = [
|
|
29
28
|
"account_status",
|
|
@@ -184,19 +183,6 @@ var MCP_PERMISSION_GROUPS = [
|
|
|
184
183
|
description: "Read and remove suppressed recipient addresses.",
|
|
185
184
|
scopes: ["suppressions:read", "suppressions:write"],
|
|
186
185
|
persistent: false
|
|
187
|
-
},
|
|
188
|
-
{
|
|
189
|
-
name: "partner_admin",
|
|
190
|
-
label: "Partner administration",
|
|
191
|
-
description: "Manage delegated partner organizations, credential grants, and usage.",
|
|
192
|
-
scopes: [
|
|
193
|
-
"partner:organizations:read",
|
|
194
|
-
"partner:organizations:write",
|
|
195
|
-
"partner:organizations:access",
|
|
196
|
-
"partner:mailbox_credentials:issue",
|
|
197
|
-
"partner:usage:read"
|
|
198
|
-
],
|
|
199
|
-
persistent: true
|
|
200
186
|
}
|
|
201
187
|
];
|
|
202
188
|
var CAPABILITY_ROWS = [
|
|
@@ -353,50 +339,7 @@ var CAPABILITY_ROWS = [
|
|
|
353
339
|
["shipmail_create_booking_page", "createBookingPage", "booking_pages:write"],
|
|
354
340
|
["shipmail_get_booking_page", "getBookingPage", "booking_pages:read"],
|
|
355
341
|
["shipmail_update_booking_page", "updateBookingPage", "booking_pages:write"],
|
|
356
|
-
["shipmail_delete_booking_page", "deleteBookingPage", "booking_pages:write"]
|
|
357
|
-
["shipmail_list_partner_organizations", "listPartnerOrganizations", "partner:organizations:read"],
|
|
358
|
-
[
|
|
359
|
-
"shipmail_create_partner_organization",
|
|
360
|
-
"createPartnerOrganization",
|
|
361
|
-
"partner:organizations:write"
|
|
362
|
-
],
|
|
363
|
-
["shipmail_get_partner_organization", "getPartnerOrganization", "partner:organizations:read"],
|
|
364
|
-
[
|
|
365
|
-
"shipmail_update_partner_organization",
|
|
366
|
-
"updatePartnerOrganization",
|
|
367
|
-
"partner:organizations:write"
|
|
368
|
-
],
|
|
369
|
-
[
|
|
370
|
-
"shipmail_resend_partner_ownership_invitation",
|
|
371
|
-
"resendPartnerOwnershipInvitation",
|
|
372
|
-
"partner:organizations:write"
|
|
373
|
-
],
|
|
374
|
-
[
|
|
375
|
-
"shipmail_suspend_partner_organization",
|
|
376
|
-
"suspendPartnerOrganization",
|
|
377
|
-
"partner:organizations:write"
|
|
378
|
-
],
|
|
379
|
-
[
|
|
380
|
-
"shipmail_resume_partner_organization",
|
|
381
|
-
"resumePartnerOrganization",
|
|
382
|
-
"partner:organizations:write"
|
|
383
|
-
],
|
|
384
|
-
[
|
|
385
|
-
"shipmail_offboard_partner_organization",
|
|
386
|
-
"offboardPartnerOrganization",
|
|
387
|
-
"partner:organizations:write"
|
|
388
|
-
],
|
|
389
|
-
[
|
|
390
|
-
"shipmail_list_partner_mailbox_credential_grants",
|
|
391
|
-
"listPartnerMailboxCredentialGrants",
|
|
392
|
-
"partner:mailbox_credentials:issue"
|
|
393
|
-
],
|
|
394
|
-
[
|
|
395
|
-
"shipmail_consume_partner_mailbox_credential_grant",
|
|
396
|
-
"consumePartnerMailboxCredentialGrant",
|
|
397
|
-
"partner:mailbox_credentials:issue"
|
|
398
|
-
],
|
|
399
|
-
["shipmail_get_partner_usage", "getPartnerUsage", "partner:usage:read"]
|
|
342
|
+
["shipmail_delete_booking_page", "deleteBookingPage", "booking_pages:write"]
|
|
400
343
|
];
|
|
401
344
|
var MEMBER_GROUPS = new Set(
|
|
402
345
|
MCP_MEMBER_PERMISSION_GROUP_NAMES
|
|
@@ -405,14 +348,12 @@ var DESTRUCTIVE_PREFIXES = [
|
|
|
405
348
|
"shipmail_delete_",
|
|
406
349
|
"shipmail_remove_",
|
|
407
350
|
"shipmail_revoke_",
|
|
408
|
-
"shipmail_offboard_",
|
|
409
351
|
"shipmail_cancel_"
|
|
410
352
|
];
|
|
411
353
|
var DESTRUCTIVE_TOOLS = /* @__PURE__ */ new Set([
|
|
412
354
|
"shipmail_create_mailbox_app_password",
|
|
413
355
|
"shipmail_create_mailbox_export",
|
|
414
356
|
"shipmail_rotate_webhook_secret",
|
|
415
|
-
"shipmail_consume_partner_mailbox_credential_grant",
|
|
416
357
|
"shipmail_rotate_audience_feed",
|
|
417
358
|
"shipmail_revoke_audience_feed"
|
|
418
359
|
]);
|
|
@@ -459,7 +400,6 @@ var OPEN_WORLD_READ_SCOPES = /* @__PURE__ */ new Set([
|
|
|
459
400
|
]);
|
|
460
401
|
function permissionGroupFor(toolName, requiredScope) {
|
|
461
402
|
if (requiredScope === "public") return "account_status";
|
|
462
|
-
if (requiredScope.startsWith("partner:")) return "partner_admin";
|
|
463
403
|
if (requiredScope.startsWith("domains:")) return "domain_admin";
|
|
464
404
|
if (requiredScope.startsWith("mailbox_credentials:")) return "credentials";
|
|
465
405
|
if (requiredScope.startsWith("mailbox_forwarding:")) return "forwarding";
|
|
@@ -500,7 +440,7 @@ function recipientControlFor(toolName) {
|
|
|
500
440
|
}
|
|
501
441
|
function durationFor(toolName) {
|
|
502
442
|
if (toolName === "shipmail_run_automation") return "one_shot";
|
|
503
|
-
if (toolName.includes("app_password") || toolName
|
|
443
|
+
if (toolName.includes("app_password") || toolName === "shipmail_rotate_webhook_secret") {
|
|
504
444
|
return "credential";
|
|
505
445
|
}
|
|
506
446
|
if (toolName.includes("forwarding") || toolName.includes("mailbox_rule") || toolName.includes("webhook") || toolName.includes("booking_page") || toolName.includes("automation")) {
|
|
@@ -513,7 +453,7 @@ function durationFor(toolName) {
|
|
|
513
453
|
}
|
|
514
454
|
function idempotencyFor(toolName, effect) {
|
|
515
455
|
if (effect === "read") return "none";
|
|
516
|
-
if (toolName === "shipmail_create_mailbox_app_password" || toolName === "
|
|
456
|
+
if (toolName === "shipmail_create_mailbox_app_password" || toolName === "shipmail_prepare_newsletter_asset_upload" || toolName === "shipmail_prepare_staged_attachment_upload") {
|
|
517
457
|
return "forbidden";
|
|
518
458
|
}
|
|
519
459
|
if (DESTRUCTIVE_PREFIXES.some((prefix) => toolName.startsWith(prefix)) || toolName.startsWith("shipmail_suspend_") || toolName.startsWith("shipmail_resume_")) {
|
|
@@ -544,7 +484,7 @@ function defineCapability(row) {
|
|
|
544
484
|
},
|
|
545
485
|
auditAction: effect === "read" ? null : "api.mutation",
|
|
546
486
|
transports: {
|
|
547
|
-
hostedOAuth:
|
|
487
|
+
hostedOAuth: true,
|
|
548
488
|
directApiKeyHttp: true,
|
|
549
489
|
stdio: toolName !== "shipmail_compose_message_with_file" && toolName !== "shipmail_upload_newsletter_asset_with_file"
|
|
550
490
|
}
|