gen_publish_action

shallow

io.github.poweredbyGEN/gen-mcp-server · Verify this server

Step 5 (Export & Publish): Ship posts to social platforms — schedule, publish, update, or remove posts. One call carries one or more typed actions: schedule_post_<platform> (media_url and that platform's fields; schedule_type 'now' or 'specific_time' with scheduled_time; a field of another platform is rejected) | publish_content (platform + media_url + description + schedule_type) | update_scheduled_post (post_id + fields) | delete_scheduled_post (post_id) | update_published_post (post_id + at least one of title/description/tags/category_id) | delete_published_post (post_id; removes a post that is ALREADY LIVE and is two-phase — resend with confirm_token) | disconnect_social (platform; disconnects that account and is two-phase — resend with confirm_token). Reconnecting or refreshing an account is gen_discover publish.connect_url only — never disconnect_social first; connecting again replaces the old token. Publishing is irreversible: confirm destination and content with the user first. Do NOT edit videos here — the vidsheet action owns the canvas, and it is never the ship path. publish_content / schedule_post_<platform> / disconnect_social is the first call for those verbs, even when the user says 'all connected socials' or has not attached the post content yet — publishing resolves the connected accounts and the action names any missing media_url/description; 'disconnect my <platform>' is disconnect_social here, never a publish.connections read. Setting which platforms the agent posts to — 'make me post on YouTube and TikTok' with no content or schedule to ship — is gen_agent_action set_profile target_platforms, not schedule_post here. Read gen_discover publish.connections or publish.rules only when the user asks what is connected or what a rule is, not before publishing or disconnecting. Publishing is asynchronous even for 'now' — poll the gen_discover publish.post_status view with the returned post_id. The legacy publish tool names are retired; use this dispatcher. platform: tiktok | instagram | facebook | youtube | x | linkedin. Per-platform scheduling rules (also the gen_discover publish.rules view): tiktok: media required, video/image, 1 item, text <= 2200 chars; requires tiktok_privacy_level, tiktok_disable_comment, tiktok_disable_duet, tiktok_disable_stitch instagram: media required, video/image, up to 10 items, text <= 2200 chars; options via instagram_music (mode, track_url) facebook: media required, video, 1 item, text <= 63206 chars; title <= 255 chars youtube: media required, video, 1 item, text <= 5000 chars; title <= 100 chars; requires title; options via youtube_options (category_id, made_for_kids, notify_subscribers, shorts, tags, visibility) x: text or media, video/image, up to 4 items, text <= 280 chars linkedin: text or media, video/image/document, up to 9 items, text <= 3000 chars; title <= 400 chars; options via linkedin_options (alt_text, carousel, visibility) Update a post that is ALREADY LIVE via update_published_post — fix a typo, retitle, change tags or category. What each platform can still change once published: tiktok: no post-publication edit instagram: no post-publication edit facebook: no post-publication edit youtube: title, description, tags, category_id x: no post-publication edit linkedin: description Sparse: send only the fields you want changed and every other field on the live post is preserved. The reply carries one result per platform: `updated` (with the readback), `unsupported_after_publish` (the network has no edit path — nothing was touched), `reauthorization_required` (the user must reconnect that account) or `failed` with the platform's reason. Delete a post that is ALREADY LIVE via delete_published_post — it is two-phase: the first call previews and returns a CONFIRMATION_REQUIRED confirm_token, and only the exact retry presenting that token deletes. The reply carries one result per platform: `deleted`, `already_deleted` (GEN already removed it), `unsupported_after_publish` (the network has no delete path — nothing was touched), `reauthorization_required` (the user must reconnect that account) or `failed` with the platform's reason. timezone_offset on schedule_post_<platform> is the local UTC offset in hours (e.g. -7 for LA daylight); on publish_content it is minutes.

100.0/100

1 trials · measured 1 day ago

gen_publish_action scores 100.0/100 on Vouch's measured behaviour index, from 1 real invocation trials against io.github.poweredbyGEN/gen-mcp-server, measured 6 Oct 2026 under methodology v0.2.0. Every measured component scored 100.

Component breakdown

ComponentWeightValue
Reliability35%not applicable
Schema integrity25%100.0
Failure behaviour15%not applicable
Latency15%not applicable
Concurrency10%not applicable

Tool details

Transport
remote
Credential class
gated
Input schema
not declared
Output schema
not declared
Side-effect classification
unclassified

Score history

DayScoreTierMethodology
2026-10-06100.0shallowv0.2.0

Probe evidence

ProbeOutcomes
schema_integritypass: 1

Raw request/response logs are not archived yet — the outcome counts above are drawn directly from every recorded trial.

Embed this score

Available for every tool, scored or not — not a verification perk. Always links back to this page.

Vouch score: gen_publish_action
[![Vouch score](https://vouch.tools/api/tools/489a7f68-09bd-4a0f-8ddf-c694c1493b3f/badge.svg)](https://vouch.tools/tools/489a7f68-09bd-4a0f-8ddf-c694c1493b3f)
gen_publish_action — Vouch