{"name":"io.github.wilzer/aidelly","slug":"wilzer-aidelly","title":null,"description":"Agent-operated social media for agencies — www.aidelly.ai. Post, approve, analyze on 11 networks.","url":"https://mcp.market/server/wilzer-aidelly","rating":null,"grade":"B","score":79,"certified":false,"status":"active","category":"ai","tags":["ai"],"presence":{"score":23,"stars":0,"forks":0,"downloads_week":null,"last_push_at":"2026-09-02T13:52:39.000Z","license":"MIT"},"uptime":{"percent":100,"checks":28,"ok":28,"last_checked_at":"2026-11-04T01:35:32.913Z","last_ok_at":"2026-11-04T01:35:32.913Z","latency_ms":189},"claimed":false,"transport":"remote","callable_via_gateway":true,"default_price_micros":0,"repository":"https://github.com/Aidelly/claude-plugin","website":"https://www.aidelly.ai","version":"1.0.1","remotes":[{"type":"streamable-http","url":"https://app.aidelly.ai/api/mcp/public-api"}],"packages":[],"tools":[{"name":"aidelly_action_post_approval","description":"POST /posts/approvals — approve, reject (with reason), return to draft, or comment on one or many pending posts. Owner/admin only. Public API preview.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"workspace_id":{"type":"string","format":"uuid","description":"Workspace to operate in. Do not ask the user for this UUID — call aidelly_list_workspaces and use the `id` of the matching workspace. Optional for read operations; required when creating content."},"idempotency_key":{"type":"string"},"action":{"type":"string","enum":["approve","reject","return_to_draft","comment"]},"post_id":{"type":"string","format":"uuid","description":"Required when actioning a single post."},"post_ids":{"type":"array","items":{"type":"string","format":"uuid"},"description":"Required when bulk-actioning multiple posts."},"comment":{"type":"string","description":"Required for `reject`; optional for `approve` and `comment`."},"brand_id":{"type":"string"},"query":{"type":"object","additionalProperties":true,"description":"Optional query overrides for endpoints with sparse parameter schemas."},"body":{"type":"object","additionalProperties":true,"description":"Optional body override for endpoints with sparse parameter schemas."}},"required":["idempotency_key","action"],"additionalProperties":false}},{"name":"aidelly_add_competitor","description":"Register a competitor root domain to track in the workspace.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"workspace_id":{"type":"string","format":"uuid","description":"Workspace to operate in. Do not ask the user for this UUID — call aidelly_list_workspaces and use the `id` of the matching workspace. Optional for read operations; required when creating content."},"idempotency_key":{"type":"string"},"domain":{"type":"string","minLength":3,"maxLength":253},"display_name":{"type":"string","maxLength":120},"brand_id":{"type":"string"},"query":{"type":"object","additionalProperties":true,"description":"Optional query overrides for endpoints with sparse parameter schemas."},"body":{"type":"object","additionalProperties":true,"description":"Optional body override for endpoints with sparse parameter schemas."}},"required":["idempotency_key","domain"],"additionalProperties":false}},{"name":"aidelly_add_creator","description":"Register a creator handle on a specific platform to track.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"workspace_id":{"type":"string","format":"uuid","description":"Workspace to operate in. Do not ask the user for this UUID — call aidelly_list_workspaces and use the `id` of the matching workspace. Optional for read operations; required when creating content."},"idempotency_key":{"type":"string"},"handle":{"type":"string","minLength":1,"maxLength":80},"platform":{"type":"string","enum":["x","youtube","threads","bluesky","pinterest"]},"display_name":{"type":"string","maxLength":120},"brand_id":{"type":"string"},"query":{"type":"object","additionalProperties":true,"description":"Optional query overrides for endpoints with sparse parameter schemas."},"body":{"type":"object","additionalProperties":true,"description":"Optional body override for endpoints with sparse parameter schemas."}},"required":["idempotency_key","handle","platform"],"additionalProperties":false}},{"name":"aidelly_add_queue_items","description":"POST /queues/{id}/items — add content items to queue tail for distribution at next available slots.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"workspace_id":{"type":"string","format":"uuid","description":"Workspace to operate in. Do not ask the user for this UUID — call aidelly_list_workspaces and use the `id` of the matching workspace. Optional for read operations; required when creating content."},"idempotency_key":{"type":"string"},"items":{"type":"array","minItems":1,"items":{"type":"object","required":["contentType","contentId"],"properties":{"contentType":{"type":"string","enum":["generated_content","media_item","draft"],"description":"Type of content being queued"},"contentId":{"type":"string","minLength":1,"description":"ID of the content item"},"captionOverride":{"type":"string","description":"Optional custom caption to override content default"}}}},"brand_id":{"type":"string"},"query":{"type":"object","additionalProperties":true,"description":"Optional query overrides for endpoints with sparse parameter schemas."},"body":{"type":"object","additionalProperties":true,"description":"Optional body override for endpoints with sparse parameter schemas."}},"required":["id","idempotency_key","items"],"additionalProperties":false}},{"name":"aidelly_bulk_create_posts","description":"Create up to 50 scheduled posts in one call. Each item takes the same shape as aidelly_create_post. Returns HTTP 201 when every item was accepted and 207 when some failed, with a per-item results array carrying index, status, and either the created post or an error — inspect it rather than assuming the whole batch succeeded. Acceptance is not delivery: poll aidelly_get_post for each created id. Rate limit is charged per post, not per request, so a 20-post batch costs 20 write units — it saves round trips, not quota. The whole batch is rejected before anything is written if it would exceed your daily scheduling limit. LinkedIn document posts attach one PDF (≤100 MB, ≤300 pages) as media[].type = \"document\"; documents are rejected on every other platform.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"workspace_id":{"type":"string","format":"uuid","description":"Workspace to operate in. Do not ask the user for this UUID — call aidelly_list_workspaces and use the `id` of the matching workspace. Optional for read operations; required when creating content."},"brand_id":{"type":"string"},"idempotency_key":{"type":"string"},"posts":{"type":"array","minItems":1,"maxItems":50,"description":"Posts to create. Max 50 per request.","items":{"type":"object","required":["platform","content"],"additionalProperties":false,"properties":{"instagram_destination":{"type":"string","enum":["post","stories","post_stories"],"description":"Instagram-only destination. Use post for feed only, stories for Stories only, or post_stories for both feed and Stories."},"facebook_destination":{"type":"string","enum":["post","stories","post_stories"],"description":"Facebook-only destination. Use post for feed only, stories for a Page Story only, or post_stories for both. Behind the FACEBOOK_STORIES_ENABLED feature flag - requests that set it while the flag is off are rejected with a validation error."},"platform":{"type":"string","enum":["facebook","instagram","linkedin","twitter","bluesky","threads","pinterest","youtube","tiktok","google_business","mastodon"],"description":"Supported platform identifier. `twitter` and `x` map to the same surface;\nresponses always normalize to `twitter`. `google_business` posts target\na single Google Business Profile location identified by\n`platform_specific.locationName`. `mastodon` accounts are per-instance —\nthe connected account carries its own `instance_url`.\n","example":"linkedin"},"account_id":{"type":"string","example":"social-account-id","description":"The account / sub-account this post should target. Format depends on platform:\n  - **facebook** — Page ID (numeric string from `/accounts`).\n  - **instagram** — Instagram Business Account ID.\n  - **linkedin** — connection ID for personal posts; LinkedIn organization URN for company posts.\n  - **google_business** — GBP location resource name. Either fully-qualified\n    `accounts/{accountId}/locations/{locationId}` or the relative\n    `locations/{locationId}` form. Fetch with `GET /accounts` (rows where\n    `account_type: location`).\n  - **twitter / bluesky / threads / tiktok / youtube / pinterest / mastodon** — single-account\n    platforms; `account_id` is optional and ignored.\n\nWhen omitted, posts use the workspace-level default for that platform.\n"},"scheduled_at":{"type":"string","format":"date-time","example":"2026-02-18T17:30:00Z"},"timezone":{"type":"string","example":"UTC"},"metadata":{"type":"object","additionalProperties":true,"example":{"campaign":"spring-launch","source":"agent"}},"content":{"type":"object","required":["text"],"additionalProperties":false,"properties":{"text":{"type":"string","minLength":1,"example":"Launching our new feature today."},"media":{"type":"array","maxItems":10,"description":"Media attachments. Supplying multiple items automatically creates a carousel/slideshow on platforms that support it (Instagram, Facebook, TikTok).\nUse `read_url` returned by `POST /media/upload-url` for each `media[].url`.\nTruncated or corrupt images are rejected at upload and publish preflight with a clear validation error.\nWhen `type` is omitted it is resolved from the media-library row (`application/pdf` → `document`), so an uploaded PDF is no longer stored as an image.\n- **Instagram**: 2–10 images → carousel; 1 video → reel (or `platform_specific.contentType: \"reel\"`)\n- **TikTok**: all images → photo carousel; 1 video → video post or draft\n- **Facebook**: 2+ images → carousel; 1 video → video post\n- **LinkedIn**: one `type: \"document\"` PDF (≤100 MB, ≤300 pages) → swipeable document post. Documents are LinkedIn-only and cannot be mixed with images or videos; other platforms return `422 PUBLIC_API_DOCUMENT_UNSUPPORTED_PLATFORM`. The size and format checks run at create time; the page-count check runs at publish.\n","items":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"Publishable media URL. Use `read_url` returned by `POST /media/upload-url`."},"read_url":{"type":"string","format":"uri","description":"MCP-friendly alias for `url`."},"media_id":{"type":"string","description":"Media id returned by `POST /media/upload-url`. Accepted when `url`/`read_url` is not available."},"type":{"type":"string","description":"Attachment kind. Optional — resolved from the media-library row when omitted. `document` is LinkedIn-only.","enum":["image","video","gif","document"]}},"anyOf":[{"required":["url"]},{"required":["read_url"]},{"required":["media_id"]}]}},"media_urls":{"type":"array","maxItems":10,"description":"Agent-friendly alias for image URLs. Prefer `content.media[].url` for new calls.","items":{"type":"string","format":"uri"}},"image_url":{"type":"string","format":"uri","description":"Single image URL alias. Prefer `content.media[].url` for new calls."},"link":{"type":"string","format":"uri"},"title":{"type":"string"},"hashtags":{"type":"array","maxItems":30,"items":{"type":"string"}},"mentions":{"type":"array","maxItems":30,"items":{"type":"string"}},"instagram_destination":{"type":"string","enum":["post","stories","post_stories"],"description":"Instagram destination for posts. Use \"stories\" for Story-only or \"post_stories\" for feed + Story."},"facebook_destination":{"type":"string","enum":["post","stories","post_stories"],"description":"Facebook destination for posts. Use \"stories\" for a Page Story only or \"post_stories\" for feed + Story. Behind the FACEBOOK_STORIES_ENABLED feature flag."},"platform_specific":{"type":"object","additionalProperties":true,"properties":{"board_id":{"type":"string","description":"Pinterest board id returned by aidelly_list_pinterest_boards."},"boardId":{"type":"string","description":"Camel-case alias for Pinterest board_id."}},"description":"Platform-specific options. Supported fields per platform:\n\n**Instagram**\n- `contentType` (`string`): `\"post\"` | `\"reel\"` | `\"story\"`. Defaults to `\"reel\"` for a single video, `\"carousel\"` for multiple images, `\"post\"` otherwise.\n- `instagramDestination` / `instagram_destination` (`string`): `\"post\"` | `\"stories\"` | `\"post_stories\"`. Use `stories` for Story-only or `post_stories` for feed + Story.\n- `reelOptions.shareToFeed` (`boolean`): Share reel to feed. Default `true`.\n- `reelOptions.trialReel.enabled` (`boolean`): Publish as a trial reel to non-followers first. When enabled, `shareToFeed` is forced to `false`.\n- `reelOptions.trialReel.graduationStrategy` (`string`): Required for trial reels. `\"MANUAL\"` graduates in Instagram; `\"SS_PERFORMANCE\"` graduates automatically based on performance.\n\n**TikTok**\n- `postMode` (`string`): `\"direct\"` (publish immediately) | `\"draft\"` (save to inbox for review). Default `\"direct\"`.\n- `postAsDraft` (`boolean`): Shorthand for `postMode: \"draft\"`.\n- `title` (`string`): Optional title shown in the TikTok inbox when posting as draft.\n- Aliases accepted for agents and normalized to camelCase: `post_mode`, `post_as_draft`, `publish_immediately`.\n- `photos` (`array`): For photo carousels — array of `{ url, order, caption? }` objects (max 35). When all media items are images, TikTok automatically creates a photo carousel.\n- `allowComments` (`boolean`), `allowDuet` (`boolean`), `allowStitch` (`boolean`): Interaction controls.\n\n**Facebook**\n- `fbPostType` (`string`): `\"photo\"` | `\"carousel\"`. Post type. `\"carousel\"` enables multi-card experience with child attachments. Defaults to `\"photo\"`.\n- `fbCarouselLink` (`string`): Destination link for all cards in a carousel. Required when `fbPostType=\"carousel\"`.\n- `fbCarouselCards` (`array`): Optional per-card copy for carousel posts. Array of objects with `name` and `description` strings (max 5 items), index-aligned with media attachments. Example: `[{ name: \"Card 1\", description: \"First card\" }, { name: \"Card 2\", description: \"Second card\" }]`.\n- `enableFirstComment` (`boolean`): Post an auto-comment after publishing.\n- `firstCommentText` (`string`): Text for the auto-comment.\n- `facebookDestination` / `facebook_destination` (`string`): `\"post\"` | `\"stories\"` | `\"post_stories\"`. Publishes a Page Story via `/photo_stories` or `/video_stories`. Story media must be 9:16; videos 3-60s (MP4/MOV); photos JPEG/PNG/BMP/GIF/TIFF under 10MB. Behind the `FACEBOOK_STORIES_ENABLED` feature flag.\n\n**Facebook Carousel Behavior (backward compatible)**\nSet `fbPostType=\"carousel\"` to opt in to carousel format. When `fbPostType` is absent or set to `\"photo\"`, the default behavior is used (single photo or video post). Absent or `\"photo\"` = backward compatible behavior.\n\n**Pinterest**\n- `board_id` / `boardId` (`string`): Board id returned by `GET /accounts/pinterest/boards`. When omitted, Aidelly resolves a board in this order: (1) value in the request payload, (2) board saved on the connected Pinterest account (`platform_specific`), (3) workspace posting default, (4) user-level posting default. Publishing fails preflight if no board can be resolved.\n\n**LinkedIn**\n- `contentType` (`string`): `\"post\"` | `\"image\"` | `\"video\"` — auto-detected from media if not specified.\n\n**Threads**\n- `replyControl` (`string`): `\"everyone\"` | `\"accounts_you_follow\"` | `\"mentioned_only\"`. Maps to the Threads API `reply_control` field. Defaults to the connection's saved Threads posting default, then `\"everyone\"`.\n- `topicTag` (`string`): A single topic tag (Threads accepts at most one per post). Maps to `topic_tag`.\n- `allowlistedCountryCodes` (`string[]`): ISO-3166 alpha-2 country codes that are allowed to see the post. Maps to `allowlisted_country_codes`. Empty array publishes globally.\n- `linkAttachmentUrl` (`string`): URL to attach as the canonical link preview. Maps to `link_attachment`.\n\n**Google Business** (`google_business`)\n- `locationName` (`string`, required): Full GBP location resource name, e.g. `accounts/{accountId}/locations/{locationId}`. Use the `id` from `/accounts` for a `google_business` row. Falls back to the connection's saved default location when omitted.\n- `topicType` (`string`): `\"STANDARD\"` | `\"EVENT\"` | `\"OFFER\"` | `\"ALERT\"`. Defaults to `\"STANDARD\"`.\n- `languageCode` (`string`): BCP-47 language tag (e.g. `\"en-US\"`). Defaults to `\"en-US\"`.\n- `callToActionType` (`string`): `\"BOOK\"` | `\"ORDER\"` | `\"SHOP\"` | `\"LEARN_MORE\"` | `\"SIGN_UP\"` | `\"CALL\"`. Adds a CTA button to STANDARD posts only.\n- `callToActionUrl` (`string`): Required for every CTA except `CALL`, which uses the phone number on the Business Profile.\n- `event` (`object`, required when `topicType` is `\"EVENT\"`): `{ title, schedule }` where `schedule` accepts ISO `start`/`end` strings or Google date/time objects (`startDate`, `startTime`, `endDate`, `endTime`).\n- `offer` (`object`, required when `topicType` is `\"OFFER\"`): `{ schedule, couponCode?, redeemOnlineUrl?, termsConditions? }`.\n- `alertType` (`string`, required when `topicType` is `\"ALERT\"`): Currently `\"COVID_19\"`.\n","example":{"postMode":"draft"}},"platformSpecific":{"type":"object","additionalProperties":true,"description":"Alias for `platform_specific` (agent compatibility)."},"first_comment":{"type":"object","required":["text"],"additionalProperties":false,"description":"Auto-posts a comment on the published post. Honored on platforms\nwhose `capabilities.firstComment` is true (Facebook, Instagram,\nLinkedIn, YouTube, X, Bluesky, Threads).\n","properties":{"text":{"type":"string","minLength":1,"maxLength":2200,"description":"Global comment text. Default for every capable platform."},"overrides":{"type":"object","additionalProperties":{"type":"string","minLength":1,"maxLength":2200},"description":"Per-platform override (`{ instagram: \"...\", facebook: \"...\" }`).\nFalls back to `text` when missing or empty.\n"},"delay_minutes":{"type":"integer","enum":[0,5,30,60,360,1440],"description":"Minutes to wait after the main publish before posting the\ncomment. Fully honored on scheduled posts (Inngest sleep);\nbest-effort on immediate publishes.\n"}}},"thread":{"type":"object","required":["parts"],"additionalProperties":false,"description":"Native thread composition. Honored on platforms whose\n`capabilities.thread` is true (X, Bluesky, Threads). Each part\npublishes as a reply chained off the previous one. `parts[0]`\nis the root post and shares text with `content.text`.\n","properties":{"parts":{"type":"array","minItems":2,"maxItems":25,"items":{"type":"object","required":["text"],"properties":{"text":{"type":"string","minLength":1},"media":{"type":"array","maxItems":4,"items":{"type":"object","properties":{"url":{"type":"string","format":"uri"},"type":{"type":"string","enum":["image","video","gif","document"]}}}}}}},"overrides":{"type":"object","additionalProperties":{"type":"array","items":{"type":"object","properties":{"text":{"type":"string"}}}},"description":"Per-platform override (`{ twitter: [...], bluesky: [...] }`).\nFalls back to `parts` when missing.\n"}}},"draft_kind":{"type":"string","enum":["post","thread"],"description":"Indicates whether the composer authored a single post or a\nthread. Optional — when omitted, threads are inferred from\n`thread.parts.length > 1`.\n"}}}}}},"query":{"type":"object","additionalProperties":true,"description":"Optional query overrides for endpoints with sparse parameter schemas."},"body":{"type":"object","additionalProperties":true,"description":"Optional body override for endpoints with sparse parameter schemas."}},"required":["idempotency_key","posts"],"additionalProperties":false}},{"name":"aidelly_cancel_post","description":"Cancel a scheduled post.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"workspace_id":{"type":"string","format":"uuid","description":"Workspace to operate in. Do not ask the user for this UUID — call aidelly_list_workspaces and use the `id` of the matching workspace. Optional for read operations; required when creating content."},"brand_id":{"type":"string"},"id":{"type":"string","format":"uuid"},"idempotency_key":{"type":"string"},"query":{"type":"object","additionalProperties":true,"description":"Optional query overrides for endpoints with sparse parameter schemas."},"body":{"type":"object","additionalProperties":true,"description":"Optional body override for endpoints with sparse parameter schemas."}},"required":["id","idempotency_key"],"additionalProperties":false}},{"name":"aidelly_cancel_scheduled_post","description":"DELETE /scheduled-posts/{id} — cancel a scheduled post (and its pending recycles). Public API preview.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"workspace_id":{"type":"string","format":"uuid","description":"Workspace to operate in. Do not ask the user for this UUID — call aidelly_list_workspaces and use the `id` of the matching workspace. Optional for read operations; required when creating content."},"idempotency_key":{"type":"string"},"id":{"type":"string","format":"uuid"},"brand_id":{"type":"string"},"query":{"type":"object","additionalProperties":true,"description":"Optional query overrides for endpoints with sparse parameter schemas."}},"required":["idempotency_key","id"],"additionalProperties":false}},{"name":"aidelly_connect_ecommerce_store","description":"POST /ecommerce/stores — connect a new Shopify / WooCommerce / Etsy / Wix store. Verifies credentials then kicks off initial sync. Public API preview.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"workspace_id":{"type":"string","format":"uuid","description":"Workspace to operate in. Do not ask the user for this UUID — call aidelly_list_workspaces and use the `id` of the matching workspace. Optional for read operations; required when creating content."},"idempotency_key":{"type":"string"},"provider":{"type":"string","enum":["shopify","woocommerce","etsy","wix"]},"shopDomain":{"type":"string"},"credentials":{"oneOf":[{"type":"object","required":["clientId","clientSecret"],"properties":{"clientId":{"type":"string"},"clientSecret":{"type":"string","format":"password"}},"description":"Current Shopify Dev Dashboard app credentials."},{"type":"object","required":["accessToken"],"properties":{"accessToken":{"type":"string"}},"description":"Legacy Shopify, Etsy, or Wix credentials."},{"type":"object","required":["consumerKey","consumerSecret"],"properties":{"consumerKey":{"type":"string"},"consumerSecret":{"type":"string"}},"description":"WooCommerce REST API credentials."}]},"brand_id":{"type":"string"},"query":{"type":"object","additionalProperties":true,"description":"Optional query overrides for endpoints with sparse parameter schemas."},"body":{"type":"object","additionalProperties":true,"description":"Optional body override for endpoints with sparse parameter schemas."}},"required":["idempotency_key","provider","shopDomain","credentials"],"additionalProperties":false}},{"name":"aidelly_create_bulk_fill_job","description":"POST /calendar/bulk-fill","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"idempotency_key":{"type":"string"},"posts":{"type":"array","minItems":1,"maxItems":200,"items":{"type":"object","properties":{"clientId":{"type":"string","description":"Unique client-side ID for deduping retries"},"platform":{"type":"string","description":"Social platform"},"accountId":{"type":"string","nullable":true,"description":"Platform account ID"},"scheduledAt":{"type":"string","format":"date-time","description":"ISO 8601 datetime with offset"},"timezone":{"type":"string","default":"UTC"},"title":{"type":"string","maxLength":300},"caption":{"type":"string","minLength":1,"maxLength":10000},"hashtags":{"type":"array","maxItems":30,"items":{"type":"string"}},"mentions":{"type":"array","maxItems":30,"items":{"type":"string"}},"mediaUrl":{"type":"string","maxLength":2000,"nullable":true},"contentType":{"type":"string","maxLength":40},"firstComment":{"type":"string","maxLength":2200,"nullable":true},"dmAutomation":{"type":"object","nullable":true,"properties":{"keyword":{"type":"string"},"message":{"type":"string"},"link":{"type":"string"},"commentReply":{"type":"string"}}}}}},"workspace_id":{"type":"string","format":"uuid","description":"Workspace to operate in. Do not ask the user for this UUID — call aidelly_list_workspaces and use the `id` of the matching workspace. Optional for read operations; required when creating content."},"brand_id":{"type":"string"},"query":{"type":"object","additionalProperties":true,"description":"Optional query overrides for endpoints with sparse parameter schemas."},"body":{"type":"object","additionalProperties":true,"description":"Optional body override for endpoints with sparse parameter schemas."}},"required":["idempotency_key"],"additionalProperties":false}},{"name":"aidelly_create_client_review_link","description":"POST /client-review-links — create a magic-link review portal. Returns the raw token exactly once; store it securely.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"workspace_id":{"type":"string","format":"uuid","description":"Workspace to operate in. Do not ask the user for this UUID — call aidelly_list_workspaces and use the `id` of the matching workspace. Optional for read operations; required when creating content."},"idempotency_key":{"type":"string"},"label":{"type":"string","minLength":1,"maxLength":200,"description":"Human-readable name for the link"},"client_email":{"type":"string","format":"email","maxLength":320,"description":"Optional client email for notifications"},"expires_at":{"type":"string","format":"date-time","description":"Optional expiration timestamp in ISO 8601 format"},"brand_id":{"type":"string"},"query":{"type":"object","additionalProperties":true,"description":"Optional query overrides for endpoints with sparse parameter schemas."},"body":{"type":"object","additionalProperties":true,"description":"Optional body override for endpoints with sparse parameter schemas."}},"required":["idempotency_key","label"],"additionalProperties":false}},{"name":"aidelly_create_connect_link","description":"Create an OAuth connect link for the workspace.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"workspace_id":{"type":"string","format":"uuid","description":"Workspace to operate in. Do not ask the user for this UUID — call aidelly_list_workspaces and use the `id` of the matching workspace. Optional for read operations; required when creating content."},"idempotency_key":{"type":"string"},"title":{"type":"string","minLength":1,"maxLength":200},"password":{"type":"string","minLength":1,"maxLength":128,"description":"Optional password to protect the connect link"},"brand_id":{"type":"string"},"query":{"type":"object","additionalProperties":true,"description":"Optional query overrides for endpoints with sparse parameter schemas."},"body":{"type":"object","additionalProperties":true,"description":"Optional body override for endpoints with sparse parameter schemas."}},"required":["idempotency_key"],"additionalProperties":false}},{"name":"aidelly_create_destination_preset","description":"POST /destination-presets — create a multi-channel fan-out preset with per-platform transformations.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"workspace_id":{"type":"string","format":"uuid","description":"Workspace to operate in. Do not ask the user for this UUID — call aidelly_list_workspaces and use the `id` of the matching workspace. Optional for read operations; required when creating content."},"idempotency_key":{"type":"string"},"name":{"type":"string","minLength":1,"maxLength":255,"description":"Preset name"},"channels":{"type":"array","minItems":1,"maxItems":12,"items":{"type":"object","required":["platform","accountId"],"properties":{"platform":{"type":"string"},"accountId":{"type":"string"},"transform":{"type":"object","properties":{"captionMode":{"type":"string","enum":["inherit","custom_template"]},"captionTemplate":{"type":"string","description":"Custom caption for this channel"},"hashtagSwap":{"type":"array","items":{"type":"string"},"description":"Hashtags to add or override"},"appendUtm":{"type":"boolean","description":"Add UTM parameters to links"},"offsetSeconds":{"type":"number","description":"Media timing offset in seconds"}}}}},"description":"Per-channel transformations"},"defaults":{"type":"object","description":"Default transformations for all channels","properties":{"captionTemplate":{"type":"string"},"appendUtm":{"type":"boolean"},"offsetSeconds":{"type":"number"}}},"brand_id":{"type":"string"},"query":{"type":"object","additionalProperties":true,"description":"Optional query overrides for endpoints with sparse parameter schemas."},"body":{"type":"object","additionalProperties":true,"description":"Optional body override for endpoints with sparse parameter schemas."}},"required":["idempotency_key","name","channels"],"additionalProperties":false}},{"name":"aidelly_create_draft","description":"Create a draft — saved as work-in-progress content that never publishes. The draft_planned_for field is a planning date only. Existing API keys need the new `drafts:write` scope added to gain draft access; no implicit grant occurs. Requires `platform` or a non-empty `platforms` array.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"workspace_id":{"type":"string","format":"uuid","description":"Workspace to operate in. Do not ask the user for this UUID — call aidelly_list_workspaces and use the `id` of the matching workspace. Optional for read operations; required when creating content."},"idempotency_key":{"type":"string"},"text":{"type":"string","minLength":1,"maxLength":65000,"description":"Draft content / caption."},"title":{"type":"string","maxLength":500,"nullable":true,"description":"Draft title (optional)."},"platform":{"type":"string","minLength":1,"description":"Primary platform (e.g., \"twitter\", \"instagram\"). Provide `platform` or a non-empty `platforms` array — one of the two is required."},"platforms":{"type":"array","items":{"type":"string","minLength":1},"description":"List of platforms (optional, normalizes \"x\" to \"twitter\")."},"media_urls":{"type":"array","items":{"type":"string","format":"uri"},"maxItems":10,"description":"Media URLs (optional)."},"draft_kind":{"type":"string","enum":["post","thread"],"description":"Draft composition type (default \"post\")."},"draft_planned_for":{"type":"string","format":"date-time","nullable":true,"description":"ISO 8601 date/time for calendar placement (optional, does not schedule)."},"brand_id":{"type":"string"},"query":{"type":"object","additionalProperties":true,"description":"Optional query overrides for endpoints with sparse parameter schemas."},"body":{"type":"object","additionalProperties":true,"description":"Optional body override for endpoints with sparse parameter schemas."}},"required":["idempotency_key","text"],"additionalProperties":false}},{"name":"aidelly_create_idea","description":"Create a new idea on the workspace's idea board, optionally seeded with an initial body or topic.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"workspace_id":{"type":"string","format":"uuid","description":"Workspace to operate in. Do not ask the user for this UUID — call aidelly_list_workspaces and use the `id` of the matching workspace. Optional for read operations; required when creating content."},"idempotency_key":{"type":"string"},"title":{"type":"string","maxLength":200,"description":"Optional human title for the idea card."},"origin":{"type":"string","enum":["blank","prompt","trending_topic"],"description":"How the idea was started."},"seed_topic":{"type":"string","maxLength":500,"description":"Originating prompt or trending-topic seed text. When supplied without\nan `initial_body`, this text seeds the idea's first entry.\n"},"initial_body":{"type":"string","maxLength":20000,"description":"Optional starter text. Stored as the idea's first timeline entry so\nthe editor opens with something to build on.\n"},"tags":{"type":"array","maxItems":12,"items":{"type":"string","minLength":1,"maxLength":40}},"brand_id":{"type":"string"},"query":{"type":"object","additionalProperties":true,"description":"Optional query overrides for endpoints with sparse parameter schemas."},"body":{"type":"object","additionalProperties":true,"description":"Optional body override for endpoints with sparse parameter schemas."}},"required":["idempotency_key"],"additionalProperties":false}},{"name":"aidelly_create_media_upload_url","description":"Create a signed upload URL and media record for shell-capable clients that can PUT raw bytes to the returned Supabase URL (for example Claude Code or a local CLI). Do NOT use this from browser-sandboxed chat clients such as ChatGPT or Claude.ai: their sandboxes block network egress to Supabase storage, so the byte upload will fail. Those clients must use aidelly_upload_media instead (this tool is hidden automatically for known chat clients).","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"workspace_id":{"type":"string","format":"uuid","description":"Workspace to operate in. Do not ask the user for this UUID — call aidelly_list_workspaces and use the `id` of the matching workspace. Optional for read operations; required when creating content."},"brand_id":{"type":"string"},"idempotency_key":{"type":"string"},"file_name":{"type":"string","minLength":1,"example":"launch-image.png"},"content_type":{"type":"string","minLength":3,"example":"image/png"},"file_size":{"type":"integer","minimum":1,"maximum":2147483648,"description":"Maximum 2 GB.","example":245000},"folder":{"type":"string","minLength":1,"maxLength":100,"example":"campaign-assets"},"query":{"type":"object","additionalProperties":true,"description":"Optional query overrides for endpoints with sparse parameter schemas."},"body":{"type":"object","additionalProperties":true,"description":"Optional body override for endpoints with sparse parameter schemas."}},"required":["idempotency_key","file_name","content_type","file_size"],"additionalProperties":false}},{"name":"aidelly_create_photo","description":"Upload a photo to a connected platform's media gallery (separate from posts). Today only google_business is wired.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"idempotency_key":{"type":"string"},"workspace_id":{"type":"string","format":"uuid","description":"Workspace ID for this operation."},"platform":{"type":"string","enum":["google_business"],"description":"Currently only google_business is supported."},"account_id":{"type":"string","description":"For `google_business`, the location resource name to upload to —\neither fully-qualified `accounts/{accountId}/locations/{locationId}`\nor the relative `locations/{locationId}` form. If omitted, the\nworkspace's default location is used.\n"},"source_url":{"type":"string","format":"uri","description":"Public URL of the image to upload. Must be reachable by Google's\nservers. Use a `read_url` returned by `POST /media/upload-url` for\nfiles stored in Aidelly.\n"},"category":{"type":"string","enum":["PROFILE","LOGO","COVER","EXTERIOR","INTERIOR","PRODUCT","AT_WORK","FOOD_AND_DRINK","MENU","COMMON_AREA","ROOMS","TEAMS","ADDITIONAL"],"description":"Where the photo lands on the location's listing. `PROFILE`,\n`LOGO`, and `COVER` replace the existing identity photos; the\nrest append to the gallery.\n"},"description":{"type":"string","maxLength":500,"description":"Optional caption associated with the photo on Google's side."},"metadata":{"type":"object","additionalProperties":true},"brand_id":{"type":"string"},"query":{"type":"object","additionalProperties":true,"description":"Optional query overrides for endpoints with sparse parameter schemas."},"body":{"type":"object","additionalProperties":true,"description":"Optional body override for endpoints with sparse parameter schemas."}},"required":["idempotency_key","platform","source_url","category"],"additionalProperties":false}},{"name":"aidelly_create_post","description":"Accept a post for immediate asynchronous publishing or future scheduling. HTTP 201 and ok=true mean accepted, not delivered. For immediate posts, poll aidelly_get_post and only report publication when status is completed and provider_post_id is non-null. Use aidelly_list_pinterest_boards before Pinterest posts and pass content.platform_specific.board_id. LinkedIn document posts attach one PDF (≤100 MB, ≤300 pages) as media[].type = \"document\"; documents are rejected on every other platform.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"workspace_id":{"type":"string","format":"uuid","description":"Workspace to operate in. Do not ask the user for this UUID — call aidelly_list_workspaces and use the `id` of the matching workspace. Optional for read operations; required when creating content."},"brand_id":{"type":"string"},"idempotency_key":{"type":"string"},"instagram_destination":{"type":"string","enum":["post","stories","post_stories"],"description":"Instagram-only destination. Use post for feed only, stories for Stories only, or post_stories for both feed and Stories."},"facebook_destination":{"type":"string","enum":["post","stories","post_stories"],"description":"Facebook-only destination. Use post for feed only, stories for a Page Story only, or post_stories for both. Behind the FACEBOOK_STORIES_ENABLED feature flag - requests that set it while the flag is off are rejected with a validation error."},"platform":{"type":"string","enum":["facebook","instagram","linkedin","twitter","bluesky","threads","pinterest","youtube","tiktok","google_business","mastodon"],"description":"Supported platform identifier. `twitter` and `x` map to the same surface;\nresponses always normalize to `twitter`. `google_business` posts target\na single Google Business Profile location identified by\n`platform_specific.locationName`. `mastodon` accounts are per-instance —\nthe connected account carries its own `instance_url`.\n","example":"linkedin"},"account_id":{"type":"string","example":"social-account-id","description":"The account / sub-account this post should target. Format depends on platform:\n  - **facebook** — Page ID (numeric string from `/accounts`).\n  - **instagram** — Instagram Business Account ID.\n  - **linkedin** — connection ID for personal posts; LinkedIn organization URN for company posts.\n  - **google_business** — GBP location resource name. Either fully-qualified\n    `accounts/{accountId}/locations/{locationId}` or the relative\n    `locations/{locationId}` form. Fetch with `GET /accounts` (rows where\n    `account_type: location`).\n  - **twitter / bluesky / threads / tiktok / youtube / pinterest / mastodon** — single-account\n    platforms; `account_id` is optional and ignored.\n\nWhen omitted, posts use the workspace-level default for that platform.\n"},"scheduled_at":{"type":"string","format":"date-time","example":"2026-02-18T17:30:00Z"},"timezone":{"type":"string","example":"UTC"},"metadata":{"type":"object","additionalProperties":true,"example":{"campaign":"spring-launch","source":"agent"}},"content":{"type":"object","required":["text"],"additionalProperties":false,"properties":{"text":{"type":"string","minLength":1,"example":"Launching our new feature today."},"media":{"type":"array","maxItems":10,"description":"Media attachments. Supplying multiple items automatically creates a carousel/slideshow on platforms that support it (Instagram, Facebook, TikTok).\nUse `read_url` returned by `POST /media/upload-url` for each `media[].url`.\nTruncated or corrupt images are rejected at upload and publish preflight with a clear validation error.\nWhen `type` is omitted it is resolved from the media-library row (`application/pdf` → `document`), so an uploaded PDF is no longer stored as an image.\n- **Instagram**: 2–10 images → carousel; 1 video → reel (or `platform_specific.contentType: \"reel\"`)\n- **TikTok**: all images → photo carousel; 1 video → video post or draft\n- **Facebook**: 2+ images → carousel; 1 video → video post\n- **LinkedIn**: one `type: \"document\"` PDF (≤100 MB, ≤300 pages) → swipeable document post. Documents are LinkedIn-only and cannot be mixed with images or videos; other platforms return `422 PUBLIC_API_DOCUMENT_UNSUPPORTED_PLATFORM`. The size and format checks run at create time; the page-count check runs at publish.\n","items":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"Publishable media URL. Use `read_url` returned by `POST /media/upload-url`."},"read_url":{"type":"string","format":"uri","description":"MCP-friendly alias for `url`."},"media_id":{"type":"string","description":"Media id returned by `POST /media/upload-url`. Accepted when `url`/`read_url` is not available."},"type":{"type":"string","description":"Attachment kind. Optional — resolved from the media-library row when omitted. `document` is LinkedIn-only.","enum":["image","video","gif","document"]}},"anyOf":[{"required":["url"]},{"required":["read_url"]},{"required":["media_id"]}]}},"media_urls":{"type":"array","maxItems":10,"description":"Agent-friendly alias for image URLs. Prefer `content.media[].url` for new calls.","items":{"type":"string","format":"uri"}},"image_url":{"type":"string","format":"uri","description":"Single image URL alias. Prefer `content.media[].url` for new calls."},"link":{"type":"string","format":"uri"},"title":{"type":"string"},"hashtags":{"type":"array","maxItems":30,"items":{"type":"string"}},"mentions":{"type":"array","maxItems":30,"items":{"type":"string"}},"instagram_destination":{"type":"string","enum":["post","stories","post_stories"],"description":"Instagram destination for posts. Use \"stories\" for Story-only or \"post_stories\" for feed + Story."},"facebook_destination":{"type":"string","enum":["post","stories","post_stories"],"description":"Facebook destination for posts. Use \"stories\" for a Page Story only or \"post_stories\" for feed + Story. Behind the FACEBOOK_STORIES_ENABLED feature flag."},"platform_specific":{"type":"object","additionalProperties":true,"properties":{"board_id":{"type":"string","description":"Pinterest board id returned by aidelly_list_pinterest_boards."},"boardId":{"type":"string","description":"Camel-case alias for Pinterest board_id."}},"description":"Platform-specific options. Supported fields per platform:\n\n**Instagram**\n- `contentType` (`string`): `\"post\"` | `\"reel\"` | `\"story\"`. Defaults to `\"reel\"` for a single video, `\"carousel\"` for multiple images, `\"post\"` otherwise.\n- `instagramDestination` / `instagram_destination` (`string`): `\"post\"` | `\"stories\"` | `\"post_stories\"`. Use `stories` for Story-only or `post_stories` for feed + Story.\n- `reelOptions.shareToFeed` (`boolean`): Share reel to feed. Default `true`.\n- `reelOptions.trialReel.enabled` (`boolean`): Publish as a trial reel to non-followers first. When enabled, `shareToFeed` is forced to `false`.\n- `reelOptions.trialReel.graduationStrategy` (`string`): Required for trial reels. `\"MANUAL\"` graduates in Instagram; `\"SS_PERFORMANCE\"` graduates automatically based on performance.\n\n**TikTok**\n- `postMode` (`string`): `\"direct\"` (publish immediately) | `\"draft\"` (save to inbox for review). Default `\"direct\"`.\n- `postAsDraft` (`boolean`): Shorthand for `postMode: \"draft\"`.\n- `title` (`string`): Optional title shown in the TikTok inbox when posting as draft.\n- Aliases accepted for agents and normalized to camelCase: `post_mode`, `post_as_draft`, `publish_immediately`.\n- `photos` (`array`): For photo carousels — array of `{ url, order, caption? }` objects (max 35). When all media items are images, TikTok automatically creates a photo carousel.\n- `allowComments` (`boolean`), `allowDuet` (`boolean`), `allowStitch` (`boolean`): Interaction controls.\n\n**Facebook**\n- `fbPostType` (`string`): `\"photo\"` | `\"carousel\"`. Post type. `\"carousel\"` enables multi-card experience with child attachments. Defaults to `\"photo\"`.\n- `fbCarouselLink` (`string`): Destination link for all cards in a carousel. Required when `fbPostType=\"carousel\"`.\n- `fbCarouselCards` (`array`): Optional per-card copy for carousel posts. Array of objects with `name` and `description` strings (max 5 items), index-aligned with media attachments. Example: `[{ name: \"Card 1\", description: \"First card\" }, { name: \"Card 2\", description: \"Second card\" }]`.\n- `enableFirstComment` (`boolean`): Post an auto-comment after publishing.\n- `firstCommentText` (`string`): Text for the auto-comment.\n- `facebookDestination` / `facebook_destination` (`string`): `\"post\"` | `\"stories\"` | `\"post_stories\"`. Publishes a Page Story via `/photo_stories` or `/video_stories`. Story media must be 9:16; videos 3-60s (MP4/MOV); photos JPEG/PNG/BMP/GIF/TIFF under 10MB. Behind the `FACEBOOK_STORIES_ENABLED` feature flag.\n\n**Facebook Carousel Behavior (backward compatible)**\nSet `fbPostType=\"carousel\"` to opt in to carousel format. When `fbPostType` is absent or set to `\"photo\"`, the default behavior is used (single photo or video post). Absent or `\"photo\"` = backward compatible behavior.\n\n**Pinterest**\n- `board_id` / `boardId` (`string`): Board id returned by `GET /accounts/pinterest/boards`. When omitted, Aidelly resolves a board in this order: (1) value in the request payload, (2) board saved on the connected Pinterest account (`platform_specific`), (3) workspace posting default, (4) user-level posting default. Publishing fails preflight if no board can be resolved.\n\n**LinkedIn**\n- `contentType` (`string`): `\"post\"` | `\"image\"` | `\"video\"` — auto-detected from media if not specified.\n\n**Threads**\n- `replyControl` (`string`): `\"everyone\"` | `\"accounts_you_follow\"` | `\"mentioned_only\"`. Maps to the Threads API `reply_control` field. Defaults to the connection's saved Threads posting default, then `\"everyone\"`.\n- `topicTag` (`string`): A single topic tag (Threads accepts at most one per post). Maps to `topic_tag`.\n- `allowlistedCountryCodes` (`string[]`): ISO-3166 alpha-2 country codes that are allowed to see the post. Maps to `allowlisted_country_codes`. Empty array publishes globally.\n- `linkAttachmentUrl` (`string`): URL to attach as the canonical link preview. Maps to `link_attachment`.\n\n**Google Business** (`google_business`)\n- `locationName` (`string`, required): Full GBP location resource name, e.g. `accounts/{accountId}/locations/{locationId}`. Use the `id` from `/accounts` for a `google_business` row. Falls back to the connection's saved default location when omitted.\n- `topicType` (`string`): `\"STANDARD\"` | `\"EVENT\"` | `\"OFFER\"` | `\"ALERT\"`. Defaults to `\"STANDARD\"`.\n- `languageCode` (`string`): BCP-47 language tag (e.g. `\"en-US\"`). Defaults to `\"en-US\"`.\n- `callToActionType` (`string`): `\"BOOK\"` | `\"ORDER\"` | `\"SHOP\"` | `\"LEARN_MORE\"` | `\"SIGN_UP\"` | `\"CALL\"`. Adds a CTA button to STANDARD posts only.\n- `callToActionUrl` (`string`): Required for every CTA except `CALL`, which uses the phone number on the Business Profile.\n- `event` (`object`, required when `topicType` is `\"EVENT\"`): `{ title, schedule }` where `schedule` accepts ISO `start`/`end` strings or Google date/time objects (`startDate`, `startTime`, `endDate`, `endTime`).\n- `offer` (`object`, required when `topicType` is `\"OFFER\"`): `{ schedule, couponCode?, redeemOnlineUrl?, termsConditions? }`.\n- `alertType` (`string`, required when `topicType` is `\"ALERT\"`): Currently `\"COVID_19\"`.\n","example":{"postMode":"draft"}},"platformSpecific":{"type":"object","additionalProperties":true,"description":"Alias for `platform_specific` (agent compatibility)."},"first_comment":{"type":"object","required":["text"],"additionalProperties":false,"description":"Auto-posts a comment on the published post. Honored on platforms\nwhose `capabilities.firstComment` is true (Facebook, Instagram,\nLinkedIn, YouTube, X, Bluesky, Threads).\n","properties":{"text":{"type":"string","minLength":1,"maxLength":2200,"description":"Global comment text. Default for every capable platform."},"overrides":{"type":"object","additionalProperties":{"type":"string","minLength":1,"maxLength":2200},"description":"Per-platform override (`{ instagram: \"...\", facebook: \"...\" }`).\nFalls back to `text` when missing or empty.\n"},"delay_minutes":{"type":"integer","enum":[0,5,30,60,360,1440],"description":"Minutes to wait after the main publish before posting the\ncomment. Fully honored on scheduled posts (Inngest sleep);\nbest-effort on immediate publishes.\n"}}},"thread":{"type":"object","required":["parts"],"additionalProperties":false,"description":"Native thread composition. Honored on platforms whose\n`capabilities.thread` is true (X, Bluesky, Threads). Each part\npublishes as a reply chained off the previous one. `parts[0]`\nis the root post and shares text with `content.text`.\n","properties":{"parts":{"type":"array","minItems":2,"maxItems":25,"items":{"type":"object","required":["text"],"properties":{"text":{"type":"string","minLength":1},"media":{"type":"array","maxItems":4,"items":{"type":"object","properties":{"url":{"type":"string","format":"uri"},"type":{"type":"string","enum":["image","video","gif","document"]}}}}}}},"overrides":{"type":"object","additionalProperties":{"type":"array","items":{"type":"object","properties":{"text":{"type":"string"}}}},"description":"Per-platform override (`{ twitter: [...], bluesky: [...] }`).\nFalls back to `parts` when missing.\n"}}},"draft_kind":{"type":"string","enum":["post","thread"],"description":"Indicates whether the composer authored a single post or a\nthread. Optional — when omitted, threads are inferred from\n`thread.parts.length > 1`.\n"}}},"query":{"type":"object","additionalProperties":true,"description":"Optional query overrides for endpoints with sparse parameter schemas."},"body":{"type":"object","additionalProperties":true,"description":"Optional body override for endpoints with sparse parameter schemas."}},"required":["idempotency_key","platform","content"],"additionalProperties":false}},{"name":"aidelly_create_post_comment","description":"Create a comment on a post. Text body is required; @mention parsing is automatic. Replies require parent_comment_id pointing to the root comment.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"workspace_id":{"type":"string","format":"uuid","description":"Workspace to operate in. Do not ask the user for this UUID — call aidelly_list_workspaces and use the `id` of the matching workspace. Optional for read operations; required when creating content."},"idempotency_key":{"type":"string"},"text":{"type":"string","minLength":1,"maxLength":10000,"description":"Comment body text (@mentions are parsed automatically)"},"parent_comment_id":{"type":"string","format":"uuid","nullable":true,"description":"ID of parent comment for threaded replies"},"brand_id":{"type":"string"},"query":{"type":"object","additionalProperties":true,"description":"Optional query overrides for endpoints with sparse parameter schemas."},"body":{"type":"object","additionalProperties":true,"description":"Optional body override for endpoints with sparse parameter schemas."}},"required":["id","idempotency_key","text"],"additionalProperties":false}},{"name":"aidelly_create_queue","description":"POST /queues — create a new content distribution queue with recurring weekly time slots.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"workspace_id":{"type":"string","format":"uuid","description":"Workspace to operate in. Do not ask the user for this UUID — call aidelly_list_workspaces and use the `id` of the matching workspace. Optional for read operations; required when creating content."},"idempotency_key":{"type":"string"},"name":{"type":"string","minLength":1,"maxLength":255,"description":"Queue name"},"slots":{"type":"array","minItems":1,"items":{"type":"object","required":["weekday","hour","minute"],"properties":{"weekday":{"type":"integer","minimum":0,"maximum":6,"description":"0=Sunday through 6=Saturday"},"hour":{"type":"integer","minimum":0,"maximum":23},"minute":{"type":"integer","minimum":0,"maximum":59}}},"description":"Time slots when queue should post"},"timezone":{"type":"string","description":"IANA timezone ID for slot times (e.g. America/New_York)"},"channels":{"type":"array","items":{"type":"object","required":["platform"],"properties":{"platform":{"type":"string"},"accountId":{"type":"string","description":"Optional; platform-specific account ID"}}},"description":"Channels to post to from this queue"},"brand_id":{"type":"string"},"query":{"type":"object","additionalProperties":true,"description":"Optional query overrides for endpoints with sparse parameter schemas."},"body":{"type":"object","additionalProperties":true,"description":"Optional body override for endpoints with sparse parameter schemas."}},"required":["idempotency_key","name","slots"],"additionalProperties":false}},{"name":"aidelly_create_report","description":"Create a report for a date range and synchronously build its analytics snapshot from the workspace connected accounts. Requires an Idempotency-Key header.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"workspace_id":{"type":"string","format":"uuid","description":"Workspace to operate in. Do not ask the user for this UUID — call aidelly_list_workspaces and use the `id` of the matching workspace. Optional for read operations; required when creating content."},"idempotency_key":{"type":"string"},"title":{"type":"string","minLength":1,"maxLength":120,"example":"November Report"},"dateRangeStart":{"type":"string","format":"date","example":"2024-11-01"},"dateRangeEnd":{"type":"string","format":"date","example":"2024-11-30"},"sections":{"type":"array","items":{"type":"string","enum":["summary","platform_breakdown","top_posts","period_comparison","insights","commentary","trend"]}},"commentary":{"type":"string","maxLength":4000},"templateId":{"type":"string","format":"uuid"},"includeComparison":{"type":"boolean","default":false},"brand_id":{"type":"string"},"query":{"type":"object","additionalProperties":true,"description":"Optional query overrides for endpoints with sparse parameter schemas."},"body":{"type":"object","additionalProperties":true,"description":"Optional body override for endpoints with sparse parameter schemas."}},"required":["idempotency_key","title","dateRangeStart","dateRangeEnd"],"additionalProperties":false}},{"name":"aidelly_create_report_link","description":"POST /report-links — create a shareable report link (snapshot or live with cadence).","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"workspace_id":{"type":"string","format":"uuid","description":"Workspace to operate in. Do not ask the user for this UUID — call aidelly_list_workspaces and use the `id` of the matching workspace. Optional for read operations; required when creating content."},"idempotency_key":{"type":"string"},"report_id":{"type":"string","format":"uuid","description":"UUID of the report to share"},"mode":{"type":"string","enum":["snapshot","live"],"default":"snapshot","description":"snapshot for static link, live for auto-updating"},"cadence":{"type":"string","enum":["weekly","monthly"],"nullable":true,"description":"Required for live mode; update frequency"},"expires_at":{"type":"string","format":"date-time","nullable":true,"description":"Optional expiration timestamp in ISO 8601 format"},"password":{"type":"string","minLength":1,"nullable":true,"description":"Optional password to protect the share link"},"template_id":{"type":"string","format":"uuid","nullable":true,"description":"Optional report template to use for rendering"},"brand_id":{"type":"string"},"query":{"type":"object","additionalProperties":true,"description":"Optional query overrides for endpoints with sparse parameter schemas."},"body":{"type":"object","additionalProperties":true,"description":"Optional body override for endpoints with sparse parameter schemas."}},"required":["idempotency_key","report_id","mode"],"additionalProperties":false}},{"name":"aidelly_create_report_schedule","description":"Create a new report schedule. Soft-capped at 10 active schedules per workspace.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"workspace_id":{"type":"string","format":"uuid","description":"Workspace to operate in. Do not ask the user for this UUID — call aidelly_list_workspaces and use the `id` of the matching workspace. Optional for read operations; required when creating content."},"idempotency_key":{"type":"string"},"report_id":{"type":"string","format":"uuid"},"cadence":{"type":"string","enum":["daily","weekly","biweekly","monthly"]},"recipient_emails":{"type":"array","items":{"type":"string","format":"email"},"minItems":1,"maxItems":20},"next_run_at":{"type":"string","format":"date-time","description":"ISO 8601 datetime. If omitted, auto-calculated based on cadence."},"name":{"type":"string","description":"Schedule name, unique per workspace. Defaults to the seed report's title; a duplicate name returns 409 PUBLIC_API_SCHEDULE_NAME_CONFLICT."},"brand_id":{"type":"string"},"query":{"type":"object","additionalProperties":true,"description":"Optional query overrides for endpoints with sparse parameter schemas."},"body":{"type":"object","additionalProperties":true,"description":"Optional body override for endpoints with sparse parameter schemas."}},"required":["idempotency_key","report_id","cadence","recipient_emails"],"additionalProperties":false}},{"name":"aidelly_create_repurpose_job","description":"Run a synchronous repurpose job: extract source content, distill, and generate output for one (medium, shape) target.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"workspace_id":{"type":"string","format":"uuid","description":"Workspace to operate in. Do not ask the user for this UUID — call aidelly_list_workspaces and use the `id` of the matching workspace. Optional for read operations; required when creating content."},"idempotency_key":{"type":"string"},"sourceType":{"type":"string","enum":["url","youtube","pdf","aidelly_draft","aidelly_scheduled","raw_text"]},"sourceRef":{"type":"string","description":"URL for `url`/`youtube`, storage ref for `pdf`, or row id for\n`aidelly_draft` / `aidelly_scheduled`. Required unless `sourceType`\nis `raw_text`.\n"},"sourceText":{"type":"string","description":"Required when `sourceType` is `raw_text`."},"sourceTitle":{"type":"string"},"medium":{"type":"string","enum":["twitter","instagram","linkedin","tiktok","youtube","pinterest","threads","facebook","substack_newsletter","substack_note","reddit_thread","newsletter","email","podcast","lead_resource","case_study","bluesky","mastodon","google_business"]},"shape":{"type":"string","minLength":1,"example":"carousel_7","description":"Output shape ID — must be one of the valid shapes for the chosen\n`medium` (an invalid pair returns 400 listing the valid shapes):\ntwitter: single_tweet | thread_3 | thread_5 | thread_10 | thread_script | long_form_article\ninstagram: single_post | carousel_7 | reel_script\nlinkedin: short_post | long_form_1500w | article | carousel_7\ntiktok: caption | video_script | shorts_script\nyoutube: description | video_script | shorts_script\npinterest: pin_description\nthreads: single_post | thread_5\nfacebook: short_post\nsubstack_newsletter: essay_800w | essay_2000w\nsubstack_note: note\nreddit_thread: post_title_and_body\nnewsletter: issue_600w\nemail: subject_and_body\npodcast: episode_outline | show_notes\nlead_resource: lead_magnet_outline | one_pager\ncase_study: case_study_writeup\nbluesky: single_post | thread_3\nmastodon: single_post\ngoogle_business: update_post\n"},"brand_id":{"type":"string"},"query":{"type":"object","additionalProperties":true,"description":"Optional query overrides for endpoints with sparse parameter schemas."},"body":{"type":"object","additionalProperties":true,"description":"Optional body override for endpoints with sparse parameter schemas."}},"required":["idempotency_key","sourceType","medium","shape"],"additionalProperties":false}},{"name":"aidelly_create_scheduled_post","description":"POST /scheduled-posts — schedule a post with optional auto-recycle entries (up to 3 reposts + 3 reshares). When Team Approvals is on, member submissions land as pending. Public API preview. LinkedIn document posts attach one PDF (≤100 MB, ≤300 pages) as media[].type = \"document\"; documents are rejected on every other platform.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"workspace_id":{"type":"string","format":"uuid","description":"Workspace to operate in. Do not ask the user for this UUID — call aidelly_list_workspaces and use the `id` of the matching workspace. Optional for read operations; required when creating content."},"idempotency_key":{"type":"string"},"platform":{"type":"string"},"account_id":{"type":"string","description":"A provider account ID from `/accounts`, or a social connection UUID selector."},"scheduled_at":{"type":"string","format":"date-time"},"timezone":{"type":"string","default":"UTC"},"payload":{"type":"object","description":"Post content. `payload.media` accepts URL objects, objects with `media_id`, or bare media-library UUID strings owned by the selected workspace.\n`media[].type` accepts `image`, `video`, `gif`, or `document`, and is resolved from the media-library row when omitted (`application/pdf` → `document`).\nLinkedIn document posts attach one PDF (≤100 MB, ≤300 pages) as `media[].type = \"document\"`; documents on any other platform are rejected with `422`.\n","additionalProperties":true},"recycle":{"type":"array","maxItems":6,"items":{"type":"object","required":["kind","offset_seconds"],"properties":{"kind":{"type":"string","enum":["repost","reshare"]},"offset_seconds":{"type":"integer","minimum":3600,"maximum":31536000,"description":"Seconds after the source publishes when this recycle fires."}}}},"content_campaign_id":{"type":"string","format":"uuid","nullable":true},"brand_id":{"type":"string"},"query":{"type":"object","additionalProperties":true,"description":"Optional query overrides for endpoints with sparse parameter schemas."},"body":{"type":"object","additionalProperties":true,"description":"Optional body override for endpoints with sparse parameter schemas."}},"required":["idempotency_key","platform","scheduled_at","payload"],"additionalProperties":false}},{"name":"aidelly_create_short_link","description":"Create a manual short link on the workspace.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"workspace_id":{"type":"string","format":"uuid","description":"Workspace to operate in. Do not ask the user for this UUID — call aidelly_list_workspaces and use the `id` of the matching workspace. Optional for read operations; required when creating content."},"idempotency_key":{"type":"string"},"target_url":{"type":"string","format":"uri","maxLength":2048},"source_platform":{"type":"string","description":"Optional originating platform identifier (e.g. `instagram`)."},"brand_id":{"type":"string"},"query":{"type":"object","additionalProperties":true,"description":"Optional query overrides for endpoints with sparse parameter schemas."},"body":{"type":"object","additionalProperties":true,"description":"Optional body override for endpoints with sparse parameter schemas."}},"required":["idempotency_key","target_url"],"additionalProperties":false}},{"name":"aidelly_create_task","description":"Create a new task in the workspace.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"workspace_id":{"type":"string","format":"uuid","description":"Workspace to operate in. Do not ask the user for this UUID — call aidelly_list_workspaces and use the `id` of the matching workspace. Optional for read operations; required when creating content."},"idempotency_key":{"type":"string"},"title":{"type":"string","minLength":1,"maxLength":500,"description":"Task title."},"description":{"type":"string","maxLength":20000,"nullable":true,"description":"Task description."},"status":{"type":"string","enum":["todo","in_progress","blocked","done","canceled"],"description":"Task status (default \"todo\")."},"priority":{"type":"string","enum":["low","normal","high","urgent"],"description":"Task priority (default \"normal\")."},"assignee_user_id":{"type":"string","format":"uuid","nullable":true,"description":"UUID of assignee (must be an active workspace member)."},"due_at":{"type":"string","format":"date-time","nullable":true,"description":"ISO 8601 due date/time."},"linked_post_id":{"type":"string","format":"uuid","nullable":true,"description":"UUID of linked post (mutually exclusive with linked_idea_id)."},"linked_idea_id":{"type":"string","format":"uuid","nullable":true,"description":"UUID of linked idea (mutually exclusive with linked_post_id)."},"brand_id":{"type":"string"},"query":{"type":"object","additionalProperties":true,"description":"Optional query overrides for endpoints with sparse parameter schemas."},"body":{"type":"object","additionalProperties":true,"description":"Optional body override for endpoints with sparse parameter schemas."}},"required":["idempotency_key","title"],"additionalProperties":false}},{"name":"aidelly_create_webhook","description":"Create a webhook subscription for post lifecycle events.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"workspace_id":{"type":"string","format":"uuid","description":"Workspace to operate in. Do not ask the user for this UUID — call aidelly_list_workspaces and use the `id` of the matching workspace. Optional for read operations; required when creating content."},"brand_id":{"type":"string"},"idempotency_key":{"type":"string"},"url":{"type":"string","format":"uri"},"events":{"type":"array","items":{"type":"string","enum":["post.created","post.scheduled","post.published","post.failed","post.canceled"]}},"secret":{"type":"string","minLength":12,"maxLength":128},"description":{"type":"string","maxLength":140},"query":{"type":"object","additionalProperties":true,"description":"Optional query overrides for endpoints with sparse parameter schemas."},"body":{"type":"object","additionalProperties":true,"description":"Optional body override for endpoints with sparse parameter schemas."}},"required":["idempotency_key","url"],"additionalProperties":false}},{"name":"aidelly_create_workspace","description":"POST /workspaces — create a new workspace for the API key owner.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"idempotency_key":{"type":"string"},"name":{"type":"string","minLength":1,"maxLength":100},"workspace_type":{"type":"string","enum":["traditional","agentic"]},"workspace_id":{"type":"string","format":"uuid","description":"Workspace to operate in. Do not ask the user for this UUID — call aidelly_list_workspaces and use the `id` of the matching workspace. Optional for read operations; required when creating content."},"brand_id":{"type":"string"},"query":{"type":"object","additionalProperties":true,"description":"Optional query overrides for endpoints with sparse parameter schemas."},"body":{"type":"object","additionalProperties":true,"description":"Optional body override for endpoints with sparse parameter schemas."}},"required":["idempotency_key","name"],"additionalProperties":false}},{"name":"aidelly_delete_calendar_events_id","description":"DELETE /calendar/events/{id}","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"idempotency_key":{"type":"string"},"workspace_id":{"type":"string","format":"uuid","description":"Workspace to operate in. Do not ask the user for this UUID — call aidelly_list_workspaces and use the `id` of the matching workspace. Optional for read operations; required when creating content."},"brand_id":{"type":"string"},"query":{"type":"object","additionalProperties":true,"description":"Optional query overrides for endpoints with sparse parameter schemas."}},"required":["id","idempotency_key"],"additionalProperties":false}},{"name":"aidelly_delete_calendar_share_link","description":"Permanently delete a calendar share link so its public /calendar/share/<token> URL stops working. This is irreversible — disable the link in-app instead if you may need it back. Returns 404 for unknown ids and for links in another workspace alike.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"workspace_id":{"type":"string","format":"uuid","description":"Workspace to operate in. Do not ask the user for this UUID — call aidelly_list_workspaces and use the `id` of the matching workspace. Optional for read operations; required when creating content."},"idempotency_key":{"type":"string"},"brand_id":{"type":"string"},"query":{"type":"object","additionalProperties":true,"description":"Optional query overrides for endpoints with sparse parameter schemas."}},"required":["id","idempotency_key"],"additionalProperties":false}},{"name":"aidelly_delete_campaign","description":"Delete a content campaign. Campaigns with no scheduled or published posts are removed outright; campaigns that publish history still references are soft-deleted so the history keeps its grouping (the response's soft_deleted flag says which happened). Either way the campaign stops appearing anywhere. Returns 404 for unknown ids and for campaigns in another workspace alike.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"workspace_id":{"type":"string","format":"uuid","description":"Workspace to operate in. Do not ask the user for this UUID — call aidelly_list_workspaces and use the `id` of the matching workspace. Optional for read operations; required when creating content."},"idempotency_key":{"type":"string"},"brand_id":{"type":"string"},"query":{"type":"object","additionalProperties":true,"description":"Optional query overrides for endpoints with sparse parameter schemas."}},"required":["id","idempotency_key"],"additionalProperties":false}},{"name":"aidelly_delete_content_automations_id","description":"DELETE /content-automations/{id}","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"idempotency_key":{"type":"string"},"workspace_id":{"type":"string","format":"uuid","description":"Workspace to operate in. Do not ask the user for this UUID — call aidelly_list_workspaces and use the `id` of the matching workspace. Optional for read operations; required when creating content."},"brand_id":{"type":"string"},"query":{"type":"object","additionalProperties":true,"description":"Optional query overrides for endpoints with sparse parameter schemas."}},"required":["id","idempotency_key"],"additionalProperties":false}},{"name":"aidelly_delete_draft","description":"Delete a draft by ID. Drafts are work-in-progress content that never publish. Existing API keys need the new `drafts:write` scope added to gain draft access; no implicit grant occurs.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"idempotency_key":{"type":"string"},"id":{"type":"string","format":"uuid"},"workspace_id":{"type":"string","format":"uuid","description":"Workspace to operate in. Do not ask the user for this UUID — call aidelly_list_workspaces and use the `id` of the matching workspace. Optional for read operations; required when creating content."},"brand_id":{"type":"string"},"query":{"type":"object","additionalProperties":true,"description":"Optional query overrides for endpoints with sparse parameter schemas."}},"required":["idempotency_key","id"],"additionalProperties":false}},{"name":"aidelly_delete_inbox_automations_id","description":"DELETE /inbox/automations/{id}","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"idempotency_key":{"type":"string"},"workspace_id":{"type":"string","format":"uuid","description":"Workspace to operate in. Do not ask the user for this UUID — call aidelly_list_workspaces and use the `id` of the matching workspace. Optional for read operations; required when creating content."},"brand_id":{"type":"string"},"query":{"type":"object","additionalProperties":true,"description":"Optional query overrides for endpoints with sparse parameter schemas."}},"required":["id","idempotency_key"],"additionalProperties":false}},{"name":"aidelly_delete_post_comment","description":"Soft delete a comment. Only the author or workspace owner can delete comments.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"commentId":{"type":"string","format":"uuid"},"workspace_id":{"type":"string","format":"uuid","description":"Workspace to operate in. Do not ask the user for this UUID — call aidelly_list_workspaces and use the `id` of the matching workspace. Optional for read operations; required when creating content."},"idempotency_key":{"type":"string"},"brand_id":{"type":"string"},"query":{"type":"object","additionalProperties":true,"description":"Optional query overrides for endpoints with sparse parameter schemas."}},"required":["id","commentId","idempotency_key"],"additionalProperties":false}},{"name":"aidelly_delete_report_schedule","description":"Soft-delete a report schedule (sets active=false, idempotent).","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"workspace_id":{"type":"string","format":"uuid","description":"Workspace to operate in. Do not ask the user for this UUID — call aidelly_list_workspaces and use the `id` of the matching workspace. Optional for read operations; required when creating content."},"idempotency_key":{"type":"string"},"id":{"type":"string","format":"uuid"},"brand_id":{"type":"string"},"query":{"type":"object","additionalProperties":true,"description":"Optional query overrides for endpoints with sparse parameter schemas."}},"required":["idempotency_key","id"],"additionalProperties":false}},{"name":"aidelly_delete_short_link","description":"Permanently delete a short link. The /l/<slug> redirect stops working and the link's click history is deleted with it, so prefer this only when the link should disappear entirely. Call aidelly_list_short_links first to get the link id. Returns 404 for unknown ids and for links in another workspace alike.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"workspace_id":{"type":"string","format":"uuid","description":"Workspace to operate in. Do not ask the user for this UUID — call aidelly_list_workspaces and use the `id` of the matching workspace. Optional for read operations; required when creating content."},"idempotency_key":{"type":"string"},"brand_id":{"type":"string"},"query":{"type":"object","additionalProperties":true,"description":"Optional query overrides for endpoints with sparse parameter schemas."}},"required":["id","idempotency_key"],"additionalProperties":false}},{"name":"aidelly_delete_task","description":"Soft-delete a task (hidden but can be restored).","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"workspace_id":{"type":"string","format":"uuid","description":"Workspace to operate in. Do not ask the user for this UUID — call aidelly_list_workspaces and use the `id` of the matching workspace. Optional for read operations; required when creating content."},"idempotency_key":{"type":"string"},"id":{"type":"string","format":"uuid"},"brand_id":{"type":"string"},"query":{"type":"object","additionalProperties":true,"description":"Optional query overrides for endpoints with sparse parameter schemas."}},"required":["idempotency_key","id"],"additionalProperties":false}},{"name":"aidelly_delete_webhook","description":"Delete a webhook subscription by ID.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"workspace_id":{"type":"string","format":"uuid","description":"Workspace to operate in. Do not ask the user for this UUID — call aidelly_list_workspaces and use the `id` of the matching workspace. Optional for read operations; required when creating content."},"brand_id":{"type":"string"},"idempotency_key":{"type":"string"},"query":{"type":"object","additionalProperties":true,"description":"Optional query overrides for endpoints with sparse parameter schemas."}},"required":["id","idempotency_key"],"additionalProperties":false}},{"name":"aidelly_delete_workspace","description":"DELETE /workspaces/{workspaceId} — soft-delete a workspace. Requires confirm_name to match the workspace name.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"idempotency_key":{"type":"string"},"workspaceId":{"type":"string","format":"uuid"},"confirm_name":{"type":"string"},"reason":{"type":"string","maxLength":500},"workspace_id":{"type":"string","format":"uuid","description":"Workspace to operate in. Do not ask the user for this UUID — call aidelly_list_workspaces and use the `id` of the matching workspace. Optional for read operations; required when creating content."},"brand_id":{"type":"string"},"query":{"type":"object","additionalProperties":true,"description":"Optional query overrides for endpoints with sparse parameter schemas."}},"required":["idempotency_key","workspaceId","confirm_name"],"additionalProperties":false}},{"name":"aidelly_disconnect_ecommerce_store","description":"DELETE /ecommerce/stores/{id} — revoke the provider credential and stop future syncs. Imported products remain. Public API preview.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"workspace_id":{"type":"string","format":"uuid","description":"Workspace to operate in. Do not ask the user for this UUID — call aidelly_list_workspaces and use the `id` of the matching workspace. Optional for read operations; required when creating content."},"idempotency_key":{"type":"string"},"id":{"type":"string","format":"uuid"},"brand_id":{"type":"string"},"query":{"type":"object","additionalProperties":true,"description":"Optional query overrides for endpoints with sparse parameter schemas."}},"required":["idempotency_key","id"],"additionalProperties":false}},{"name":"aidelly_generate_brand_interview_questions","description":"POST /ideas/interview/questions — generate a brand-aware track of interview questions. Default count 8. Public API preview.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"workspace_id":{"type":"string","format":"uuid","description":"Workspace to operate in. Do not ask the user for this UUID — call aidelly_list_workspaces and use the `id` of the matching workspace. Optional for read operations; required when creating content."},"idempotency_key":{"type":"string"},"count":{"type":"integer","minimum":4,"maximum":20,"default":8},"steer":{"type":"string","description":"Optional steering hint to bias the question set."},"brand_id":{"type":"string"},"query":{"type":"object","additionalProperties":true,"description":"Optional query overrides for endpoints with sparse parameter schemas."},"body":{"type":"object","additionalProperties":true,"description":"Optional body override for endpoints with sparse parameter schemas."}},"required":["idempotency_key"],"additionalProperties":false}},{"name":"aidelly_get_agency_overview","description":"GET /agency/overview — cross-workspace agency summary (same data as the dashboard Command Center) — today's queue + next scheduled post, last-24h failures, pending approvals, inbox split by comments/DMs, and credit burn per workspace. Needs a workspace-unscoped key.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"tz":{"type":"string"},"workspace_id":{"type":"string","format":"uuid","description":"Workspace to operate in. Do not ask the user for this UUID — call aidelly_list_workspaces and use the `id` of the matching workspace. Optional for read operations; required when creating content."},"brand_id":{"type":"string"},"query":{"type":"object","additionalProperties":true,"description":"Optional query overrides for endpoints with sparse parameter schemas."}},"additionalProperties":false}},{"name":"aidelly_get_ai_credit_balance","description":"Get workspace AI credit balance snapshot, including plan credits, trial grants, and purchased credits.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"workspace_id":{"type":"string","format":"uuid","description":"Workspace to operate in. Do not ask the user for this UUID — call aidelly_list_workspaces and use the `id` of the matching workspace. Optional for read operations; required when creating content."},"brand_id":{"type":"string"},"query":{"type":"object","additionalProperties":true,"description":"Optional query overrides for endpoints with sparse parameter schemas."}},"additionalProperties":false}},{"name":"aidelly_get_analytics_insights","description":"GET /analytics/insights","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"platforms":{"type":"string"},"limit":{"type":"integer","minimum":1,"maximum":100,"default":10},"type":{"type":"string"},"dismissed":{"type":"string","enum":["true","false"]},"cursor":{"type":"string","maxLength":512},"workspace_id":{"type":"string","format":"uuid","description":"Workspace to operate in. Do not ask the user for this UUID — call aidelly_list_workspaces and use the `id` of the matching workspace. Optional for read operations; required when creating content."},"brand_id":{"type":"string"},"query":{"type":"object","additionalProperties":true,"description":"Optional query overrides for endpoints with sparse parameter schemas."}},"additionalProperties":false}},{"name":"aidelly_get_analytics_summary","description":"GET /analytics/summary","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"timeframe":{"type":"string","pattern":"^\\d+d$","default":"7d"},"startDate":{"type":"string","format":"date"},"endDate":{"type":"string","format":"date"},"includeInsights":{"type":"boolean","default":true},"includeActivity":{"type":"boolean","default":false},"workspace_id":{"type":"string","format":"uuid","description":"Workspace to operate in. Do not ask the user for this UUID — call aidelly_list_workspaces and use the `id` of the matching workspace. Optional for read operations; required when creating content."},"brand_id":{"type":"string"},"query":{"type":"object","additionalProperties":true,"description":"Optional query overrides for endpoints with sparse parameter schemas."}},"additionalProperties":false}},{"name":"aidelly_get_analytics_unified","description":"GET /analytics/unified","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"from":{"type":"string","format":"date"},"to":{"type":"string","format":"date"},"platforms":{"type":"string"},"workspace_id":{"type":"string","format":"uuid","description":"Workspace to operate in. Do not ask the user for this UUID — call aidelly_list_workspaces and use the `id` of the matching workspace. Optional for read operations; required when creating content."},"brand_id":{"type":"string"},"query":{"type":"object","additionalProperties":true,"description":"Optional query overrides for endpoints with sparse parameter schemas."}},"required":["from","to"],"additionalProperties":false}},{"name":"aidelly_get_approval_settings","description":"GET /workspaces/{workspaceId}/approval-settings — read member and owner-review approval settings. Public API preview.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"workspaceId":{"type":"string","format":"uuid"},"workspace_id":{"type":"string","format":"uuid","description":"Workspace to operate in. Do not ask the user for this UUID — call aidelly_list_workspaces and use the `id` of the matching workspace. Optional for read operations; required when creating content."},"brand_id":{"type":"string"},"query":{"type":"object","additionalProperties":true,"description":"Optional query overrides for endpoints with sparse parameter schemas."}},"required":["workspaceId"],"additionalProperties":false}},{"name":"aidelly_get_approvals","description":"GET /approvals","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"cursor":{"type":"string","maxLength":512},"workspace_id":{"type":"string","format":"uuid","description":"Workspace to operate in. Do not ask the user for this UUID — call aidelly_list_workspaces and use the `id` of the matching workspace. Optional for read operations; required when creating content."},"brand_id":{"type":"string"},"query":{"type":"object","additionalProperties":true,"description":"Optional query overrides for endpoints with sparse parameter schemas."}},"additionalProperties":false}},{"name":"aidelly_get_approvals_id","description":"GET /approvals/{id}","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"workspace_id":{"type":"string","format":"uuid","description":"Workspace to operate in. Do not ask the user for this UUID — call aidelly_list_workspaces and use the `id` of the matching workspace. Optional for read operations; required when creating content."},"brand_id":{"type":"string"},"query":{"type":"object","additionalProperties":true,"description":"Optional query overrides for endpoints with sparse parameter schemas."}},"required":["id"],"additionalProperties":false}},{"name":"aidelly_get_bio_page","description":"Get the workspace's link-in-bio page configuration and blocks.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"workspace_id":{"type":"string","format":"uuid","description":"Workspace to operate in. Do not ask the user for this UUID — call aidelly_list_workspaces and use the `id` of the matching workspace. Optional for read operations; required when creating content."},"brand_id":{"type":"string"},"query":{"type":"object","additionalProperties":true,"description":"Optional query overrides for endpoints with sparse parameter schemas."}},"additionalProperties":false}},{"name":"aidelly_get_brand_profile","description":"GET /brand/profile — retrieve the workspace brand profile, including brand voice.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"workspace_id":{"type":"string","format":"uuid","description":"Workspace to operate in. Do not ask the user for this UUID — call aidelly_list_workspaces and use the `id` of the matching workspace. Optional for read operations; required when creating content."},"brand_id":{"type":"string"},"query":{"type":"object","additionalProperties":true,"description":"Optional query overrides for endpoints with sparse parameter schemas."}},"additionalProperties":false}},{"name":"aidelly_get_brand_settings_context","description":"GET /brand/settings-context","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"workspace_id":{"type":"string","format":"uuid","description":"Workspace to operate in. Do not ask the user for this UUID — call aidelly_list_workspaces and use the `id` of the matching workspace. Optional for read operations; required when creating content."},"brand_id":{"type":"string"},"query":{"type":"object","additionalProperties":true,"description":"Optional query overrides for endpoints with sparse parameter schemas."}},"additionalProperties":false}},{"name":"aidelly_get_bulk_fill_job","description":"GET /calendar/bulk-fill/{jobId}","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"jobId":{"type":"string","format":"uuid"},"workspace_id":{"type":"string","format":"uuid","description":"Workspace to operate in. Do not ask the user for this UUID — call aidelly_list_workspaces and use the `id` of the matching workspace. Optional for read operations; required when creating content."},"brand_id":{"type":"string"},"query":{"type":"object","additionalProperties":true,"description":"Optional query overrides for endpoints with sparse parameter schemas."}},"required":["jobId"],"additionalProperties":false}},{"name":"aidelly_get_calendar_events","description":"GET /calendar/events","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"cursor":{"type":"string","maxLength":512},"workspace_id":{"type":"string","format":"uuid","description":"Workspace to operate in. Do not ask the user for this UUID — call aidelly_list_workspaces and use the `id` of the matching workspace. Optional for read operations; required when creating content."},"brand_id":{"type":"string"},"query":{"type":"object","additionalProperties":true,"description":"Optional query overrides for endpoints with sparse parameter schemas."}},"additionalProperties":false}},{"name":"aidelly_get_content_automations","description":"GET /content-automations","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"cursor":{"type":"string","maxLength":512},"workspace_id":{"type":"string","format":"uuid","description":"Workspace to operate in. Do not ask the user for this UUID — call aidelly_list_workspaces and use the `id` of the matching workspace. Optional for read operations; required when creating content."},"brand_id":{"type":"string"},"query":{"type":"object","additionalProperties":true,"description":"Optional query overrides for endpoints with sparse parameter schemas."}},"additionalProperties":false}},{"name":"aidelly_get_content_automations_id","description":"GET /content-automations/{id}","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"workspace_id":{"type":"string","format":"uuid","description":"Workspace to operate in. Do not ask the user for this UUID — call aidelly_list_workspaces and use the `id` of the matching workspace. Optional for read operations; required when creating content."},"brand_id":{"type":"string"},"query":{"type":"object","additionalProperties":true,"description":"Optional query overrides for endpoints with sparse parameter schemas."}},"required":["id"],"additionalProperties":false}},{"name":"aidelly_get_draft","description":"Get a single post draft by id. Drafts are never published; draft_planned_for is a planning date only. Ids must be copied exactly from aidelly_list_drafts.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"workspace_id":{"type":"string","format":"uuid","description":"Workspace to operate in. Do not ask the user for this UUID — call aidelly_list_workspaces and use the `id` of the matching workspace. Optional for read operations; required when creating content."},"brand_id":{"type":"string"},"query":{"type":"object","additionalProperties":true,"description":"Optional query overrides for endpoints with sparse parameter schemas."}},"required":["id"],"additionalProperties":false}},{"name":"aidelly_get_ecommerce_store","description":"GET /ecommerce/stores/{id} — read one connected store. Public API preview.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"workspace_id":{"type":"string","format":"uuid","description":"Workspace to operate in. Do not ask the user for this UUID — call aidelly_list_workspaces and use the `id` of the matching workspace. Optional for read operations; required when creating content."},"id":{"type":"string","format":"uuid"},"brand_id":{"type":"string"},"query":{"type":"object","additionalProperties":true,"description":"Optional query overrides for endpoints with sparse parameter schemas."}},"required":["id"],"additionalProperties":false}},{"name":"aidelly_get_inbox_automations","description":"GET /inbox/automations","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"workspace_id":{"type":"string","format":"uuid","description":"Workspace to operate in. Do not ask the user for this UUID — call aidelly_list_workspaces and use the `id` of the matching workspace. Optional for read operations; required when creating content."},"brand_id":{"type":"string"},"query":{"type":"object","additionalProperties":true,"description":"Optional query overrides for endpoints with sparse parameter schemas."}},"additionalProperties":false}},{"name":"aidelly_get_inbox_items","description":"GET /inbox/items","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"cursor":{"type":"string","maxLength":512},"workspace_id":{"type":"string","format":"uuid","description":"Workspace to operate in. Do not ask the user for this UUID — call aidelly_list_workspaces and use the `id` of the matching workspace. Optional for read operations; required when creating content."},"brand_id":{"type":"string"},"query":{"type":"object","additionalProperties":true,"description":"Optional query overrides for endpoints with sparse parameter schemas."}},"additionalProperties":false}},{"name":"aidelly_get_post","description":"Get one post by its UUID. Delivery is confirmed only when status is completed and provider_post_id is non-null. A failed status includes error_code and error.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"workspace_id":{"type":"string","format":"uuid","description":"Workspace to operate in. Do not ask the user for this UUID — call aidelly_list_workspaces and use the `id` of the matching workspace. Optional for read operations; required when creating content."},"brand_id":{"type":"string"},"id":{"type":"string","format":"uuid"},"query":{"type":"object","additionalProperties":true,"description":"Optional query overrides for endpoints with sparse parameter schemas."}},"required":["id"],"additionalProperties":false}},{"name":"aidelly_get_post_analytics","description":"GET /posts/{id}/analytics — retrieve post performance metrics (views, impressions, likes, comments, shares, saves) with optional daily breakdown.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"workspace_id":{"type":"string","format":"uuid","description":"Workspace to operate in. Do not ask the user for this UUID — call aidelly_list_workspaces and use the `id` of the matching workspace. Optional for read operations; required when creating content."},"brand_id":{"type":"string"},"id":{"type":"string","format":"uuid"},"granularity":{"type":"string","enum":["daily"],"description":"Optional granularity for daily metrics breakdown"},"from":{"type":"string","format":"date-time"},"to":{"type":"string","format":"date-time"},"query":{"type":"object","additionalProperties":true,"description":"Optional query overrides for endpoints with sparse parameter schemas."}},"required":["id"],"additionalProperties":false}},{"name":"aidelly_get_report","description":"Retrieve a single report by ID (workspace-scoped).","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"workspace_id":{"type":"string","format":"uuid","description":"Workspace to operate in. Do not ask the user for this UUID — call aidelly_list_workspaces and use the `id` of the matching workspace. Optional for read operations; required when creating content."},"id":{"type":"string","format":"uuid"},"brand_id":{"type":"string"},"query":{"type":"object","additionalProperties":true,"description":"Optional query overrides for endpoints with sparse parameter schemas."}},"required":["id"],"additionalProperties":false}},{"name":"aidelly_get_report_schedule","description":"Retrieve a single report schedule by ID (workspace-scoped).","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"workspace_id":{"type":"string","format":"uuid","description":"Workspace to operate in. Do not ask the user for this UUID — call aidelly_list_workspaces and use the `id` of the matching workspace. Optional for read operations; required when creating content."},"id":{"type":"string","format":"uuid"},"brand_id":{"type":"string"},"query":{"type":"object","additionalProperties":true,"description":"Optional query overrides for endpoints with sparse parameter schemas."}},"required":["id"],"additionalProperties":false}},{"name":"aidelly_get_repurpose_job","description":"Get a single repurpose job by id.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"workspace_id":{"type":"string","format":"uuid","description":"Workspace to operate in. Do not ask the user for this UUID — call aidelly_list_workspaces and use the `id` of the matching workspace. Optional for read operations; required when creating content."},"id":{"type":"string","format":"uuid"},"brand_id":{"type":"string"},"query":{"type":"object","additionalProperties":true,"description":"Optional query overrides for endpoints with sparse parameter schemas."}},"required":["id"],"additionalProperties":false}},{"name":"aidelly_get_scheduled_post","description":"GET /scheduled-posts/{id} — read one scheduled post including its recycle plan and approval state. Public API preview.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"workspace_id":{"type":"string","format":"uuid","description":"Workspace to operate in. Do not ask the user for this UUID — call aidelly_list_workspaces and use the `id` of the matching workspace. Optional for read operations; required when creating content."},"id":{"type":"string","format":"uuid"},"brand_id":{"type":"string"},"query":{"type":"object","additionalProperties":true,"description":"Optional query overrides for endpoints with sparse parameter schemas."}},"required":["id"],"additionalProperties":false}},{"name":"aidelly_get_task","description":"Get full details of a task including attachments and activity history.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"workspace_id":{"type":"string","format":"uuid","description":"Workspace to operate in. Do not ask the user for this UUID — call aidelly_list_workspaces and use the `id` of the matching workspace. Optional for read operations; required when creating content."},"id":{"type":"string","format":"uuid"},"brand_id":{"type":"string"},"query":{"type":"object","additionalProperties":true,"description":"Optional query overrides for endpoints with sparse parameter schemas."}},"required":["id"],"additionalProperties":false}},{"name":"aidelly_get_usage","description":"Get usage metrics and current plan-aware limits for the API key.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"from":{"type":"string","format":"date-time"},"to":{"type":"string","format":"date-time"},"workspace_id":{"type":"string","format":"uuid","description":"Workspace to operate in. Do not ask the user for this UUID — call aidelly_list_workspaces and use the `id` of the matching workspace. Optional for read operations; required when creating content."},"brand_id":{"type":"string"},"query":{"type":"object","additionalProperties":true,"description":"Optional query overrides for endpoints with sparse parameter schemas."}},"additionalProperties":false}},{"name":"aidelly_get_white_label_config","description":"GET /white-label — retrieve the agency's white-label branding configuration including domain verification status and DNS instructions. Domain changes must go through the in-app verification flow to handle ownership validation.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"workspace_id":{"type":"string","format":"uuid","description":"Workspace to operate in. Do not ask the user for this UUID — call aidelly_list_workspaces and use the `id` of the matching workspace. Optional for read operations; required when creating content."},"brand_id":{"type":"string"},"query":{"type":"object","additionalProperties":true,"description":"Optional query overrides for endpoints with sparse parameter schemas."}},"additionalProperties":false}},{"name":"aidelly_get_workspace","description":"GET /workspaces/{workspaceId} — retrieve one accessible workspace.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"workspaceId":{"type":"string","format":"uuid"},"workspace_id":{"type":"string","format":"uuid","description":"Workspace to operate in. Do not ask the user for this UUID — call aidelly_list_workspaces and use the `id` of the matching workspace. Optional for read operations; required when creating content."},"brand_id":{"type":"string"},"query":{"type":"object","additionalProperties":true,"description":"Optional query overrides for endpoints with sparse parameter schemas."}},"required":["workspaceId"],"additionalProperties":false}},{"name":"aidelly_invite_workspace_member","description":"POST /workspaces/{workspaceId}/invitations — invite a member or client to a workspace. Returns the invitation URL and queues the email by default.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"idempotency_key":{"type":"string"},"workspaceId":{"type":"string","format":"uuid"},"email":{"type":"string","format":"email"},"role":{"type":"string","enum":["admin","member","client"],"default":"member"},"send_email":{"type":"boolean","default":true},"workspace_id":{"type":"string","format":"uuid","description":"Workspace to operate in. Do not ask the user for this UUID — call aidelly_list_workspaces and use the `id` of the matching workspace. Optional for read operations; required when creating content."},"brand_id":{"type":"string"},"query":{"type":"object","additionalProperties":true,"description":"Optional query overrides for endpoints with sparse parameter schemas."},"body":{"type":"object","additionalProperties":true,"description":"Optional body override for endpoints with sparse parameter schemas."}},"required":["idempotency_key","workspaceId","email"],"additionalProperties":false}},{"name":"aidelly_list_accounts","description":"List all postable accounts in a workspace as a flat list, including sub-accounts such as Facebook Pages, Instagram Business accounts, and LinkedIn company pages. Requires `workspace_id`. Use the `id` field from each account as the `account_id` when creating a post. Call this before creating posts to discover available account IDs per platform.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"workspace_id":{"type":"string","format":"uuid"},"brand_id":{"type":"string"},"query":{"type":"object","additionalProperties":true,"description":"Optional query overrides for endpoints with sparse parameter schemas."}},"required":["workspace_id"],"additionalProperties":false}},{"name":"aidelly_list_activity","description":"List workspace activity audit trail with optional filtering and cursor pagination.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"workspace_id":{"type":"string","format":"uuid","description":"Workspace to operate in. Do not ask the user for this UUID — call aidelly_list_workspaces and use the `id` of the matching workspace. Optional for read operations; required when creating content."},"action":{"type":"string"},"actor_type":{"type":"string","enum":["user","system","api","automation"]},"since":{"type":"string","format":"date-time"},"until":{"type":"string","format":"date-time"},"limit":{"type":"integer","minimum":1,"maximum":100,"default":50},"cursor":{"type":"string"},"brand_id":{"type":"string"},"query":{"type":"object","additionalProperties":true,"description":"Optional query overrides for endpoints with sparse parameter schemas."}},"additionalProperties":false}},{"name":"aidelly_list_client_review_links","description":"GET /client-review-links — list workspace client review links with metadata (view count, last viewed, revoked status).","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"workspace_id":{"type":"string","format":"uuid","description":"Workspace to operate in. Do not ask the user for this UUID — call aidelly_list_workspaces and use the `id` of the matching workspace. Optional for read operations; required when creating content."},"brand_id":{"type":"string"},"query":{"type":"object","additionalProperties":true,"description":"Optional query overrides for endpoints with sparse parameter schemas."}},"additionalProperties":false}},{"name":"aidelly_list_competitors","description":"List tracked competitor domains for the workspace.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"workspace_id":{"type":"string","format":"uuid","description":"Workspace to operate in. Do not ask the user for this UUID — call aidelly_list_workspaces and use the `id` of the matching workspace. Optional for read operations; required when creating content."},"include_archived":{"type":"boolean","default":false},"brand_id":{"type":"string"},"query":{"type":"object","additionalProperties":true,"description":"Optional query overrides for endpoints with sparse parameter schemas."}},"additionalProperties":false}},{"name":"aidelly_list_connect_link_connections","description":"List social connections made through an OAuth connect link.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"workspace_id":{"type":"string","format":"uuid","description":"Workspace to operate in. Do not ask the user for this UUID — call aidelly_list_workspaces and use the `id` of the matching workspace. Optional for read operations; required when creating content."},"brand_id":{"type":"string"},"query":{"type":"object","additionalProperties":true,"description":"Optional query overrides for endpoints with sparse parameter schemas."}},"required":["id"],"additionalProperties":false}},{"name":"aidelly_list_connect_links","description":"List the workspace's OAuth connect links.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"workspace_id":{"type":"string","format":"uuid","description":"Workspace to operate in. Do not ask the user for this UUID — call aidelly_list_workspaces and use the `id` of the matching workspace. Optional for read operations; required when creating content."},"brand_id":{"type":"string"},"query":{"type":"object","additionalProperties":true,"description":"Optional query overrides for endpoints with sparse parameter schemas."}},"additionalProperties":false}},{"name":"aidelly_list_connection_attempts","description":"List recent social-connect (OAuth) attempts in a workspace, including failed ones, with the platform, initiator, outcome, and error code. Requires `workspace_id`. Use this to diagnose why a client could not connect an account; use aidelly_list_accounts for accounts that actually connected.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"workspace_id":{"type":"string","format":"uuid"},"brand_id":{"type":"string"},"limit":{"type":"integer","minimum":1,"maximum":100,"default":50},"outcome":{"type":"string","enum":["success","error"]},"cursor":{"type":"string","maxLength":512},"query":{"type":"object","additionalProperties":true,"description":"Optional query overrides for endpoints with sparse parameter schemas."}},"required":["workspace_id"],"additionalProperties":false}},{"name":"aidelly_list_creators","description":"List tracked creator handles for the workspace.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"workspace_id":{"type":"string","format":"uuid","description":"Workspace to operate in. Do not ask the user for this UUID — call aidelly_list_workspaces and use the `id` of the matching workspace. Optional for read operations; required when creating content."},"include_archived":{"type":"boolean","default":false},"platform":{"type":"string","enum":["x","youtube","threads","bluesky","pinterest"]},"brand_id":{"type":"string"},"query":{"type":"object","additionalProperties":true,"description":"Optional query overrides for endpoints with sparse parameter schemas."}},"additionalProperties":false}},{"name":"aidelly_list_destination_presets","description":"GET /destination-presets — list workspace destination presets for multi-channel fan-out.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"workspace_id":{"type":"string","format":"uuid","description":"Workspace to operate in. Do not ask the user for this UUID — call aidelly_list_workspaces and use the `id` of the matching workspace. Optional for read operations; required when creating content."},"limit":{"type":"integer","minimum":1,"maximum":100,"default":20},"offset":{"type":"integer","minimum":0,"default":0},"cursor":{"type":"string","maxLength":512},"brand_id":{"type":"string"},"query":{"type":"object","additionalProperties":true,"description":"Optional query overrides for endpoints with sparse parameter schemas."}},"additionalProperties":false}},{"name":"aidelly_list_drafts","description":"List workspace drafts with optional platform filtering. Drafts are saved as work-in-progress content and never publish.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"workspace_id":{"type":"string","format":"uuid","description":"Workspace to operate in. Do not ask the user for this UUID — call aidelly_list_workspaces and use the `id` of the matching workspace. Optional for read operations; required when creating content."},"platform":{"type":"string"},"limit":{"type":"integer","minimum":1,"maximum":100,"default":25},"offset":{"type":"integer","minimum":0,"default":0},"cursor":{"type":"string","maxLength":512},"brand_id":{"type":"string"},"query":{"type":"object","additionalProperties":true,"description":"Optional query overrides for endpoints with sparse parameter schemas."}},"additionalProperties":false}},{"name":"aidelly_list_ecommerce_products","description":"GET /ecommerce/products — list products across the workspace's connected stores. Filter by store, search title/SKU. Public API preview.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"workspace_id":{"type":"string","format":"uuid","description":"Workspace to operate in. Do not ask the user for this UUID — call aidelly_list_workspaces and use the `id` of the matching workspace. Optional for read operations; required when creating content."},"store_id":{"type":"string","format":"uuid"},"q":{"type":"string"},"limit":{"type":"integer","minimum":1,"maximum":100,"default":50},"cursor":{"type":"string","maxLength":512},"brand_id":{"type":"string"},"query":{"type":"object","additionalProperties":true,"description":"Optional query overrides for endpoints with sparse parameter schemas."}},"additionalProperties":false}},{"name":"aidelly_list_ecommerce_stores","description":"GET /ecommerce/stores — list connected Shopify / WooCommerce / Etsy / Wix stores for the workspace. Public API preview.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"workspace_id":{"type":"string","format":"uuid","description":"Workspace to operate in. Do not ask the user for this UUID — call aidelly_list_workspaces and use the `id` of the matching workspace. Optional for read operations; required when creating content."},"brand_id":{"type":"string"},"query":{"type":"object","additionalProperties":true,"description":"Optional query overrides for endpoints with sparse parameter schemas."}},"additionalProperties":false}},{"name":"aidelly_list_ideas","description":"List ideas on the workspace's idea board, freshest first (pinned first).","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"workspace_id":{"type":"string","format":"uuid","description":"Workspace to operate in. Do not ask the user for this UUID — call aidelly_list_workspaces and use the `id` of the matching workspace. Optional for read operations; required when creating content."},"include_archived":{"type":"boolean","default":false},"brand_id":{"type":"string"},"query":{"type":"object","additionalProperties":true,"description":"Optional query overrides for endpoints with sparse parameter schemas."}},"additionalProperties":false}},{"name":"aidelly_list_image_editor_outputs","description":"List the workspace's saved AI-generated and edited image outputs, freshest first.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"workspace_id":{"type":"string","format":"uuid","description":"Workspace to operate in. Do not ask the user for this UUID — call aidelly_list_workspaces and use the `id` of the matching workspace. Optional for read operations; required when creating content."},"limit":{"type":"integer","minimum":1,"maximum":200,"default":50},"cursor":{"type":"string","maxLength":512},"brand_id":{"type":"string"},"query":{"type":"object","additionalProperties":true,"description":"Optional query overrides for endpoints with sparse parameter schemas."}},"additionalProperties":false}},{"name":"aidelly_list_pending_approvals","description":"GET /posts/approvals — list posts pending sign-off for the current workspace, plus viewer role + canReview flag. Public API preview.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"workspace_id":{"type":"string","format":"uuid","description":"Workspace to operate in. Do not ask the user for this UUID — call aidelly_list_workspaces and use the `id` of the matching workspace. Optional for read operations; required when creating content."},"brand_id":{"type":"string"},"query":{"type":"object","additionalProperties":true,"description":"Optional query overrides for endpoints with sparse parameter schemas."}},"additionalProperties":false}},{"name":"aidelly_list_pinterest_boards","description":"List Pinterest boards available in a workspace. Call this before aidelly_create_post for Pinterest, then pass the selected board id as content.platform_specific.board_id.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"workspace_id":{"type":"string","format":"uuid"},"brand_id":{"type":"string"},"page_size":{"type":"integer","minimum":1,"maximum":100,"default":50},"bookmark":{"type":"string"},"query":{"type":"object","additionalProperties":true,"description":"Optional query overrides for endpoints with sparse parameter schemas."}},"required":["workspace_id"],"additionalProperties":false}},{"name":"aidelly_list_post_approval_events","description":"GET /posts/approvals/{id}/events — read the approval audit timeline (submitted/approved/rejected/returned_to_draft/commented) for one post. Public API preview.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"workspace_id":{"type":"string","format":"uuid","description":"Workspace to operate in. Do not ask the user for this UUID — call aidelly_list_workspaces and use the `id` of the matching workspace. Optional for read operations; required when creating content."},"id":{"type":"string","format":"uuid"},"brand_id":{"type":"string"},"query":{"type":"object","additionalProperties":true,"description":"Optional query overrides for endpoints with sparse parameter schemas."}},"required":["id"],"additionalProperties":false}},{"name":"aidelly_list_post_comments","description":"List comments on a post with cursor pagination. Comments are threaded; replies are returned alongside root comments.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"workspace_id":{"type":"string","format":"uuid","description":"Workspace to operate in. Do not ask the user for this UUID — call aidelly_list_workspaces and use the `id` of the matching workspace. Optional for read operations; required when creating content."},"limit":{"type":"integer","minimum":1,"maximum":100,"default":50},"cursor":{"type":"string","maxLength":512},"brand_id":{"type":"string"},"query":{"type":"object","additionalProperties":true,"description":"Optional query overrides for endpoints with sparse parameter schemas."}},"required":["id"],"additionalProperties":false}},{"name":"aidelly_list_posts","description":"List posts with optional platform, status, and date-range filters.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"workspace_id":{"type":"string","format":"uuid","description":"Workspace to operate in. Do not ask the user for this UUID — call aidelly_list_workspaces and use the `id` of the matching workspace. Optional for read operations; required when creating content."},"brand_id":{"type":"string"},"platform":{"type":"string","enum":["facebook","instagram","linkedin","twitter","bluesky","threads","pinterest","youtube","tiktok","google_business","mastodon"],"description":"Supported platform identifier. `twitter` and `x` map to the same surface;\nresponses always normalize to `twitter`. `google_business` posts target\na single Google Business Profile location identified by\n`platform_specific.locationName`. `mastodon` accounts are per-instance —\nthe connected account carries its own `instance_url`.\n","example":"linkedin"},"status":{"type":"string","enum":["scheduled","pending","processing","retry","completed","failed","canceled"],"example":"scheduled"},"from":{"type":"string","format":"date-time"},"to":{"type":"string","format":"date-time"},"limit":{"type":"integer","minimum":1,"maximum":100,"default":25},"cursor":{"type":"string","maxLength":512},"query":{"type":"object","additionalProperties":true,"description":"Optional query overrides for endpoints with sparse parameter schemas."}},"additionalProperties":false}},{"name":"aidelly_list_prompts","description":"GET /prompts","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"limit":{"type":"integer","minimum":1,"maximum":50,"default":20},"cursor":{"type":"string","description":"Opaque cursor from previous page"},"workspace_id":{"type":"string","format":"uuid","description":"Workspace to operate in. Do not ask the user for this UUID — call aidelly_list_workspaces and use the `id` of the matching workspace. Optional for read operations; required when creating content."},"brand_id":{"type":"string"},"query":{"type":"object","additionalProperties":true,"description":"Optional query overrides for endpoints with sparse parameter schemas."}},"additionalProperties":false}},{"name":"aidelly_list_queues","description":"GET /queues — list workspace content queues with slot schedules and channel assignments.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"workspace_id":{"type":"string","format":"uuid","description":"Workspace to operate in. Do not ask the user for this UUID — call aidelly_list_workspaces and use the `id` of the matching workspace. Optional for read operations; required when creating content."},"limit":{"type":"integer","minimum":1,"maximum":100,"default":20},"offset":{"type":"integer","minimum":0,"default":0},"cursor":{"type":"string","maxLength":512},"brand_id":{"type":"string"},"query":{"type":"object","additionalProperties":true,"description":"Optional query overrides for endpoints with sparse parameter schemas."}},"additionalProperties":false}},{"name":"aidelly_list_report_links","description":"GET /report-links — list workspace report share links, optionally filtered by mode (snapshot or live).","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"workspace_id":{"type":"string","format":"uuid","description":"Workspace to operate in. Do not ask the user for this UUID — call aidelly_list_workspaces and use the `id` of the matching workspace. Optional for read operations; required when creating content."},"mode":{"type":"string","enum":["snapshot","live"]},"limit":{"type":"integer","minimum":1,"maximum":200,"default":50},"cursor":{"type":"string","maxLength":512},"brand_id":{"type":"string"},"query":{"type":"object","additionalProperties":true,"description":"Optional query overrides for endpoints with sparse parameter schemas."}},"additionalProperties":false}},{"name":"aidelly_list_report_schedules","description":"List all report schedules in the workspace with pagination and active status filtering.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"workspace_id":{"type":"string","format":"uuid","description":"Workspace to operate in. Do not ask the user for this UUID — call aidelly_list_workspaces and use the `id` of the matching workspace. Optional for read operations; required when creating content."},"limit":{"type":"integer","minimum":1,"maximum":200,"default":50},"offset":{"type":"integer","minimum":0,"default":0},"active":{"type":"boolean"},"cursor":{"type":"string","maxLength":512},"brand_id":{"type":"string"},"query":{"type":"object","additionalProperties":true,"description":"Optional query overrides for endpoints with sparse parameter schemas."}},"additionalProperties":false}},{"name":"aidelly_list_reports","description":"List all reports in the workspace with pagination.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"workspace_id":{"type":"string","format":"uuid","description":"Workspace to operate in. Do not ask the user for this UUID — call aidelly_list_workspaces and use the `id` of the matching workspace. Optional for read operations; required when creating content."},"limit":{"type":"integer","minimum":1,"maximum":200,"default":50},"offset":{"type":"integer","minimum":0,"default":0},"cursor":{"type":"string","maxLength":512},"brand_id":{"type":"string"},"query":{"type":"object","additionalProperties":true,"description":"Optional query overrides for endpoints with sparse parameter schemas."}},"additionalProperties":false}},{"name":"aidelly_list_repurpose_jobs","description":"List recent repurpose jobs for the workspace.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"workspace_id":{"type":"string","format":"uuid","description":"Workspace to operate in. Do not ask the user for this UUID — call aidelly_list_workspaces and use the `id` of the matching workspace. Optional for read operations; required when creating content."},"limit":{"type":"integer","minimum":1,"maximum":50,"default":20},"cursor":{"type":"string","maxLength":512},"brand_id":{"type":"string"},"query":{"type":"object","additionalProperties":true,"description":"Optional query overrides for endpoints with sparse parameter schemas."}},"additionalProperties":false}},{"name":"aidelly_list_scheduled_posts","description":"GET /scheduled-posts — list scheduled posts including compose-time auto-recycle entries and approval state. Public API preview.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"workspace_id":{"type":"string","format":"uuid","description":"Workspace to operate in. Do not ask the user for this UUID — call aidelly_list_workspaces and use the `id` of the matching workspace. Optional for read operations; required when creating content."},"from":{"type":"string","format":"date-time"},"to":{"type":"string","format":"date-time"},"status":{"type":"string","enum":["scheduled","publishing","published","failed","cancelled","pending_approval"]},"campaignId":{"type":"string","format":"uuid"},"limit":{"type":"integer","minimum":1,"maximum":200,"default":50},"cursor":{"type":"string","maxLength":512},"brand_id":{"type":"string"},"query":{"type":"object","additionalProperties":true,"description":"Optional query overrides for endpoints with sparse parameter schemas."}},"additionalProperties":false}},{"name":"aidelly_list_short_links","description":"List the workspace's first-party short links (active only by default).","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"workspace_id":{"type":"string","format":"uuid","description":"Workspace to operate in. Do not ask the user for this UUID — call aidelly_list_workspaces and use the `id` of the matching workspace. Optional for read operations; required when creating content."},"active_only":{"type":"boolean","default":true},"limit":{"type":"integer","minimum":1,"maximum":200,"default":50},"cursor":{"type":"string","maxLength":512},"brand_id":{"type":"string"},"query":{"type":"object","additionalProperties":true,"description":"Optional query overrides for endpoints with sparse parameter schemas."}},"additionalProperties":false}},{"name":"aidelly_list_social_connections","description":"List available social connections for publishing.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"workspace_id":{"type":"string","format":"uuid","description":"Workspace to operate in. Do not ask the user for this UUID — call aidelly_list_workspaces and use the `id` of the matching workspace. Optional for read operations; required when creating content."},"brand_id":{"type":"string"},"query":{"type":"object","additionalProperties":true,"description":"Optional query overrides for endpoints with sparse parameter schemas."}},"additionalProperties":false}},{"name":"aidelly_list_tasks","description":"List workspace tasks with optional filtering by status, assignee, or ownership. Supports offset pagination.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"workspace_id":{"type":"string","format":"uuid","description":"Workspace to operate in. Do not ask the user for this UUID — call aidelly_list_workspaces and use the `id` of the matching workspace. Optional for read operations; required when creating content."},"status":{"type":"string"},"assignee":{"type":"string","format":"uuid"},"mine":{"type":"boolean","default":false},"include_completed":{"type":"boolean","default":false},"limit":{"type":"integer","minimum":1,"maximum":200,"default":50},"offset":{"type":"integer","minimum":0,"default":0},"cursor":{"type":"string","maxLength":512},"brand_id":{"type":"string"},"query":{"type":"object","additionalProperties":true,"description":"Optional query overrides for endpoints with sparse parameter schemas."}},"additionalProperties":false}},{"name":"aidelly_list_viral_trends","description":"List discovered viral trends for the workspace, ordered by virality score.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"workspace_id":{"type":"string","format":"uuid","description":"Workspace to operate in. Do not ask the user for this UUID — call aidelly_list_workspaces and use the `id` of the matching workspace. Optional for read operations; required when creating content."},"status":{"type":"string","enum":["new","saved","curated","dismissed","active"]},"limit":{"type":"integer","minimum":1,"maximum":200,"default":60},"offset":{"type":"integer","minimum":0,"default":0},"cursor":{"type":"string","maxLength":512},"brand_id":{"type":"string"},"query":{"type":"object","additionalProperties":true,"description":"Optional query overrides for endpoints with sparse parameter schemas."}},"additionalProperties":false}},{"name":"aidelly_list_webhook_deliveries","description":"List delivery attempts for one webhook so you can verify events actually arrived. status is one of pending, delivered, failed (will be retried at next_attempt_at), or dead_letter (retries exhausted or the webhook was removed — these will never be retried). Cursor-paginated: follow next_cursor until it is null. Call aidelly_list_webhooks first to get the webhook id.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"workspace_id":{"type":"string","format":"uuid","description":"Workspace to operate in. Do not ask the user for this UUID — call aidelly_list_workspaces and use the `id` of the matching workspace. Optional for read operations; required when creating content."},"id":{"type":"string","format":"uuid"},"status":{"type":"string","enum":["pending","delivered","failed","dead_letter"]},"limit":{"type":"integer","minimum":1,"maximum":100,"default":25},"cursor":{"type":"string","maxLength":512},"brand_id":{"type":"string"},"query":{"type":"object","additionalProperties":true,"description":"Optional query overrides for endpoints with sparse parameter schemas."}},"required":["id"],"additionalProperties":false}},{"name":"aidelly_list_webhooks","description":"List webhook subscriptions for post lifecycle events.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"workspace_id":{"type":"string","format":"uuid","description":"Workspace to operate in. Do not ask the user for this UUID — call aidelly_list_workspaces and use the `id` of the matching workspace. Optional for read operations; required when creating content."},"brand_id":{"type":"string"},"query":{"type":"object","additionalProperties":true,"description":"Optional query overrides for endpoints with sparse parameter schemas."}},"additionalProperties":false}},{"name":"aidelly_list_workspace_members","description":"GET /workspaces/{workspaceId}/members — list active members and pending invitations.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"workspaceId":{"type":"string","format":"uuid"},"workspace_id":{"type":"string","format":"uuid","description":"Workspace to operate in. Do not ask the user for this UUID — call aidelly_list_workspaces and use the `id` of the matching workspace. Optional for read operations; required when creating content."},"brand_id":{"type":"string"},"query":{"type":"object","additionalProperties":true,"description":"Optional query overrides for endpoints with sparse parameter schemas."}},"required":["workspaceId"],"additionalProperties":false}},{"name":"aidelly_list_workspaces","description":"List workspace IDs available to this API key. Call this before creating posts when the user has multiple workspaces, then pass the chosen `id` as `workspace_id` so Aidelly posts to the exact workspace.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"workspace_id":{"type":"string","format":"uuid","description":"Workspace to operate in. Do not ask the user for this UUID — call aidelly_list_workspaces and use the `id` of the matching workspace. Optional for read operations; required when creating content."},"brand_id":{"type":"string"},"query":{"type":"object","additionalProperties":true,"description":"Optional query overrides for endpoints with sparse parameter schemas."}},"additionalProperties":false}},{"name":"aidelly_patch_analytics_insights","description":"PATCH /analytics/insights","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"idempotency_key":{"type":"string"},"insightId":{"type":"string","description":"ID of the insight to act upon."},"action":{"type":"string","enum":["view","dismiss","act_upon"],"description":"Action to perform."},"workspace_id":{"type":"string","format":"uuid","description":"Workspace to operate in. Do not ask the user for this UUID — call aidelly_list_workspaces and use the `id` of the matching workspace. Optional for read operations; required when creating content."},"brand_id":{"type":"string"},"query":{"type":"object","additionalProperties":true,"description":"Optional query overrides for endpoints with sparse parameter schemas."},"body":{"type":"object","additionalProperties":true,"description":"Optional body override for endpoints with sparse parameter schemas."}},"required":["idempotency_key"],"additionalProperties":false}},{"name":"aidelly_patch_calendar_events_id","description":"PATCH /calendar/events/{id}","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"idempotency_key":{"type":"string"},"workspace_id":{"type":"string","format":"uuid","description":"Workspace to operate in. Do not ask the user for this UUID — call aidelly_list_workspaces and use the `id` of the matching workspace. Optional for read operations; required when creating content."},"brand_id":{"type":"string"},"query":{"type":"object","additionalProperties":true,"description":"Optional query overrides for endpoints with sparse parameter schemas."},"body":{"type":"object","additionalProperties":true,"description":"Optional body override for endpoints with sparse parameter schemas."}},"required":["id","idempotency_key"],"additionalProperties":false}},{"name":"aidelly_patch_inbox_automations_id","description":"PATCH /inbox/automations/{id}","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"idempotency_key":{"type":"string"},"platformAccountId":{"type":"string","minLength":1,"maxLength":255},"keyword":{"type":"string","minLength":1,"maxLength":100},"matchType":{"type":"string","enum":["contains"]},"message":{"type":"string","minLength":1,"maxLength":5000},"campaignDurationDays":{"type":"integer","enum":[7,14,21,30]},"enabled":{"type":"boolean"},"triggerEvent":{"type":"string","enum":["comment","dm"]},"responseMode":{"type":"string","enum":["template","ai"]},"platform":{"type":"string","enum":["instagram","facebook"],"description":"Optional. Checked against the selected account rather than stored directly."},"guardrails":{"type":"object","properties":{"maxRepliesPerConversationPerDay":{"type":"integer","minimum":1,"maximum":10},"handoffKeywords":{"type":"array","maxItems":10,"items":{"type":"string","maxLength":100}},"quietHours":{"type":"object","required":["start","end","timezone"],"properties":{"start":{"type":"string","pattern":"^\\d{2}:\\d{2}$"},"end":{"type":"string","pattern":"^\\d{2}:\\d{2}$"},"timezone":{"type":"string","minLength":1,"maxLength":100}}}}},"workspace_id":{"type":"string","format":"uuid","description":"Workspace to operate in. Do not ask the user for this UUID — call aidelly_list_workspaces and use the `id` of the matching workspace. Optional for read operations; required when creating content."},"brand_id":{"type":"string"},"query":{"type":"object","additionalProperties":true,"description":"Optional query overrides for endpoints with sparse parameter schemas."},"body":{"type":"object","additionalProperties":true,"description":"Optional body override for endpoints with sparse parameter schemas."}},"required":["id","idempotency_key"],"additionalProperties":false}},{"name":"aidelly_patch_posts_id","description":"PATCH /posts/{id}","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"workspace_id":{"type":"string","format":"uuid","description":"Workspace to operate in. Do not ask the user for this UUID — call aidelly_list_workspaces and use the `id` of the matching workspace. Optional for read operations; required when creating content."},"brand_id":{"type":"string"},"id":{"type":"string","format":"uuid"},"idempotency_key":{"type":"string"},"query":{"type":"object","additionalProperties":true,"description":"Optional query overrides for endpoints with sparse parameter schemas."},"body":{"type":"object","additionalProperties":true,"description":"Optional body override for endpoints with sparse parameter schemas."}},"required":["id","idempotency_key"],"additionalProperties":false}},{"name":"aidelly_post_analytics_insights","description":"POST /analytics/insights","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"idempotency_key":{"type":"string"},"platforms":{"type":"array","items":{"type":"string"},"description":"Platforms to analyze for insights."},"regenerate":{"type":"boolean","description":"If true, force regeneration even if insights exist."},"workspace_id":{"type":"string","format":"uuid","description":"Workspace to operate in. Do not ask the user for this UUID — call aidelly_list_workspaces and use the `id` of the matching workspace. Optional for read operations; required when creating content."},"brand_id":{"type":"string"},"query":{"type":"object","additionalProperties":true,"description":"Optional query overrides for endpoints with sparse parameter schemas."},"body":{"type":"object","additionalProperties":true,"description":"Optional body override for endpoints with sparse parameter schemas."}},"required":["idempotency_key"],"additionalProperties":false}},{"name":"aidelly_post_approvals_id_action","description":"POST /approvals/{id}/action","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"idempotency_key":{"type":"string"},"workspace_id":{"type":"string","format":"uuid","description":"Workspace to operate in. Do not ask the user for this UUID — call aidelly_list_workspaces and use the `id` of the matching workspace. Optional for read operations; required when creating content."},"brand_id":{"type":"string"},"query":{"type":"object","additionalProperties":true,"description":"Optional query overrides for endpoints with sparse parameter schemas."},"body":{"type":"object","additionalProperties":true,"description":"Optional body override for endpoints with sparse parameter schemas."}},"required":["id","idempotency_key"],"additionalProperties":false}},{"name":"aidelly_post_approvals_items_action","description":"POST /approvals/items/action","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"idempotency_key":{"type":"string"},"workspace_id":{"type":"string","format":"uuid","description":"Workspace to operate in. Do not ask the user for this UUID — call aidelly_list_workspaces and use the `id` of the matching workspace. Optional for read operations; required when creating content."},"brand_id":{"type":"string"},"query":{"type":"object","additionalProperties":true,"description":"Optional query overrides for endpoints with sparse parameter schemas."},"body":{"type":"object","additionalProperties":true,"description":"Optional body override for endpoints with sparse parameter schemas."}},"required":["idempotency_key"],"additionalProperties":false}},{"name":"aidelly_post_content_automations","description":"POST /content-automations","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"idempotency_key":{"type":"string"},"workspace_id":{"type":"string","format":"uuid","description":"Workspace to operate in. Do not ask the user for this UUID — call aidelly_list_workspaces and use the `id` of the matching workspace. Optional for read operations; required when creating content."},"brand_id":{"type":"string"},"query":{"type":"object","additionalProperties":true,"description":"Optional query overrides for endpoints with sparse parameter schemas."},"body":{"type":"object","additionalProperties":true,"description":"Optional body override for endpoints with sparse parameter schemas."}},"required":["idempotency_key"],"additionalProperties":false}},{"name":"aidelly_post_content_automations_id_trigger","description":"POST /content-automations/{id}/trigger","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"idempotency_key":{"type":"string"},"workspace_id":{"type":"string","format":"uuid","description":"Workspace to operate in. Do not ask the user for this UUID — call aidelly_list_workspaces and use the `id` of the matching workspace. Optional for read operations; required when creating content."},"brand_id":{"type":"string"},"query":{"type":"object","additionalProperties":true,"description":"Optional query overrides for endpoints with sparse parameter schemas."},"body":{"type":"object","additionalProperties":true,"description":"Optional body override for endpoints with sparse parameter schemas."}},"required":["id","idempotency_key"],"additionalProperties":false}},{"name":"aidelly_post_inbox_automations","description":"POST /inbox/automations","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"idempotency_key":{"type":"string"},"platformAccountId":{"type":"string","minLength":1,"maxLength":255,"description":"Instagram account id or Facebook Page id from the workspace's connected accounts."},"message":{"type":"string","minLength":1,"maxLength":5000},"keyword":{"type":"string","minLength":1,"maxLength":100,"description":"Required when triggerEvent is `comment`."},"matchType":{"type":"string","enum":["contains"],"default":"contains"},"campaignDurationDays":{"type":"integer","enum":[7,14,21,30],"default":30},"enabled":{"type":"boolean","default":true},"triggerEvent":{"type":"string","enum":["comment","dm"],"default":"comment"},"responseMode":{"type":"string","enum":["template","ai"],"default":"template"},"platform":{"type":"string","enum":["instagram","facebook"],"description":"Optional. Derived from the selected account when omitted."},"guardrails":{"type":"object","properties":{"maxRepliesPerConversationPerDay":{"type":"integer","minimum":1,"maximum":10},"handoffKeywords":{"type":"array","maxItems":10,"items":{"type":"string","maxLength":100}},"quietHours":{"type":"object","required":["start","end","timezone"],"properties":{"start":{"type":"string","pattern":"^\\d{2}:\\d{2}$"},"end":{"type":"string","pattern":"^\\d{2}:\\d{2}$"},"timezone":{"type":"string","minLength":1,"maxLength":100}}}}},"workspace_id":{"type":"string","format":"uuid","description":"Workspace to operate in. Do not ask the user for this UUID — call aidelly_list_workspaces and use the `id` of the matching workspace. Optional for read operations; required when creating content."},"brand_id":{"type":"string"},"query":{"type":"object","additionalProperties":true,"description":"Optional query overrides for endpoints with sparse parameter schemas."},"body":{"type":"object","additionalProperties":true,"description":"Optional body override for endpoints with sparse parameter schemas."}},"required":["idempotency_key","platformAccountId","message"],"additionalProperties":false}},{"name":"aidelly_post_inbox_items_id_ai_draft","description":"POST /inbox/items/{id}/ai-draft","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"idempotency_key":{"type":"string"},"workspace_id":{"type":"string","format":"uuid","description":"Workspace to operate in. Do not ask the user for this UUID — call aidelly_list_workspaces and use the `id` of the matching workspace. Optional for read operations; required when creating content."},"brand_id":{"type":"string"},"query":{"type":"object","additionalProperties":true,"description":"Optional query overrides for endpoints with sparse parameter schemas."},"body":{"type":"object","additionalProperties":true,"description":"Optional body override for endpoints with sparse parameter schemas."}},"required":["id","idempotency_key"],"additionalProperties":false}},{"name":"aidelly_post_inbox_items_id_respond","description":"POST /inbox/items/{id}/respond","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"idempotency_key":{"type":"string"},"workspace_id":{"type":"string","format":"uuid","description":"Workspace to operate in. Do not ask the user for this UUID — call aidelly_list_workspaces and use the `id` of the matching workspace. Optional for read operations; required when creating content."},"brand_id":{"type":"string"},"query":{"type":"object","additionalProperties":true,"description":"Optional query overrides for endpoints with sparse parameter schemas."},"body":{"type":"object","additionalProperties":true,"description":"Optional body override for endpoints with sparse parameter schemas."}},"required":["id","idempotency_key"],"additionalProperties":false}},{"name":"aidelly_preview_destination_preset","description":"POST /destination-presets/{id}/preview — preview how a preset transforms a source post across channels.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"workspace_id":{"type":"string","format":"uuid","description":"Workspace to operate in. Do not ask the user for this UUID — call aidelly_list_workspaces and use the `id` of the matching workspace. Optional for read operations; required when creating content."},"idempotency_key":{"type":"string"},"source":{"type":"object","required":["platform"],"properties":{"platform":{"type":"string"},"accountId":{"type":"string","description":"Optional platform account ID"},"caption":{"type":"string","default":""},"hashtags":{"type":"array","items":{"type":"string"},"description":"Optional hashtags in source post"},"link":{"type":"string","format":"uri","description":"Optional link in post"},"title":{"type":"string","description":"Optional title"},"mediaKind":{"type":"string","enum":["none","image","video","carousel"],"default":"none"},"scheduledAt":{"type":"string","format":"date-time","description":"Optional scheduled publish time"}}},"brand_id":{"type":"string"},"query":{"type":"object","additionalProperties":true,"description":"Optional query overrides for endpoints with sparse parameter schemas."},"body":{"type":"object","additionalProperties":true,"description":"Optional body override for endpoints with sparse parameter schemas."}},"required":["id","idempotency_key","source"],"additionalProperties":false}},{"name":"aidelly_put_content_automations_id","description":"PUT /content-automations/{id}","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"idempotency_key":{"type":"string"},"workspace_id":{"type":"string","format":"uuid","description":"Workspace to operate in. Do not ask the user for this UUID — call aidelly_list_workspaces and use the `id` of the matching workspace. Optional for read operations; required when creating content."},"brand_id":{"type":"string"},"query":{"type":"object","additionalProperties":true,"description":"Optional query overrides for endpoints with sparse parameter schemas."},"body":{"type":"object","additionalProperties":true,"description":"Optional body override for endpoints with sparse parameter schemas."}},"required":["id","idempotency_key"],"additionalProperties":false}},{"name":"aidelly_remove_workspace_member","description":"DELETE /workspaces/{workspaceId}/members — remove a workspace member.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"idempotency_key":{"type":"string"},"workspaceId":{"type":"string","format":"uuid"},"user_id":{"type":"string","format":"uuid"},"workspace_id":{"type":"string","format":"uuid","description":"Workspace to operate in. Do not ask the user for this UUID — call aidelly_list_workspaces and use the `id` of the matching workspace. Optional for read operations; required when creating content."},"brand_id":{"type":"string"},"query":{"type":"object","additionalProperties":true,"description":"Optional query overrides for endpoints with sparse parameter schemas."}},"required":["idempotency_key","workspaceId","user_id"],"additionalProperties":false}},{"name":"aidelly_revoke_client_review_link","description":"DELETE /client-review-links/{id} — revoke a client review link and block further access.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"workspace_id":{"type":"string","format":"uuid","description":"Workspace to operate in. Do not ask the user for this UUID — call aidelly_list_workspaces and use the `id` of the matching workspace. Optional for read operations; required when creating content."},"idempotency_key":{"type":"string"},"brand_id":{"type":"string"},"query":{"type":"object","additionalProperties":true,"description":"Optional query overrides for endpoints with sparse parameter schemas."}},"required":["id","idempotency_key"],"additionalProperties":false}},{"name":"aidelly_revoke_connect_link","description":"Revoke an OAuth connect link, preventing further use.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"workspace_id":{"type":"string","format":"uuid","description":"Workspace to operate in. Do not ask the user for this UUID — call aidelly_list_workspaces and use the `id` of the matching workspace. Optional for read operations; required when creating content."},"idempotency_key":{"type":"string"},"brand_id":{"type":"string"},"query":{"type":"object","additionalProperties":true,"description":"Optional query overrides for endpoints with sparse parameter schemas."}},"required":["id","idempotency_key"],"additionalProperties":false}},{"name":"aidelly_revoke_report_link","description":"DELETE /report-links/{id} — revoke a report share link.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"workspace_id":{"type":"string","format":"uuid","description":"Workspace to operate in. Do not ask the user for this UUID — call aidelly_list_workspaces and use the `id` of the matching workspace. Optional for read operations; required when creating content."},"idempotency_key":{"type":"string"},"brand_id":{"type":"string"},"query":{"type":"object","additionalProperties":true,"description":"Optional query overrides for endpoints with sparse parameter schemas."}},"required":["id","idempotency_key"],"additionalProperties":false}},{"name":"aidelly_revoke_workspace_invitation","description":"DELETE /workspaces/{workspaceId}/invitations — revoke a pending workspace invitation.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"idempotency_key":{"type":"string"},"workspaceId":{"type":"string","format":"uuid"},"invitation_id":{"type":"string","format":"uuid"},"workspace_id":{"type":"string","format":"uuid","description":"Workspace to operate in. Do not ask the user for this UUID — call aidelly_list_workspaces and use the `id` of the matching workspace. Optional for read operations; required when creating content."},"brand_id":{"type":"string"},"query":{"type":"object","additionalProperties":true,"description":"Optional query overrides for endpoints with sparse parameter schemas."}},"required":["idempotency_key","workspaceId","invitation_id"],"additionalProperties":false}},{"name":"aidelly_run_prompt","description":"POST /prompts/{id}/run","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"idempotency_key":{"type":"string"},"input_values":{"type":"object","description":"Key-value pairs for prompt template variables","additionalProperties":{"oneOf":[{"type":"string"},{"type":"boolean"},{"type":"array","items":{"type":"string"}}]}},"workspace_id":{"type":"string","format":"uuid","description":"Workspace to operate in. Do not ask the user for this UUID — call aidelly_list_workspaces and use the `id` of the matching workspace. Optional for read operations; required when creating content."},"brand_id":{"type":"string"},"query":{"type":"object","additionalProperties":true,"description":"Optional query overrides for endpoints with sparse parameter schemas."},"body":{"type":"object","additionalProperties":true,"description":"Optional body override for endpoints with sparse parameter schemas."}},"required":["id","idempotency_key","input_values"],"additionalProperties":false}},{"name":"aidelly_sync_ecommerce_store","description":"POST /ecommerce/stores/{id}/sync — re-sync the store's catalog. Incremental; only changed products are fetched. Public API preview.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"workspace_id":{"type":"string","format":"uuid","description":"Workspace to operate in. Do not ask the user for this UUID — call aidelly_list_workspaces and use the `id` of the matching workspace. Optional for read operations; required when creating content."},"idempotency_key":{"type":"string"},"id":{"type":"string","format":"uuid"},"brand_id":{"type":"string"},"query":{"type":"object","additionalProperties":true,"description":"Optional query overrides for endpoints with sparse parameter schemas."},"body":{"type":"object","additionalProperties":true,"description":"Optional body override for endpoints with sparse parameter schemas."}},"required":["idempotency_key","id"],"additionalProperties":false}},{"name":"aidelly_update_approval_settings","description":"PATCH /workspaces/{workspaceId}/approval-settings — update member or owner-review approval settings. Owner review is owner-only. Public API preview.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"idempotency_key":{"type":"string"},"workspaceId":{"type":"string","format":"uuid"},"requireMemberApproval":{"type":"boolean"},"requireOwnerReview":{"type":"boolean","description":"Hold posts created by the workspace owner for explicit owner approval."},"workspace_id":{"type":"string","format":"uuid","description":"Workspace to operate in. Do not ask the user for this UUID — call aidelly_list_workspaces and use the `id` of the matching workspace. Optional for read operations; required when creating content."},"brand_id":{"type":"string"},"query":{"type":"object","additionalProperties":true,"description":"Optional query overrides for endpoints with sparse parameter schemas."},"body":{"type":"object","additionalProperties":true,"description":"Optional body override for endpoints with sparse parameter schemas."}},"required":["idempotency_key","workspaceId"],"additionalProperties":false}},{"name":"aidelly_update_brand_profile","description":"PUT /brand/profile — update workspace brand profile fields such as brand_voice, writing_style, and target_audience.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"workspace_id":{"type":"string","format":"uuid","description":"Workspace to operate in. Do not ask the user for this UUID — call aidelly_list_workspaces and use the `id` of the matching workspace. Optional for read operations; required when creating content."},"idempotency_key":{"type":"string"},"business_name":{"type":"string","maxLength":200},"website":{"type":"string","format":"uri","maxLength":500},"industry":{"type":"string","maxLength":100},"position":{"type":"string","maxLength":200},"contact_email":{"type":"string","format":"email","maxLength":320},"primary_color":{"type":"string","pattern":"^#[0-9A-Fa-f]{6}$"},"secondary_color":{"type":"string","pattern":"^#[0-9A-Fa-f]{6}$"},"brand_voice":{"type":"string","enum":["professional","friendly","casual","authoritative","playful"]},"goals":{"type":"array","maxItems":20,"items":{"type":"string","maxLength":120}},"writing_style":{"type":"string","maxLength":1000},"target_audience":{"type":"string","maxLength":2000},"brand_id":{"type":"string"},"query":{"type":"object","additionalProperties":true,"description":"Optional query overrides for endpoints with sparse parameter schemas."},"body":{"type":"object","additionalProperties":true,"description":"Optional body override for endpoints with sparse parameter schemas."}},"required":["idempotency_key"],"additionalProperties":false}},{"name":"aidelly_update_connect_link","description":"Update an OAuth connect link's title or enabled status.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"workspace_id":{"type":"string","format":"uuid","description":"Workspace to operate in. Do not ask the user for this UUID — call aidelly_list_workspaces and use the `id` of the matching workspace. Optional for read operations; required when creating content."},"idempotency_key":{"type":"string"},"title":{"type":"string","minLength":1,"maxLength":200},"is_enabled":{"type":"boolean"},"brand_id":{"type":"string"},"query":{"type":"object","additionalProperties":true,"description":"Optional query overrides for endpoints with sparse parameter schemas."},"body":{"type":"object","additionalProperties":true,"description":"Optional body override for endpoints with sparse parameter schemas."}},"required":["id","idempotency_key"],"additionalProperties":false}},{"name":"aidelly_update_draft","description":"Update a draft — set draft_planned_for to null to clear the planned date. Drafts never publish. Existing API keys need the new `drafts:write` scope added to gain draft access; no implicit grant occurs.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"idempotency_key":{"type":"string"},"id":{"type":"string","format":"uuid"},"workspace_id":{"type":"string","format":"uuid","description":"Workspace to operate in. Do not ask the user for this UUID — call aidelly_list_workspaces and use the `id` of the matching workspace. Optional for read operations; required when creating content."},"text":{"type":"string","minLength":1,"maxLength":65000,"description":"Draft content / caption."},"title":{"type":"string","maxLength":500,"nullable":true,"description":"Draft title."},"media_urls":{"type":"array","items":{"type":"string","format":"uri"},"maxItems":10,"description":"Media URLs."},"draft_kind":{"type":"string","enum":["post","thread"],"description":"Draft composition type."},"draft_planned_for":{"type":"string","format":"date-time","nullable":true,"description":"ISO 8601 date/time for calendar placement (null clears it)."},"brand_id":{"type":"string"},"query":{"type":"object","additionalProperties":true,"description":"Optional query overrides for endpoints with sparse parameter schemas."},"body":{"type":"object","additionalProperties":true,"description":"Optional body override for endpoints with sparse parameter schemas."}},"required":["idempotency_key","id"],"additionalProperties":false}},{"name":"aidelly_update_post_comment","description":"Edit a comment's text. Only the author can edit their own comments.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"commentId":{"type":"string","format":"uuid"},"workspace_id":{"type":"string","format":"uuid","description":"Workspace to operate in. Do not ask the user for this UUID — call aidelly_list_workspaces and use the `id` of the matching workspace. Optional for read operations; required when creating content."},"idempotency_key":{"type":"string"},"text":{"type":"string","minLength":1,"maxLength":10000,"description":"Updated comment text"},"brand_id":{"type":"string"},"query":{"type":"object","additionalProperties":true,"description":"Optional query overrides for endpoints with sparse parameter schemas."},"body":{"type":"object","additionalProperties":true,"description":"Optional body override for endpoints with sparse parameter schemas."}},"required":["id","commentId","idempotency_key","text"],"additionalProperties":false}},{"name":"aidelly_update_report_schedule","description":"Update a report schedule (idempotent).","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"workspace_id":{"type":"string","format":"uuid","description":"Workspace to operate in. Do not ask the user for this UUID — call aidelly_list_workspaces and use the `id` of the matching workspace. Optional for read operations; required when creating content."},"idempotency_key":{"type":"string"},"id":{"type":"string","format":"uuid"},"cadence":{"type":"string","enum":["daily","weekly","biweekly","monthly"]},"recipient_emails":{"type":"array","items":{"type":"string","format":"email"},"minItems":1,"maxItems":20},"next_run_at":{"type":"string","format":"date-time"},"brand_id":{"type":"string"},"query":{"type":"object","additionalProperties":true,"description":"Optional query overrides for endpoints with sparse parameter schemas."},"body":{"type":"object","additionalProperties":true,"description":"Optional body override for endpoints with sparse parameter schemas."}},"required":["idempotency_key","id"],"additionalProperties":false}},{"name":"aidelly_update_scheduled_post","description":"PATCH /scheduled-posts/{id} — update caption, schedule, or recycle plan on a scheduled post. Public API preview.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"workspace_id":{"type":"string","format":"uuid","description":"Workspace to operate in. Do not ask the user for this UUID — call aidelly_list_workspaces and use the `id` of the matching workspace. Optional for read operations; required when creating content."},"idempotency_key":{"type":"string"},"id":{"type":"string","format":"uuid"},"scheduled_at":{"type":"string","format":"date-time"},"timezone":{"type":"string"},"payload":{"type":"object","description":"Replacement post content. `payload.media` accepts URL objects, objects with `media_id`, or bare media-library UUID strings owned by the selected workspace.","additionalProperties":true},"recycle":{"type":"array","maxItems":6,"items":{"type":"object","required":["kind","offset_seconds"],"properties":{"kind":{"type":"string","enum":["repost","reshare"]},"offset_seconds":{"type":"integer","minimum":3600,"maximum":31536000,"description":"Seconds after the source publishes when this recycle fires."}}}},"brand_id":{"type":"string"},"query":{"type":"object","additionalProperties":true,"description":"Optional query overrides for endpoints with sparse parameter schemas."},"body":{"type":"object","additionalProperties":true,"description":"Optional body override for endpoints with sparse parameter schemas."}},"required":["idempotency_key","id"],"additionalProperties":false}},{"name":"aidelly_update_task","description":"Update task fields (title, description, status, priority, assignee, due date, or links).","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"workspace_id":{"type":"string","format":"uuid","description":"Workspace to operate in. Do not ask the user for this UUID — call aidelly_list_workspaces and use the `id` of the matching workspace. Optional for read operations; required when creating content."},"idempotency_key":{"type":"string"},"id":{"type":"string","format":"uuid"},"title":{"type":"string","minLength":1,"maxLength":500,"description":"Task title."},"description":{"type":"string","maxLength":20000,"nullable":true,"description":"Task description."},"status":{"type":"string","enum":["todo","in_progress","blocked","done","canceled"],"description":"Task status."},"priority":{"type":"string","enum":["low","normal","high","urgent"],"description":"Task priority."},"assignee_user_id":{"type":"string","format":"uuid","nullable":true,"description":"UUID of assignee (must be an active workspace member)."},"due_at":{"type":"string","format":"date-time","nullable":true,"description":"ISO 8601 due date/time."},"linked_post_id":{"type":"string","format":"uuid","nullable":true,"description":"UUID of linked post (mutually exclusive with linked_idea_id)."},"linked_idea_id":{"type":"string","format":"uuid","nullable":true,"description":"UUID of linked idea (mutually exclusive with linked_post_id)."},"brand_id":{"type":"string"},"query":{"type":"object","additionalProperties":true,"description":"Optional query overrides for endpoints with sparse parameter schemas."},"body":{"type":"object","additionalProperties":true,"description":"Optional body override for endpoints with sparse parameter schemas."}},"required":["idempotency_key","id"],"additionalProperties":false}},{"name":"aidelly_update_white_label_config","description":"PATCH /white-label — update the agency's white-label branding, email settings, and visibility toggles. Domain changes and verification must go through the in-app flow. Returns the updated configuration with current domain status.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"idempotency_key":{"type":"string"},"brand_name":{"type":"string","minLength":1,"maxLength":80,"description":"Agency brand name shown to white-label clients."},"primary_color":{"type":"string","pattern":"^#[0-9A-Fa-f]{6}$","description":"Hex color for primary brand color (e.g.,"},"button_text_color":{"type":"string","enum":["auto","light","dark"],"description":"Text/icon color on brand-colored buttons. 'auto' derives from luminance."},"logo_url":{"type":"string","format":"uri","nullable":true,"description":"Light-mode square logo URL."},"dark_logo_url":{"type":"string","format":"uri","nullable":true,"description":"Dark-mode square logo URL. Falls back to logo_url if not set."},"sidebar_logo_mode":{"type":"string","enum":["mark_text","full_logo"],"description":"Sidebar rendering mode — square mark+text or full logo image."},"sidebar_full_logo_url":{"type":"string","format":"uri","nullable":true,"description":"Light-mode full sidebar logo URL (both mark and text)."},"sidebar_dark_full_logo_url":{"type":"string","format":"uri","nullable":true,"description":"Dark-mode full sidebar logo URL. Falls back to sidebar_full_logo_url if not set."},"logo_text_font_url":{"type":"string","format":"uri","nullable":true,"description":"Custom font URL for logo text in mark_text mode (must use https)."},"logo_text_font_family":{"type":"string","maxLength":64,"nullable":true,"description":"Font family name for logo text rendering."},"logo_text_font_format":{"type":"string","enum":["woff2","woff","ttf","otf"],"nullable":true,"description":"Font file format (woff2, woff, ttf, or otf)."},"logo_text_font_storage_path":{"type":"string","maxLength":512,"nullable":true,"description":"Internal storage path for the uploaded font file."},"logo_text_font_license_attested_at":{"type":"string","nullable":true,"description":"ISO timestamp when font license was attested."},"favicon_url":{"type":"string","format":"uri","nullable":true,"description":"Favicon URL for branded pages."},"og_image_url":{"type":"string","format":"uri","nullable":true,"description":"Open Graph image for social shares."},"support_url":{"type":"string","format":"uri","nullable":true,"description":"URL to agency support/help page."},"help_menu_url":{"type":"string","format":"uri","nullable":true,"description":"URL for in-app help menu links."},"privacy_policy_url":{"type":"string","format":"uri","nullable":true,"description":"Privacy policy URL for branded emails and legal links."},"terms_of_service_url":{"type":"string","format":"uri","nullable":true,"description":"Terms of service URL for branded emails and legal links."},"support_email":{"type":"string","format":"email","nullable":true,"description":"Agency inbox email for white-label support submissions."},"email_from_name":{"type":"string","maxLength":80,"nullable":true,"description":"From name for branded emails."},"email_from_address":{"type":"string","maxLength":254,"nullable":true,"description":"From email address for branded emails (must use a verified sending domain)."},"agency_staff_uses_custom_domain":{"type":"boolean","description":"Whether agency staff access Aidelly at a custom domain."},"show_oauth_interstitial":{"type":"boolean","description":"Whether to show OAuth interstitial before social platform redirects."},"hide_earn":{"type":"boolean","description":"Hide earnings/monetization surfaces from white-label clients."},"hide_rewards":{"type":"boolean","description":"Hide rewards and gamification surfaces."},"hide_feature_requests":{"type":"boolean","description":"Hide feature request UI."},"hide_tier_badge":{"type":"boolean","description":"Hide tier/plan badges."},"suppress_member_welcome_email":{"type":"boolean","nullable":true,"description":"Tri-state override for member welcome emails.\nnull = use plan default, true/false = explicit override.\n"},"watermark_url":{"type":"string","format":"uri","nullable":true,"description":"Watermark image URL for reports."},"watermark_settings":{"type":"object","nullable":true,"additionalProperties":true,"description":"Watermark configuration object (null resets to defaults)."},"watermark_enabled_by_default":{"type":"boolean","description":"Whether to include watermark on newly generated reports."},"saved_brand_preset":{"type":"object","nullable":true,"description":"Optional saved branding preset snapshot.\nSet to null to clear the preset; omit to leave alone.\n"},"workspace_id":{"type":"string","format":"uuid","description":"Workspace to operate in. Do not ask the user for this UUID — call aidelly_list_workspaces and use the `id` of the matching workspace. Optional for read operations; required when creating content."},"brand_id":{"type":"string"},"query":{"type":"object","additionalProperties":true,"description":"Optional query overrides for endpoints with sparse parameter schemas."},"body":{"type":"object","additionalProperties":true,"description":"Optional body override for endpoints with sparse parameter schemas."}},"required":["idempotency_key"],"additionalProperties":false}},{"name":"aidelly_update_workspace","description":"PATCH /workspaces/{workspaceId} — update workspace name, archive state, kind, or mode.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"idempotency_key":{"type":"string"},"workspaceId":{"type":"string","format":"uuid"},"name":{"type":"string","minLength":1,"maxLength":100},"archived":{"type":"boolean"},"kind":{"type":"string","enum":["own","client"]},"workspace_type":{"type":"string","enum":["traditional","agentic"]},"workspace_id":{"type":"string","format":"uuid","description":"Workspace to operate in. Do not ask the user for this UUID — call aidelly_list_workspaces and use the `id` of the matching workspace. Optional for read operations; required when creating content."},"brand_id":{"type":"string"},"query":{"type":"object","additionalProperties":true,"description":"Optional query overrides for endpoints with sparse parameter schemas."},"body":{"type":"object","additionalProperties":true,"description":"Optional body override for endpoints with sparse parameter schemas."}},"required":["idempotency_key","workspaceId"],"additionalProperties":false}},{"name":"aidelly_update_workspace_member","description":"PATCH /workspaces/{workspaceId}/members — update a workspace member role.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"idempotency_key":{"type":"string"},"workspaceId":{"type":"string","format":"uuid"},"user_id":{"type":"string","format":"uuid"},"role":{"type":"string","enum":["owner","admin","member","client"]},"workspace_id":{"type":"string","format":"uuid","description":"Workspace to operate in. Do not ask the user for this UUID — call aidelly_list_workspaces and use the `id` of the matching workspace. Optional for read operations; required when creating content."},"brand_id":{"type":"string"},"query":{"type":"object","additionalProperties":true,"description":"Optional query overrides for endpoints with sparse parameter schemas."},"body":{"type":"object","additionalProperties":true,"description":"Optional body override for endpoints with sparse parameter schemas."}},"required":["idempotency_key","workspaceId","user_id","role"],"additionalProperties":false}},{"name":"aidelly_upload_media","description":"Default image-attach path for MCP: upload media in one step, server-side, with no client-to-Supabase connection required. Preferred for all browser-based chat clients (ChatGPT, Claude.ai) and safe for any client. Provide exactly one of source_url (a public HTTPS URL the server fetches — best for anything non-trivial and not subject to a payload size cap), data_url, or file_base64 (small inline images only; large payloads hit the MCP tool-call size limit). Returns media_id and read_url for aidelly_create_post content.media.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"workspace_id":{"type":"string","format":"uuid","description":"Workspace to operate in. Do not ask the user for this UUID — call aidelly_list_workspaces and use the `id` of the matching workspace. Optional for read operations; required when creating content."},"brand_id":{"type":"string"},"idempotency_key":{"type":"string"},"file_name":{"type":"string","minLength":1,"example":"launch-image.png"},"content_type":{"type":"string","minLength":3,"example":"image/png","description":"Required when using file_base64 or data_url."},"folder":{"type":"string","minLength":1,"maxLength":100,"example":"campaign-assets"},"file_base64":{"type":"string","description":"Base64-encoded file bytes."},"data_url":{"type":"string","description":"Data URL such as data:image/png;base64,..."},"source_url":{"type":"string","format":"uri","description":"Public HTTPS URL to fetch server-side."},"query":{"type":"object","additionalProperties":true,"description":"Optional query overrides for endpoints with sparse parameter schemas."},"body":{"type":"object","additionalProperties":true,"description":"Optional body override for endpoints with sparse parameter schemas."}},"required":["idempotency_key","file_name"],"additionalProperties":false}}],"scan":{"score":79,"grade":"B","scanned_at":"2026-09-24T05:06:01.045Z","report":{"scannerVersion":"0.1.9","scannedAt":"2026-09-24T05:06:00.990Z","components":{"code":{"score":-1,"max":25,"notes":["remote-only server, no package to scan"]},"reliability":{"score":20,"max":20,"notes":["remote reachable in 820ms"]},"poisoning":{"score":15,"max":15,"notes":["139 tool descriptions checked"]},"auth":{"score":3,"max":15,"notes":["open endpoint exposes 78 write-action tools with no auth"]},"maintenance":{"score":15,"max":15,"notes":["last push 22 days ago"]},"identity":{"score":6,"max":10,"notes":["namespace and repository owner differ","GitHub account older than a year"]}},"findings":[{"id":"auth.open-write","severity":"high","component":"auth","title":"Write-action tools reachable without authentication"}],"inputs":{"probes":[{"url":"https://app.aidelly.ai/api/mcp/public-api","reachable":true,"authRequired":false,"latencyMs":820,"serverInfo":{"name":"aidelly-public-api-mcp-http","version":"0.3.0"}}],"packages":[],"repo":{"found":true,"owner":"Aidelly","repo":"claude-plugin","archived":false,"pushedAt":"2026-09-02T13:52:39Z","stars":0,"forks":0,"openIssues":0,"ownerType":"Organization","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/226394700?v=4","ownerCreatedAt":"2025-08-13T20:32:48Z","license":"MIT"},"icon":{"url":"https://avatars.githubusercontent.com/u/226394700?v=4&s=128","source":"github"},"presence":{"stars":0,"forks":0,"downloadsWeek":null,"license":"MIT","lastPushAt":"2026-09-02T13:52:39.000Z","score":23}}}},"grade_history":[],"reviews":[]}