@omnisocials/mcp-server 1.22.0 → 1.23.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.
@@ -141,7 +141,7 @@ const USER_TAG_ENTRY = z.object({
141
141
  // z.array(...).min(2).max(25)[.nullable()].optional().describe(...) stays
142
142
  // per-tool (update_post allows null to clear the thread).
143
143
  const X_THREAD_PART = z.object({
144
- text: z.string().describe("Tweet text (≤ 280 chars). X counts every link as 23 characters (its t.co length), so a short link still uses 23 toward the limit."),
144
+ text: z.string().describe("Tweet text (≤ 280 chars by X's weighted count). X counts every link as 23 characters (its t.co length) and every emoji or non-Latin symbol (🚀, …, ₹, CJK) as 2 — so text that looks under 280 can still be over. When trimming generated copy to fit, leave headroom instead of cutting to exactly 280 raw characters."),
145
145
  media_ids: z.array(mediaIdEntry).max(4).optional().describe("Per-tweet media as Library IDs from upload_media (max 4 combined with media_urls). Each entry is a plain ID string or { id, alt } to attach alt text (X applies it to photos/GIFs). Attach your uploaded graphics to any tweet in the thread."),
146
146
  media_urls: z.array(mediaUrlEntry).max(4).optional().describe("Per-tweet media as external URLs (max 4 combined with media_ids). Each entry is a plain URL string or { url, alt } to attach alt text (X applies it to photos/GIFs)."),
147
147
  });
@@ -523,10 +523,11 @@ IMPORTANT — Before calling this tool, make sure you have all required informat
523
523
  - Other platforms (LinkedIn, LinkedIn Page, X, Bluesky, etc.): Media is optional.
524
524
 
525
525
  **Per-platform max media items (enforced at submit, returns 400 validation_error if exceeded):**
526
- - Bluesky, X, Mastodon — max **4** items per post
527
- - Instagram, Threads — max **10** items per carousel
526
+ - Bluesky, X, Mastodon — max **4** items per post; cannot mix images and video
527
+ - Instagram, Threads — max **10** items per carousel; images and videos CAN be mixed in one carousel
528
528
  - TikTok — max **35** photos per photo-post; cannot mix photos and videos in one post
529
- - Pinterest carousel — 2–5 images, all same aspect ratio
529
+ - Pinterest carousel — 2–5 images, all same aspect ratio (a video splits off into its own video pin)
530
+ - Facebook, LinkedIn, LinkedIn Page — cannot mix images and video in one post (images only, or a single video)
530
531
 
531
532
  **Per-platform video caps (duration + size, checked via ffprobe at submit — exceeding either returns a 400 validation_error stating the exact cap and the file's value, e.g. "X only allows videos up to 2min 20s — yours is 2min 35s. Trim the video or deselect X."):**
532
533
  - X — **140s (2min 20s)** · **512MB** (X also can't mix a video with images in one tweet: a tweet is either 1 video OR up to 4 images)
@@ -686,7 +687,7 @@ IMPORTANT — Before calling this tool, make sure you have all required informat
686
687
  - Instagram/TikTok posts: ALWAYS need at least one image or video.
687
688
  - Pinterest: ALWAYS need an image + board_id.
688
689
  - Ask the user which media to use. Use list_media to show options.
689
- - **Max items per platform** (same caps as create_post — exceeding returns 400): Bluesky/X/Mastodon ≤4, Instagram/Threads ≤10, TikTok ≤35 photos with no photo/video mix, Pinterest carousel 2–5 same-ratio images.
690
+ - **Max items per platform** (same caps as create_post — exceeding returns 400): Bluesky/X/Mastodon ≤4, Instagram/Threads ≤10, TikTok ≤35 photos, Pinterest carousel 2–5 same-ratio images. Mixing images+video is rejected on Facebook/LinkedIn/X/Bluesky/Mastodon/TikTok; Instagram and Threads mixed carousels are allowed.
690
691
  - **Video duration/size caps** (ffprobe at submit — over either returns 400 validation_error with the exact cap + the file's value): X **140s/512MB** (no video+image mix in one tweet), Bluesky 180s, Threads 5min, Instagram 15min, TikTok 10min, YouTube Short 3min, LinkedIn 10min, Facebook Reel 90s.
691
692
  4. **Pinterest board (auto-default to first board)**: If Pinterest is in \`channels\` and \`pinterest.board_id\` is NOT provided, do NOT block on asking — and do NOT skip Pinterest. Call \`get_account\` on the Pinterest account, take the FIRST board from the returned boards list, and pass its \`id\` as \`pinterest.board_id\`. In your reply, mention which board you used (e.g. "Published to your 'Marketing' board on Pinterest — let me know if you'd prefer a different one.") so the user can redirect. If the user named a specific board in the request, match it (case-insensitive) against the list and use that one instead.
692
693
  5. **X threads vs long-form**: A chained "thread" → pass \`x.thread_parts\` as a 2–25 entry array of \`{ text }\` objects (each ≤ 280 chars). A single long-form post on a Premium / Premium+ account → put the full text (up to 25,000 chars) in \`content\`; no threading needed. On free / Basic, X caps a single post at 280 chars. Do NOT split into "1/", "2/" inside \`content\` — that produces a single tweet, not a thread.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@omnisocials/mcp-server",
3
- "version": "1.22.0",
3
+ "version": "1.23.0",
4
4
  "description": "MCP server for OmniSocials API - manage social media posts, media, accounts, analytics, and webhooks",
5
5
  "type": "module",
6
6
  "main": "build/index.js",
@@ -19,11 +19,24 @@
19
19
  },
20
20
  "keywords": [
21
21
  "mcp",
22
+ "mcp-server",
23
+ "model-context-protocol",
22
24
  "omnisocials",
23
25
  "social-media",
26
+ "social-media-scheduling",
27
+ "scheduling",
24
28
  "claude",
25
- "model-context-protocol",
26
- "ai"
29
+ "ai",
30
+ "instagram",
31
+ "facebook",
32
+ "linkedin",
33
+ "tiktok",
34
+ "youtube",
35
+ "twitter",
36
+ "pinterest",
37
+ "bluesky",
38
+ "threads",
39
+ "mastodon"
27
40
  ],
28
41
  "homepage": "https://docs.omnisocials.com",
29
42
  "engines": {