@omnisocials/mcp-server 1.23.0 → 1.24.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/build/index.js +1 -1
- package/build/tools/posts.js +20 -0
- package/package.json +1 -1
package/build/index.js
CHANGED
|
@@ -29,7 +29,7 @@ const sessionState = { activeIndex: 0 };
|
|
|
29
29
|
const getActiveClient = () => workspaceClients[sessionState.activeIndex].client;
|
|
30
30
|
const server = new McpServer({
|
|
31
31
|
name: "OmniSocials",
|
|
32
|
-
version: "1.
|
|
32
|
+
version: "1.24.0",
|
|
33
33
|
});
|
|
34
34
|
// Register all tools - pass getter function so tools always use the active workspace's client
|
|
35
35
|
registerPostTools(server, getActiveClient);
|
package/build/tools/posts.js
CHANGED
|
@@ -70,6 +70,11 @@ const LINKEDIN_OPTIONS = z
|
|
|
70
70
|
.max(1250)
|
|
71
71
|
.optional()
|
|
72
72
|
.describe("Text auto-posted as the first comment on the LinkedIn Profile post right after it publishes. Common for 'link in first comment' to avoid the in-caption link reach penalty."),
|
|
73
|
+
carousel_as_images: z
|
|
74
|
+
.boolean()
|
|
75
|
+
.nullable()
|
|
76
|
+
.optional()
|
|
77
|
+
.describe("Multi-image style for the profile post. By default 2+ images publish as LinkedIn's swipeable PDF document carousel; true publishes them as a plain multi-image gallery instead. Ignored for 0-1 images, videos, and polls. On update_post: true sets it, false/null reverts to the document carousel, omitted keeps the current value."),
|
|
73
78
|
})
|
|
74
79
|
.optional()
|
|
75
80
|
.describe("LinkedIn Profile options");
|
|
@@ -80,6 +85,11 @@ const LINKEDIN_PAGE_OPTIONS = z
|
|
|
80
85
|
.max(1250)
|
|
81
86
|
.optional()
|
|
82
87
|
.describe("Text auto-posted as the first comment on the LinkedIn Company Page post right after it publishes."),
|
|
88
|
+
carousel_as_images: z
|
|
89
|
+
.boolean()
|
|
90
|
+
.nullable()
|
|
91
|
+
.optional()
|
|
92
|
+
.describe("Multi-image style for the company-page post. By default 2+ images publish as LinkedIn's swipeable PDF document carousel; true publishes them as a plain multi-image gallery instead. Ignored for 0-1 images, videos, and polls. On update_post: true sets it, false/null reverts to the document carousel, omitted keeps the current value."),
|
|
83
93
|
})
|
|
84
94
|
.optional()
|
|
85
95
|
.describe("LinkedIn Company Page options");
|
|
@@ -474,6 +484,16 @@ export function registerPostTools(server, getClient) {
|
|
|
474
484
|
if (firstCommentRows.length) {
|
|
475
485
|
md += `\n\n### First Comments\n\n${firstCommentRows.join("\n")}\n`;
|
|
476
486
|
}
|
|
487
|
+
// LinkedIn multi-image style: nested under each channel's options
|
|
488
|
+
// object by the API. Only rendered when the post opts out of the
|
|
489
|
+
// default PDF document carousel.
|
|
490
|
+
for (const channel of ["linkedin", "linkedin_page"]) {
|
|
491
|
+
const opts = p[channel];
|
|
492
|
+
if (opts && typeof opts === "object" && opts.carousel_as_images === true) {
|
|
493
|
+
const label = channel === "linkedin_page" ? "LinkedIn Page" : "LinkedIn Profile";
|
|
494
|
+
md += `\n\n**${label} multi-image style:** plain image gallery (default is the swipeable PDF document carousel)\n`;
|
|
495
|
+
}
|
|
496
|
+
}
|
|
477
497
|
// Trial Reel state: nested under the instagram options object by the
|
|
478
498
|
// API. Only rendered when enabled, so batch-scheduled Trial Reels can be
|
|
479
499
|
// verified without opening the dashboard.
|
package/package.json
CHANGED