@wisewandtools/mcp-server 2.0.3 → 2.0.5
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 +136 -7
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -589,9 +589,10 @@ var WisewandAPIClient = class {
|
|
|
589
589
|
}
|
|
590
590
|
async checkHealth() {
|
|
591
591
|
try {
|
|
592
|
-
const response = await fetch(`${this.config.apiUrl}/
|
|
592
|
+
const response = await fetch(`${this.config.apiUrl}/v1/projects/?take=1`, {
|
|
593
593
|
headers: {
|
|
594
|
-
"Authorization": `Bearer ${this.config.apiKey}
|
|
594
|
+
"Authorization": `Bearer ${this.config.apiKey}`,
|
|
595
|
+
"Content-Type": "application/json"
|
|
595
596
|
},
|
|
596
597
|
signal: AbortSignal.timeout(5e3)
|
|
597
598
|
});
|
|
@@ -3907,9 +3908,72 @@ var ProductPagesToolHandler = class {
|
|
|
3907
3908
|
// src/handlers/tools/DiscoverToolHandler.ts
|
|
3908
3909
|
import { z as z8 } from "zod";
|
|
3909
3910
|
var DiscoverContentSchema = z8.object({
|
|
3910
|
-
|
|
3911
|
-
|
|
3912
|
-
|
|
3911
|
+
subject: z8.string().min(1),
|
|
3912
|
+
target_keyword: z8.string().optional(),
|
|
3913
|
+
keywords_secondary: z8.string().optional(),
|
|
3914
|
+
project_id: z8.string().uuid().optional(),
|
|
3915
|
+
persona_id: z8.string().uuid().optional(),
|
|
3916
|
+
lang: z8.enum(["fr", "en"]).optional(),
|
|
3917
|
+
country: z8.enum(["fr", "be", "ch", "ca", "us", "gb"]).optional(),
|
|
3918
|
+
length: z8.union([z8.number().max(2e3), z8.literal("auto")]).optional(),
|
|
3919
|
+
title: z8.string().optional(),
|
|
3920
|
+
additional_information: z8.string().optional(),
|
|
3921
|
+
writing_style: z8.string().optional(),
|
|
3922
|
+
website: z8.string().optional(),
|
|
3923
|
+
writing_style_mode: z8.enum(["auto", "persona"]).optional(),
|
|
3924
|
+
// SEO Features
|
|
3925
|
+
use_cta: z8.boolean().optional(),
|
|
3926
|
+
ctas: z8.array(z8.object({
|
|
3927
|
+
anchor: z8.string(),
|
|
3928
|
+
url: z8.string()
|
|
3929
|
+
})).optional(),
|
|
3930
|
+
use_boldkeywords: z8.boolean().optional(),
|
|
3931
|
+
use_faq: z8.boolean().optional(),
|
|
3932
|
+
faq_questions: z8.string().optional(),
|
|
3933
|
+
use_toc: z8.boolean().optional(),
|
|
3934
|
+
// Image options
|
|
3935
|
+
use_image: z8.boolean().optional(),
|
|
3936
|
+
image_ratio: z8.enum(["landscape", "portrait", "16:9", "4:3", "1:1"]).optional(),
|
|
3937
|
+
image_prompt: z8.string().optional(),
|
|
3938
|
+
image_use_palette: z8.boolean().optional(),
|
|
3939
|
+
image_primary_color: z8.string().optional(),
|
|
3940
|
+
image_secondary_color: z8.string().optional(),
|
|
3941
|
+
use_inline_images: z8.boolean().optional(),
|
|
3942
|
+
inline_images_ratio: z8.enum(["landscape", "portrait", "16:9", "4:3", "1:1"]).optional(),
|
|
3943
|
+
inline_images_use_palette: z8.boolean().optional(),
|
|
3944
|
+
inline_images_primary_color: z8.string().optional(),
|
|
3945
|
+
inline_images_secondary_color: z8.string().optional(),
|
|
3946
|
+
// Internal links
|
|
3947
|
+
use_internallinks: z8.boolean().optional(),
|
|
3948
|
+
use_indexed_pages_internal_links: z8.boolean().optional(),
|
|
3949
|
+
use_wp_internal_links: z8.boolean().optional(),
|
|
3950
|
+
use_app_internal_links: z8.boolean().optional(),
|
|
3951
|
+
use_list_internal_links: z8.boolean().optional(),
|
|
3952
|
+
internal_links_wp_status: z8.array(z8.string()).optional(),
|
|
3953
|
+
internal_links_list: z8.string().optional(),
|
|
3954
|
+
internal_links_wp_connection: z8.string().optional(),
|
|
3955
|
+
// WordPress publishing
|
|
3956
|
+
use_publishwordpress: z8.boolean().optional(),
|
|
3957
|
+
publishwordpress_date: z8.string().optional(),
|
|
3958
|
+
publishwordpress_status: z8.enum(["draft", "publish", "future"]).optional(),
|
|
3959
|
+
publishwordpress_category: z8.number().optional(),
|
|
3960
|
+
publishwordpress_author: z8.number().optional(),
|
|
3961
|
+
publishwordpress_connection: z8.string().optional(),
|
|
3962
|
+
// Additional features
|
|
3963
|
+
use_infotable: z8.boolean().optional(),
|
|
3964
|
+
use_bulletlist: z8.boolean().optional(),
|
|
3965
|
+
use_externalsources: z8.boolean().optional(),
|
|
3966
|
+
use_audio: z8.boolean().optional(),
|
|
3967
|
+
audio_voice_id: z8.string().optional(),
|
|
3968
|
+
use_social: z8.boolean().optional(),
|
|
3969
|
+
social_networks: z8.union([
|
|
3970
|
+
z8.array(z8.string()),
|
|
3971
|
+
z8.string()
|
|
3972
|
+
]).optional(),
|
|
3973
|
+
use_blockquotes: z8.boolean().optional(),
|
|
3974
|
+
use_summary: z8.boolean().optional(),
|
|
3975
|
+
use_webhook: z8.boolean().optional(),
|
|
3976
|
+
webhook_connection_id: z8.string().optional()
|
|
3913
3977
|
});
|
|
3914
3978
|
var DiscoverToolHandler = class {
|
|
3915
3979
|
constructor(apiClient, cache, metrics) {
|
|
@@ -3935,8 +3999,73 @@ var DiscoverToolHandler = class {
|
|
|
3935
3999
|
discoverContentTool() {
|
|
3936
4000
|
return {
|
|
3937
4001
|
name: "discover_content",
|
|
3938
|
-
description: "Discover
|
|
3939
|
-
inputSchema: {
|
|
4002
|
+
description: "Create a Google Discover article optimized for ranking in Google Discover feed. Requires subject field. Supports all standard article features like FAQ, TOC, images, and WordPress publishing.",
|
|
4003
|
+
inputSchema: {
|
|
4004
|
+
type: "object",
|
|
4005
|
+
properties: {
|
|
4006
|
+
subject: { type: "string", description: "The subject of the discover article (required)" },
|
|
4007
|
+
target_keyword: { type: "string", description: "SERP target keyword" },
|
|
4008
|
+
keywords_secondary: { type: "string", description: "Secondary keywords" },
|
|
4009
|
+
project_id: { type: "string", format: "uuid", description: "Project UUID" },
|
|
4010
|
+
persona_id: { type: "string", format: "uuid", description: "Persona UUID" },
|
|
4011
|
+
lang: { type: "string", enum: ["fr", "en"], description: "Language code" },
|
|
4012
|
+
country: { type: "string", enum: ["fr", "be", "ch", "ca", "us", "gb"], description: "Country code" },
|
|
4013
|
+
length: { description: 'Number (max 2000) or "auto"' },
|
|
4014
|
+
title: { type: "string", description: "Article title" },
|
|
4015
|
+
additional_information: { type: "string", description: "Additional context" },
|
|
4016
|
+
writing_style: { type: "string", description: "Writing style" },
|
|
4017
|
+
website: { type: "string", description: "Website URL" },
|
|
4018
|
+
writing_style_mode: { type: "string", enum: ["auto", "persona"], description: "Writing style mode" },
|
|
4019
|
+
// SEO Features
|
|
4020
|
+
use_cta: { type: "boolean", description: "Add CTA" },
|
|
4021
|
+
ctas: { type: "array", items: { type: "object", properties: { anchor: { type: "string" }, url: { type: "string" } } }, description: "Call-to-action links" },
|
|
4022
|
+
use_boldkeywords: { type: "boolean", description: "Bold keywords" },
|
|
4023
|
+
use_faq: { type: "boolean", description: "Add FAQ section" },
|
|
4024
|
+
faq_questions: { type: "string", description: "FAQ questions" },
|
|
4025
|
+
use_toc: { type: "boolean", description: "Add table of contents" },
|
|
4026
|
+
// Image options
|
|
4027
|
+
use_image: { type: "boolean", description: "Generate cover image" },
|
|
4028
|
+
image_ratio: { type: "string", enum: ["landscape", "portrait", "16:9", "4:3", "1:1"], description: "Image aspect ratio" },
|
|
4029
|
+
image_prompt: { type: "string", description: "Image generation prompt" },
|
|
4030
|
+
image_use_palette: { type: "boolean", description: "Use color palette for image" },
|
|
4031
|
+
image_primary_color: { type: "string", description: "Primary color for image" },
|
|
4032
|
+
image_secondary_color: { type: "string", description: "Secondary color for image" },
|
|
4033
|
+
use_inline_images: { type: "boolean", description: "Generate inline images" },
|
|
4034
|
+
inline_images_ratio: { type: "string", enum: ["landscape", "portrait", "16:9", "4:3", "1:1"], description: "Inline images aspect ratio" },
|
|
4035
|
+
inline_images_use_palette: { type: "boolean", description: "Use color palette for inline images" },
|
|
4036
|
+
inline_images_primary_color: { type: "string", description: "Primary color for inline images" },
|
|
4037
|
+
inline_images_secondary_color: { type: "string", description: "Secondary color for inline images" },
|
|
4038
|
+
// Internal links
|
|
4039
|
+
use_internallinks: { type: "boolean", description: "Add internal links" },
|
|
4040
|
+
use_indexed_pages_internal_links: { type: "boolean", description: "Use indexed pages for internal links" },
|
|
4041
|
+
use_wp_internal_links: { type: "boolean", description: "Use WordPress internal links" },
|
|
4042
|
+
use_app_internal_links: { type: "boolean", description: "Use app internal links" },
|
|
4043
|
+
use_list_internal_links: { type: "boolean", description: "Use list internal links" },
|
|
4044
|
+
internal_links_wp_status: { type: "array", items: { type: "string" }, description: "WordPress post status for internal links" },
|
|
4045
|
+
internal_links_list: { type: "string", description: "Internal links list" },
|
|
4046
|
+
internal_links_wp_connection: { type: "string", description: "WordPress connection ID for internal links" },
|
|
4047
|
+
// WordPress publishing
|
|
4048
|
+
use_publishwordpress: { type: "boolean", description: "Auto-publish to WordPress" },
|
|
4049
|
+
publishwordpress_date: { type: "string", description: "WordPress publish date" },
|
|
4050
|
+
publishwordpress_status: { type: "string", enum: ["draft", "publish", "future"], description: "WordPress post status" },
|
|
4051
|
+
publishwordpress_category: { type: "number", description: "WordPress category ID" },
|
|
4052
|
+
publishwordpress_author: { type: "number", description: "WordPress author ID" },
|
|
4053
|
+
publishwordpress_connection: { type: "string", description: "WordPress connection ID" },
|
|
4054
|
+
// Additional features
|
|
4055
|
+
use_infotable: { type: "boolean", description: "Add info table" },
|
|
4056
|
+
use_bulletlist: { type: "boolean", description: "Add bullet list" },
|
|
4057
|
+
use_externalsources: { type: "boolean", description: "Use external sources" },
|
|
4058
|
+
use_audio: { type: "boolean", description: "Generate audio" },
|
|
4059
|
+
audio_voice_id: { type: "string", description: "Audio voice ID" },
|
|
4060
|
+
use_social: { type: "boolean", description: "Generate social media posts" },
|
|
4061
|
+
social_networks: { description: "Social networks (array or comma-separated string)" },
|
|
4062
|
+
use_blockquotes: { type: "boolean", description: "Add blockquotes" },
|
|
4063
|
+
use_summary: { type: "boolean", description: "Add summary" },
|
|
4064
|
+
use_webhook: { type: "boolean", description: "Trigger webhook" },
|
|
4065
|
+
webhook_connection_id: { type: "string", description: "Webhook connection ID" }
|
|
4066
|
+
},
|
|
4067
|
+
required: ["subject"]
|
|
4068
|
+
},
|
|
3940
4069
|
handler: /* @__PURE__ */ __name(async (args) => {
|
|
3941
4070
|
try {
|
|
3942
4071
|
const validated = DiscoverContentSchema.parse(args);
|