MCP App Store
by KeenEthics
Business & Operations
Postiv AI icon

Postiv AI

by The DB Group LLC

Overview

Postiv helps you find strong content examples, turn your ideas and workspace knowledge into drafts, create images, carousels and infographics, and schedule LinkedIn posts. Manage connected personal profiles, teammates and company pages from one workspace. Review performance to find what works and repurpose successful posts. Read and reply to LinkedIn comments, manage approvals, and use saved writing styles and content plans. Publishing and engagement require a connected LinkedIn profile; drafts and workspace research can be used before connecting one.

Tools

add_engage_feed_profile

ChatGPT
Track a personal LinkedIn profile in an external feed list, maximum thirty profiles/list. New-post discovery runs in the background; pending means discovery has not completed.

add_knowledge

ChatGPT
Add a text document to the workspace knowledge base. It gets chunked and embedded, becoming retrievable context for Postiv's AI when it drafts posts. Use for positioning docs, meeting notes, newsletters, product updates. Do NOT use this to draft posts — use create_post.

approve_scheduled_post

ChatGPT
Record the API-key actor's approval for one scheduled post. This never bypasses other approvers: the post becomes queued only after everyone approves. For an expired approval, scheduledTime is required and must be a new future ISO-8601 time. Call only after the user explicitly approves the exact copy returned by list_pending_approvals.

archive_pillar

ChatGPT
Soft-delete an active content pillar so future weekly plans stop using it. Existing plan items and historical attribution remain intact. Use only after the user explicitly asks to retire that pillar.

attach_post_media

ChatGPT
Attach an existing IMAGE to a draft using the same images/image_versions storage as the editor, without scheduling or AI generation. Provide exactly one url, assetId, or imageId. For a local image or inaccessible chat attachment, call show_media_upload if you cannot read the bytes, or use prepare_media_upload / complete_media_upload for a background upload. Browse list_media first to reuse library media. URL imports support JPEG/PNG/GIF/WebP up to 10MB. schedule_post automatically includes the saved image when media inputs are omitted. PDFs, videos, carousels, and infographics are selected at scheduling time via schedule_post.mediaSource, as in the editor; they are not persisted on unscheduled drafts. Returns attachment data without UI; use show_image to present the saved image.

cancel_team_engagement

ChatGPT
Cancel a waiting or pending team engagement by its id from list_team_engagements. Cannot cancel an engagement already sending or completed; does not delete published content.

comment_on_post

ChatGPT
Immediately publish a top-level LinkedIn comment as integrationId, on a team or tracked external post. For tags, resolve the person/company URL with resolve_linkedin_mention using this acting integrationId, then insert its mention token in text. Requires authorization for target, actor and text. Returns commentId for deletion. Do not retry uncertain delivery; verify LinkedIn. A published result with warnings must not be reposted.

complete_media_upload

ChatGPT
After sending bytes using prepare_media_upload, verify and save the upload to the media library. Accepts only that uploadId, checks the exact actor/workspace, size and file signature, and returns assetId plus attachInput for images and scheduleInput for all media. Safe to retry the same uploadId; it returns the same saved asset. Does not attach, schedule, or publish. The inline widget uses this same completion action.

create_engage_feed_list

ChatGPT
Create an external-profile tracking list, maximum five per workspace. Check existing lists first.

create_infographic

ChatGPT
Create a single 1080x1350 editable Fabric infographic that publishes to LinkedIn as an IMAGE post (not a document — use create_carousel for multi-slide documents). Postiv generates the visual canvas itself using the profile's saved brand style — NEVER write or supply canvas HTML; provide a structured CONTENT plan (headline of at most 8-10 words, up to 4 sections, up to 6 data points, at most 8 items total). Only use real numbers, stats, and facts the user actually supplied — never invent data. Keep total on-canvas copy to 30-60 words: pick the sections and data points that matter most rather than including everything. For a designed template, first use list_visual_templates with format infographic and get_visual_template, then pass styleId and outline.fields with exact named slots and complete final copy (sections may be empty). Template recommendedLength is guidance; preserve requested details and let text wrap and grow vertically. maxLength is only an input safety cap. Without styleId, choose one archetype or auto. Pass planItemId when drafting a Bob plan item, so attribution and plan state stay linked. Generation fills native editable text and shape objects. After creation, render_carousel prepares the PNG; show_carousel displays it only when needed. Creation itself does not display a widget. To publish, create a companion post for the caption (create_post), then schedule_post with carouselId — it publishes as an image post automatically.

