posterly
NPM · POSTERLY-MCP-SERVER · 2 COMPONENTS · SCANNED AUG 3
Validate, schedule, publish, and analyze social content across 18 platforms with posterly.
Available components
How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score →
Supply Chain Security87
- No malware found by supply-chain analysis.Pass
- Only part of the dependency tree could be resolved (95 of 99), so this covers what we could see, not the whole tree.Partial
- No install/post-install scripts declared.Pass
- Only part of the dependency tree could be resolved (95 of 99), so this covers what we could see, not the whole tree. View diagnostics → Partial
Provenance & Transparency19
- Repository check failed: the declared repository URL returned HTTP 404. See how to fix → View diagnostics → Fail
- Provenance check failed: no build-provenance attestation is published. See how to fix → View diagnostics → Fail
- Clear OSI-approved license (MIT).Pass
- Actively maintained (last published 3 days ago).Pass
- Security-disclosure policy not yet verified: we couldn't inspect the source repository.Unverified
Schema Quality & AI Usability60
- AI-judged instruction clarity (good).Pass
- Context-footprint check failed: tool/resource definitions use about 11296 tokens (~150/item across 75 items; 75 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management27
- Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage93
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 79% of tool parameters carry a description.Partial
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.
npm · posterly-mcp-server
claude mcp add awpthorp-posterly -- npx -y posterly-mcp-server
codex mcp add awpthorp-posterly -- npx -y posterly-mcp-server
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"awpthorp-posterly": {
"type": "local",
"command": [
"npx",
"-y",
"posterly-mcp-server"
],
"enabled": true
}
}
} openclaw mcp add awpthorp-posterly --command npx --arg -y --arg posterly-mcp-server
mcp_servers:
awpthorp-posterly:
command: "npx"
args: ["-y", "posterly-mcp-server"] {
"mcpServers": {
"awpthorp-posterly": {
"command": "npx",
"args": [
"-y",
"posterly-mcp-server"
]
}
}
} Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 2 Aug 26 +47
- Provenance: unverified → fail ▼ security
- Install scripts: unverified → pass ▲ security
- Known CVEs: unverified → partial ▲ security
- Malware scan: unverified → pass ▲ security
- Maintenance: unverified → pass ▲ functional
- Stability: unverified → 0.23 ▲ functional
- Schema quality: unverified → good ▲ functional
- MCP protocol: unverified → pass ▲ functional
- License: unverified → pass ▲ functional
- Dependency health: unverified → partial ▲ functional
- Licence: MIT functional
- 31 Jul 26 +13
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 30 Jul 26 0
- Tool coverage: unverified → 100 ▲ functional
- Package version: 0.27.0 → 0.27.1 functional
- 28 Jul 26 −19
- Tool coverage: 100 → unverified ▼ functional
- First check of Schema quality: unverified functional
- 27 Jul 26 19
First indexed and scored.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 3 Aug 2026 · Analysed npm/[email protected]
Provenance none
Ecosystem: npm · Outcome: none
Dependencies 95 packages
95 packages in the resolved dependency tree · 95 deprecated · 29 stale.
The dependency tree was only partially resolved, so these counts may be incomplete.
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability.
add_google_business_media ~251
Add a photo or video to a Google Business Profile gallery (the media shown on Maps and Search). Provide a public https source_url first by uploading via upload_media_from_url or upload_media. COVER and PROFILE are single-slot and replace the existing one. WRITE: show the location, category, and media URL to the user, then pass confirm=true only after explicit confirmation.
| Name | Type | Req | Description |
|---|---|---|---|
| account_id | integer | — | Google Business account ID from list_accounts. |
| category | string | yes | Which gallery category to add the media to. |
| confirm | boolean | yes | Must be true after explicit user confirmation. |
| location_id | string | — | Google Business numeric location id (the location_id/platform_user_id from list_accounts, e.g. "197940849675145390"). NOT the ChIJ... Place ID returned by get_google_business_review_link. Prefer acco… |
| media_format | string | — | Defaults to PHOTO. Use VIDEO for videos (Google caps profile videos at 30s / 75MB). |
| source_url | string | yes | Public https URL of the photo or video (from upload_media / upload_media_from_url). |
| workspace_id | string | — | Filter to a workspace ID from whoami. |
No output schema declared.
No examples provided.
ask_support ~209
Ask Posterly Support AI an authenticated question using Posterly docs plus read-only account/post diagnostics for the caller workspace. Requires POSTERLY_API_KEY with accounts:read and posts:read scopes. Human ticket creation requires request_human=true and confirm_escalation=true after explicit user confirmation.
| Name | Type | Req | Description |
|---|---|---|---|
| confirm_escalation | boolean | — | Must be true after explicit user confirmation before a human support ticket can be created. |
| conversation_id | string | — | Continue a previous support conversation. |
| page_url | string | — | Optional Posterly page URL for context. |
| post_id | integer | — | Optional post ID to inspect directly. |
| question | string | yes | — |
| referenced_post_ids | array | — | Optional post IDs to include in read-only diagnostics. |
| request_human | boolean | — | Ask for human review. Does not create a ticket unless confirm_escalation is also true. |
| workspace_id | string | — | Workspace to inspect. Omit to use the API-key scoped workspace or personal workspace. |
No output schema declared.
No examples provided.
audit_google_business_profile ~122
Run a live local-profile audit for a connected Google Business Profile location, including completeness, categories, media, attributes, reviews, and recommendations.
| Name | Type | Req | Description |
|---|---|---|---|
| account_id | integer | — | Google Business account ID from list_accounts. |
| location_id | string | — | Google Business numeric location id (the location_id/platform_user_id from list_accounts, e.g. "197940849675145390"). NOT the ChIJ... Place ID returned by get_google_business_review_link. Prefer acco… |
| workspace_id | string | — | Filter to a workspace ID from whoami. |
No output schema declared.
No examples provided.
cancel_subscription ~172
Cancel the authenticated user's posterly subscription. DESTRUCTIVE billing action; requires the billing:write scope. ALWAYS ask the user why they are cancelling FIRST and pass their answer as `reason` (one of the allowed values). By default the subscription is set to cancel at the end of the current period; pass immediate=true only if the user explicitly wants it cancelled right now. Only call after the user explicitly confirms.
| Name | Type | Req | Description |
|---|---|---|---|
| confirm | boolean | yes | Must be true after the user explicitly confirms the cancellation. |
| feedback | string | — | Optional free-text detail the user gave about why they are cancelling. |
| immediate | boolean | — | Cancel immediately instead of at period end. Defaults to false (cancel at period end). |
| reason | string | yes | Why the user is cancelling. Ask the user before calling; do not guess. |
No output schema declared.
No examples provided.
create_api_key ~196
Create a new Posterly API key for the authenticated user. SECRET-CREATING WRITE: only use after explicit user confirmation. The new key can only request scopes already present on the calling dashboard-created API key; OAuth and managed assistant tokens cannot mint keys.
| Name | Type | Req | Description |
|---|---|---|---|
| confirm | boolean | yes | Must be true after the user explicitly confirms that a new secret API key should be created. |
| expires_in_days | integer | — | Optional expiry from now, up to 365 days. Omit for no expiry. |
| name | string | — | Human-readable key name. |
| scopes | array | — | Scopes for the new key. Omit to copy the calling key scopes. Cannot exceed the calling key scopes. billing:read and billing:write allow managing the posterly subscription (cancel/pause/resume/downgra… |
| workspace_id | string | — | Optional workspace restriction. Workspace-scoped calling keys cannot create keys outside their workspace. |
No output schema declared.
No examples provided.
create_connect_session ~182
Create a short-lived Posterly dashboard handoff session for connecting a social account. Send the secure connection URL to the user, then poll get_connect_session to narrate progress. Do not ask for social media passwords or OAuth codes; Posterly handles those browser steps.
| Name | Type | Req | Description |
|---|---|---|---|
| auto_start | boolean | — | When true, the dashboard starts the provider flow after the user opens the URL. Defaults to true. |
| debug | boolean | — | When true, include the raw connect session JSON for debugging. Keep false for normal user-facing agent flows. |
| platform | string | yes | Connection target such as instagram, meta, linkedin_page, twitter, google_business, telegram, bluesky, discord, mastodon, devto, hashnode, wordpress, or lemmy. |
| workspace_id | string | — | Workspace to connect the account into. Workspace-scoped API keys ignore this. |
No output schema declared.
No examples provided.
create_oauth_client ~105
Create a public OAuth 2.1 + PKCE developer client. WRITE: confirm app name, redirect URIs, and scopes with the user before calling.
| Name | Type | Req | Description |
|---|---|---|---|
| allowed_redirect_uris | array | yes | — |
| client_name | string | yes | — |
| confirm | boolean | yes | Must be true after explicit user confirmation. |
| default_scopes | array | yes | — |
| description | string | — | — |
| homepage | string | — | — |
| is_active | boolean | — | — |
No output schema declared.
No examples provided.
create_post ~1,321
Schedule or immediately publish a social media post. This is a DESTRUCTIVE WRITE that creates content on the user's real social accounts - once scheduled_at passes, it will be posted publicly and cannot be un-posted. REQUIRED BEFORE CALLING: 1. Call `whoami` at the start of any new session to confirm which workspace and user you are acting for. 2. Show the user a preview containing ALL of: account(s) and platform(s), final caption text, scheduled time (in the user's timezone), media attached (if any), and workspace name. 3. Get explicit confirmation from the user (e.g. "post it", "yes schedule that", "looks good") BEFORE calling this tool. Do NOT infer consent from earlier instructions like "post about X every Monday" - confirm each individual post or the entire batch. 4. If scheduling multiple posts in one turn, list every post first and confirm the batch as a whole, then prefer `create_posts_batch` so they are created in one API request. AFTER CALLING: Tell the user the post was created, include the Posterly dashboard link returned by the tool, and offer the next natural action. Do not narrate raw HTTP, curl, or API plumbing. Provide either account_id OR username+platform to identify the account. If scheduled_at is omitted, the post publishes immediately. If workspace_id is omitted, the server resolves one from the social account, falling back to the caller's default (personal) workspace - pass workspace_id explicitly if the user has more than one workspace. MEDIA URLS: Posterly storage URLs are used as-is. Third-party HTTP(S) media URLs are copied into Posterly storage before the post is saved, so API-created posts do not later fail on expired signed URLs. Short-lived signed URLs must still be live when this tool runs. You can also call `upload_media_from_url` first if you want to upload once and reuse the returned Posterly URL across posts. THREADS: Pass `thread_posts` (an array of 2+ strings) to schedule a multi-post thread on X (Twitter) or Threads (Meta…
| Name | Type | Req | Description |
|---|---|---|---|
| account_id | string | — | Social account ID (from list_accounts) |
| caption | string | — | The post caption/text content. Ignored when `thread_posts` is provided. |
| confirm | boolean | yes | Must be true after explicit user confirmation of the post/account/workspace/schedule. |
| instagram_settings | object | — | Instagram-specific settings: post_type (post/feed/story/reel/carousel), collaborators, user_tags, first_comment, media_alt_texts, is_trial_reel, graduation_strategy (defaults to MANUAL), reel_cover_u… |
| media_url | string | — | Media URL to attach. Posterly storage URLs are used as-is; third-party HTTP(S) URLs are copied into Posterly storage before the post is saved. Short-lived signed URLs must still be live when this too… |
| media_urls | array | — | Multiple media URLs for carousel or multi-image posts. Posterly storage URLs are used as-is; third-party HTTP(S) URLs are copied into Posterly storage before the post is saved. For TikTok, 2 or more… |
| platform | string | — | Platform name (required with username). Supported: instagram, facebook, tiktok, twitter, linkedin, youtube, pinterest, threads, google_business, telegram, bluesky, discord, slack, mastodon, devto, ha… |
| platform_settings | object | — | Platform-specific settings for the selected account. Use this for non-Instagram settings and prefer it over raw metadata. |
| post_type | string | — | Optional post type: text, image, video, carousel, reel, story, story_series, document, photo, cover_photo, x_thread, or threads_thread. Omit it for auto-detection from media. For TikTok photo posts,… |
| scheduled_at | string | — | ISO 8601 datetime for scheduling (e.g. 2026-03-05T09:00:00Z). Omit for immediate publish. |
| thread_posts | array | — | For X or Threads only: array of 2+ strings, one per post in the thread. The first entry leads, the rest reply in order. When set, the platform must be twitter or threads. |
| username | string | — | Account username (alternative to account_id) |
| workspace_id | string | — | Workspace ID to assign the post to (from whoami). If omitted, uses the account's workspace or the caller's default workspace. |
No output schema declared.
No examples provided.
create_posts_batch ~268
Create 1-25 scheduled or immediate social posts in one API request. This is a DESTRUCTIVE WRITE that creates content on the user's real social accounts - once scheduled_at passes, posts may go public and cannot be un-posted. REQUIRED BEFORE CALLING: 1. Call `whoami` at the start of any new session to confirm which workspace and user you are acting for. 2. Show the user a preview of EVERY post: account/platform, final caption or thread text, scheduled time in their timezone, media, platform settings, and workspace. 3. Get explicit confirmation for the whole batch before calling. Do not infer consent from an earlier content plan. AFTER CALLING: Summarize the batch result in natural language, include the Posterly dashboard link returned by the tool, and avoid narrating raw HTTP, curl, or API plumbing. Each item accepts the same fields as `create_post`, including `thread_posts`, `platform_settings`, `instagram_settings`, media URLs, and workspace_id. The endpoint may partially succeed; failed items are returned with their index.
| Name | Type | Req | Description |
|---|---|---|---|
| confirm | boolean | yes | Must be true after explicit user confirmation of every post in the batch. |
| posts | array | yes | Posts to create. Each item uses the same schema as create_post. |
No output schema declared.
No examples provided.
create_signed_upload ~92
Create a signed upload URL for a larger image or video. Upload the binary to upload_url; the API validates actual bytes before storage, then public_url can be used with create_post.
| Name | Type | Req | Description |
|---|---|---|---|
| content_type | string | yes | MIME type, e.g. video/mp4 |
| filename | string | yes | Filename with extension, e.g. launch-video.mp4 |
| size | integer | yes | File size in bytes |
No output schema declared.
No examples provided.
create_webhook ~156
Create a webhook subscription for post/account/analytics events. WRITE WITH OUTBOUND SIDE EFFECTS: show the user the target URL, workspace, events, and active state, then get explicit confirmation before calling. The response includes the signing secret once.
| Name | Type | Req | Description |
|---|---|---|---|
| confirm | boolean | yes | Must be true after the user explicitly confirms webhook creation. |
| description | string | — | — |
| events | array | — | Events to deliver. Defaults to core post lifecycle events. |
| is_active | boolean | — | Defaults to true. |
| url | string | yes | HTTPS webhook endpoint URL. Localhost HTTP is allowed by the API for development. |
| workspace_id | string | — | Optional workspace filter. Omit for all workspaces owned by the API key user. |
No output schema declared.
No examples provided.
delete_api_key ~123
Revoke a Posterly API key owned by the authenticated user. DESTRUCTIVE: call whoami or use a known key ID, show the user the exact key ID/prefix/name if available, and get explicit confirmation before calling. Cannot revoke the key currently authenticating this request, OAuth-issued keys, or managed assistant keys.
| Name | Type | Req | Description |
|---|---|---|---|
| confirm | boolean | yes | Must be true after the user explicitly confirms API key revocation. |
| key_id | string | yes | API key ID to revoke. This is the API key resource ID, not the secret pst_live_ value. |
No output schema declared.
No examples provided.
delete_google_business_media ~187
Remove a photo or video from a Google Business Profile gallery. Get media_name from list_google_business_media. This permanently deletes the item from the public profile. WRITE: show the exact media item and location to the user, then pass confirm=true only after explicit confirmation.
| Name | Type | Req | Description |
|---|---|---|---|
| account_id | integer | — | Google Business account ID from list_accounts. |
| confirm | boolean | yes | Must be true after explicit user confirmation. |
| location_id | string | — | Google Business numeric location id (the location_id/platform_user_id from list_accounts, e.g. "197940849675145390"). NOT the ChIJ... Place ID returned by get_google_business_review_link. Prefer acco… |
| media_name | string | yes | Full media resource name from list_google_business_media (accounts/.../locations/.../media/...). |
| workspace_id | string | — | Filter to a workspace ID from whoami. |
No output schema declared.
No examples provided.
delete_google_business_review_reply ~155
Delete the owner reply from a Google Business Profile review. DESTRUCTIVE: confirm the review and location with the user, then pass confirm=true only after explicit confirmation.
| Name | Type | Req | Description |
|---|---|---|---|
| account_id | integer | — | Google Business account ID from list_accounts. |
| confirm | boolean | yes | Must be true after explicit user confirmation. |
| location_id | string | — | Google Business numeric location id (the location_id/platform_user_id from list_accounts, e.g. "197940849675145390"). NOT the ChIJ... Place ID returned by get_google_business_review_link. Prefer acco… |
| review_name | string | yes | Full Google review resource name. |
| workspace_id | string | — | Filter to a workspace ID from whoami. |
No output schema declared.
No examples provided.
delete_oauth_client ~64
Delete a self-serve OAuth developer client. DESTRUCTIVE: prevents new authorizations for that client_id; existing access tokens remain revocable as API keys.
| Name | Type | Req | Description |
|---|---|---|---|
| client_id | string | yes | — |
| confirm | boolean | yes | Must be true after explicit user confirmation. |
No output schema declared.
No examples provided.
delete_post ~136
Delete a scheduled or draft post. DESTRUCTIVE and IRREVERSIBLE - the post and its caption cannot be recovered. Cannot delete published or currently publishing posts. REQUIRED BEFORE CALLING: Fetch the post with `get_post` first and show the user what will be deleted (caption, account, scheduled time). Get explicit confirmation ("yes delete it", "remove it") before calling. Never delete multiple posts in a single batch without listing each one and confirming the full list.
| Name | Type | Req | Description |
|---|---|---|---|
| confirm | boolean | yes | Must be true after explicit user confirmation of the post deletion. |
| post_id | number | yes | The post ID to delete |
No output schema declared.
No examples provided.
delete_post_group ~89
Delete every draft/scheduled/failed/paused post matching a caller-defined group_id, post_group_id, api_group_id, or release_id. DESTRUCTIVE: inspect the group first, list the affected posts, and pass confirm=true only after explicit confirmation.
| Name | Type | Req | Description |
|---|---|---|---|
| confirm | boolean | yes | Must be true after explicit user confirmation. |
| group_id | string | yes | Group/release ID to delete. |
No output schema declared.
No examples provided.
delete_webhook ~71
Delete a webhook subscription. DESTRUCTIVE: list the webhook first, show the user its URL/events/workspace, and get explicit confirmation before calling.
| Name | Type | Req | Description |
|---|---|---|---|
| confirm | boolean | yes | Must be true after the user explicitly confirms webhook deletion. |
| webhook_id | string | yes | Webhook ID from list_webhooks. |
No output schema declared.
No examples provided.
disconnect_account ~123
Disconnect a connected social account from posterly. DESTRUCTIVE and IRREVERSIBLE: removes the account connection, emits account.disconnected webhooks, and may transfer Instagram scheduled posts to a replacement account. REQUIRED BEFORE CALLING: Call `list_accounts` first, show the user the exact platform, username, account ID, and workspace that will be disconnected, then get explicit confirmation. Pass confirm=true only after that confirmation.
| Name | Type | Req | Description |
|---|---|---|---|
| account_id | string | yes | Connected social account ID from list_accounts. |
| confirm | boolean | yes | Must be true after explicit user confirmation. |
No output schema declared.
No examples provided.
dismiss_suggestion ~67
Dismiss a proactive post suggestion so it stops appearing. WRITE: confirm the exact suggestion with the user first. Never dismisses a suggestion that was already turned into a scheduled post (that would break adoption tracking).
| Name | Type | Req | Description |
|---|---|---|---|
| suggestion_id | string | yes | Suggestion ID from list_post_suggestions. |
No output schema declared.
No examples provided.
downgrade_subscription ~91
Downgrade the authenticated user's posterly subscription one tier (or to an explicit lower `tier`) at the next renewal with no proration. Billing action; requires the billing:write scope. Only call after the user explicitly confirms.
| Name | Type | Req | Description |
|---|---|---|---|
| confirm | boolean | yes | Must be true after the user explicitly confirms the downgrade. |
| tier | string | — | Optional explicit target tier. Omit to drop one tier automatically. |
No output schema declared.
No examples provided.
find_available_slot ~179
Find available time slots for posting. Respects a 1-hour gap between posts and preferred hours (8am-10pm in the given timezone). Returns up to 10 slots. IMPORTANT: pass a timezone explicitly - default is America/New_York and slots will be off if the user is elsewhere. Pass workspace_id to only avoid collisions with posts in that workspace.
| Name | Type | Req | Description |
|---|---|---|---|
| account_ids | array | — | Filter slots for specific account IDs |
| count | number | — | Number of slots to return (default 5, max 10) |
| timezone | string | — | IANA timezone (e.g. Asia/Dubai, Europe/London). Defaults to America/New_York - pass the user's actual timezone or slots will be wrong. |
| workspace_id | string | — | Scope slot-finding to a single workspace (get IDs via whoami). |
No output schema declared.
No examples provided.
generate_captions ~239
Generate or adapt AI caption suggestions for one or more social platforms. Uses AI Caption Assist quota and returns options only; it does not create or schedule posts. After the user chooses final copy, pass it to create_post or create_posts_batch.
| Name | Type | Req | Description |
|---|---|---|---|
| allow_emojis | boolean | — | — |
| brief | string | — | What the post is about. Recommended for generate mode. |
| count | integer | — | — |
| hashtag_strategy | string | — | — |
| manual_brand_voice | object | — | Use when Posterly asks for brand voice input. |
| mode | string | — | — |
| platforms | array | yes | Target platforms such as instagram, linkedin, twitter, tiktok, youtube, pinterest, or google_business. |
| preserve_call_to_action | boolean | — | — |
| preserve_links | boolean | — | — |
| preserve_mentions | boolean | — | — |
| social_account_id | string | — | Optional connected account ID for brand voice and workspace billing context. |
| source_caption | string | — | Required when mode=adapt. The master caption to adapt. |
| source_platform | string | — | — |
| tone | string | — | — |
| workspace_id | string | — | — |
No output schema declared.
No examples provided.
generate_image ~435
Generate an AI image via Posterly's Nano Banana (Gemini) integration. The image is saved to the user's media storage and the returned URL can be passed to `create_post` as `media_url`. COSTS CREDITS. Every call consumes part of the user's monthly AI image quota (or purchased credits once the quota is exhausted). Do NOT call speculatively - always describe the image you're about to generate (subject, style, aspect ratio) to the user and get confirmation before calling. If the user is over their plan limit and has no credits, this tool returns a 402 with upgrade info. Surface that message verbatim - do not retry. Common aspect ratios by platform: • Instagram feed / LinkedIn: 1:1 (square) or 4:5 (portrait) • Instagram Story/Reel, TikTok, YouTube Shorts: 9:16 • YouTube thumbnail, Twitter cards, landscape feed: 16:9 • Pinterest: 2:3
| Name | Type | Req | Description |
|---|---|---|---|
| aspect_ratio | string | — | Aspect ratio. Default 1:1. Pick based on target platform (see tool description). |
| confirm | boolean | yes | Must be true after explicit user confirmation of subject, style, aspect ratio, and credit use. |
| model | string | — | flash (default, 1 credit per 1K image) is fast and cost-effective. pro (2 credits per 1K) is higher quality for hero imagery. Start with flash unless quality is critical. |
| prompt | string | yes | Detailed image description. 5-4000 characters. Describe subject, scene, lighting, mood, and style. |
| resolution | string | — | Output resolution. Default 1K. Higher resolutions cost more credits. 512 is flash-only. |
| style | string | — | Preset style. Default photographic. Use youtube_thumbnail / reel_cover for platform-optimized covers; review_background for testimonial backgrounds. |
| variations | integer | — | How many variations to generate. Default 1. Each variation costs credits separately - prefer 1 unless the user explicitly wants options. |
No output schema declared.
No examples provided.
generate_video ~173
Queue a Veo AI video generation job. COSTS VEO CREDITS: confirm prompt, model, duration, resolution, aspect ratio, audio choice, and credit cost with the user before calling. Poll get_video_job for status and final video_url.
| Name | Type | Req | Description |
|---|---|---|---|
| aspect_ratio | string | — | — |
| confirm | boolean | yes | Must be true after explicit user confirmation of prompt, model, duration, resolution, and credit cost. |
| duration_seconds | number | — | — |
| end_image_url | string | — | — |
| generate_audio | boolean | — | — |
| image_url | string | — | — |
| model | string | — | — |
| negative_prompt | string | — | — |
| prompt | string | yes | — |
| reference_images | array | — | — |
| resolution | string | — | — |
| source_video_url | string | — | — |
No output schema declared.
No examples provided.
get_account_analytics ~153
Get daily analytics snapshots and a period summary for a connected social account. Supports Instagram, Facebook, LinkedIn, Google Business Profile, Pinterest, YouTube, and Threads. Uses API-provided display_metrics for platform-native dashboard labels and supports presentation: compact, table, or json.
| Name | Type | Req | Description |
|---|---|---|---|
| account_id | number | yes | The social account ID (from list_accounts) |
| from | string | — | Start date (ISO date, e.g. 2026-03-19). Defaults to 30 days ago. |
| presentation | string | — | Output style: compact bullets, Markdown table, or raw JSON for client-side chart/card rendering. |
| to | string | — | End date (ISO date). Defaults to today. |
No output schema declared.
No examples provided.
get_agent_signup_info ~36
Explain how to use Posterly MCP for agent-led signup before an API key exists, including the safe human-in-the-browser boundaries.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
get_brand ~57
Get one brand/client by ID. Returns its workspace, source, linked legacy brand group if present, and the number of social accounts assigned to it.
| Name | Type | Req | Description |
|---|---|---|---|
| brand_id | string | yes | The brand ID to look up (from list_brands). |
No output schema declared.
No examples provided.
get_brand_profile ~62
Get the extended brand profile for a brand/client. Returns voice/tone guidance, audience, keywords, dos and don’ts, visual notes, and other saved brand context.
| Name | Type | Req | Description |
|---|---|---|---|
| brand_id | string | yes | The brand ID to inspect (from list_brands). |
No output schema declared.
No examples provided.
get_connect_link ~163
List dashboard handoff links/readiness for connecting social accounts, or get one platform connection URL. Use connection_url in a logged-in browser. Direct OAuth URLs are intentionally not exposed because provider callbacks rely on browser state.
| Name | Type | Req | Description |
|---|---|---|---|
| debug | boolean | — | When true, include the raw connect option JSON for debugging. Keep false for normal user-facing agent flows. |
| include_planned | boolean | — | Include planned provider expansion targets from the Postiz parity audit: reddit, medium, skool, whop. |
| platform | string | — | Connection target such as instagram, meta, linkedin_page, twitter, x, google_business, telegram, reddit, or wordpress. Omit to list live connection targets. |
| workspace_id | string | — | Filter connected account counts to a workspace. |
No output schema declared.
No examples provided.
get_connect_session ~89
Poll a Posterly connect session. Use the returned status and next-step guidance to keep the user updated in plain language. Stop when status is connected, failed, cancelled, or expired.
| Name | Type | Req | Description |
|---|---|---|---|
| debug | boolean | — | When true, include the raw connect session JSON for debugging. Keep false for normal user-facing agent flows. |
| session_id | string | yes | Connect session ID returned by create_connect_session. |
No output schema declared.
No examples provided.
get_google_business_review_link ~145
Get the direct public Google review link for a connected Google Business Profile location. Requires account_id or location_id. Returns reviewLink plus the Google Place ID (ChIJ...); that Place ID is output only and must NOT be passed back as location_id to other tools.
| Name | Type | Req | Description |
|---|---|---|---|
| account_id | integer | — | Google Business account ID from list_accounts. |
| location_id | string | — | Google Business numeric location id (the location_id/platform_user_id from list_accounts, e.g. "197940849675145390"). NOT the ChIJ... Place ID this tool returns. Prefer account_id. |
| workspace_id | string | — | Filter to a workspace ID from whoami. |
No output schema declared.
No examples provided.
get_learned_voice ~118
Get the voice posterly has learned from a connected account’s real published captions (the "learned captions" shown on the dashboard). Returns a narrative summary, voice traits, style guidelines, and observed posting habits. Keyed by social account ID (from list_accounts or list_brand_accounts). Returns nothing until the account has enough published posts to learn from. Read-only; this never overwrites the saved brand profile.
| Name | Type | Req | Description |
|---|---|---|---|
| account_id | string|number | yes | The social account ID to inspect (from list_accounts or list_brand_accounts). |
No output schema declared.
No examples provided.
get_mcp_status ~46
Report the Posterly MCP server version, latest npm version, MCP endpoint health, API key health, and update guidance. Safe to call before POSTERLY_API_KEY is configured.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
get_performance_profile ~128
Get the performance profile posterly has derived for a connected account from the last 90 days of per-post analytics. Returns coaching stats (format, timing, caption-length patterns), an engagement-rate trend, and a narrative summary. Keyed by social account ID (from list_accounts or list_brand_accounts). Returns nothing until the account has a derived profile; Google Business Profile and other platforms without per-post analytics never get one. Read-only; requires a Pro plan or higher.
| Name | Type | Req | Description |
|---|---|---|---|
| account_id | string|number | yes | The social account ID to inspect (from list_accounts or list_brand_accounts). |
No output schema declared.
No examples provided.
get_platform_schema ~138
Get the platform schema for a specific connected account or platform. Call this before creating posts with platform_settings so you know allowed post types, media limits, helper tools, and field names.
| Name | Type | Req | Description |
|---|---|---|---|
| account_id | string | — | Connected account ID from list_accounts. Preferred because it returns account context. |
| include_planned | boolean | — | — |
| platform | string | — | Platform ID such as instagram, facebook, tiktok, twitter, linkedin, youtube, pinterest, threads, google_business, telegram, bluesky, discord, slack, mastodon, devto, hashnode, wordpress, lemmy. Set i… |
No output schema declared.
No examples provided.
get_post ~45
Get details of a specific post by ID. Returns caption, status, scheduled time, media, and platform info.
| Name | Type | Req | Description |
|---|---|---|---|
| post_id | number | yes | The post ID to look up |
No output schema declared.
No examples provided.
get_post_analytics ~214
Get per-post engagement metrics (likes, comments/replies, reach, impressions/views, saves, shares, reposts, quotes, plays, clicks, watch time) for a connected social account. Supports Instagram, Facebook, LinkedIn, Google Business Profile, Pinterest, YouTube, and Threads. Returns the most recent posts first. presentation controls output: compact for Telegram/mobile, table for Markdown clients, json for custom chart/card renderers.
| Name | Type | Req | Description |
|---|---|---|---|
| account_id | number | yes | The social account ID (from list_accounts) |
| from | string | — | Start date (ISO date, e.g. 2026-03-19). Defaults to 30 days ago. |
| limit | number | — | Number of posts to return (default 50, max 200) |
| offset | number | — | Pagination offset |
| presentation | string | — | Output style: compact bullets, Markdown table, or raw JSON for client-side chart/card rendering. |
| to | string | — | End date (ISO date). Defaults to today. |
No output schema declared.
No examples provided.
get_post_insights ~159
List per-post feedback insights from the posterly performance feedback loop: for recently published posts, the performance tier (great/good/mixed/poor), a diagnosis, a suggested next action, metrics, and the baseline it was compared against. Filter by account_id, post_id, and checkpoint (1h, 6h, 24h, 72h, 7d). Read-only; requires a Pro plan or higher.
| Name | Type | Req | Description |
|---|---|---|---|
| account_id | string|number | — | Filter to one social account ID (from list_accounts). |
| checkpoint | string | — | Filter to one checkpoint after publish. |
| limit | integer | — | Max insights to return (default 20). |
| post_id | integer | — | Filter to one post ID. |
No output schema declared.
No examples provided.
get_post_missing ~54
Inspect whether a post is missing required content, media, account, platform settings, or metadata before it can publish. Use this to repair failed or imported posts.
| Name | Type | Req | Description |
|---|---|---|---|
| post_id | integer | yes | The post ID to inspect. |
No output schema declared.
No examples provided.
get_signup_session ~113
Poll a public Posterly signup session created by start_signup. Use this to narrate checkout, payment, password setup, and agent access status before a Posterly API key is installed. Keep updates user-facing; do not narrate raw HTTP, curl, or API plumbing.
| Name | Type | Req | Description |
|---|---|---|---|
| debug | boolean | — | When true, include the raw signup session JSON for debugging. Keep false for normal user-facing agent flows. |
| session_id | string | yes | Signup session ID returned by start_signup, usually the Stripe checkout session ID. |
No output schema declared.
No examples provided.
get_subscription ~46
Get the authenticated user's posterly subscription: status, tier, cancel-at-period-end, current period end, trial end, and pause state. Read-only. Requires the billing:read scope.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
get_updates ~95
Get the latest posterly product updates and news from the updates feed: new features, improvements, and fixes. Requires an active posterly subscription.
| Name | Type | Req | Description |
|---|---|---|---|
| include_content | boolean | — | Include the full markdown body of each update. Defaults to false. |
| limit | integer | — | Number of updates to return. Default 10, max 50. |
| since | string | — | ISO date. Return updates published on or after this date. |
No output schema declared.
No examples provided.
get_video_job ~63
Get one Veo video generation job by ID, or list recent video jobs when job_id is omitted. Use after generate_video to poll for completed video_url.
| Name | Type | Req | Description |
|---|---|---|---|
| job_id | string | — | — |
| limit | integer | — | — |
| status | string | — | — |
No output schema declared.
No examples provided.
get_video_options ~42
List read-only Veo video generation options, input modes, durations, resolutions, aspect ratios, and credit-cost estimates. This does not generate video or spend credits.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
get_x_posting_quota ~59
Get managed X posting quota for a workspace, including total monthly allowance, used posts, remaining posts, and URL-blocking status.
| Name | Type | Req | Description |
|---|---|---|---|
| workspace_id | string | — | Workspace ID from whoami. Defaults to the caller personal workspace context. |
No output schema declared.
No examples provided.
list_accounts ~70
List connected social media accounts. Returns platform, username, account ID, and workspace ID for each. Pass workspace_id to filter to a specific workspace; otherwise returns all accounts the caller owns across every workspace.
| Name | Type | Req | Description |
|---|---|---|---|
| workspace_id | string | — | Filter to accounts in a specific workspace (get IDs via whoami). |
No output schema declared.
No examples provided.
list_activity ~118
List recent activity and publish events for posts, including status changes, publish attempts, failures, and retries. Use this as the agent notifications feed.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | — | Number of items to return. Default 50, max 100. |
| post_id | integer | — | Filter to one post ID. |
| since | string | — | ISO datetime. Return events created at or after this time. |
| type | string | — | Event source filter. Defaults to all. |
| workspace_id | string | — | Filter to a workspace ID from whoami. |
No output schema declared.
No examples provided.
list_brand_accounts ~55
List the connected social accounts assigned to a brand/client. Use this when a user refers to a brand name rather than a raw account handle.
| Name | Type | Req | Description |
|---|---|---|---|
| brand_id | string | yes | The brand ID to inspect (from list_brands). |
No output schema declared.
No examples provided.
list_brands ~62
List brands/clients the caller can access. Returns each brand ID, name, workspace ID, source, and how many social accounts are currently assigned to it.
| Name | Type | Req | Description |
|---|---|---|---|
| workspace_id | string | — | Filter to brands in a specific workspace (get IDs via whoami). |
No output schema declared.
No examples provided.