add_content_in_library
Add posts to a content library for automated recurring or evergreen social media publishing across multiple platforms with customizable settings.
Instructions
Add a post to a content library for recurring/evergreen posting
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Library ID (from library_list) | |
| message | Yes | Default post content text | |
| image_url | No | Array of image URLs to attach | |
| video_url | No | Public video URL to attach | |
| url | No | Website link to include | |
| host_images_on_recurpost | No | Host images on RecurPost (default: true) | |
| fb_message | No | Facebook-specific message override | |
| tw_message | No | Twitter/X-specific message override | |
| ln_message | No | LinkedIn-specific message override | |
| in_message | No | Instagram-specific message override | |
| gmb_message | No | Google Business Profile-specific message override | |
| pi_message | No | Pinterest-specific message override | |
| yt_message | No | YouTube-specific message override | |
| tk_message | No | TikTok-specific message override | |
| th_message | No | Threads-specific message override | |
| bs_message | No | Bluesky-specific message override | |
| fb_post_type | No | Facebook post type | |
| in_post_type | No | Instagram post type | |
| in_reel_share_in_feed | No | Share Instagram reel in feed | |
| first_comment | No | Default first comment | |
| fb_first_comment | No | Facebook first comment | |
| ln_first_comment | No | LinkedIn first comment | |
| in_first_comment | No | Instagram first comment | |
| ln_document | No | LinkedIn document URL (PPT/PDF/DOCX) | |
| ln_document_title | No | LinkedIn document title | |
| pi_title | No | Pinterest pin title | |
| gbp_cta | No | Google Business Profile call to action | |
| gbp_cta_url | No | Google Business Profile CTA URL | |
| gbp_offer_title | No | GBP offer title | |
| gbp_offer_start_date | No | GBP offer start date | |
| gbp_offer_end_date | No | GBP offer end date | |
| gbp_offer_coupon_code | No | GBP offer coupon code | |
| gbp_offer_terms | No | GBP offer terms and conditions | |
| gbp_redeem_offer_link | No | GBP offer redemption URL | |
| yt_title | No | YouTube video title | |
| yt_category | No | YouTube video category | |
| yt_privacy_status | No | YouTube privacy status | |
| yt_user_tags | No | YouTube tags | |
| yt_thumb | No | YouTube custom thumbnail URL | |
| yt_video_made_for_kids | No | Is the YouTube video made for kids | |
| tk_privacy_status | No | TikTok privacy status | |
| tk_allow_comments | No | Allow TikTok comments | |
| tk_allow_duet | No | Allow TikTok duets | |
| tk_allow_stitches | No | Allow TikTok stitches | |
| is_top_of_queue | No | Add to top of queue (1) or bottom (0) | |
| content_livedate | No | Content live date (YYYY-MM-DD) | |
| content_expiredate | No | Content expiry date (YYYY-MM-DD) |
Implementation Reference
- src/index.ts:321-327 (handler)The handler for 'add_content_in_library' which invokes a generic API call.
async (params) => { try { return toolResult(await callAPI("/api/add_content_in_library", params)); } catch (e) { return toolResult({ error: String(e) }, true); } } - src/index.ts:144-320 (schema)Zod schema definition for 'add_content_in_library' input parameters.
{ id: z.string().describe("Library ID (from library_list)"), message: z.string().describe("Default post content text"), image_url: z .array(z.string().url()) .optional() .describe("Array of image URLs to attach"), video_url: z .string() .url() .optional() .describe("Public video URL to attach"), url: z.string().url().optional().describe("Website link to include"), host_images_on_recurpost: z .boolean() .optional() .describe("Host images on RecurPost (default: true)"), fb_message: z .string() .optional() .describe("Facebook-specific message override"), tw_message: z .string() .optional() .describe("Twitter/X-specific message override"), ln_message: z .string() .optional() .describe("LinkedIn-specific message override"), in_message: z .string() .optional() .describe("Instagram-specific message override"), gmb_message: z .string() .optional() .describe("Google Business Profile-specific message override"), pi_message: z .string() .optional() .describe("Pinterest-specific message override"), yt_message: z .string() .optional() .describe("YouTube-specific message override"), tk_message: z .string() .optional() .describe("TikTok-specific message override"), th_message: z .string() .optional() .describe("Threads-specific message override"), bs_message: z .string() .optional() .describe("Bluesky-specific message override"), fb_post_type: z .enum(["feed", "story", "reel"]) .optional() .describe("Facebook post type"), in_post_type: z .enum(["feed", "story", "reel"]) .optional() .describe("Instagram post type"), in_reel_share_in_feed: z .enum(["yes", "no"]) .optional() .describe("Share Instagram reel in feed"), first_comment: z.string().optional().describe("Default first comment"), fb_first_comment: z .string() .optional() .describe("Facebook first comment"), ln_first_comment: z .string() .optional() .describe("LinkedIn first comment"), in_first_comment: z .string() .optional() .describe("Instagram first comment"), ln_document: z .string() .url() .optional() .describe("LinkedIn document URL (PPT/PDF/DOCX)"), ln_document_title: z .string() .optional() .describe("LinkedIn document title"), pi_title: z.string().optional().describe("Pinterest pin title"), gbp_cta: z .enum([ "None", "Learn more", "Sign up", "Buy", "Order online", "Book", "Call now", "Offer", ]) .optional() .describe("Google Business Profile call to action"), gbp_cta_url: z .string() .url() .optional() .describe("Google Business Profile CTA URL"), gbp_offer_title: z.string().optional().describe("GBP offer title"), gbp_offer_start_date: z .string() .optional() .describe("GBP offer start date"), gbp_offer_end_date: z .string() .optional() .describe("GBP offer end date"), gbp_offer_coupon_code: z .string() .optional() .describe("GBP offer coupon code"), gbp_offer_terms: z .string() .optional() .describe("GBP offer terms and conditions"), gbp_redeem_offer_link: z .string() .url() .optional() .describe("GBP offer redemption URL"), yt_title: z.string().optional().describe("YouTube video title"), yt_category: z.string().optional().describe("YouTube video category"), yt_privacy_status: z .enum(["Public", "Private", "Unlisted"]) .optional() .describe("YouTube privacy status"), yt_user_tags: z.string().optional().describe("YouTube tags"), yt_thumb: z .string() .url() .optional() .describe("YouTube custom thumbnail URL"), yt_video_made_for_kids: z .enum(["yes", "no"]) .optional() .describe("Is the YouTube video made for kids"), tk_privacy_status: z .enum(["Public to Everyone", "Mutual Follow Friends", "Self Only"]) .optional() .describe("TikTok privacy status"), tk_allow_comments: z .enum(["yes", "no"]) .optional() .describe("Allow TikTok comments"), tk_allow_duet: z .enum(["yes", "no"]) .optional() .describe("Allow TikTok duets"), tk_allow_stitches: z .enum(["yes", "no"]) .optional() .describe("Allow TikTok stitches"), is_top_of_queue: z .enum(["0", "1"]) .optional() .describe("Add to top of queue (1) or bottom (0)"), content_livedate: z .string() .optional() .describe("Content live date (YYYY-MM-DD)"), content_expiredate: z .string() .optional() .describe("Content expiry date (YYYY-MM-DD)"), }, - src/index.ts:141-143 (registration)Registration of the 'add_content_in_library' tool within the MCP server.
server.tool( "add_content_in_library", "Add a post to a content library for recurring/evergreen posting",