create_pillar

ChatGPT
Create one recurring content pillar for a LinkedIn profile (maximum five active pillars). Pillars are planning strategy, not individual post ideas. Supply a concise description and a notebook-style content definition.

create_post

ChatGPT
Create a post draft in the workspace library. Follow integrationId's assignment rules. Before writing original content, search workspace knowledge and, only when a profile is selected, load its writing style with get_writing_style; skip those separate reads when the user supplied complete source/copy or a selected Bob plan item's complete drafting package already contains them. Pass templateId when using search_templates, and planItemId when drafting a Bob plan item, so attribution and plan state stay linked. The supplied copy is saved as-is; there is no automatic hook rewrite. Humanization is optional and defaults to false; pass humanize=true only when the user wants the extra humanizer pass. Drafts never publish by themselves; use schedule_post to queue publishing. Returns saved post data without UI; use show_post when presenting the finished draft for review.

create_scratchpad_item

ChatGPT
Save a quick idea into the org's shared scratchpad - a mid-week buffer of notes, links, and images that decays after 30 days and feeds Bob's weekly content plan. Use for capturing a thought, article, or image worth revisiting, NOT for drafting or publishing content (use create_post for that). kind 'note' needs content; kind 'url' needs url (title/description/image are scraped server-side); kind 'image' needs imageUrl (fetched and stored server-side, max 10MB). File uploads are REST-only.

create_team_brief

ChatGPT
Create a workspace-wide writing assignment and assign it to every current member. Only owners and admins may call this. Use only when the user explicitly asks to create a team brief.

delete_comment

ChatGPT
Delete the real published LinkedIn comment, then clean up Postiv history. Requires an explicit deletion request and a recorded commentId belonging to this authenticated user and acting integrationId. Works for comments/replies from either source, even after untracking. Comments without a matching history record must be deleted on LinkedIn.

delete_scratchpad_item

ChatGPT
Permanently delete a scratchpad item - this cannot be undone, and also removes its stored image/file if any. Only delete when the user explicitly asks to remove a scrap; otherwise leave it alone, since every scrap already auto-expires 30 days after creation without any action needed.

deny_scheduled_post

ChatGPT
Deny a pending scheduled post as the API-key actor. This prevents publishing and sets the queue to approval_denied. Call only after the user explicitly denies the exact copy returned by list_pending_approvals.

detach_post_media

ChatGPT
Remove the saved image attachment from a draft post without deleting the library file or changing the post text. Does not schedule or publish.

dismiss_comment

ChatGPT
Mark a team-inbox comment as no reply needed, removing it from Postiv’s unanswered count. Explicit user action; reading alone does not dismiss. Does not reply, delete, hide or mark anything on LinkedIn.

edit_post_image

ChatGPT
Edit an existing Postiv image with natural-language instructions — the way to iterate on a generate_post_image result instead of regenerating from scratch. Stacks a new version on the same image; if the image is attached to a post, the post publishes the newest version automatically. Editing takes 15-60 seconds and costs real generation credits — don't retry blindly on slow responses. Returns saved image data without UI; use show_image when presenting it for review.

generate_post_image

ChatGPT
Generate a brand-NEW AI image for a post using Postiv's branded style presets or a freeform prompt. Only for posts that don't have the image you need yet: if a generated image already exists and the user wants it changed (different style, colors, 'more minimalist', etc.), you MUST call edit_post_image with the existing imageId instead — regenerating discards the version history and double-spends credits. The image is attached to the post (replacing any existing one), stored in the workspace image library, and published with the post by schedule_post automatically. Provide either style or freeformPrompt. Generation takes 15-60 seconds and costs real generation credits — don't retry blindly on slow responses. Returns saved image data without UI; use show_image when presenting it for review.

get_analytics_summary

