@buzzposter/mcp 0.3.1 → 0.3.2

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
@@ -12,8 +12,8 @@ var BuzzPosterClient = class {
12
12
  this.baseUrl = config.baseUrl.replace(/\/$/, "");
13
13
  this.apiKey = config.apiKey;
14
14
  }
15
- async request(method, path2, body, query) {
16
- const url = new URL(`${this.baseUrl}${path2}`);
15
+ async request(method, path, body, query) {
16
+ const url = new URL(`${this.baseUrl}${path}`);
17
17
  if (query) {
18
18
  for (const [k, v] of Object.entries(query)) {
19
19
  if (v !== void 0 && v !== "") url.searchParams.set(k, v);
@@ -1067,27 +1067,37 @@ import {
1067
1067
  registerAppTool,
1068
1068
  RESOURCE_MIME_TYPE
1069
1069
  } from "@modelcontextprotocol/ext-apps/server";
1070
- import * as fs from "fs";
1071
- import * as path from "path";
1072
- import { fileURLToPath } from "url";
1073
- var __dirname = path.dirname(fileURLToPath(import.meta.url));
1074
1070
  var NEWSLETTER_STUDIO_RESOURCE = "ui://newsletter-studio/app.html";
1071
+ function buildStudioHtml(apiUrl2) {
1072
+ const base = apiUrl2.replace(/\/$/, "");
1073
+ return `<!DOCTYPE html>
1074
+ <html lang="en">
1075
+ <head>
1076
+ <meta charset="utf-8">
1077
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
1078
+ <link rel="stylesheet" href="${base}/newsletter-assets/newsletter-studio.css">
1079
+ <style>html,body,#root{margin:0;padding:0;height:100%;}</style>
1080
+ </head>
1081
+ <body>
1082
+ <div id="root"></div>
1083
+ <script type="module" src="${base}/newsletter-assets/newsletter-studio.js"></script>
1084
+ </body>
1085
+ </html>`;
1086
+ }
1075
1087
  function registerNewsletterTools(server2, client2, options = {}) {
1088
+ const apiUrl2 = options.apiUrl || "";
1076
1089
  registerAppResource(
1077
1090
  server2,
1078
1091
  NEWSLETTER_STUDIO_RESOURCE,
1079
1092
  NEWSLETTER_STUDIO_RESOURCE,
1080
1093
  { mimeType: RESOURCE_MIME_TYPE },
1081
1094
  async () => {
1082
- const distDir = __dirname.endsWith("dist") ? __dirname : path.resolve(__dirname, "..", "dist");
1083
- const htmlPath = path.join(distDir, "newsletter-studio.html");
1084
- const html = fs.readFileSync(htmlPath, "utf-8");
1085
1095
  return {
1086
1096
  contents: [
1087
1097
  {
1088
1098
  uri: NEWSLETTER_STUDIO_RESOURCE,
1089
1099
  mimeType: RESOURCE_MIME_TYPE,
1090
- text: html
1100
+ text: buildStudioHtml(apiUrl2)
1091
1101
  }
1092
1102
  ]
1093
1103
  };
@@ -1162,15 +1172,17 @@ function registerNewsletterTools(server2, client2, options = {}) {
1162
1172
  resourceUri: NEWSLETTER_STUDIO_RESOURCE,
1163
1173
  csp: {
1164
1174
  resourceDomains: [
1175
+ apiUrl2,
1165
1176
  "https://cdn.jsdelivr.net",
1166
1177
  "https://fonts.googleapis.com",
1167
1178
  "https://fonts.gstatic.com",
1168
1179
  "https://unpkg.com"
1169
- ],
1180
+ ].filter(Boolean),
1170
1181
  connectDomains: [
1182
+ apiUrl2,
1171
1183
  "https://fonts.googleapis.com",
1172
1184
  "https://fonts.gstatic.com"
1173
- ]
1185
+ ].filter(Boolean)
1174
1186
  }
1175
1187
  }
1176
1188
  }
@@ -1190,6 +1202,7 @@ function registerNewsletterTools(server2, client2, options = {}) {
1190
1202
  previewText: args.preview_text
1191
1203
  };
1192
1204
  return {
1205
+ _meta: { ui: { resourceUri: NEWSLETTER_STUDIO_RESOURCE } },
1193
1206
  content: [
1194
1207
  { type: "text", text: JSON.stringify(response, null, 2) }
1195
1208
  ]
@@ -1225,6 +1238,7 @@ function registerNewsletterTools(server2, client2, options = {}) {
1225
1238
  previewText: args.preview_text
1226
1239
  };
1227
1240
  return {
1241
+ _meta: { ui: { resourceUri: NEWSLETTER_STUDIO_RESOURCE } },
1228
1242
  content: [
1229
1243
  { type: "text", text: JSON.stringify(response, null, 2) }
1230
1244
  ]
@@ -3917,7 +3931,7 @@ registerAccountTools(server, client);
3917
3931
  registerAnalyticsTools(server, client);
3918
3932
  registerInboxTools(server, client);
3919
3933
  registerMediaTools(server, client);
3920
- registerNewsletterTools(server, client, { allowDirectSend });
3934
+ registerNewsletterTools(server, client, { allowDirectSend, apiUrl });
3921
3935
  registerRssTools(server, client);
3922
3936
  registerAccountInfoTool(server, client);
3923
3937
  registerBrandVoiceTools(server, client);