shipmail-mcp 0.5.7 → 0.5.9
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/dist/index.js +21 -7
- package/dist/server.js +21 -7
- package/package.json +2 -2
- package/server.json +2 -2
- package/smithery.yaml +1 -1
package/dist/index.js
CHANGED
|
@@ -902,6 +902,7 @@ var NEWSLETTER_DOMAIN_STATUSES = [
|
|
|
902
902
|
];
|
|
903
903
|
var NEWSLETTER_DOMAIN_RECORD_STATUSES = ["pending", "verified", "failed"];
|
|
904
904
|
var NEWSLETTER_ARCHIVE_VISIBILITIES = ["private", "public"];
|
|
905
|
+
var NEWSLETTER_STYLING_MODES = ["styled", "plain"];
|
|
905
906
|
var NEWSLETTER_PREFLIGHT_STATUSES = ["not_run", "passed", "warning", "failed"];
|
|
906
907
|
var NEWSLETTER_PREFLIGHT_ITEM_STATUSES = ["pass", "warn", "fail"];
|
|
907
908
|
var NEWSLETTER_TEST_SEND_STATUSES = ["pending", "sent", "failed"];
|
|
@@ -2271,6 +2272,8 @@ var audienceSchema = z.object({
|
|
|
2271
2272
|
member_count: z.number(),
|
|
2272
2273
|
subscribed_count: z.number(),
|
|
2273
2274
|
consent_source: z.string().nullable(),
|
|
2275
|
+
feed_enabled: z.boolean(),
|
|
2276
|
+
feed_url: z.string().nullable(),
|
|
2274
2277
|
created_at: z.string(),
|
|
2275
2278
|
updated_at: z.string()
|
|
2276
2279
|
});
|
|
@@ -2396,6 +2399,9 @@ var newsletterSchema = z.object({
|
|
|
2396
2399
|
body_text: z.string().nullable(),
|
|
2397
2400
|
status: z.enum(NEWSLETTER_STATUSES),
|
|
2398
2401
|
archive_visibility: z.enum(NEWSLETTER_ARCHIVE_VISIBILITIES),
|
|
2402
|
+
styling_mode: z.enum(NEWSLETTER_STYLING_MODES).describe(
|
|
2403
|
+
"styled applies Shipmail's email theme. plain sends your HTML without injected styles, width, or centering, so the reader's email client styles it."
|
|
2404
|
+
),
|
|
2399
2405
|
preflight_status: z.enum(NEWSLETTER_PREFLIGHT_STATUSES),
|
|
2400
2406
|
preflight_results: z.record(z.string(), z.unknown()),
|
|
2401
2407
|
send_window_hours: z.number().int(),
|
|
@@ -2633,7 +2639,10 @@ var newsletterDraftFieldsInputSchema = {
|
|
|
2633
2639
|
body_text: z.string().max(25e4).nullish(),
|
|
2634
2640
|
blocks: z.array(newsletterBlockInputSchema).min(1).max(200).optional(),
|
|
2635
2641
|
send_window_hours: z.number().int().min(1).max(24).optional(),
|
|
2636
|
-
archive_visibility: z.enum(NEWSLETTER_ARCHIVE_VISIBILITIES).optional()
|
|
2642
|
+
archive_visibility: z.enum(NEWSLETTER_ARCHIVE_VISIBILITIES).optional(),
|
|
2643
|
+
styling_mode: z.enum(NEWSLETTER_STYLING_MODES).optional().describe(
|
|
2644
|
+
"styled applies Shipmail's email theme. plain sends your HTML without injected styles, width, or centering, so the reader's email client styles it."
|
|
2645
|
+
)
|
|
2637
2646
|
};
|
|
2638
2647
|
var createNewsletterInputSchema = z.object({
|
|
2639
2648
|
...newsletterDraftFieldsInputSchema,
|
|
@@ -2684,6 +2693,9 @@ var createNewsletterFromChangelogInputSchema = z.object({
|
|
|
2684
2693
|
}).optional(),
|
|
2685
2694
|
send_window_hours: z.number().int().min(1).max(24).optional(),
|
|
2686
2695
|
archive_visibility: z.enum(NEWSLETTER_ARCHIVE_VISIBILITIES).optional(),
|
|
2696
|
+
styling_mode: z.enum(NEWSLETTER_STYLING_MODES).optional().describe(
|
|
2697
|
+
"styled applies Shipmail's email theme. plain sends your HTML without injected styles, width, or centering, so the reader's email client styles it."
|
|
2698
|
+
),
|
|
2687
2699
|
idempotency_key: idempotencyKeySchema
|
|
2688
2700
|
});
|
|
2689
2701
|
var updateNewsletterInputSchema = z.object({
|
|
@@ -2699,9 +2711,10 @@ var updateNewsletterInputSchema = z.object({
|
|
|
2699
2711
|
blocks: newsletterDraftFieldsInputSchema.blocks,
|
|
2700
2712
|
send_window_hours: newsletterDraftFieldsInputSchema.send_window_hours,
|
|
2701
2713
|
archive_visibility: newsletterDraftFieldsInputSchema.archive_visibility,
|
|
2714
|
+
styling_mode: newsletterDraftFieldsInputSchema.styling_mode,
|
|
2702
2715
|
idempotency_key: idempotencyKeySchema
|
|
2703
2716
|
}).refine(
|
|
2704
|
-
(value) => value.audience_id !== void 0 || value.newsletter_domain_id !== void 0 || value.name !== void 0 || value.subject !== void 0 || value.preview_text !== void 0 || value.from_name !== void 0 || value.body_html !== void 0 || value.body_text !== void 0 || value.blocks !== void 0 || value.send_window_hours !== void 0 || value.archive_visibility !== void 0,
|
|
2717
|
+
(value) => value.audience_id !== void 0 || value.newsletter_domain_id !== void 0 || value.name !== void 0 || value.subject !== void 0 || value.preview_text !== void 0 || value.from_name !== void 0 || value.body_html !== void 0 || value.body_text !== void 0 || value.blocks !== void 0 || value.send_window_hours !== void 0 || value.archive_visibility !== void 0 || value.styling_mode !== void 0,
|
|
2705
2718
|
{
|
|
2706
2719
|
message: "Provide at least one newsletter field to update."
|
|
2707
2720
|
}
|
|
@@ -5993,7 +6006,7 @@ function registerTools(rawServer, client, allowedTools, grantedOrganizations = [
|
|
|
5993
6006
|
"shipmail_create_newsletter",
|
|
5994
6007
|
{
|
|
5995
6008
|
title: "Create Newsletter",
|
|
5996
|
-
description: "Create a newsletter draft for an audience and sending domain. Prefer blocks for body content; Shipmail renders them to email-safe HTML and text. Provide at least one of blocks, body_html, or body_text. Drafts must pass preflight before scheduling.",
|
|
6009
|
+
description: "Create a newsletter draft for an audience and sending domain. Prefer blocks for body content; Shipmail renders them to email-safe HTML and text. Provide at least one of blocks, body_html, or body_text. Drafts must pass preflight before scheduling. styled applies Shipmail's email theme. plain sends your HTML without injected styles, width, or centering, so the reader's email client styles it.",
|
|
5997
6010
|
inputSchema: createNewsletterInputSchema,
|
|
5998
6011
|
outputSchema: newsletterOutputSchema,
|
|
5999
6012
|
annotations: {
|
|
@@ -6016,7 +6029,7 @@ function registerTools(rawServer, client, allowedTools, grantedOrganizations = [
|
|
|
6016
6029
|
"shipmail_create_newsletter_from_changelog",
|
|
6017
6030
|
{
|
|
6018
6031
|
title: "Create Newsletter From Changelog",
|
|
6019
|
-
description: "Create a newsletter draft from changelog entries, attached media, tone, and an optional final CTA. ShipMail renders the entries into email-safe blocks.",
|
|
6032
|
+
description: "Create a newsletter draft from changelog entries, attached media, tone, and an optional final CTA. ShipMail renders the entries into email-safe blocks. styled applies Shipmail's email theme. plain sends your HTML without injected styles, width, or centering, so the reader's email client styles it.",
|
|
6020
6033
|
inputSchema: createNewsletterFromChangelogInputSchema,
|
|
6021
6034
|
outputSchema: newsletterOutputSchema,
|
|
6022
6035
|
annotations: {
|
|
@@ -6039,7 +6052,7 @@ function registerTools(rawServer, client, allowedTools, grantedOrganizations = [
|
|
|
6039
6052
|
"shipmail_update_newsletter",
|
|
6040
6053
|
{
|
|
6041
6054
|
title: "Update Newsletter",
|
|
6042
|
-
description: "Update an editable newsletter draft or future scheduled newsletter. Prefer blocks for body content. When blocks already exist, body_text alone updates the plain-text override. Sending and sent newsletters cannot be edited. A concurrent save returns conflict (409); read the latest newsletter before retrying.",
|
|
6055
|
+
description: "Update an editable newsletter draft or future scheduled newsletter. Prefer blocks for body content. When blocks already exist, body_text alone updates the plain-text override. Sending and sent newsletters cannot be edited. A concurrent save returns conflict (409); read the latest newsletter before retrying. styled applies Shipmail's email theme. plain sends your HTML without injected styles, width, or centering, so the reader's email client styles it.",
|
|
6043
6056
|
inputSchema: updateNewsletterInputSchema,
|
|
6044
6057
|
outputSchema: newsletterOutputSchema,
|
|
6045
6058
|
annotations: {
|
|
@@ -6065,7 +6078,8 @@ function registerTools(rawServer, client, allowedTools, grantedOrganizations = [
|
|
|
6065
6078
|
...rest.body_text !== void 0 ? { body_text: rest.body_text } : {},
|
|
6066
6079
|
...rest.blocks !== void 0 ? { blocks: rest.blocks } : {},
|
|
6067
6080
|
...rest.send_window_hours !== void 0 ? { send_window_hours: rest.send_window_hours } : {},
|
|
6068
|
-
...rest.archive_visibility !== void 0 ? { archive_visibility: rest.archive_visibility } : {}
|
|
6081
|
+
...rest.archive_visibility !== void 0 ? { archive_visibility: rest.archive_visibility } : {},
|
|
6082
|
+
...rest.styling_mode !== void 0 ? { styling_mode: rest.styling_mode } : {}
|
|
6069
6083
|
},
|
|
6070
6084
|
mutationOptions(args)
|
|
6071
6085
|
)
|
|
@@ -6903,7 +6917,7 @@ function registerTools(rawServer, client, allowedTools, grantedOrganizations = [
|
|
|
6903
6917
|
}
|
|
6904
6918
|
|
|
6905
6919
|
// src/version.ts
|
|
6906
|
-
var VERSION = "0.5.
|
|
6920
|
+
var VERSION = "0.5.9";
|
|
6907
6921
|
|
|
6908
6922
|
// src/server.ts
|
|
6909
6923
|
var INSTRUCTIONS = `ShipMail MCP exposes the business email and calendar tools authorized by the connection's current ShipMail permissions.
|
package/dist/server.js
CHANGED
|
@@ -805,6 +805,7 @@ var NEWSLETTER_DOMAIN_STATUSES = [
|
|
|
805
805
|
];
|
|
806
806
|
var NEWSLETTER_DOMAIN_RECORD_STATUSES = ["pending", "verified", "failed"];
|
|
807
807
|
var NEWSLETTER_ARCHIVE_VISIBILITIES = ["private", "public"];
|
|
808
|
+
var NEWSLETTER_STYLING_MODES = ["styled", "plain"];
|
|
808
809
|
var NEWSLETTER_PREFLIGHT_STATUSES = ["not_run", "passed", "warning", "failed"];
|
|
809
810
|
var NEWSLETTER_PREFLIGHT_ITEM_STATUSES = ["pass", "warn", "fail"];
|
|
810
811
|
var NEWSLETTER_TEST_SEND_STATUSES = ["pending", "sent", "failed"];
|
|
@@ -2174,6 +2175,8 @@ var audienceSchema = z.object({
|
|
|
2174
2175
|
member_count: z.number(),
|
|
2175
2176
|
subscribed_count: z.number(),
|
|
2176
2177
|
consent_source: z.string().nullable(),
|
|
2178
|
+
feed_enabled: z.boolean(),
|
|
2179
|
+
feed_url: z.string().nullable(),
|
|
2177
2180
|
created_at: z.string(),
|
|
2178
2181
|
updated_at: z.string()
|
|
2179
2182
|
});
|
|
@@ -2299,6 +2302,9 @@ var newsletterSchema = z.object({
|
|
|
2299
2302
|
body_text: z.string().nullable(),
|
|
2300
2303
|
status: z.enum(NEWSLETTER_STATUSES),
|
|
2301
2304
|
archive_visibility: z.enum(NEWSLETTER_ARCHIVE_VISIBILITIES),
|
|
2305
|
+
styling_mode: z.enum(NEWSLETTER_STYLING_MODES).describe(
|
|
2306
|
+
"styled applies Shipmail's email theme. plain sends your HTML without injected styles, width, or centering, so the reader's email client styles it."
|
|
2307
|
+
),
|
|
2302
2308
|
preflight_status: z.enum(NEWSLETTER_PREFLIGHT_STATUSES),
|
|
2303
2309
|
preflight_results: z.record(z.string(), z.unknown()),
|
|
2304
2310
|
send_window_hours: z.number().int(),
|
|
@@ -2536,7 +2542,10 @@ var newsletterDraftFieldsInputSchema = {
|
|
|
2536
2542
|
body_text: z.string().max(25e4).nullish(),
|
|
2537
2543
|
blocks: z.array(newsletterBlockInputSchema).min(1).max(200).optional(),
|
|
2538
2544
|
send_window_hours: z.number().int().min(1).max(24).optional(),
|
|
2539
|
-
archive_visibility: z.enum(NEWSLETTER_ARCHIVE_VISIBILITIES).optional()
|
|
2545
|
+
archive_visibility: z.enum(NEWSLETTER_ARCHIVE_VISIBILITIES).optional(),
|
|
2546
|
+
styling_mode: z.enum(NEWSLETTER_STYLING_MODES).optional().describe(
|
|
2547
|
+
"styled applies Shipmail's email theme. plain sends your HTML without injected styles, width, or centering, so the reader's email client styles it."
|
|
2548
|
+
)
|
|
2540
2549
|
};
|
|
2541
2550
|
var createNewsletterInputSchema = z.object({
|
|
2542
2551
|
...newsletterDraftFieldsInputSchema,
|
|
@@ -2587,6 +2596,9 @@ var createNewsletterFromChangelogInputSchema = z.object({
|
|
|
2587
2596
|
}).optional(),
|
|
2588
2597
|
send_window_hours: z.number().int().min(1).max(24).optional(),
|
|
2589
2598
|
archive_visibility: z.enum(NEWSLETTER_ARCHIVE_VISIBILITIES).optional(),
|
|
2599
|
+
styling_mode: z.enum(NEWSLETTER_STYLING_MODES).optional().describe(
|
|
2600
|
+
"styled applies Shipmail's email theme. plain sends your HTML without injected styles, width, or centering, so the reader's email client styles it."
|
|
2601
|
+
),
|
|
2590
2602
|
idempotency_key: idempotencyKeySchema
|
|
2591
2603
|
});
|
|
2592
2604
|
var updateNewsletterInputSchema = z.object({
|
|
@@ -2602,9 +2614,10 @@ var updateNewsletterInputSchema = z.object({
|
|
|
2602
2614
|
blocks: newsletterDraftFieldsInputSchema.blocks,
|
|
2603
2615
|
send_window_hours: newsletterDraftFieldsInputSchema.send_window_hours,
|
|
2604
2616
|
archive_visibility: newsletterDraftFieldsInputSchema.archive_visibility,
|
|
2617
|
+
styling_mode: newsletterDraftFieldsInputSchema.styling_mode,
|
|
2605
2618
|
idempotency_key: idempotencyKeySchema
|
|
2606
2619
|
}).refine(
|
|
2607
|
-
(value) => value.audience_id !== void 0 || value.newsletter_domain_id !== void 0 || value.name !== void 0 || value.subject !== void 0 || value.preview_text !== void 0 || value.from_name !== void 0 || value.body_html !== void 0 || value.body_text !== void 0 || value.blocks !== void 0 || value.send_window_hours !== void 0 || value.archive_visibility !== void 0,
|
|
2620
|
+
(value) => value.audience_id !== void 0 || value.newsletter_domain_id !== void 0 || value.name !== void 0 || value.subject !== void 0 || value.preview_text !== void 0 || value.from_name !== void 0 || value.body_html !== void 0 || value.body_text !== void 0 || value.blocks !== void 0 || value.send_window_hours !== void 0 || value.archive_visibility !== void 0 || value.styling_mode !== void 0,
|
|
2608
2621
|
{
|
|
2609
2622
|
message: "Provide at least one newsletter field to update."
|
|
2610
2623
|
}
|
|
@@ -5896,7 +5909,7 @@ function registerTools(rawServer, client, allowedTools, grantedOrganizations = [
|
|
|
5896
5909
|
"shipmail_create_newsletter",
|
|
5897
5910
|
{
|
|
5898
5911
|
title: "Create Newsletter",
|
|
5899
|
-
description: "Create a newsletter draft for an audience and sending domain. Prefer blocks for body content; Shipmail renders them to email-safe HTML and text. Provide at least one of blocks, body_html, or body_text. Drafts must pass preflight before scheduling.",
|
|
5912
|
+
description: "Create a newsletter draft for an audience and sending domain. Prefer blocks for body content; Shipmail renders them to email-safe HTML and text. Provide at least one of blocks, body_html, or body_text. Drafts must pass preflight before scheduling. styled applies Shipmail's email theme. plain sends your HTML without injected styles, width, or centering, so the reader's email client styles it.",
|
|
5900
5913
|
inputSchema: createNewsletterInputSchema,
|
|
5901
5914
|
outputSchema: newsletterOutputSchema,
|
|
5902
5915
|
annotations: {
|
|
@@ -5919,7 +5932,7 @@ function registerTools(rawServer, client, allowedTools, grantedOrganizations = [
|
|
|
5919
5932
|
"shipmail_create_newsletter_from_changelog",
|
|
5920
5933
|
{
|
|
5921
5934
|
title: "Create Newsletter From Changelog",
|
|
5922
|
-
description: "Create a newsletter draft from changelog entries, attached media, tone, and an optional final CTA. ShipMail renders the entries into email-safe blocks.",
|
|
5935
|
+
description: "Create a newsletter draft from changelog entries, attached media, tone, and an optional final CTA. ShipMail renders the entries into email-safe blocks. styled applies Shipmail's email theme. plain sends your HTML without injected styles, width, or centering, so the reader's email client styles it.",
|
|
5923
5936
|
inputSchema: createNewsletterFromChangelogInputSchema,
|
|
5924
5937
|
outputSchema: newsletterOutputSchema,
|
|
5925
5938
|
annotations: {
|
|
@@ -5942,7 +5955,7 @@ function registerTools(rawServer, client, allowedTools, grantedOrganizations = [
|
|
|
5942
5955
|
"shipmail_update_newsletter",
|
|
5943
5956
|
{
|
|
5944
5957
|
title: "Update Newsletter",
|
|
5945
|
-
description: "Update an editable newsletter draft or future scheduled newsletter. Prefer blocks for body content. When blocks already exist, body_text alone updates the plain-text override. Sending and sent newsletters cannot be edited. A concurrent save returns conflict (409); read the latest newsletter before retrying.",
|
|
5958
|
+
description: "Update an editable newsletter draft or future scheduled newsletter. Prefer blocks for body content. When blocks already exist, body_text alone updates the plain-text override. Sending and sent newsletters cannot be edited. A concurrent save returns conflict (409); read the latest newsletter before retrying. styled applies Shipmail's email theme. plain sends your HTML without injected styles, width, or centering, so the reader's email client styles it.",
|
|
5946
5959
|
inputSchema: updateNewsletterInputSchema,
|
|
5947
5960
|
outputSchema: newsletterOutputSchema,
|
|
5948
5961
|
annotations: {
|
|
@@ -5968,7 +5981,8 @@ function registerTools(rawServer, client, allowedTools, grantedOrganizations = [
|
|
|
5968
5981
|
...rest.body_text !== void 0 ? { body_text: rest.body_text } : {},
|
|
5969
5982
|
...rest.blocks !== void 0 ? { blocks: rest.blocks } : {},
|
|
5970
5983
|
...rest.send_window_hours !== void 0 ? { send_window_hours: rest.send_window_hours } : {},
|
|
5971
|
-
...rest.archive_visibility !== void 0 ? { archive_visibility: rest.archive_visibility } : {}
|
|
5984
|
+
...rest.archive_visibility !== void 0 ? { archive_visibility: rest.archive_visibility } : {},
|
|
5985
|
+
...rest.styling_mode !== void 0 ? { styling_mode: rest.styling_mode } : {}
|
|
5972
5986
|
},
|
|
5973
5987
|
mutationOptions(args)
|
|
5974
5988
|
)
|
|
@@ -6806,7 +6820,7 @@ function registerTools(rawServer, client, allowedTools, grantedOrganizations = [
|
|
|
6806
6820
|
}
|
|
6807
6821
|
|
|
6808
6822
|
// src/version.ts
|
|
6809
|
-
var VERSION = "0.5.
|
|
6823
|
+
var VERSION = "0.5.9";
|
|
6810
6824
|
|
|
6811
6825
|
// src/server.ts
|
|
6812
6826
|
var INSTRUCTIONS = `ShipMail MCP exposes the business email and calendar tools authorized by the connection's current ShipMail permissions.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "shipmail-mcp",
|
|
3
|
-
"version": "0.5.
|
|
3
|
+
"version": "0.5.9",
|
|
4
4
|
"mcpName": "io.github.jcoulaud/shipmail-mcp",
|
|
5
5
|
"description": "Official Model Context Protocol (MCP) server for Shipmail, a business email provider with REST API, webhooks, and custom-domain inboxes for AI agents.",
|
|
6
6
|
"type": "module",
|
|
@@ -59,7 +59,7 @@
|
|
|
59
59
|
},
|
|
60
60
|
"dependencies": {
|
|
61
61
|
"@modelcontextprotocol/sdk": "1.29.0",
|
|
62
|
-
"shipmail": "0.4.
|
|
62
|
+
"shipmail": "0.4.5",
|
|
63
63
|
"zod": "4.4.3"
|
|
64
64
|
},
|
|
65
65
|
"devDependencies": {
|
package/server.json
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
"url": "https://github.com/jcoulaud/shipmail-mcp",
|
|
7
7
|
"source": "github"
|
|
8
8
|
},
|
|
9
|
-
"version": "0.5.
|
|
9
|
+
"version": "0.5.9",
|
|
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.5.
|
|
30
|
+
"version": "0.5.9",
|
|
31
31
|
"transport": {
|
|
32
32
|
"type": "stdio"
|
|
33
33
|
},
|
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.5.
|
|
3
|
+
version: 0.5.9
|
|
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/jcoulaud/shipmail-mcp
|