ChatGPT
Read cached KPI totals (impressions, engagements, engagement rate, follower growth) for one analytics account or the whole workspace, over a trailing period or an explicit start/end date range.

get_bob_planning_settings

ChatGPT
Read Bob's planning settings for one LinkedIn profile: current status, posting cadence, active pillar count, and whether Bob already has a plan for the current week. Bob is Postiv's autonomous content planner.

get_comment_plug_config

ChatGPT
Read the default Comment Plug settings for LinkedIn profiles in this workspace. Use this before schedule_post when the user expects an automatic first comment: schedule_post.commentPlug mode 'inherit' only posts a comment if this profile config is enabled, has variants, and cmmConnected is true. Pass integrationId for one profile, or omit it to inspect all profiles.

get_content_plan_item

ChatGPT
The required reader before drafting a selected Bob plan item. Returns the complete drafting package in one call: exact topic, angle, goal, hook, format, profile and integrationId, trained writing-style instructions, structured attached knowledge sources with titles and asset IDs, trending context, research or sourced media, passed-day state, and ready-to-use createPostInput. Draft only from this result, do not search the knowledge base again unless sourceMaterials is empty, and pass createPostInput to create_post so the draft remains linked to Bob's plan.

get_inspiration

ChatGPT
App-only read of selected inspiration posts to refresh images inside an existing widget. Preserves the same ID lookup and profile access as show_inspiration without opening another widget.

get_performance_overview

ChatGPT
Read a cached day-by-day performance time series (impressions, engagements) for one analytics account or the whole workspace. Good for spotting trends before drafting new content.

get_pillar

ChatGPT
Read one content pillar in full: name, description, freeform content (what it covers and how to write for it), suggested posting day, mode, and 30-day performance (posts published, avg impressions, engagement rate vs. the profile average, top posts) when the pillar has published posts in that window. Use the pillar id from list_pillars.

get_post

ChatGPT
Read one post: current content, status, assigned profile, and version number. Posts with status scheduled/published are locked against edits. Returns authoritative data without opening a card; show_post presents the editor when needed.

get_post_analytics

ChatGPT
Read cached analytics for one post. Accepts either a Postiv post id from get_post/list_posts or an analytics post id from get_top_posts. Use this for questions about a specific post instead of fetching a broad top-posts list and filtering client-side. If the post has not been published/imported yet, it returns post_analytics_not_found with the post status.

get_post_comments

ChatGPT
Live-refresh the complete comment thread of one of the workspace’s own posts (team source). Returns the stored post plus commentId, parentCommentId, text, author, status and unansweredCount. Reading never dismisses comments. External (feed) posts have no readable comment thread and fail with external_comments_unavailable. Incomplete refreshes fail explicitly.

get_team_brief

ChatGPT
Read one team writing assignment in full, including its summary, writing instructions, deadline, points, creator, and every member assignment status. Use the id from list_team_briefs.

get_top_posts

ChatGPT
Read top cached posts with full metrics and time-limited media URLs. Sort by date/engagements/impressions, or use the outlier sorts (engagement_outlier, reach_outlier) to surface posts that over-performed the account's own baseline — the best inputs for 'write more like this'. Default is all-time: pass period (trailing days) or start/end to answer time-scoped questions like 'top posts last 30 days' — do not filter client-side.

get_visual_template

ChatGPT
Inspect a chosen carousel or infographic template before writing its copy. Returns exact field names, types, suggested copy lengths, input safety caps and illustrative examples. Request remainingSlideIndices until all layouts you will use have been inspected. Pass the same styleId to creation, with final copy in outline.slides[].fields (carousel) or outline.fields (infographic). Use show_visual_templates with styleIds and slideIndices when visual inspection is needed. No intermediate model maps copy into slots. Image fields accept HTTPS URLs. Name/avatar/CTA branding bindings come from the selected LinkedIn profile. Examples are not user facts.

get_visual_template_page

ChatGPT
App-only pagination inside an already open template picker. Returns preview hydration without opening another widget.

get_workspace

ChatGPT
Read the connected Postiv workspace (name, slug) and which scopes this API key has. Call this first to confirm you are in the right workspace and which tools are authorized.

get_writing_style

