@buzzposter/mcp 0.3.0 → 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 +27 -13
- package/dist/newsletter-assets/assets/module-RjUF93sV.js +716 -0
- package/dist/newsletter-assets/assets/native-48B9X9Wg.js +1 -0
- package/dist/newsletter-assets/newsletter-studio.css +1 -0
- package/dist/newsletter-assets/newsletter-studio.html +13 -0
- package/dist/newsletter-assets/newsletter-studio.js +641 -0
- package/dist/tools.d.ts +1 -0
- package/dist/tools.js +26 -12
- package/package.json +1 -1
- package/dist/newsletter-studio.html +0 -1368
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,
|
|
16
|
-
const url = new URL(`${this.baseUrl}${
|
|
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:
|
|
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);
|