@wisewandtools/mcp-server 2.0.14 → 2.0.16

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/README.md CHANGED
@@ -630,6 +630,27 @@ src/
630
630
  - ✅ Docker security best practices
631
631
  - ✅ Non-root container execution
632
632
 
633
+ ## Known Limitations
634
+
635
+ ### API Response Limitations
636
+
637
+ #### Minimal GET Responses
638
+ The `get_article`, `get_category_page`, and `get_product_page` functions return minimal data (typically just ID and status) due to the Wisewand API design. To retrieve full content including the generated HTML/markdown:
639
+
640
+ - **For articles**: Use `get_article_output` instead of `get_article`
641
+ - **For category pages**: Use `get_category_page_output` instead of `get_category_page`
642
+ - **For product pages**: Use `get_product_page_output` instead of `get_product_page`
643
+
644
+ #### RSS Feed Integration
645
+ The RSS feed creation feature (`create_rss_feed`) currently has upstream integration issues with RSS.app. This is a known limitation of the Wisewand API backend. The MCP server correctly forwards requests, but you may encounter 400 Bad Request errors from the RSS.app service.
646
+
647
+ **Workaround**: Use direct RSS feed URLs or alternative RSS feed generation services until this is resolved.
648
+
649
+ #### Category/Product Cost Estimation
650
+ The `estimate_category_page_cost` and `estimate_product_page_cost` endpoints may return validation errors as these features are not yet fully available in the Wisewand API.
651
+
652
+ **Workaround**: Use `estimate_article_cost` as a proxy to estimate costs for similar content, as the underlying generation mechanisms are similar.
653
+
633
654
  ## Troubleshooting
634
655
 
635
656
  ### Claude Desktop Integration Issues
package/dist/index.js CHANGED
@@ -1,12 +1,6 @@
1
1
  #!/usr/bin/env node
2
2
  var __defProp = Object.defineProperty;
3
3
  var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
4
- var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, {
5
- get: (a, b) => (typeof require !== "undefined" ? require : a)[b]
6
- }) : x)(function(x) {
7
- if (typeof require !== "undefined") return require.apply(this, arguments);
8
- throw Error('Dynamic require of "' + x + '" is not supported');
9
- });
10
4
 
11
5
  // src/index.ts
12
6
  import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
@@ -3434,7 +3428,7 @@ var CreateCategoryPageSchema = z6.object({
3434
3428
  title: z6.string().optional(),
3435
3429
  category: z6.string().optional(),
3436
3430
  // Standard fields
3437
- lang: z6.enum(LANG_ENUM2).optional().default("en"),
3431
+ lang: z6.enum(LANG_ENUM2).optional(),
3438
3432
  country: z6.enum(COUNTRY_ENUM2).optional(),
3439
3433
  project_id: z6.string().uuid().optional(),
3440
3434
  persona_id: z6.string().uuid().optional(),
@@ -3518,7 +3512,7 @@ var CategoryPagesToolHandler = class {
3518
3512
  await this.cache.set(`category_page:${categoryPage.id}`, categoryPage, 300);
3519
3513
  this.metrics.recordAPICall("create_category_page", "success");
3520
3514
  return {
3521
- content: [{ type: "text", text: JSON.stringify({ success: true, category_page_id: categoryPage.id, name: categoryPage.name, message: `Category page "${categoryPage.name}" created successfully`, next_steps: [`Use 'generate_category_page' with id: ${categoryPage.id}`, `Use 'get_category_page' with id: ${categoryPage.id}`] }, null, 2) }]
3515
+ content: [{ type: "text", text: JSON.stringify({ success: true, category_page_id: categoryPage.id, name: validated.name, message: `Category page "${validated.name}" created successfully`, next_steps: [`Use 'generate_category_page' with id: ${categoryPage.id}`, `Use 'get_category_page' with id: ${categoryPage.id}`] }, null, 2) }]
3522
3516
  };
3523
3517
  } catch (error) {
3524
3518
  logger.error("Failed to create category page", { error: error.message });
@@ -3735,7 +3729,7 @@ var CreateProductPageSchema = z7.object({
3735
3729
  product_url: z7.string().url().optional(),
3736
3730
  product_description: z7.string().optional(),
3737
3731
  // Standard fields
3738
- lang: z7.enum(LANG_ENUM3).optional().default("en"),
3732
+ lang: z7.enum(LANG_ENUM3).optional(),
3739
3733
  country: z7.enum(COUNTRY_ENUM3).optional(),
3740
3734
  project_id: z7.string().uuid().optional(),
3741
3735
  persona_id: z7.string().uuid().optional(),
@@ -3820,7 +3814,7 @@ var ProductPagesToolHandler = class {
3820
3814
  const productPage = await this.apiClient.createProductPage(validated);
3821
3815
  await this.cache.set(`product_page:${productPage.id}`, productPage, 300);
3822
3816
  this.metrics.recordAPICall("create_product_page", "success");
3823
- return { content: [{ type: "text", text: JSON.stringify({ success: true, product_page_id: productPage.id, name: productPage.name, message: `Product page "${productPage.name}" created successfully`, next_steps: [`Use 'generate_product_page' with id: ${productPage.id}`, `Use 'get_product_page' with id: ${productPage.id}`] }, null, 2) }] };
3817
+ return { content: [{ type: "text", text: JSON.stringify({ success: true, product_page_id: productPage.id, name: validated.name, message: `Product page "${validated.name}" created successfully`, next_steps: [`Use 'generate_product_page' with id: ${productPage.id}`, `Use 'get_product_page' with id: ${productPage.id}`] }, null, 2) }] };
3824
3818
  } catch (error) {
3825
3819
  logger.error("Failed to create product page", { error: error.message });
3826
3820
  this.metrics.recordAPICall("create_product_page", "error");
@@ -6269,6 +6263,7 @@ var WisewandMCPServer = class {
6269
6263
  };
6270
6264
 
6271
6265
  // src/utils/shutdown.ts
6266
+ import * as readline from "readline";
6272
6267
  function gracefulShutdown(server) {
6273
6268
  let isShuttingDown = false;
6274
6269
  const shutdown = /* @__PURE__ */ __name(async (signal) => {
@@ -6297,7 +6292,6 @@ function gracefulShutdown(server) {
6297
6292
  process.on("SIGINT", () => shutdown("SIGINT"));
6298
6293
  process.on("SIGHUP", () => shutdown("SIGHUP"));
6299
6294
  if (process.platform === "win32") {
6300
- const readline = __require("readline");
6301
6295
  const rl = readline.createInterface({
6302
6296
  input: process.stdin,
6303
6297
  output: process.stdout