ChatGPT
Read the trained writing style for one LinkedIn profile: priority rules, voice, structure, formatting, vocabulary, custom instructions, saved learnings, and real hook/closing examples. Call this before drafting for that profile and follow modelContext as writing instructions. hasWritingStyle=false means the profile has not trained a style yet; do not invent one.

list_analytics_accounts

ChatGPT
List the LinkedIn analytics accounts tracked in this workspace, with last-import timestamps. Each account maps to one LinkedIn profile (integrationId + name). Call this FIRST before any other analytics tool — they all require an accountId, and this is where you resolve which profile the user means. Analytics data is cached (imported from LinkedIn), not live.

list_content_plans

ChatGPT
List Bob's weekly content plans for one LinkedIn profile, including every item's topic, angle, format, status, target day, and pillar plus an aggregate pillar distribution. Defaults to the current week; request up to four consecutive weeks. This is a summary only: after the user selects an item, read that exact item before drafting so its sources and writing style are loaded.

list_engage_feed_lists

ChatGPT
List current workspace tracking lists and external profiles. Team posts do not need tracking.

list_engagement_posts

ChatGPT
Find posts to engage with. source=team (default) includes your own posts, teammates and connected company pages, from successful Postiv publications and analytics records; no tracking list required. Use status=unanswered to work through the inbox. source=feed returns posts from the workspace’s Engage tracking lists (people to engage with). Post text, likes and comment counts come from Postiv’s stored records (collectedAt says when); LinkedIn is never read for post content. Team comment threads refresh live and completely; external posts expose no comment threads. Failed posts appear in failedItems with partial=true; healthy posts remain available. If every post on a page fails, the call fails. Discovery is limited to posts already known to Postiv; this does not crawl LinkedIn for new posts. days/order/cursor use stored discovery time (scheduled time for Postiv publications). Filters apply after loading a page: empty items with nextCursor means continue. unansweredCount covers successfully refreshed team candidates only and is not a workspace total. Keep filters unchanged across pages.

list_linkedin_profiles

ChatGPT
List the LinkedIn profiles and company pages connected to this workspace. Returns each profile's integration id — required by schedule_post and used by create_post/update_post to assign a post. profileType is personal (the API actor), team_member (another workspace member's personal profile), or organization_page (a company page). Call this before scheduling.

list_media

ChatGPT
Browse existing uploaded images, PDFs, videos, generated images, carousels, and infographics available to this workspace/actor. Filter by type or search titles, with pagination. Use this when the user wants to reuse existing media rather than generate something new. Images include saved references and attachInput for attach_post_media; all types include scheduleInput for schedule_post. For carousel/infographic contents, follow with get_carousel; call show_carousel to display existing exports. For files still on the user’s device or inaccessible chat attachments, use show_media_upload for an inline picker, or prepare_media_upload / complete_media_upload when you can read the bytes. Signed file URLs expire; browse again to refresh.

list_pending_approvals

ChatGPT
List scheduled posts awaiting a decision from the API-key actor in this workspace, including exact post copy, refreshed image/video media, carousel PDF, author and target-profile details, and every approver's status and comments. It never lists another approver's private queue. Call before making any approval decision.

list_pillars

ChatGPT
List the recurring content pillars (topics a LinkedIn profile wants to be known for) that Bob's weekly plans draw from. Summary shape only — name, description, mode, and suggested posting day; call get_pillar for full content and 30-day performance. Use list_pillars -> get_pillar before drafting for a specific pillar's theme.

list_posts

ChatGPT
List workspace posts filtered by status, assigned LinkedIn profile, or text search. ALWAYS filter deliberately instead of dumping everything: when the user asks what they have POSTED/published, use status 'published'; for upcoming content use 'scheduled' (returns only posts actually in the publish queue, each with scheduledTime); drafts are unpublished work-in-progress and must not be mixed into a 'what have I posted' answer. Each post includes its profile (id, name, headline, picture) — when the workspace has multiple profiles, group or label your summary by profile, or filter with integrationId if the user means one specific profile. Results carry a 300-char contentPreview only: before quoting, summarizing, or discussing a SPECIFIC post, call get_post for its full text.

list_scratchpad_items

