shipmail-mcp 0.9.3 → 0.9.5
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 +2 -2
- package/.codex-plugin/plugin.json +2 -2
- package/.cursor-plugin/plugin.json +23 -0
- package/.plugin/plugin.json +2 -2
- package/README.md +4 -1
- package/dist/index.js +30 -4
- package/dist/server.js +30 -4
- package/distribution/shipmail/.claude-plugin/plugin.json +2 -2
- package/distribution/shipmail/.codex-plugin/plugin.json +2 -2
- package/distribution/shipmail/.cursor-plugin/plugin.json +23 -0
- package/distribution/shipmail/.plugin/plugin.json +2 -2
- package/distribution/shipmail/skills/shipmail/SKILL.md +1 -1
- package/package.json +4 -3
- package/server.json +3 -3
- package/skills/shipmail/SKILL.md +1 -1
- package/smithery.yaml +1 -1
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"displayName": "Shipmail",
|
|
3
3
|
"name": "shipmail",
|
|
4
|
-
"version": "0.9.
|
|
5
|
-
"description": "Modern email for your business. Inboxes, calendars, newsletters, bookings
|
|
4
|
+
"version": "0.9.5",
|
|
5
|
+
"description": "Modern email for your business. Inboxes, calendars, newsletters, bookings and an AI assistant, plus transactional email and an API for your agents. Everything on your own domain, in one subscription.",
|
|
6
6
|
"author": {
|
|
7
7
|
"name": "Shipmail",
|
|
8
8
|
"email": "hi@shipmail.to",
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "shipmail",
|
|
3
|
-
"version": "0.9.
|
|
4
|
-
"description": "Modern email for your business. Inboxes, calendars, newsletters, bookings
|
|
3
|
+
"version": "0.9.5",
|
|
4
|
+
"description": "Modern email for your business. Inboxes, calendars, newsletters, bookings and an AI assistant, plus transactional email and an API for your agents. Everything on your own domain, in one subscription.",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Shipmail",
|
|
7
7
|
"email": "hi@shipmail.to",
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "shipmail",
|
|
3
|
+
"version": "0.9.5",
|
|
4
|
+
"description": "Modern email for your business. Inboxes, calendars, newsletters, bookings and an AI assistant, plus transactional email and an API for your agents. Everything on your own domain, in one subscription.",
|
|
5
|
+
"author": {
|
|
6
|
+
"name": "Shipmail",
|
|
7
|
+
"email": "hi@shipmail.to"
|
|
8
|
+
},
|
|
9
|
+
"homepage": "https://shipmail.to/docs/mcp",
|
|
10
|
+
"repository": "https://github.com/shipmail-to/shipmail-mcp",
|
|
11
|
+
"license": "MIT",
|
|
12
|
+
"logo": "./assets/shipmail-logo.svg",
|
|
13
|
+
"keywords": [
|
|
14
|
+
"email",
|
|
15
|
+
"business-email",
|
|
16
|
+
"custom-domain",
|
|
17
|
+
"agent-inbox",
|
|
18
|
+
"calendar",
|
|
19
|
+
"mcp"
|
|
20
|
+
],
|
|
21
|
+
"skills": "./skills/",
|
|
22
|
+
"mcpServers": "./.mcp.json"
|
|
23
|
+
}
|
package/.plugin/plugin.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "shipmail",
|
|
3
|
-
"version": "0.9.
|
|
4
|
-
"description": "Modern email for your business. Inboxes, calendars, newsletters, bookings
|
|
3
|
+
"version": "0.9.5",
|
|
4
|
+
"description": "Modern email for your business. Inboxes, calendars, newsletters, bookings and an AI assistant, plus transactional email and an API for your agents. Everything on your own domain, in one subscription.",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Shipmail",
|
|
7
7
|
"email": "hi@shipmail.to",
|
package/README.md
CHANGED
|
@@ -101,7 +101,8 @@ Claude users can install the hosted plugin from the
|
|
|
101
101
|
| ------------------- | ---------------------------- |
|
|
102
102
|
| OpenAI Codex | `.codex-plugin/plugin.json` |
|
|
103
103
|
| Claude | `.claude-plugin/plugin.json` |
|
|
104
|
-
| Cursor
|
|
104
|
+
| Cursor and Grok Bot | `.cursor-plugin/plugin.json` |
|
|
105
|
+
| Open Plugins | `.plugin/plugin.json` |
|
|
105
106
|
| MCP connection | `.mcp.json` |
|
|
106
107
|
| Agent skill | `skills/shipmail/SKILL.md` |
|
|
107
108
|
|
|
@@ -399,6 +400,8 @@ Domain purchase is intentionally excluded.
|
|
|
399
400
|
- **Malicious LLM output or hallucinated arguments.** The MCP layer cannot tell whether an argument came from the user or was invented. Use the host UI's tool-call confirmation, especially for `destructiveHint:true` tools.
|
|
400
401
|
- **Compromised MCP host.** Your API key is read from `SHIPMAIL_API_KEY` and held in memory by this process. If the host is compromised, the key is gone regardless. Rotate keys you suspect have been exposed.
|
|
401
402
|
- **Webhook signing secret in conversation logs.** `shipmail_create_webhook` and `shipmail_rotate_webhook_secret` return the secret in `structuredContent`. Many MCP clients persist tool output in conversation history. Treat the session log as sensitive after these calls.
|
|
403
|
+
- **Webhook authorization in conversation logs.** `shipmail_create_webhook` and `shipmail_update_webhook` accept an optional `authorization` value that Shipmail sends as the `Authorization` header of every delivery. Shipmail never returns it (results show `has_authorization` only), but the value you pass is part of the tool call and stays in the conversation history.
|
|
404
|
+
- **Standard Webhooks secret in conversation logs.** The same two tools accept an optional `standard_webhooks_secret` (`whsec_...`) that Shipmail uses to sign every delivery for receivers such as Grok automations. Shipmail never returns it (results show `has_standard_webhooks_secret` only), but the value you pass stays in the conversation history.
|
|
402
405
|
|
|
403
406
|
## Privacy
|
|
404
407
|
|
package/dist/index.js
CHANGED
|
@@ -1249,6 +1249,7 @@ var mailboxRuleConditionSchema = z.lazy(
|
|
|
1249
1249
|
"from_is",
|
|
1250
1250
|
"from_contains",
|
|
1251
1251
|
"recipient_is",
|
|
1252
|
+
"recipient_contains",
|
|
1252
1253
|
"plus_tag_is",
|
|
1253
1254
|
"subject_contains"
|
|
1254
1255
|
]),
|
|
@@ -1797,6 +1798,10 @@ var webhookSchema = z.object({
|
|
|
1797
1798
|
description: z.string().nullable(),
|
|
1798
1799
|
mailbox_ids: z.array(z.string()).nullable(),
|
|
1799
1800
|
domain_ids: z.array(z.string()).nullable(),
|
|
1801
|
+
has_authorization: z.boolean().describe("True when deliveries carry an Authorization header. The value is never returned."),
|
|
1802
|
+
has_standard_webhooks_secret: z.boolean().describe(
|
|
1803
|
+
"True when deliveries carry Standard Webhooks signatures from a stored signing secret. The secret is never returned."
|
|
1804
|
+
),
|
|
1800
1805
|
created_at: z.string(),
|
|
1801
1806
|
updated_at: z.string()
|
|
1802
1807
|
});
|
|
@@ -2598,6 +2603,11 @@ var webhookDeliveryStatusSchema = z.enum(WEBHOOK_DELIVERY_STATUSES);
|
|
|
2598
2603
|
var listWebhooksInputSchema = paginationInputSchema;
|
|
2599
2604
|
var listMembersInputSchema = paginationInputSchema;
|
|
2600
2605
|
var webhookScopeIdsInputSchema = z.array(idSchema).max(100).nullable();
|
|
2606
|
+
var webhookAuthorizationInputSchema = z.string().min(1).max(1024).regex(/^[\x20-\x7E]+$/u, "authorization must contain only printable ASCII characters.");
|
|
2607
|
+
var webhookStandardWebhooksSecretInputSchema = z.string().regex(
|
|
2608
|
+
/^whsec_(?:[A-Za-z0-9+/]+={0,2}|[A-Za-z0-9_-]+)$/u,
|
|
2609
|
+
"standard_webhooks_secret must be whsec_ followed by the base64 key from the receiving service."
|
|
2610
|
+
).max(128);
|
|
2601
2611
|
var createWebhookInputSchema = z.object({
|
|
2602
2612
|
url: publicHttpsUrlSchema,
|
|
2603
2613
|
events: z.array(webhookEventSchema).min(1).max(WEBHOOK_EVENT_TYPES.length),
|
|
@@ -2606,6 +2616,12 @@ var createWebhookInputSchema = z.object({
|
|
|
2606
2616
|
"Only deliver events for these mailbox IDs (plus mailboxes of domain_ids). Omit for every mailbox. Organization events are always delivered."
|
|
2607
2617
|
),
|
|
2608
2618
|
domain_ids: webhookScopeIdsInputSchema.optional().describe("Only deliver events for these domain IDs and their mailboxes."),
|
|
2619
|
+
authorization: webhookAuthorizationInputSchema.optional().describe(
|
|
2620
|
+
'Sent verbatim as the Authorization header of every delivery, for example "Bearer <key>". Write-only: stored encrypted and never returned.'
|
|
2621
|
+
),
|
|
2622
|
+
standard_webhooks_secret: webhookStandardWebhooksSecretInputSchema.optional().describe(
|
|
2623
|
+
"A whsec_ signing secret from the receiving service, such as a Grok automation webhook trigger. Every delivery then also carries webhook-id, webhook-timestamp and webhook-signature. Write-only: stored encrypted and never returned."
|
|
2624
|
+
),
|
|
2609
2625
|
idempotency_key: idempotencyKeySchema
|
|
2610
2626
|
});
|
|
2611
2627
|
var updateWebhookInputSchema = z.object({
|
|
@@ -2616,9 +2632,15 @@ var updateWebhookInputSchema = z.object({
|
|
|
2616
2632
|
active: z.boolean().optional(),
|
|
2617
2633
|
mailbox_ids: webhookScopeIdsInputSchema.optional().describe("Replace the mailbox filter. Null or [] clears it."),
|
|
2618
2634
|
domain_ids: webhookScopeIdsInputSchema.optional().describe("Replace the domain filter. Null or [] clears it."),
|
|
2635
|
+
authorization: webhookAuthorizationInputSchema.nullable().optional().describe(
|
|
2636
|
+
"Replace the Authorization header sent with every delivery. Null removes it; omit to keep it. Write-only: never returned."
|
|
2637
|
+
),
|
|
2638
|
+
standard_webhooks_secret: webhookStandardWebhooksSecretInputSchema.nullable().optional().describe(
|
|
2639
|
+
"Replace the Standard Webhooks signing secret. Null stops the signatures; omit to keep it. Write-only: never returned."
|
|
2640
|
+
),
|
|
2619
2641
|
idempotency_key: idempotencyKeySchema
|
|
2620
2642
|
}).refine(
|
|
2621
|
-
(value) => value.url !== void 0 || value.events !== void 0 || value.description !== void 0 || value.active !== void 0 || value.mailbox_ids !== void 0 || value.domain_ids !== void 0,
|
|
2643
|
+
(value) => value.url !== void 0 || value.events !== void 0 || value.description !== void 0 || value.active !== void 0 || value.mailbox_ids !== void 0 || value.domain_ids !== void 0 || value.authorization !== void 0 || value.standard_webhooks_secret !== void 0,
|
|
2622
2644
|
{
|
|
2623
2645
|
message: "Provide at least one webhook field to update."
|
|
2624
2646
|
}
|
|
@@ -7264,7 +7286,7 @@ function registerTools(rawServer, client, allowedTools, grantedOrganizations = [
|
|
|
7264
7286
|
"shipmail_create_webhook",
|
|
7265
7287
|
{
|
|
7266
7288
|
title: "Create Webhook",
|
|
7267
|
-
description: "Create a webhook endpoint. Its signing secret appears once in the tool result and conversation log.",
|
|
7289
|
+
description: "Create a webhook endpoint. Its signing secret appears once in the tool result and conversation log. Optional authorization is sent as the Authorization header of every delivery, and optional standard_webhooks_secret signs every delivery the way Standard Webhooks receivers such as Grok automations check. Both are write-only and never echoed back, but the values you pass appear in the conversation log.",
|
|
7268
7290
|
inputSchema: createWebhookInputSchema,
|
|
7269
7291
|
outputSchema: webhookWithSecretOutputSchema,
|
|
7270
7292
|
annotations: {
|
|
@@ -7284,7 +7306,7 @@ function registerTools(rawServer, client, allowedTools, grantedOrganizations = [
|
|
|
7284
7306
|
"shipmail_update_webhook",
|
|
7285
7307
|
{
|
|
7286
7308
|
title: "Update Webhook",
|
|
7287
|
-
description: "Update webhook URL, subscribed events, description, active state,
|
|
7309
|
+
description: "Update webhook URL, subscribed events, description, active state, mailbox and domain filter, the Authorization header sent with deliveries, or the Standard Webhooks signing secret. A URL change redirects future deliveries. authorization and standard_webhooks_secret are write-only and never echoed back; null removes them.",
|
|
7288
7310
|
inputSchema: updateWebhookInputSchema,
|
|
7289
7311
|
outputSchema: webhookOutputSchema,
|
|
7290
7312
|
annotations: {
|
|
@@ -7302,6 +7324,10 @@ function registerTools(rawServer, client, allowedTools, grantedOrganizations = [
|
|
|
7302
7324
|
if (args.active !== void 0) update.active = args.active;
|
|
7303
7325
|
if (args.mailbox_ids !== void 0) update.mailbox_ids = args.mailbox_ids;
|
|
7304
7326
|
if (args.domain_ids !== void 0) update.domain_ids = args.domain_ids;
|
|
7327
|
+
if (args.authorization !== void 0) update.authorization = args.authorization;
|
|
7328
|
+
if (args.standard_webhooks_secret !== void 0) {
|
|
7329
|
+
update.standard_webhooks_secret = args.standard_webhooks_secret;
|
|
7330
|
+
}
|
|
7305
7331
|
return {
|
|
7306
7332
|
webhook: await client.webhooks.update(args.id, update, mutationOptions(args))
|
|
7307
7333
|
};
|
|
@@ -8588,7 +8614,7 @@ function registerTools(rawServer, client, allowedTools, grantedOrganizations = [
|
|
|
8588
8614
|
}
|
|
8589
8615
|
|
|
8590
8616
|
// src/version.ts
|
|
8591
|
-
var VERSION = "0.9.
|
|
8617
|
+
var VERSION = "0.9.5";
|
|
8592
8618
|
|
|
8593
8619
|
// src/server.ts
|
|
8594
8620
|
var SHIPMAIL_MCP_INSTRUCTIONS = `Shipmail MCP exposes the business email and calendar tools authorized by the connection's current Shipmail permissions.
|
package/dist/server.js
CHANGED
|
@@ -1155,6 +1155,7 @@ var mailboxRuleConditionSchema = z.lazy(
|
|
|
1155
1155
|
"from_is",
|
|
1156
1156
|
"from_contains",
|
|
1157
1157
|
"recipient_is",
|
|
1158
|
+
"recipient_contains",
|
|
1158
1159
|
"plus_tag_is",
|
|
1159
1160
|
"subject_contains"
|
|
1160
1161
|
]),
|
|
@@ -1703,6 +1704,10 @@ var webhookSchema = z.object({
|
|
|
1703
1704
|
description: z.string().nullable(),
|
|
1704
1705
|
mailbox_ids: z.array(z.string()).nullable(),
|
|
1705
1706
|
domain_ids: z.array(z.string()).nullable(),
|
|
1707
|
+
has_authorization: z.boolean().describe("True when deliveries carry an Authorization header. The value is never returned."),
|
|
1708
|
+
has_standard_webhooks_secret: z.boolean().describe(
|
|
1709
|
+
"True when deliveries carry Standard Webhooks signatures from a stored signing secret. The secret is never returned."
|
|
1710
|
+
),
|
|
1706
1711
|
created_at: z.string(),
|
|
1707
1712
|
updated_at: z.string()
|
|
1708
1713
|
});
|
|
@@ -2504,6 +2509,11 @@ var webhookDeliveryStatusSchema = z.enum(WEBHOOK_DELIVERY_STATUSES);
|
|
|
2504
2509
|
var listWebhooksInputSchema = paginationInputSchema;
|
|
2505
2510
|
var listMembersInputSchema = paginationInputSchema;
|
|
2506
2511
|
var webhookScopeIdsInputSchema = z.array(idSchema).max(100).nullable();
|
|
2512
|
+
var webhookAuthorizationInputSchema = z.string().min(1).max(1024).regex(/^[\x20-\x7E]+$/u, "authorization must contain only printable ASCII characters.");
|
|
2513
|
+
var webhookStandardWebhooksSecretInputSchema = z.string().regex(
|
|
2514
|
+
/^whsec_(?:[A-Za-z0-9+/]+={0,2}|[A-Za-z0-9_-]+)$/u,
|
|
2515
|
+
"standard_webhooks_secret must be whsec_ followed by the base64 key from the receiving service."
|
|
2516
|
+
).max(128);
|
|
2507
2517
|
var createWebhookInputSchema = z.object({
|
|
2508
2518
|
url: publicHttpsUrlSchema,
|
|
2509
2519
|
events: z.array(webhookEventSchema).min(1).max(WEBHOOK_EVENT_TYPES.length),
|
|
@@ -2512,6 +2522,12 @@ var createWebhookInputSchema = z.object({
|
|
|
2512
2522
|
"Only deliver events for these mailbox IDs (plus mailboxes of domain_ids). Omit for every mailbox. Organization events are always delivered."
|
|
2513
2523
|
),
|
|
2514
2524
|
domain_ids: webhookScopeIdsInputSchema.optional().describe("Only deliver events for these domain IDs and their mailboxes."),
|
|
2525
|
+
authorization: webhookAuthorizationInputSchema.optional().describe(
|
|
2526
|
+
'Sent verbatim as the Authorization header of every delivery, for example "Bearer <key>". Write-only: stored encrypted and never returned.'
|
|
2527
|
+
),
|
|
2528
|
+
standard_webhooks_secret: webhookStandardWebhooksSecretInputSchema.optional().describe(
|
|
2529
|
+
"A whsec_ signing secret from the receiving service, such as a Grok automation webhook trigger. Every delivery then also carries webhook-id, webhook-timestamp and webhook-signature. Write-only: stored encrypted and never returned."
|
|
2530
|
+
),
|
|
2515
2531
|
idempotency_key: idempotencyKeySchema
|
|
2516
2532
|
});
|
|
2517
2533
|
var updateWebhookInputSchema = z.object({
|
|
@@ -2522,9 +2538,15 @@ var updateWebhookInputSchema = z.object({
|
|
|
2522
2538
|
active: z.boolean().optional(),
|
|
2523
2539
|
mailbox_ids: webhookScopeIdsInputSchema.optional().describe("Replace the mailbox filter. Null or [] clears it."),
|
|
2524
2540
|
domain_ids: webhookScopeIdsInputSchema.optional().describe("Replace the domain filter. Null or [] clears it."),
|
|
2541
|
+
authorization: webhookAuthorizationInputSchema.nullable().optional().describe(
|
|
2542
|
+
"Replace the Authorization header sent with every delivery. Null removes it; omit to keep it. Write-only: never returned."
|
|
2543
|
+
),
|
|
2544
|
+
standard_webhooks_secret: webhookStandardWebhooksSecretInputSchema.nullable().optional().describe(
|
|
2545
|
+
"Replace the Standard Webhooks signing secret. Null stops the signatures; omit to keep it. Write-only: never returned."
|
|
2546
|
+
),
|
|
2525
2547
|
idempotency_key: idempotencyKeySchema
|
|
2526
2548
|
}).refine(
|
|
2527
|
-
(value) => value.url !== void 0 || value.events !== void 0 || value.description !== void 0 || value.active !== void 0 || value.mailbox_ids !== void 0 || value.domain_ids !== void 0,
|
|
2549
|
+
(value) => value.url !== void 0 || value.events !== void 0 || value.description !== void 0 || value.active !== void 0 || value.mailbox_ids !== void 0 || value.domain_ids !== void 0 || value.authorization !== void 0 || value.standard_webhooks_secret !== void 0,
|
|
2528
2550
|
{
|
|
2529
2551
|
message: "Provide at least one webhook field to update."
|
|
2530
2552
|
}
|
|
@@ -7177,7 +7199,7 @@ function registerTools(rawServer, client, allowedTools, grantedOrganizations = [
|
|
|
7177
7199
|
"shipmail_create_webhook",
|
|
7178
7200
|
{
|
|
7179
7201
|
title: "Create Webhook",
|
|
7180
|
-
description: "Create a webhook endpoint. Its signing secret appears once in the tool result and conversation log.",
|
|
7202
|
+
description: "Create a webhook endpoint. Its signing secret appears once in the tool result and conversation log. Optional authorization is sent as the Authorization header of every delivery, and optional standard_webhooks_secret signs every delivery the way Standard Webhooks receivers such as Grok automations check. Both are write-only and never echoed back, but the values you pass appear in the conversation log.",
|
|
7181
7203
|
inputSchema: createWebhookInputSchema,
|
|
7182
7204
|
outputSchema: webhookWithSecretOutputSchema,
|
|
7183
7205
|
annotations: {
|
|
@@ -7197,7 +7219,7 @@ function registerTools(rawServer, client, allowedTools, grantedOrganizations = [
|
|
|
7197
7219
|
"shipmail_update_webhook",
|
|
7198
7220
|
{
|
|
7199
7221
|
title: "Update Webhook",
|
|
7200
|
-
description: "Update webhook URL, subscribed events, description, active state,
|
|
7222
|
+
description: "Update webhook URL, subscribed events, description, active state, mailbox and domain filter, the Authorization header sent with deliveries, or the Standard Webhooks signing secret. A URL change redirects future deliveries. authorization and standard_webhooks_secret are write-only and never echoed back; null removes them.",
|
|
7201
7223
|
inputSchema: updateWebhookInputSchema,
|
|
7202
7224
|
outputSchema: webhookOutputSchema,
|
|
7203
7225
|
annotations: {
|
|
@@ -7215,6 +7237,10 @@ function registerTools(rawServer, client, allowedTools, grantedOrganizations = [
|
|
|
7215
7237
|
if (args.active !== void 0) update.active = args.active;
|
|
7216
7238
|
if (args.mailbox_ids !== void 0) update.mailbox_ids = args.mailbox_ids;
|
|
7217
7239
|
if (args.domain_ids !== void 0) update.domain_ids = args.domain_ids;
|
|
7240
|
+
if (args.authorization !== void 0) update.authorization = args.authorization;
|
|
7241
|
+
if (args.standard_webhooks_secret !== void 0) {
|
|
7242
|
+
update.standard_webhooks_secret = args.standard_webhooks_secret;
|
|
7243
|
+
}
|
|
7218
7244
|
return {
|
|
7219
7245
|
webhook: await client.webhooks.update(args.id, update, mutationOptions(args))
|
|
7220
7246
|
};
|
|
@@ -8501,7 +8527,7 @@ function registerTools(rawServer, client, allowedTools, grantedOrganizations = [
|
|
|
8501
8527
|
}
|
|
8502
8528
|
|
|
8503
8529
|
// src/version.ts
|
|
8504
|
-
var VERSION = "0.9.
|
|
8530
|
+
var VERSION = "0.9.5";
|
|
8505
8531
|
|
|
8506
8532
|
// src/server.ts
|
|
8507
8533
|
var SHIPMAIL_MCP_INSTRUCTIONS = `Shipmail MCP exposes the business email and calendar tools authorized by the connection's current Shipmail permissions.
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"displayName": "Shipmail",
|
|
3
3
|
"name": "shipmail",
|
|
4
|
-
"version": "0.9.
|
|
5
|
-
"description": "Modern email for your business. Inboxes, calendars, newsletters, bookings
|
|
4
|
+
"version": "0.9.5",
|
|
5
|
+
"description": "Modern email for your business. Inboxes, calendars, newsletters, bookings and an AI assistant, plus transactional email and an API for your agents. Everything on your own domain, in one subscription.",
|
|
6
6
|
"author": {
|
|
7
7
|
"name": "Shipmail",
|
|
8
8
|
"email": "hi@shipmail.to",
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "shipmail",
|
|
3
|
-
"version": "0.9.
|
|
4
|
-
"description": "Modern email for your business. Inboxes, calendars, newsletters, bookings
|
|
3
|
+
"version": "0.9.5",
|
|
4
|
+
"description": "Modern email for your business. Inboxes, calendars, newsletters, bookings and an AI assistant, plus transactional email and an API for your agents. Everything on your own domain, in one subscription.",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Shipmail",
|
|
7
7
|
"email": "hi@shipmail.to",
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "shipmail",
|
|
3
|
+
"version": "0.9.5",
|
|
4
|
+
"description": "Modern email for your business. Inboxes, calendars, newsletters, bookings and an AI assistant, plus transactional email and an API for your agents. Everything on your own domain, in one subscription.",
|
|
5
|
+
"author": {
|
|
6
|
+
"name": "Shipmail",
|
|
7
|
+
"email": "hi@shipmail.to"
|
|
8
|
+
},
|
|
9
|
+
"homepage": "https://shipmail.to/docs/mcp",
|
|
10
|
+
"repository": "https://github.com/shipmail-to/shipmail-mcp",
|
|
11
|
+
"license": "MIT",
|
|
12
|
+
"logo": "./assets/shipmail-logo.svg",
|
|
13
|
+
"keywords": [
|
|
14
|
+
"email",
|
|
15
|
+
"business-email",
|
|
16
|
+
"custom-domain",
|
|
17
|
+
"agent-inbox",
|
|
18
|
+
"calendar",
|
|
19
|
+
"mcp"
|
|
20
|
+
],
|
|
21
|
+
"skills": "./skills/",
|
|
22
|
+
"mcpServers": "./.mcp.json"
|
|
23
|
+
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "shipmail",
|
|
3
|
-
"version": "0.9.
|
|
4
|
-
"description": "Modern email for your business. Inboxes, calendars, newsletters, bookings
|
|
3
|
+
"version": "0.9.5",
|
|
4
|
+
"description": "Modern email for your business. Inboxes, calendars, newsletters, bookings and an AI assistant, plus transactional email and an API for your agents. Everything on your own domain, in one subscription.",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Shipmail",
|
|
7
7
|
"email": "hi@shipmail.to",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: shipmail
|
|
3
|
-
description: Modern email for your business. Inboxes, calendars, newsletters, bookings
|
|
3
|
+
description: Modern email for your business. Inboxes, calendars, newsletters, bookings and an AI assistant, plus transactional email and an API for your agents. Operate mailboxes, agent inboxes, calendars, booking pages, newsletters, webhooks, and related account resources through the Shipmail MCP server. Use when the user asks to read or triage a Shipmail inbox, draft or send email, reply to a message or thread, manage a mailbox or domain, check availability, schedule an event, or automate an email workflow.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Shipmail
|
package/package.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "shipmail-mcp",
|
|
3
|
-
"version": "0.9.
|
|
3
|
+
"version": "0.9.5",
|
|
4
4
|
"mcpName": "io.github.shipmail-to/shipmail-mcp",
|
|
5
|
-
"description": "Official Model Context Protocol (MCP) server for Shipmail
|
|
5
|
+
"description": "Official Model Context Protocol (MCP) server for Shipmail. Modern email for your business, plus transactional email and an API for your agents.",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"packageManager": "bun@1.3.10",
|
|
8
8
|
"bin": {
|
|
@@ -18,6 +18,7 @@
|
|
|
18
18
|
"smithery.yaml",
|
|
19
19
|
".claude-plugin",
|
|
20
20
|
".codex-plugin",
|
|
21
|
+
".cursor-plugin",
|
|
21
22
|
".plugin",
|
|
22
23
|
".mcp.json",
|
|
23
24
|
"assets",
|
|
@@ -68,7 +69,7 @@
|
|
|
68
69
|
},
|
|
69
70
|
"dependencies": {
|
|
70
71
|
"@modelcontextprotocol/server": "2.0.0",
|
|
71
|
-
"shipmail": "0.6.
|
|
72
|
+
"shipmail": "0.6.4",
|
|
72
73
|
"zod": "4.4.3"
|
|
73
74
|
},
|
|
74
75
|
"devDependencies": {
|
package/server.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
|
|
3
3
|
"name": "io.github.shipmail-to/shipmail-mcp",
|
|
4
|
-
"description": "Shipmail MCP server
|
|
4
|
+
"description": "Shipmail MCP server. Modern email for your business, with an API for your agents.",
|
|
5
5
|
"repository": {
|
|
6
6
|
"url": "https://github.com/shipmail-to/shipmail-mcp",
|
|
7
7
|
"source": "github"
|
|
8
8
|
},
|
|
9
|
-
"version": "0.9.
|
|
9
|
+
"version": "0.9.5",
|
|
10
10
|
"websiteUrl": "https://shipmail.to/docs/mcp",
|
|
11
11
|
"remotes": [
|
|
12
12
|
{
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
"registryType": "npm",
|
|
28
28
|
"registryBaseUrl": "https://registry.npmjs.org",
|
|
29
29
|
"identifier": "shipmail-mcp",
|
|
30
|
-
"version": "0.9.
|
|
30
|
+
"version": "0.9.5",
|
|
31
31
|
"transport": {
|
|
32
32
|
"type": "stdio"
|
|
33
33
|
},
|
package/skills/shipmail/SKILL.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: shipmail
|
|
3
|
-
description: Modern email for your business. Inboxes, calendars, newsletters, bookings
|
|
3
|
+
description: Modern email for your business. Inboxes, calendars, newsletters, bookings and an AI assistant, plus transactional email and an API for your agents. Operate mailboxes, agent inboxes, calendars, booking pages, newsletters, webhooks, and related account resources through the Shipmail MCP server. Use when the user asks to read or triage a Shipmail inbox, draft or send email, reply to a message or thread, manage a mailbox or domain, check availability, schedule an event, or automate an email workflow.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Shipmail
|
package/smithery.yaml
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Smithery configuration file: https://smithery.ai/docs/build/project-config/smithery-yaml
|
|
2
2
|
name: shipmail-mcp
|
|
3
|
-
version: 0.9.
|
|
3
|
+
version: 0.9.5
|
|
4
4
|
description: Official Shipmail MCP server for AI-agent custom-domain business email inboxes with REST API and webhooks.
|
|
5
5
|
author: Shipmail
|
|
6
6
|
repository: https://github.com/shipmail-to/shipmail-mcp
|