@yashwant.dharmdas/elementor-mcp 3.0.0 → 3.1.0
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 +53 -0
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -939,6 +939,59 @@ function createMcpServer(sites) {
|
|
|
939
939
|
return { content: [{ type: "text", text: `Error: ${e.response?.data?.message || e.message}` }], isError: true };
|
|
940
940
|
}
|
|
941
941
|
});
|
|
942
|
+
// ── Group 8: Page Creation & Publishing ──────────────────────────────────
|
|
943
|
+
server.tool("create-page", "Create a new WordPress page, optionally publish it immediately, and enable the Elementor editor. Returns the page ID and direct Elementor edit URL.", {
|
|
944
|
+
title: z.string().describe("Page title"),
|
|
945
|
+
status: z.enum(["draft", "publish", "private", "pending"]).optional().describe("Page status — default: draft"),
|
|
946
|
+
page_template: z.string().optional().describe("WordPress page template filename (e.g. 'elementor_canvas'). Leave blank for default."),
|
|
947
|
+
enable_elementor: z.boolean().optional().describe("Initialize the Elementor editor on this page (default: true)"),
|
|
948
|
+
site: siteParam,
|
|
949
|
+
}, async ({ title, status, page_template, enable_elementor, site }) => {
|
|
950
|
+
try {
|
|
951
|
+
const { wpUrl, authHeader } = resolveSite(sites, site);
|
|
952
|
+
const body = {
|
|
953
|
+
title,
|
|
954
|
+
status: status ?? "draft",
|
|
955
|
+
enable_elementor: enable_elementor ?? true,
|
|
956
|
+
};
|
|
957
|
+
if (page_template)
|
|
958
|
+
body.page_template = page_template;
|
|
959
|
+
const r = await axios.post(`${wpUrl}/wp-json/erc/v1/pages`, body, {
|
|
960
|
+
headers: { Authorization: authHeader, "Content-Type": "application/json" },
|
|
961
|
+
});
|
|
962
|
+
return { content: [{ type: "text", text: JSON.stringify(r.data, null, 2) }] };
|
|
963
|
+
}
|
|
964
|
+
catch (error) {
|
|
965
|
+
return { content: [{ type: "text", text: `Error creating page: ${error.response?.data?.message || error.message}` }], isError: true };
|
|
966
|
+
}
|
|
967
|
+
});
|
|
968
|
+
server.tool("publish-page", "Change the publish status of a WordPress page (publish, draft, private, pending, trash).", {
|
|
969
|
+
page_id: z.string().describe("WordPress Page ID"),
|
|
970
|
+
status: z.enum(["publish", "draft", "private", "pending", "trash"]).describe("Target status"),
|
|
971
|
+
site: siteParam,
|
|
972
|
+
}, async ({ page_id, status, site }) => {
|
|
973
|
+
try {
|
|
974
|
+
const { wpUrl, authHeader } = resolveSite(sites, site);
|
|
975
|
+
const r = await axios.patch(`${wpUrl}/wp-json/erc/v1/pages/${page_id}/status`, { status }, { headers: { Authorization: authHeader, "Content-Type": "application/json" } });
|
|
976
|
+
return { content: [{ type: "text", text: JSON.stringify(r.data, null, 2) }] };
|
|
977
|
+
}
|
|
978
|
+
catch (error) {
|
|
979
|
+
return { content: [{ type: "text", text: `Error updating page status: ${error.response?.data?.message || error.message}` }], isError: true };
|
|
980
|
+
}
|
|
981
|
+
});
|
|
982
|
+
server.tool("enable-elementor", "Enable the Elementor editor on an existing WordPress page that was not originally built with Elementor. Returns the direct Elementor edit URL.", {
|
|
983
|
+
page_id: z.string().describe("WordPress Page ID"),
|
|
984
|
+
site: siteParam,
|
|
985
|
+
}, async ({ page_id, site }) => {
|
|
986
|
+
try {
|
|
987
|
+
const { wpUrl, authHeader } = resolveSite(sites, site);
|
|
988
|
+
const r = await axios.post(`${wpUrl}/wp-json/erc/v1/pages/${page_id}/enable-elementor`, {}, { headers: { Authorization: authHeader } });
|
|
989
|
+
return { content: [{ type: "text", text: JSON.stringify(r.data, null, 2) }] };
|
|
990
|
+
}
|
|
991
|
+
catch (error) {
|
|
992
|
+
return { content: [{ type: "text", text: `Error enabling Elementor: ${error.response?.data?.message || error.message}` }], isError: true };
|
|
993
|
+
}
|
|
994
|
+
});
|
|
942
995
|
return server;
|
|
943
996
|
}
|
|
944
997
|
// ─── Entry Point ──────────────────────────────────────────────────────────────
|
package/package.json
CHANGED