ChatGPT
List every live (non-expired) item in the org scratchpad - notes, links, and images teammates saved for later, each with its status (fresh, suggested, used) and who created it. Scraps auto-expire 30 days after creation. Use before promote_scratchpad_item to find an item's id.

list_team_briefs

ChatGPT
List workspace-wide writing assignments with their deadline, instructions, creator, and per-member draft/scheduled/published progress. Defaults to active briefs. Use get_team_brief before drafting from one.

list_team_engagements

ChatGPT
List per-post queued team likes, comments, reposts, and Slack shares, plus eligible acting profiles and Slack channels. Use a Postiv postId from list_posts or get_post. Delays start after actual publication through Postiv.

list_tracked_creators

ChatGPT
List the creators the owner of a LinkedIn profile tracks in the Inspiration library (competitors and benchmark creators whose content they study; not the Engage lists of people to interact with). For each creator returns their normal engagement (median likes + comments + shares over 90 days) and their recent posts, each with vsNormal (engagement ÷ normal) and isOutlier. baseline.reliable=false means too few stored posts to judge outliers. Use outliers_only for 'what worked unusually well for my competitors lately'. Use search_inspiration with creator_ids or tracked_only for full post text.

list_visual_templates

ChatGPT
List workspace and built-in carousel or infographic templates as data, without previews or a picker. Paginate using nextOffset. Use get_visual_template for exact field contracts; use show_visual_templates when the user should see or choose a design. Selection does not authorize creation or publishing.

prepare_media_upload

ChatGPT
Get a signed upload URL and multipart form fields for a file whose bytes you can read. Background flow, like Slack file uploads: prepare -> POST the actual bytes -> complete_media_upload. Send all returned fields unchanged and append file last. Never pass local paths, URLs, or base64 as file bytes, never expose signed credentials to the user, and never finalize without transferring the bytes. If you cannot access the bytes, call show_media_upload instead. Also used by the inline widget. Images 10MB, PDFs 50MB, videos 200MB. Does not generate, attach, schedule, or publish media.

promote_scratchpad_item

ChatGPT
Promote a scratchpad scrap into a permanent knowledge base asset, shared with the whole org (same as add_knowledge), so it becomes retrievable context for future drafts via search_knowledge. On success the scrap is deleted; on failure it is left untouched. Not every scrap can be promoted yet (e.g. an empty note, or a file type without a promotion path) - a not_promotable error means the scrap is still there.

queue_team_engagement

ChatGPT
Queue one explicitly requested team like, comment, reshare, or Slack share on a saved Postiv post. Likes, comments and Slack shares send after publication plus delayMinutes (0–1440). A repost creates a linked calendar post through the publishing approval workflow and requires scheduledTime as an ISO timestamp at least two minutes in the future. It publishes at that time only if the source has succeeded; otherwise it waits and becomes eligible after source publication. Call list_team_engagements first to select an allowed integrationId or channelId. For comments, supply the exact user-approved message. Repost thoughts are optional; use an empty message for a text-free reshare. When adding thoughts, use the exact user-approved text; never invent endorsements or treat a request to draft as permission to queue. Slack shares also require explicit permission to send. Reuse the same UUID idempotencyKey when retrying the same request. An uncertain delivery must be checked at the destination before queuing again. Reshares support your own source profile and require the acting profile’s normal publication approvals. The returned postId identifies the linked calendar post.

react_to_post

ChatGPT
Add/replace a LinkedIn reaction as integrationId, or remove with reactionType=null. Optional commentId targets a comment on this post instead of the post (team posts only; external posts support post reactions only). Requires user authorization. LinkedIn is authoritative for reaction state; no recurring automation is configured.

remove_engage_feed_profile

ChatGPT
Stop tracking a profile in this list. Preserves the shared creator and published LinkedIn comments.

reply_to_comment

