Connects Claude to Antwork's social media management API so you can draft, schedule, and publish posts across your connected social accounts without leaving the conversation. You get direct access to post creation, scheduling controls, and publishing operations for your workspace's social channels. Reach for this when you're iterating on social content with Claude and want to push it live immediately or queue it up for later without copying into a separate tool. The streamable HTTP transport means it works through Antwork's hosted API rather than running locally.
Public tool metadata for what this MCP can expose to an agent.
whoamiGet the current authenticated user's profile. Returns user ID, email, display name, subscription status, and the persisted default workspace (if set).Get the current authenticated user's profile. Returns user ID, email, display name, subscription status, and the persisted default workspace (if set).
No parameter schema in public metadata yet.
list_workspacesList all workspaces the authenticated user belongs to. Call this first if you need to know which workspaces are available. If the user has only one workspace, other tools auto-select it. Each entry is flagged with `isDefault: true` when it matches the user's persisted default...List all workspaces the authenticated user belongs to. Call this first if you need to know which workspaces are available. If the user has only one workspace, other tools auto-select it. Each entry is flagged with `isDefault: true` when it matches the user's persisted default...
No parameter schema in public metadata yet.
set_default_workspacePin (or clear) the user's default workspace for subsequent tool calls. Pass a workspace ID or name to PIN: every workspace-scoped tool called without an explicit `workspace_id` thereafter resolves to this workspace — instead of erroring out with "multiple workspaces". Use this...1 paramsPin (or clear) the user's default workspace for subsequent tool calls. Pass a workspace ID or name to PIN: every workspace-scoped tool called without an explicit `workspace_id` thereafter resolves to this workspace — instead of erroring out with "multiple workspaces". Use this...
workspace_idvaluecreate_workspaceCreate a new workspace owned by the authenticated user. Use this when the user wants a separate brand / client / project space — each workspace has its own connected social accounts, voice profiles, posts, and media library. Subsequent tool calls can target the new workspace b...1 paramsCreate a new workspace owned by the authenticated user. Use this when the user wants a separate brand / client / project space — each workspace has its own connected social accounts, voice profiles, posts, and media library. Subsequent tool calls can target the new workspace b...
namestringlist_postsRetrieve recent posts from a workspace. Results are pre-sorted scheduled → draft → published → failed. Within scheduled, the closest publish appears first (so the user sees "what's about to go live" at the top); other groups are newest-first. The posts-table iframe paginates c...3 paramsRetrieve recent posts from a workspace. Results are pre-sorted scheduled → draft → published → failed. Within scheduled, the closest publish appears first (so the user sees "what's about to go live" at the top); other groups are newest-first. The posts-table iframe paginates c...
limitintegerstatusvalueworkspace_idvaluelist_social_accountsList the social media accounts currently connected to the workspace. Text-only and fast — this does NOT render the connections panel iframe. Use it to answer account questions and to confirm target platforms are connected before drafting / scheduling / publishing. When the use...1 paramsList the social media accounts currently connected to the workspace. Text-only and fast — this does NOT render the connections panel iframe. Use it to answer account questions and to confirm target platforms are connected before drafting / scheduling / publishing. When the use...
workspace_idvaluedisconnect_social_accountDisconnect a connected social media account (SOFT DELETE). This is a soft-delete — the social_accounts doc stays in Firestore with `isActive: false`. Nothing on the user's social platform is touched: no OAuth revocation, no app uninstall, no post deletion. The user's posts and...2 paramsDisconnect a connected social media account (SOFT DELETE). This is a soft-delete — the social_accounts doc stays in Firestore with `isActive: false`. Nothing on the user's social platform is touched: no OAuth revocation, no app uninstall, no post deletion. The user's posts and...
account_idstringworkspace_idvalueget_connection_urlsOpen the connections panel to connect, disconnect, or re-auth accounts. This renders the interactive connections-panel iframe (connect grid + per-account reauth / disconnect controls) and returns OAuth connect URLs per platform. Call this whenever the user wants to MANAGE conn...1 paramsOpen the connections panel to connect, disconnect, or re-auth accounts. This renders the interactive connections-panel iframe (connect grid + per-account reauth / disconnect controls) and returns OAuth connect URLs per platform. Call this whenever the user wants to MANAGE conn...
workspace_idvaluefetch_platform_postsFetch recent posts from connected social media platforms. Retrieves actual published posts from your social accounts (not just Antwork drafts), including text, engagement metrics, publish date, and permalink. Useful for understanding what you've been posting and what's perform...4 paramsFetch recent posts from connected social media platforms. Retrieves actual published posts from your social accounts (not just Antwork drafts), including text, engagement metrics, publish date, and permalink. Useful for understanding what you've been posting and what's perform...
platformvaluemax_postsintegeraccount_idvalueworkspace_idvalueget_workspace_settingsGet the workspace's configuration: name, default posting schedule, timezone, and connected platforms. Use this to discover the workspace's preferred posting times and timezone before suggesting schedule slots, or to confirm which platforms the user has selected as their primar...1 paramsGet the workspace's configuration: name, default posting schedule, timezone, and connected platforms. Use this to discover the workspace's preferred posting times and timezone before suggesting schedule slots, or to confirm which platforms the user has selected as their primar...
workspace_idvalueprepare_voice_analysisStep 1 of voice-profile extraction. Returns the posts + schema YOU (the host LLM) should analyze yourself, then write back via `save_voice_analysis`. USE THIS WHEN: `get_post_context` returned `voiceStale: true` (or null voice) and you're about to draft a post for that account...4 paramsStep 1 of voice-profile extraction. Returns the posts + schema YOU (the host LLM) should analyze yourself, then write back via `save_voice_analysis`. USE THIS WHEN: `get_post_context` returned `voiceStale: true` (or null voice) and you're about to draft a post for that account...
platformstringmax_postsintegeraccount_idvalueworkspace_idvaluesave_voice_analysisStep 2 of voice-profile extraction. Persists the analysis you produced in response to `prepare_voice_analysis`. Call this with EXACTLY the `accountId` returned by prepare_voice_analysis and an `analysis` object matching the `schema` from that call. The server validates the sha...4 paramsStep 2 of voice-profile extraction. Persists the analysis you produced in response to `prepare_voice_analysis`. Call this with EXACTLY the `accountId` returned by prepare_voice_analysis and an `analysis` object matching the `schema` from that call. The server validates the sha...
analysisobjectaccount_idstringpost_countvalueworkspace_idvalueget_post_contextOne-stop drafting bundle: brand identity, voice, and recent posts. Call this BEFORE writing a post. It returns everything the model needs to produce on-brand, on-tone copy for a specific (workspace, platform, account) target in a single round-trip: - `workspace`: name, website...3 paramsOne-stop drafting bundle: brand identity, voice, and recent posts. Call this BEFORE writing a post. It returns everything the model needs to produce on-brand, on-tone copy for a specific (workspace, platform, account) target in a single round-trip: - `workspace`: name, website...
platformstringaccount_idvalueworkspace_idvalueget_performanceGet lifetime engagement totals per published post, as a tabular result. Returns a BigQuery-style payload: - `schema.fields`: column definitions (name, type, mode) - `rows`: one row per published post with lifetime metrics - `rowCount`: number of rows - `summary`: range totals...2 paramsGet lifetime engagement totals per published post, as a tabular result. Returns a BigQuery-style payload: - `schema.fields`: column definitions (name, type, mode) - `rows`: one row per published post with lifetime metrics - `rowCount`: number of rows - `summary`: range totals...
limitintegerworkspace_idvaluerefresh_post_metricsFetch fresh engagement metrics from each post's platform, RIGHT NOW. Unlike get_performance / get_post (which read cached numbers refreshed by a 6-hour cron), this tool hits the platform APIs live and writes the result back to Firestore. Use it when freshness matters: - "How's...2 paramsFetch fresh engagement metrics from each post's platform, RIGHT NOW. Unlike get_performance / get_post (which read cached numbers refreshed by a 6-hour cron), this tool hits the platform APIs live and writes the result back to Firestore. Use it when freshness matters: - "How's...
post_idsvalueworkspace_idvalueget_engagement_historyGet historical per-day engagement, as a tabular result. Returns a BigQuery-style payload in *long format* — one row per (date, platform) tuple, plus an "all" platform aggregate row per date. The host LLM can chart this directly (line per platform, stacked bars, pie of platform...2 paramsGet historical per-day engagement, as a tabular result. Returns a BigQuery-style payload in *long format* — one row per (date, platform) tuple, plus an "all" platform aggregate row per date. The host LLM can chart this directly (line per platform, stacked bars, pie of platform...
daysintegerworkspace_idvalueget_postGet a single post by ID, including aggregated and per-platform metrics. Returns the post content, target platforms, status, and the latest LIFETIME engagement metrics: - `metrics`: aggregated totals across all platforms ({likes, comments, shares, impressions}) - `platformMetri...2 paramsGet a single post by ID, including aggregated and per-platform metrics. Returns the post content, target platforms, status, and the latest LIFETIME engagement metrics: - `metrics`: aggregated totals across all platforms ({likes, comments, shares, impressions}) - `platformMetri...
post_idstringworkspace_idvalueget_post_historyGet the per-day historical metrics for a single post, as a tabular result. Returns a BigQuery-style payload in *long format* — one row per (date, platform) tuple. Both cumulative lifetime totals and the daily delta (engagement earned that day) are included as columns so the ho...3 paramsGet the per-day historical metrics for a single post, as a tabular result. Returns a BigQuery-style payload in *long format* — one row per (date, platform) tuple. Both cumulative lifetime totals and the daily delta (engagement earned that day) are included as columns so the ho...
daysvaluepost_idstringworkspace_idvalueget_optimal_posting_timesGet the workspace's preferred posting times, timezone, and selected accounts per platform. Returns the schedule the user configured (e.g. ["09:00", "18:00"] in their timezone) plus the per-platform account selections. Use this when scheduling a post to pick a time that aligns...1 paramsGet the workspace's preferred posting times, timezone, and selected accounts per platform. Returns the schedule the user configured (e.g. ["09:00", "18:00"] in their timezone) plus the per-platform account selections. Use this when scheduling a post to pick a time that aligns...
workspace_idvaluecreate_postCreate a draft post bound to ONE social account. The post is saved as a DRAFT only — to actually schedule or publish, call schedule_post or publish_post with the returned postId. Single-account model (IMPORTANT — read carefully): - Each call creates ONE draft for ONE specific...8 paramsCreate a draft post bound to ONE social account. The post is saved as a DRAFT only — to actually schedule or publish, call schedule_post or publish_post with the returned postId. Single-account model (IMPORTANT — read carefully): - Each call creates ONE draft for ONE specific...
goalvaluetextstringhashtagsvalueuser_tagsvalueaccount_idstringcampaign_idvalueworkspace_idvaluescheduled_forvalueupdate_postUpdate an existing post. Posts are single-account. To switch the target account, pass `account_id` and we re-bind the post (the platform is re-derived from the new account). There is no per-platform text variant — if the user wants the same idea on a different account with dif...9 paramsUpdate an existing post. Posts are single-account. To switch the target account, pass `account_id` and we re-bind the post (the platform is re-derived from the new account). There is no per-platform text variant — if the user wants the same idea on a different account with dif...
goalvaluetextvaluestatusvaluepost_idstringhashtagsvalueaccount_idvaluecampaign_idvalueworkspace_idvaluescheduled_forvaluedelete_postDelete a post from the workspace. Drafts and scheduled posts are hard-deleted. Published posts are soft-deleted by default (the post is hidden from lists but metrics history is preserved); pass preserve_analytics=False to hard-delete a published post instead. Args: post_id: Th...4 paramsDelete a post from the workspace. Drafts and scheduled posts are hard-deleted. Published posts are soft-deleted by default (the post is hidden from lists but metrics history is preserved); pass preserve_analytics=False to hard-delete a published post instead. Args: post_id: Th...
post_idstringworkspace_idvaluepreserve_analyticsvaluedelete_from_platformsvaluepublish_postPublish a draft post immediately to its target account. Call this after create_post to publish right away instead of scheduling for later. Waits for the publish to complete on every target platform (up to ~60s) and returns the live post URLs in `url` / `urls` / per-platform en...2 paramsPublish a draft post immediately to its target account. Call this after create_post to publish right away instead of scheduling for later. Waits for the publish to complete on every target platform (up to ~60s) and returns the live post URLs in `url` / `urls` / per-platform en...
post_idstringworkspace_idvalueschedule_postSchedule a draft post for automatic publishing at a specific time. Call this after create_post to actually schedule the post. The post must exist and be bound to a social account. Args: post_id: The post ID returned by create_post. scheduled_for: ISO 8601 datetime (e.g. "2026-...3 paramsSchedule a draft post for automatic publishing at a specific time. Call this after create_post to actually schedule the post. The post must exist and be bound to a social account. Args: post_id: The post ID returned by create_post. scheduled_for: ISO 8601 datetime (e.g. "2026-...
post_idstringworkspace_idvaluescheduled_forstringretry_failed_postRetry a post that failed to publish. Args: post_id: The failed post ID to retry. workspace_id: Workspace ID or name. Optional if user has only one workspace.2 paramsRetry a post that failed to publish. Args: post_id: The failed post ID to retry. workspace_id: Workspace ID or name. Optional if user has only one workspace.
post_idstringworkspace_idvalueduplicate_postDuplicate an existing post into a new draft, optionally retargeting it to a different social account and / or rewriting the copy. Single-account model: the new draft binds to ONE account. If `account_id` is omitted, the new draft keeps the source's account. To produce variants...5 paramsDuplicate an existing post into a new draft, optionally retargeting it to a different social account and / or rewriting the copy. Single-account model: the new draft binds to ONE account. If `account_id` is omitted, the new draft keeps the source's account. To produce variants...
textvaluepost_idstringaccount_idvaluecampaign_idvalueworkspace_idvaluelist_mediaList media files in the workspace media library. Returns uploaded images, videos, and PDF documents with URLs that can be attached to posts. Use this to find existing media before creating posts for visual platforms like Instagram, TikTok, or Pinterest, or for LinkedIn documen...4 paramsList media files in the workspace media library. Returns uploaded images, videos, and PDF documents with URLs that can be attached to posts. Use this to find existing media before creating posts for visual platforms like Instagram, TikTok, or Pinterest, or for LinkedIn documen...
limitintegercursorvaluemedia_typevalueworkspace_idvalueattach_mediaAttach media (images, videos, or PDFs) to an existing post. Sets the media URLs on the post. Use URLs from list_media or any Firebase Storage URL from the workspace. This replaces any existing media on the post. Required for publishing to visual platforms like Instagram, TikTo...3 paramsAttach media (images, videos, or PDFs) to an existing post. Sets the media URLs on the post. Use URLs from list_media or any Firebase Storage URL from the workspace. This replaces any existing media on the post. Required for publishing to visual platforms like Instagram, TikTo...
post_idstringmedia_urlsarrayworkspace_idvalueupload_mediaAdd a file to the workspace media library from a public HTTPS URL. Antwork downloads the URL server-side and stores it. Use this for AI-generated content or anything else already reachable over HTTP. For LOCAL files (the user attached a screenshot, photo, video, etc.): NEVER r...3 paramsAdd a file to the workspace media library from a public HTTPS URL. Antwork downloads the URL server-side and stores it. Use this for AI-generated content or anything else already reachable over HTTP. For LOCAL files (the user attached a screenshot, photo, video, etc.): NEVER r...
image_urlstringmime_typestringworkspace_idvalueupload_media_inlineIFRAME-INTERNAL. DO NOT CALL FROM CHAT. Used by the post-card "Add media" picker to send file bytes over the MCP RPC channel (postMessage → tools/call) without touching the LLM's transcript. The LLM must NEVER call this tool. Passing a large base64 string as a tool argument ba...5 paramsIFRAME-INTERNAL. DO NOT CALL FROM CHAT. Used by the post-card "Add media" picker to send file bytes over the MCP RPC channel (postMessage → tools/call) without touching the LLM's transcript. The LLM must NEVER call this tool. Passing a large base64 string as a tool argument ba...
mime_typestringimage_base64stringworkspace_idvaluefrom_ui_bridgebooleanthumbnail_base64valuerequest_upload_urlMint a short-lived signed PUT URL for a direct upload to GCS. PREREQUISITE: do NOT call this until you have a tool response showing `hostSupportsUi: false` (typically from a prior `get_post(post_id)` or `get_post_context` call). On UI hosts (claude.ai web / desktop, where `hos...3 paramsMint a short-lived signed PUT URL for a direct upload to GCS. PREREQUISITE: do NOT call this until you have a tool response showing `hostSupportsUi: false` (typically from a prior `get_post(post_id)` or `get_post_context` call). On UI hosts (claude.ai web / desktop, where `hos...
byte_sizeintegermime_typestringworkspace_idvalueregister_uploaded_mediaValidate a signed-PUT upload and register it in the workspace media library. Second half of the LLM-on-CLI upload flow. Call this AFTER a successful curl PUT against the URL from `request_upload_url`. Verifies the GCS object exists, matches the declared mime + size, attaches a...5 paramsValidate a signed-PUT upload and register it in the workspace media library. Second half of the LLM-on-CLI upload flow. Call this AFTER a successful curl PUT against the URL from `request_upload_url`. Verifies the GCS object exists, matches the declared mime + size, attaches a...
gcs_pathstringbyte_sizeintegermime_typestringworkspace_idvalueattach_to_post_idvalueget_mediaGet a single media item by ID. Returns the media URL, name, type, size, and upload date. Args: media_id: The media item ID. workspace_id: Workspace ID or name. Optional if user has only one workspace.2 paramsGet a single media item by ID. Returns the media URL, name, type, size, and upload date. Args: media_id: The media item ID. workspace_id: Workspace ID or name. Optional if user has only one workspace.
media_idstringworkspace_idvaluedelete_mediaDelete a media item from the workspace media library. This removes the Firestore record. The file in storage may still exist but will no longer appear in the media library. Args: media_id: The media item ID to delete. workspace_id: Workspace ID or name. Optional if user has on...2 paramsDelete a media item from the workspace media library. This removes the Firestore record. The file in storage may still exist but will no longer appear in the media library. Args: media_id: The media item ID to delete. workspace_id: Workspace ID or name. Optional if user has on...
media_idstringworkspace_idvaluesearch_postsSearch posts by keyword, status, platform, or date range. Args: query: Search keyword to match against post text (case-insensitive). status: Filter by status: "draft", "scheduled", "published", or "failed". platform: Filter by platform (e.g., "linkedin", "x"). date_from: Filte...7 paramsSearch posts by keyword, status, platform, or date range. Args: query: Search keyword to match against post text (case-insensitive). status: Filter by status: "draft", "scheduled", "published", or "failed". platform: Filter by platform (e.g., "linkedin", "x"). date_from: Filte...
limitintegerquerystringstatusvaluedate_tovalueplatformvaluedate_fromvalueworkspace_idvalueget_calendarGet scheduled and published posts as an interactive calendar view. Returns posts grouped by date, useful for seeing what's coming up and finding gaps in the content schedule. On supported clients this renders an interactive calendar UI. Args: date_from: Start date (ISO 8601, e...3 paramsGet scheduled and published posts as an interactive calendar view. Returns posts grouped by date, useful for seeing what's coming up and finding gaps in the content schedule. On supported clients this renders an interactive calendar UI. Args: date_from: Start date (ISO 8601, e...
date_tovaluedate_fromvalueworkspace_idvalueupdate_workspace_identityUpdate the workspace's identity (name, website, logo). Only the provided fields are updated; others remain unchanged. Args: name: The workspace / brand name. website: Brand website URL. logo_url: URL to the brand logo image. workspace_id: Workspace ID or name. Optional if user...4 paramsUpdate the workspace's identity (name, website, logo). Only the provided fields are updated; others remain unchanged. Args: name: The workspace / brand name. website: Brand website URL. logo_url: URL to the brand logo image. workspace_id: Workspace ID or name. Optional if user...
namevaluewebsitevaluelogo_urlvalueworkspace_idvalueupdate_workspace_settingsUpdate workspace settings such as the default posting schedule. Only the provided fields are updated; others remain unchanged. Args: timezone: IANA timezone for scheduling, e.g. "Europe/Madrid", "America/New_York". preferred_times: List of preferred posting times in HH:MM form...3 paramsUpdate workspace settings such as the default posting schedule. Only the provided fields are updated; others remain unchanged. Args: timezone: IANA timezone for scheduling, e.g. "Europe/Madrid", "America/New_York". preferred_times: List of preferred posting times in HH:MM form...
timezonevalueworkspace_idvaluepreferred_timesvaluemakafeli/n8n-workflow-builder
danishashko/make-mcp
lukisch/n8n-manager-mcp
io.github.us-all/airflow
io.github.infoinlet-marketplace/mcp-workflow