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 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.7";
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.7";
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.7",
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.3",
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.7",
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.7",
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.7
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