ChatGPT
Immediately reply to a LinkedIn comment as integrationId. Postiv automatically prepends a real tag of that comment’s author using the refreshed author name and URN, like Reply in the app; pass the reply body without manually adding that tag or resolving their URL. An existing leading author tag is not duplicated. If the author identity/name is unavailable, the reply is sent without that prefix. The final 1250-character limit includes the automatic tag. The result message contains the actual published text and attributes. Team posts only: external (feed) posts have no readable comment thread. Refreshes and verifies the target comment first, then refreshes comments after publishing. For tags, resolve the person/company URL with resolve_linkedin_mention using this acting integrationId, then insert its mention token in text. Requires authorization for target, actor and text. A post-publish refresh/history failure is a success with warnings, never an instruction to repost.

request_approval_changes

ChatGPT
Return a pending scheduled post to the author with concrete revision feedback. This changes the queue to changes_requested and prevents publishing. Call only after the user explicitly asks for revisions to the exact copy returned by list_pending_approvals.

reschedule_post

ChatGPT
Move an already-scheduled post to a new publish time without touching its content, media, or approval state. Only works on posts with status "scheduled"; the new time must be at least 2 minutes in the future.

resolve_linkedin_mention

ChatGPT
Step 1 of tagging a person or company in a post, comment, or reply: resolve their LinkedIn vanity URL to a real URN and ready-to-paste mention token. Requires the posting integrationId from list_linkedin_profiles. Accepts /in/, /company/, /school/, and /showcase/ URLs, including numeric company URLs. Step 2: insert the returned mention unchanged into create_post/update_post content or comment_on_post/reply_to_comment text. Postiv translates the token into the destination format. Never guess a URN from a vanity slug or use @Name as a real tag. If only a name is known, ask for its URL. Lookup can fail when LinkedIn permissions or an administered company page are missing. This does not publish or notify anyone. For comments/replies, use the acting integrationId and count visible names toward the 1250-character limit.

schedule_post

ChatGPT
Schedule a draft post to LinkedIn through Postiv's publish queue. This NEVER publishes immediately: scheduledTime must be 2+ minutes in the future, and if the target profile has human approvers the post waits for their approval (relay requiresApproval and the message field to the user). A post linked to a Bob content-plan item can be scheduled through another accessible LinkedIn profile; its original plan-item link is preserved. An image attached to the draft is included automatically when media inputs are omitted. For local files or inaccessible chat attachments, use prepare_media_upload / complete_media_upload if you can read the bytes; otherwise call show_media_upload and wait for the uploaded asset reference. For PDFs, videos, carousels, or infographics, pass mediaSource (from list_media or a public file URL); these are saved with the publish queue, as in the editor. Pass carouselId to publish a Postiv carousel or infographic — the post's text is the caption. A carousel publishes as a LinkedIn document post and must be rendered first (render_carousel); an infographic publishes as an image post of its canvas PNG, rendered automatically at scheduling time (expect an extra ~10 seconds). Supports a Comment Plug (automatic first comment after publishing — see the commentPlug param; the profile's configured plug applies by default). Text, image, PDF, video, carousel, and infographic posts.

search_inspiration

ChatGPT
Search Postiv's moderated LinkedIn inspiration library with an optional semantic query and exact filters for creator name/handle, lead magnets, recency, engagement ranges, content format/category, creator size, and ordering. Query is optional: use filter-only searches for requests such as 'lead-magnet posts from the last 7 days sorted by comments'. creator_name excludes unrelated creators. Returns approved content from public creators; pass integrationId to also include the creators that profile's owner tracks in the Inspiration library (including private ones), and tracked_only or creator_ids to narrow to them. Use this for 'what's working in my niche' research and write-more-like-this seeds; use search_knowledge for workspace facts. Returns data and stable hit IDs without UI; use show_inspiration with selected IDs to present cards.

search_knowledge

ChatGPT
Semantically search the workspace knowledge base (company facts, positioning docs, meeting notes, product updates, past content added via add_knowledge or the app). Use this to ground a draft in the workspace's actual knowledge BEFORE writing — quote and reuse what it finds rather than inventing details. Each hit is a trimmed chunk from a source document; assetId identifies the source.

search_templates

ChatGPT
Search Postiv's proven LinkedIn post-writing templates, including global templates and this workspace's custom templates. Results include the reusable pattern, what it works best for, an example, and a template id. Use the structure without copying the example's facts; pass the chosen templateId to create_post so Postiv preserves attribution and usage analytics.

set_comment_plug_config

ChatGPT
Set the profile-level default Comment Plug used by future scheduled posts that inherit profile settings. This is NOT a per-post override; for one scheduled post use schedule_post.commentPlug instead. Requires cmmConnected=true for enabled configs. To disable the default, set enabled=false (variants can be empty).

show_image

ChatGPT
Use when presenting a saved image for visual review. Pass source=image with an imageId from generation/editing, or source=asset with an uploaded assetId, as id. Loads the current authorized image without generating, editing, attaching, or spending credits.

show_inspiration

ChatGPT
Use when presenting selected inspiration posts as cards for comparison or selection. First search_inspiration, then pass its stable hit IDs in the desired order. Pass the same integrationId for private tracked creators. Does not repeat semantic search.

show_media_upload

ChatGPT
Show an INLINE upload card in this conversation, with drag-and-drop and a file picker for up to 20 images, PDFs, or videos. Use when the user wants to upload media and you cannot read the file bytes, even if you know its filename/path. The widget uses this MCP connection, with no separate website or sign-in. It saves media and sends the exact asset references back to the conversation. Wait for completed upload results; merely displaying the card is not an upload. Images support attach_post_media; PDF/video files use schedule_post.mediaSource when scheduling is authorized. If you CAN read the bytes, use prepare_media_upload and complete_media_upload for a background upload instead. Postiv-generated/edited images are already stored and attached and never need this picker. Do not replace an available card with a browser link.

show_post

ChatGPT
Use when presenting a saved post for review in an editable card. Pass an existing post id from create_post, get_post, or list_posts. Do not call after every intermediate edit. Opening the card does not change the post.

show_visual_templates

ChatGPT
Use when the user should see or choose carousel/infographic designs. Pass format and optionally selected styleIds from list_visual_templates, or browse with offset/limit. For visual layout inspection pass one styleId in styleIds and slideIndices. Selection alone never creates or publishes content.

submit_feedback

ChatGPT
Send the user's explicit feedback about Postiv or Bob to the Postiv product team. Preserve their wording and important specifics. Call only when the user clearly gives product feedback or asks you to pass something to the team. Never infer feedback from silence, ordinary editing requests, or general conversation, and never include a conversation transcript. If intent is ambiguous, ask first.

suggest_reply

ChatGPT
Draft an AI reply suggestion for a comment on one of the workspace’s own posts, using the stored post text, the live comment and the selected profile voice. Does not publish. Review the suggestion, then use reply_to_comment if authorized.

unschedule_post

ChatGPT
Cancel a scheduled post before it publishes: removes its queued publish and puts the post back into draft (editable again). Only works on posts with status "scheduled" — published posts cannot be recalled.

update_bob_planning_settings

ChatGPT
Update Bob's posting cadence for one LinkedIn profile. postingDays is the source of truth and automatically determines postsPerWeek. This does not activate, pause, or directly run Bob.

update_pillar

ChatGPT
Update an active content pillar's name, summary, notebook content, or suggested day. Omitted fields stay unchanged. System-owned learnings/sources sections are preserved when content is replaced. Call get_pillar first before changing strategy.

update_post

ChatGPT
Update a draft post: title, content (stored verbatim as a new version), or assigned LinkedIn profile. At least one field is required. A post linked to a Bob content-plan item can be reassigned to another accessible LinkedIn profile or left unassigned; its original plan-item link is preserved. Fails on published posts, and on scheduled posts — call unschedule_post first to put a scheduled post back into draft. Returns updated post data without opening a card. This is also the tool the inline widget card calls when the user manually edits the draft text there.

update_scratchpad_item

ChatGPT
Edit a scratchpad item's content and/or lifecycle status (fresh, suggested, used). Omit a field to leave it unchanged. Use the id from list_scratchpad_items.

upload_media

ChatGPT
Deprecated name. Returns a redirect instruction without opening UI. Use show_media_upload to open the file picker, or prepare_media_upload and complete_media_upload when file bytes are accessible.

Capabilities

WritesInteractive

Example Prompts

Click any prompt to copy it.

App Stats

86

Tools

3

Prompts

ChatGPT

Platforms

Works with

ChatGPT

Data refreshed daily