{"serverInfo":{"name":"acrium","title":"Acrium","version":"1.0.1"},"description":"Let your AI run Google Ads, social posting, Shopify, inventory and phone calls for your business.","websiteUrl":"https://acriumautomated.com/connect","transport":{"type":"streamable-http","url":"https://acriumautomated.com/mcp"},"authentication":{"required":true,"schemes":["oauth2","bearer"]},"instructions":"Acrium connects you to a business's tools (social media, Shopify, Google Ads, inventory, its phone line). You act as the person who connected you, in the workspaces (projects) they gave you, with only the permissions they granted. Start with list_projects: it shows each workspace you can reach and what you may change there. Every tool works in the default workspace unless you pass project_id; switch_project changes the default. A write fails with a permission error where that permission wasn't granted.","capabilities":{"tools":{"listChanged":false}},"tools":[{"name":"list_projects","title":"List workspaces","description":"The workspaces you can work in, what you may change in each, and which is the default.","inputSchema":{"type":"object","properties":{},"required":[],"additionalProperties":false},"annotations":{"title":"List workspaces","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"switch_project","title":"Switch default workspace","description":"Make another workspace the default for the tools that follow.","inputSchema":{"type":"object","properties":{"project_id":{"type":"integer","description":"Workspace id from list_projects."}},"required":["project_id"],"additionalProperties":false},"annotations":{"title":"Switch default workspace","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"get_workspace","title":"Get workspace","description":"One workspace: its name, your role, and what this connection may change in it.","inputSchema":{"type":"object","properties":{"project_id":{"type":"integer","description":"Workspace to work in (from list_projects). Leave out for the default one."}},"required":[],"additionalProperties":false},"annotations":{"title":"Get workspace","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"list_agents","title":"List agents","description":"Every agent in the workspace: id, name, role, whether it's running, intelligence.","inputSchema":{"type":"object","properties":{"fields":{"type":"array","items":{"type":"string","enum":["id","name","role","enabled","quota_disabled","intelligence","intelligence_name","kind","parent_agent_id","builtin_key"]},"description":"Which fields to return. Leave out for the usual ones: id, name, role, enabled, intelligence_name."},"project_id":{"type":"integer","description":"Workspace to work in (from list_projects). Leave out for the default one."}},"required":[],"additionalProperties":false},"annotations":{"title":"List agents","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"get_agent","title":"Get agent","description":"One agent: its instructions, to-do list and notifications. Ask for more with fields (e.g. history, notepad, plan, past_tasks), or pass prompt_only for just its instructions. History comes back as numbered turns, oldest = 0; page with history_start/history_end.","inputSchema":{"type":"object","properties":{"agent_id":{"type":"integer","description":"The agent's id (from list_agents)."},"prompt_only":{"type":"boolean","description":"Return only the agent's id, name, role and init_prompt (its instructions)."},"history_limit":{"type":"integer","description":"With history in fields: how many turns when no range is given (default 10, newest).","minimum":1,"maximum":100},"history_start":{"type":"integer","description":"With history in fields: first turn to return (0 = oldest; negative counts back from the newest, -20 = 20th newest)."},"history_end":{"type":"integer","description":"With history in fields: stop before this turn (exclusive; negative counts from the newest). Up to 100 turns per call."},"fields":{"type":"array","items":{"type":"string","enum":["id","name","role","enabled","quota_disabled","intelligence","intelligence_name","kind","parent_agent_id","builtin_key","model","init_prompt","todo","notifications","notepad","plan","past_tasks","history","disabled_tools","job_brief"]},"description":"Which fields to return. Leave out for the usual ones: id, name, role, enabled, quota_disabled, intelligence_name, kind, parent_agent_id, init_prompt, todo, notifications."},"project_id":{"type":"integer","description":"Workspace to work in (from list_projects). Leave out for the default one."}},"required":["agent_id"],"additionalProperties":false},"annotations":{"title":"Get agent","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"get_agent_audit_log","title":"Get agent audit log","description":"What an agent did and when, newest first.","inputSchema":{"type":"object","properties":{"agent_id":{"type":"integer","description":"The agent's id (from list_agents)."},"fields":{"type":"array","items":{"type":"string","enum":["timestamp","action","summary","tool","agent","details"]},"description":"Which fields to return. Leave out for the usual ones: timestamp, action, summary."},"limit":{"type":"integer","description":"How many to return, newest first where there's an order (default 20).","minimum":1,"maximum":500},"project_id":{"type":"integer","description":"Workspace to work in (from list_projects). Leave out for the default one."}},"required":["agent_id"],"additionalProperties":false},"annotations":{"title":"Get agent audit log","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"list_agent_messages","title":"List agent messages","description":"Messages the agents have sent to the people in this workspace, newest first.","inputSchema":{"type":"object","properties":{"limit":{"type":"integer","description":"How many of the newest to return (default 50).","minimum":1,"maximum":500},"project_id":{"type":"integer","description":"Workspace to work in (from list_projects). Leave out for the default one."}},"required":[],"additionalProperties":false},"annotations":{"title":"List agent messages","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"get_activity_feed","title":"Get activity feed","description":"What each agent has been doing lately, newest first.","inputSchema":{"type":"object","properties":{"agent_name":{"type":"string","description":"Only this agent."},"limit":{"type":"integer","description":"Entries per agent (default 15).","minimum":1,"maximum":500},"include_routine":{"type":"boolean","description":"Also show housekeeping (checking notifications, reading the to-do list)."},"project_id":{"type":"integer","description":"Workspace to work in (from list_projects). Leave out for the default one."}},"required":[],"additionalProperties":false},"annotations":{"title":"Get activity feed","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"get_overview_stats","title":"Get overview stats","description":"Daily counters behind Overview: posts, emails, calls, spend, tokens and more.","inputSchema":{"type":"object","properties":{"days":{"type":"integer","description":"How many days back (default 30).","minimum":1,"maximum":365},"fields":{"type":"array","items":{"type":"string","enum":["days","series","totals","selected","stats","can_edit"]},"description":"Which fields to return. Leave out for the usual ones: days, totals."},"project_id":{"type":"integer","description":"Workspace to work in (from list_projects). Leave out for the default one."}},"required":[],"additionalProperties":false},"annotations":{"title":"Get overview stats","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"get_company_description","title":"Get company description","description":"The business description every agent works from.","inputSchema":{"type":"object","properties":{"project_id":{"type":"integer","description":"Workspace to work in (from list_projects). Leave out for the default one."}},"required":[],"additionalProperties":false},"annotations":{"title":"Get company description","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"get_settings","title":"Get workspace settings","description":"Approval Gate, Test Mode and comment notification settings.","inputSchema":{"type":"object","properties":{"project_id":{"type":"integer","description":"Workspace to work in (from list_projects). Leave out for the default one."}},"required":[],"additionalProperties":false},"annotations":{"title":"Get workspace settings","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"list_models","title":"List intelligence levels","description":"The intelligence levels an agent can run at.","inputSchema":{"type":"object","properties":{"project_id":{"type":"integer","description":"Workspace to work in (from list_projects). Leave out for the default one."}},"required":[],"additionalProperties":false},"annotations":{"title":"List intelligence levels","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"list_connections","title":"List connected platforms","description":"Which platforms (Shopify, Gmail, X, TikTok...) are connected.","inputSchema":{"type":"object","properties":{"project_id":{"type":"integer","description":"Workspace to work in (from list_projects). Leave out for the default one."}},"required":[],"additionalProperties":false},"annotations":{"title":"List connected platforms","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"list_members","title":"List members","description":"People in the workspace, their capabilities, and editor/view-only seat counts.","inputSchema":{"type":"object","properties":{"project_id":{"type":"integer","description":"Workspace to work in (from list_projects). Leave out for the default one."}},"required":[],"additionalProperties":false},"annotations":{"title":"List members","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"list_pending_actions","title":"List pending approvals","description":"Agent actions waiting for approval under the Approval Gate.","inputSchema":{"type":"object","properties":{"project_id":{"type":"integer","description":"Workspace to work in (from list_projects). Leave out for the default one."}},"required":[],"additionalProperties":false},"annotations":{"title":"List pending approvals","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"get_budget","title":"Get budget","description":"The budget: total, spent, recent entries, recurring items, unlogged-spend notes.","inputSchema":{"type":"object","properties":{"project_id":{"type":"integer","description":"Workspace to work in (from list_projects). Leave out for the default one."}},"required":[],"additionalProperties":false},"annotations":{"title":"Get budget","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"list_budget_entries","title":"List budget entries","description":"The budget ledger, line by line.","inputSchema":{"type":"object","properties":{"limit":{"type":"integer","description":"How many (default 50).","minimum":1,"maximum":200},"all_time":{"type":"boolean","description":"Every period, not just the current one."},"project_id":{"type":"integer","description":"Workspace to work in (from list_projects). Leave out for the default one."}},"required":[],"additionalProperties":false},"annotations":{"title":"List budget entries","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"get_billing","title":"Get billing and usage","description":"Plan, AI credits left, and usage against the plan's limits.","inputSchema":{"type":"object","properties":{"fields":{"type":"array","items":{"type":"string","enum":["plan_name","plan_tier","plan_price_usd","subscribed","billing_status","payment_problem","subscription_status","in_trial","trial_end","current_period_end","cancel_at_period_end","cancel_at","next_amount_usd","credits","usage","limits","topup_options","mcp_plan","mcp_plans"]},"description":"Which fields to return. Leave out for the usual ones: plan_name, subscribed, payment_problem, in_trial, current_period_end, cancel_at_period_end, credits, usage, limits, mcp_plan."},"project_id":{"type":"integer","description":"Workspace to work in (from list_projects). Leave out for the default one."}},"required":[],"additionalProperties":false},"annotations":{"title":"Get billing and usage","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"list_files","title":"List media library files","description":"The media library: videos, photos, audio, documents.","inputSchema":{"type":"object","properties":{"project_id":{"type":"integer","description":"Workspace to work in (from list_projects). Leave out for the default one."}},"required":[],"additionalProperties":false},"annotations":{"title":"List media library files","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"list_inventory","title":"List inventory","description":"Inventory items, optionally filtered by a search term.","inputSchema":{"type":"object","properties":{"q":{"type":"string","description":"Search term (name, SKU, category)."},"fields":{"type":"array","items":{"type":"string","enum":["sku","name","description","quantity","unit","price","cost","category","low_stock_threshold","location","images","created_at","updated_at"]},"description":"Which fields to return. Leave out for the usual ones: sku, name, quantity, unit, price, category, low_stock_threshold."},"limit":{"type":"integer","description":"How many to return, newest first where there's an order (default 100).","minimum":1,"maximum":500},"project_id":{"type":"integer","description":"Workspace to work in (from list_projects). Leave out for the default one."}},"required":[],"additionalProperties":false},"annotations":{"title":"List inventory","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"get_inventory_item","title":"Get inventory item","description":"One inventory item by SKU.","inputSchema":{"type":"object","properties":{"sku":{"type":"string","description":"The item's SKU."},"fields":{"type":"array","items":{"type":"string","enum":["sku","name","description","quantity","unit","price","cost","category","low_stock_threshold","location","images","created_at","updated_at"]},"description":"Which fields to return. Leave out for the usual ones: sku, name, description, quantity, unit, price, cost, category, low_stock_threshold, location, images, created_at, updated_at."},"project_id":{"type":"integer","description":"Workspace to work in (from list_projects). Leave out for the default one."}},"required":["sku"],"additionalProperties":false},"annotations":{"title":"Get inventory item","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"get_inventory_overview","title":"Get inventory overview","description":"Stock levels and movements over time.","inputSchema":{"type":"object","properties":{"days":{"type":"integer","description":"How many days back (default 30).","minimum":1,"maximum":365},"project_id":{"type":"integer","description":"Workspace to work in (from list_projects). Leave out for the default one."}},"required":[],"additionalProperties":false},"annotations":{"title":"Get inventory overview","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"list_sku_aliases","title":"List SKU aliases","description":"Other SKUs (e.g. a supplier's) that point at an item.","inputSchema":{"type":"object","properties":{"sku":{"type":"string","description":"The item's SKU."},"project_id":{"type":"integer","description":"Workspace to work in (from list_projects). Leave out for the default one."}},"required":["sku"],"additionalProperties":false},"annotations":{"title":"List SKU aliases","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"list_orders","title":"List orders","description":"Store orders, open ones first.","inputSchema":{"type":"object","properties":{"fields":{"type":"array","items":{"type":"string","enum":["order_id","order_name","source","status","created_at","completed_at","customer_name","customer_email","customer_note","line_items"]},"description":"Which fields to return. Leave out for the usual ones: order_id, order_name, status, created_at, customer_name, line_items."},"limit":{"type":"integer","description":"How many to return, newest first where there's an order (default 25).","minimum":1,"maximum":500},"project_id":{"type":"integer","description":"Workspace to work in (from list_projects). Leave out for the default one."}},"required":[],"additionalProperties":false},"annotations":{"title":"List orders","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"create_agent","title":"Create agent","description":"Create a new agent (an AI employee).","inputSchema":{"type":"object","properties":{"agent_name":{"type":"string","description":"The agent's name."},"role":{"type":"string","description":"Its job title, e.g. 'Store Manager'."},"init_prompt":{"type":"string","description":"Its standing instructions: what it should know and do every cycle."},"intelligence":{"type":"integer","description":"Intelligence level 1-3 (see list_models).","minimum":1,"maximum":3},"project_id":{"type":"integer","description":"Workspace to work in (from list_projects). Leave out for the default one."}},"required":["agent_name","role","init_prompt"],"additionalProperties":false},"annotations":{"title":"Create agent","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false}},{"name":"update_agent","title":"Update agent","description":"Change an agent. Only the fields you pass change.","inputSchema":{"type":"object","properties":{"agent_id":{"type":"integer","description":"The agent's id (from list_agents)."},"agent_name":{"type":"string","description":"The agent's name."},"role":{"type":"string","description":"Its job title, e.g. 'Store Manager'."},"init_prompt":{"type":"string","description":"Its standing instructions: what it should know and do every cycle."},"intelligence":{"type":"integer","description":"Intelligence level 1-3 (see list_models).","minimum":1,"maximum":3},"project_id":{"type":"integer","description":"Workspace to work in (from list_projects). Leave out for the default one."}},"required":["agent_id"],"additionalProperties":false},"annotations":{"title":"Update agent","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"set_agent_running","title":"Start or pause agent","description":"Start or pause an agent. Starting one needs an active plan.","inputSchema":{"type":"object","properties":{"agent_id":{"type":"integer","description":"The agent's id (from list_agents)."},"running":{"type":"boolean","description":"true to start, false to pause."},"project_id":{"type":"integer","description":"Workspace to work in (from list_projects). Leave out for the default one."}},"required":["agent_id","running"],"additionalProperties":false},"annotations":{"title":"Start or pause agent","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"set_agent_disabled_tools","title":"Set agent's disabled tools","description":"Which tools an agent may not use (replaces the list).","inputSchema":{"type":"object","properties":{"agent_id":{"type":"integer","description":"The agent's id (from list_agents)."},"disabled_tools":{"type":"array","items":{"type":"string"},"description":"Tool names to switch off."},"project_id":{"type":"integer","description":"Workspace to work in (from list_projects). Leave out for the default one."}},"required":["agent_id","disabled_tools"],"additionalProperties":false},"annotations":{"title":"Set agent's disabled tools","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"message_agent","title":"Message agent","description":"Send an agent a message; it reads it on its next cycle.","inputSchema":{"type":"object","properties":{"agent_id":{"type":"integer","description":"The agent's id (from list_agents)."},"message":{"type":"string","description":"What to tell it."},"project_id":{"type":"integer","description":"Workspace to work in (from list_projects). Leave out for the default one."}},"required":["agent_id","message"],"additionalProperties":false},"annotations":{"title":"Message agent","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false}},{"name":"reset_agent_history","title":"Reset agent history","description":"Clear an agent's conversation history (it starts fresh).","inputSchema":{"type":"object","properties":{"agent_id":{"type":"integer","description":"The agent's id (from list_agents)."},"project_id":{"type":"integer","description":"Workspace to work in (from list_projects). Leave out for the default one."}},"required":["agent_id"],"additionalProperties":false},"annotations":{"title":"Reset agent history","readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":false}},{"name":"delete_agent","title":"Delete agent","description":"Delete an agent for good.","inputSchema":{"type":"object","properties":{"agent_id":{"type":"integer","description":"The agent's id (from list_agents)."},"project_id":{"type":"integer","description":"Workspace to work in (from list_projects). Leave out for the default one."}},"required":["agent_id"],"additionalProperties":false},"annotations":{"title":"Delete agent","readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":false}},{"name":"clear_agent_messages","title":"Clear agent messages","description":"Delete every agent message in the workspace.","inputSchema":{"type":"object","properties":{"project_id":{"type":"integer","description":"Workspace to work in (from list_projects). Leave out for the default one."}},"required":[],"additionalProperties":false},"annotations":{"title":"Clear agent messages","readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":false}},{"name":"create_photo_folder","title":"Create photo folder","description":"Make a folder in the photo library.","inputSchema":{"type":"object","properties":{"name":{"type":"string","description":"Folder name: letters, numbers, spaces, - and _."},"project_id":{"type":"integer","description":"Workspace to work in (from list_projects). Leave out for the default one."}},"required":["name"],"additionalProperties":false},"annotations":{"title":"Create photo folder","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false}},{"name":"delete_photo_folder","title":"Delete photo folder","description":"Delete a photo folder and every photo in it.","inputSchema":{"type":"object","properties":{"folder":{"type":"string","description":"Folder name."},"project_id":{"type":"integer","description":"Workspace to work in (from list_projects). Leave out for the default one."}},"required":["folder"],"additionalProperties":false},"annotations":{"title":"Delete photo folder","readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":false}},{"name":"delete_file","title":"Delete media file","description":"Delete a file from the media library.","inputSchema":{"type":"object","properties":{"file_type":{"type":"string","description":"Which library the file is in.","enum":["raw_video","output_video","audio","photo","vfx","document"]},"filename":{"type":"string","description":"The file's name."},"subfolder":{"type":"string","description":"Photo folder, for a photo inside one."},"project_id":{"type":"integer","description":"Workspace to work in (from list_projects). Leave out for the default one."}},"required":["file_type","filename"],"additionalProperties":false},"annotations":{"title":"Delete media file","readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":false}},{"name":"set_company_description","title":"Set company description","description":"Replace the business description every agent works from.","inputSchema":{"type":"object","properties":{"overview":{"type":"string","description":"The new description."},"project_id":{"type":"integer","description":"Workspace to work in (from list_projects). Leave out for the default one."}},"required":["overview"],"additionalProperties":false},"annotations":{"title":"Set company description","readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":false}},{"name":"set_approval_gate","title":"Set Approval Gate","description":"Turn the Approval Gate on or off, and choose which actions wait for sign-off.","inputSchema":{"type":"object","properties":{"enabled":{"type":"boolean"},"action_types":{"type":"array","items":{"type":"string"},"description":"Action types to hold (see get_settings)."},"project_id":{"type":"integer","description":"Workspace to work in (from list_projects). Leave out for the default one."}},"required":["enabled"],"additionalProperties":false},"annotations":{"title":"Set Approval Gate","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"set_test_mode","title":"Set Test Mode","description":"Turn Test Mode on or off (agents act without really posting or sending).","inputSchema":{"type":"object","properties":{"enabled":{"type":"boolean"},"project_id":{"type":"integer","description":"Workspace to work in (from list_projects). Leave out for the default one."}},"required":["enabled"],"additionalProperties":false},"annotations":{"title":"Set Test Mode","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"set_comment_notifications","title":"Set comment notifications","description":"Email people when there are new comments to reply to.","inputSchema":{"type":"object","properties":{"enabled":{"type":"boolean"},"project_id":{"type":"integer","description":"Workspace to work in (from list_projects). Leave out for the default one."}},"required":["enabled"],"additionalProperties":false},"annotations":{"title":"Set comment notifications","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"set_overview_layout","title":"Set Overview layout","description":"Which stats Overview shows, in order; null for the default set.","inputSchema":{"type":"object","properties":{"stats":{"type":["array","null"],"items":{"type":"string"}},"project_id":{"type":"integer","description":"Workspace to work in (from list_projects). Leave out for the default one."}},"required":["stats"],"additionalProperties":false},"annotations":{"title":"Set Overview layout","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"decide_pending_action","title":"Approve or deny pending action","description":"Approve or deny an action waiting under the Approval Gate.","inputSchema":{"type":"object","properties":{"action_id":{"type":"string","description":"The pending action's id."},"approved":{"type":"boolean"},"always_allow":{"type":"boolean","description":"Approve, and stop holding this kind of action from now on."},"project_id":{"type":"integer","description":"Workspace to work in (from list_projects). Leave out for the default one."}},"required":["action_id","approved"],"additionalProperties":false},"annotations":{"title":"Approve or deny pending action","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":true}},{"name":"create_inventory_item","title":"Create inventory item","description":"Add an inventory item.","inputSchema":{"type":"object","properties":{"sku":{"type":"string","description":"The item's SKU."},"name":{"type":"string"},"description":{"type":"string"},"quantity":{"type":"integer"},"unit":{"type":"string"},"price":{"type":"number"},"cost":{"type":"number"},"category":{"type":"string"},"low_stock_threshold":{"type":"integer"},"location":{"type":"array","items":{"type":"string"}},"project_id":{"type":"integer","description":"Workspace to work in (from list_projects). Leave out for the default one."}},"required":["sku","name"],"additionalProperties":false},"annotations":{"title":"Create inventory item","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false}},{"name":"update_inventory_item","title":"Update inventory item","description":"Change an inventory item. Only the fields you pass change.","inputSchema":{"type":"object","properties":{"sku":{"type":"string","description":"The item's SKU."},"name":{"type":"string"},"description":{"type":"string"},"quantity":{"type":"integer"},"unit":{"type":"string"},"price":{"type":"number"},"cost":{"type":"number"},"category":{"type":"string"},"low_stock_threshold":{"type":"integer"},"location":{"type":"array","items":{"type":"string"}},"images":{"type":"array","items":{"type":"string"}},"project_id":{"type":"integer","description":"Workspace to work in (from list_projects). Leave out for the default one."}},"required":["sku"],"additionalProperties":false},"annotations":{"title":"Update inventory item","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"adjust_inventory_stock","title":"Adjust inventory stock","description":"Add to (or, with a negative number, take from) an item's stock.","inputSchema":{"type":"object","properties":{"sku":{"type":"string","description":"The item's SKU."},"delta_increase":{"type":"integer","description":"Units to add; negative to remove."},"project_id":{"type":"integer","description":"Workspace to work in (from list_projects). Leave out for the default one."}},"required":["sku","delta_increase"],"additionalProperties":false},"annotations":{"title":"Adjust inventory stock","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false}},{"name":"delete_inventory_item","title":"Delete inventory item","description":"Delete an inventory item.","inputSchema":{"type":"object","properties":{"sku":{"type":"string","description":"The item's SKU."},"project_id":{"type":"integer","description":"Workspace to work in (from list_projects). Leave out for the default one."}},"required":["sku"],"additionalProperties":false},"annotations":{"title":"Delete inventory item","readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":false}},{"name":"add_sku_alias","title":"Add SKU alias","description":"Make another SKU point at an item.","inputSchema":{"type":"object","properties":{"sku":{"type":"string","description":"The item's SKU."},"alias_sku":{"type":"string"},"label":{"type":"string","description":"Where the alias comes from, e.g. a supplier."},"project_id":{"type":"integer","description":"Workspace to work in (from list_projects). Leave out for the default one."}},"required":["sku","alias_sku"],"additionalProperties":false},"annotations":{"title":"Add SKU alias","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false}},{"name":"delete_sku_alias","title":"Delete SKU alias","description":"Remove a SKU alias.","inputSchema":{"type":"object","properties":{"alias_id":{"type":"integer"},"project_id":{"type":"integer","description":"Workspace to work in (from list_projects). Leave out for the default one."}},"required":["alias_id"],"additionalProperties":false},"annotations":{"title":"Delete SKU alias","readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":false}},{"name":"complete_order","title":"Complete order","description":"Mark an order fulfilled.","inputSchema":{"type":"object","properties":{"order_id":{"type":"string"},"project_id":{"type":"integer","description":"Workspace to work in (from list_projects). Leave out for the default one."}},"required":["order_id"],"additionalProperties":false},"annotations":{"title":"Complete order","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"set_budget","title":"Set budget","description":"Set the budget cap the agents spend against.","inputSchema":{"type":"object","properties":{"total_budget":{"type":"number","minimum":0},"project_id":{"type":"integer","description":"Workspace to work in (from list_projects). Leave out for the default one."}},"required":["total_budget"],"additionalProperties":false},"annotations":{"title":"Set budget","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"dismiss_budget_note","title":"Dismiss budget note","description":"Clear an unlogged-spend note.","inputSchema":{"type":"object","properties":{"pending_id":{"type":"integer"},"project_id":{"type":"integer","description":"Workspace to work in (from list_projects). Leave out for the default one."}},"required":["pending_id"],"additionalProperties":false},"annotations":{"title":"Dismiss budget note","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"delete_budget_entry","title":"Delete budget entry","description":"Remove a budget line item and correct the total.","inputSchema":{"type":"object","properties":{"entry_id":{"type":"integer"},"project_id":{"type":"integer","description":"Workspace to work in (from list_projects). Leave out for the default one."}},"required":["entry_id"],"additionalProperties":false},"annotations":{"title":"Delete budget entry","readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":false}},{"name":"add_member","title":"Add member","description":"Add someone with an Acrium account. No capabilities = view-only (unlimited on every plan); any capability makes them an editor, which counts against the plan.","inputSchema":{"type":"object","properties":{"member_email":{"type":"string"},"capabilities":{"type":"array","items":{"type":"string","enum":["manage_agents","manage_integrations","manage_inventory","manage_orders","approve_actions","manage_settings","manage_members","manage_billing","manage_api_keys"]},"description":"Capabilities to grant. An empty list makes them view-only (unlimited on every plan)."},"title":{"type":"string","description":"Job title, optional."},"project_id":{"type":"integer","description":"Workspace to work in (from list_projects). Leave out for the default one."}},"required":["member_email","capabilities"],"additionalProperties":false},"annotations":{"title":"Add member","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false}},{"name":"update_member_capabilities","title":"Update member capabilities","description":"Replace a member's capabilities.","inputSchema":{"type":"object","properties":{"member_email":{"type":"string"},"capabilities":{"type":"array","items":{"type":"string","enum":["manage_agents","manage_integrations","manage_inventory","manage_orders","approve_actions","manage_settings","manage_members","manage_billing","manage_api_keys"]},"description":"Capabilities to grant. An empty list makes them view-only (unlimited on every plan)."},"project_id":{"type":"integer","description":"Workspace to work in (from list_projects). Leave out for the default one."}},"required":["member_email","capabilities"],"additionalProperties":false},"annotations":{"title":"Update member capabilities","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"set_member_title","title":"Set member title","description":"Set a member's job title.","inputSchema":{"type":"object","properties":{"member_email":{"type":"string"},"title":{"type":"string"},"project_id":{"type":"integer","description":"Workspace to work in (from list_projects). Leave out for the default one."}},"required":["member_email","title"],"additionalProperties":false},"annotations":{"title":"Set member title","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"set_member_visibility","title":"Set member visibility","description":"Hide fields (e.g. inventory cost) or whole agents from a member.","inputSchema":{"type":"object","properties":{"member_email":{"type":"string"},"hidden_fields":{"type":"object","additionalProperties":{"type":"array","items":{"type":"string"}},"description":"Resource -> fields, e.g. {\"inventory\": [\"cost\"]}. Options: inventory: cost, price; orders: customer_name, customer_email, line_items; agent: instructions, notepad, todo, audit_log; company: company_description; budget: spent, total, entries"},"hidden_agent_ids":{"type":"array","items":{"type":"integer"}},"project_id":{"type":"integer","description":"Workspace to work in (from list_projects). Leave out for the default one."}},"required":["member_email","hidden_fields"],"additionalProperties":false},"annotations":{"title":"Set member visibility","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"remove_member","title":"Remove member","description":"Remove someone from the workspace.","inputSchema":{"type":"object","properties":{"member_email":{"type":"string"},"project_id":{"type":"integer","description":"Workspace to work in (from list_projects). Leave out for the default one."}},"required":["member_email"],"additionalProperties":false},"annotations":{"title":"Remove member","readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":false}},{"name":"disconnect_integration","title":"Disconnect platform","description":"Disconnect a platform (connecting one needs the dashboard).","inputSchema":{"type":"object","properties":{"platform":{"type":"string","description":"e.g. shopify, gmail, x, slack, google_ads, outstand_tiktok."},"project_id":{"type":"integer","description":"Workspace to work in (from list_projects). Leave out for the default one."}},"required":["platform"],"additionalProperties":false},"annotations":{"title":"Disconnect platform","readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":true}},{"name":"search_notes","title":"Search business notes","description":"Search the workspace's business notes (brand voice, policies, supplier details...) shared by everyone on the team: the team's long-term memory. Check here before acting on anything brand or policy related. An empty query lists the pinned and most recent notes; get_note has a note in full, by its note_id or exact title.","inputSchema":{"type":"object","properties":{"query":{"type":"string","description":"Words to look for. Leave empty for pinned and recent notes."},"tag":{"type":"string","description":"Only notes with this tag."},"limit":{"type":"integer","description":"How many to return (default 10).","minimum":1,"maximum":50},"project_id":{"type":"integer","description":"Workspace to work in (from list_projects). Leave out for the default one."}},"required":[],"additionalProperties":false},"annotations":{"title":"Search business notes","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"get_note","title":"Get business note","description":"One business note in full, by note_id (from search_notes or list_notes) or by its exact title, e.g. a log you keep under a fixed name. Pass one of the two.","inputSchema":{"type":"object","properties":{"note_id":{"type":"integer"},"title":{"type":"string","description":"The note's exact title (any case)."},"project_id":{"type":"integer","description":"Workspace to work in (from list_projects). Leave out for the default one."}},"required":[],"additionalProperties":false},"annotations":{"title":"Get business note","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"list_notes","title":"List business notes","description":"The workspace's business notes, pinned first, then most recently changed (bodies shortened; get_note has the whole note).","inputSchema":{"type":"object","properties":{"tag":{"type":"string","description":"Only notes with this tag."},"pinned_only":{"type":"boolean"},"limit":{"type":"integer","description":"How many to return (default 50).","minimum":1,"maximum":200},"project_id":{"type":"integer","description":"Workspace to work in (from list_projects). Leave out for the default one."}},"required":[],"additionalProperties":false},"annotations":{"title":"List business notes","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"add_note","title":"Add business note","description":"Save a business note for the whole team: something the business wants remembered (how it talks, what it never says, a policy, a supplier's quirks). Pinned notes are in every connected assistant's workspace brief, so keep pinned ones short.","inputSchema":{"type":"object","properties":{"title":{"type":"string","description":"A short, findable title."},"body":{"type":"string","description":"The note itself."},"tags":{"type":"array","items":{"type":"string"},"description":"Short topic words, e.g. social, brand, shopify, refunds, suppliers. A note tagged with a tool's area comes back on that tool's results; a pinned note tagged 'always' comes back on every change and every read_messages."},"pinned":{"type":"boolean","description":"Put it in the workspace brief every connected assistant starts with."},"project_id":{"type":"integer","description":"Workspace to work in (from list_projects). Leave out for the default one."}},"required":["title"],"additionalProperties":false},"annotations":{"title":"Add business note","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false}},{"name":"update_note","title":"Update business note","description":"Change a business note. Only what you pass changes; tags replace the old ones. For a running log (daily log, decision log), add each entry with append (or prepend for newest-first) instead of resending the whole body: no need to get_note first, and nothing else in it changes.","inputSchema":{"type":"object","properties":{"note_id":{"type":"integer"},"title":{"type":"string"},"body":{"type":"string","description":"Replaces the whole note."},"append":{"type":"string","description":"Text to add at the end, after a blank line."},"prepend":{"type":"string","description":"Text to add at the start, before a blank line."},"tags":{"type":"array","items":{"type":"string"},"description":"Short topic words, e.g. social, brand, shopify, refunds, suppliers. A note tagged with a tool's area comes back on that tool's results; a pinned note tagged 'always' comes back on every change and every read_messages."},"pinned":{"type":"boolean"},"project_id":{"type":"integer","description":"Workspace to work in (from list_projects). Leave out for the default one."}},"required":["note_id"],"additionalProperties":false},"annotations":{"title":"Update business note","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false}},{"name":"delete_note","title":"Delete business note","description":"Delete a business note for everyone in the workspace.","inputSchema":{"type":"object","properties":{"note_id":{"type":"integer"},"project_id":{"type":"integer","description":"Workspace to work in (from list_projects). Leave out for the default one."}},"required":["note_id"],"additionalProperties":false},"annotations":{"title":"Delete business note","readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":false}},{"name":"get_attention_items","title":"Get attention items","description":"What needs attention since you last checked: new comments, orders (and failed ones), low stock, actions waiting for approval, finished or failed renders, calls, budget alerts. Call this first whenever you check in. Newest first; returned items are marked seen but stay open until mark_attention_done. urgent_open counts the urgent ones still open.","inputSchema":{"type":"object","properties":{"kind":{"type":"string","description":"Only this kind, e.g. comment, order, order_failed, low_stock, approval, render_done, render_failed, budget, call, scheduled_post_failed, post_published, post_failed, message."},"urgency":{"type":"string","description":"Only this urgency.","enum":["normal","urgent"]},"limit":{"type":"integer","description":"How many to return (default 20).","minimum":1,"maximum":100},"project_id":{"type":"integer","description":"Workspace to work in (from list_projects). Leave out for the default one."}},"required":[],"additionalProperties":false},"annotations":{"title":"Get attention items","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"mark_attention_done","title":"Mark attention items done","description":"Close attention items you've dealt with (or decided to leave), so they stop coming back. Closed for everyone in the workspace.","inputSchema":{"type":"object","properties":{"item_id":{"type":"integer"},"item_ids":{"type":"array","items":{"type":"integer"},"description":"Several at once."},"project_id":{"type":"integer","description":"Workspace to work in (from list_projects). Leave out for the default one."}},"required":[],"additionalProperties":false},"annotations":{"title":"Mark attention items done","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"list_roles","title":"List roles","description":"The workspace's roles: seats an AI assistant can take (e.g. manager, email outreach), each with how many unread messages it has. Any connected AI can act as a role.","inputSchema":{"type":"object","properties":{"project_id":{"type":"integer","description":"Workspace to work in (from list_projects). Leave out for the default one."}},"required":[],"additionalProperties":false},"annotations":{"title":"List roles","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"get_role","title":"Get role","description":"One role: its title, description and the instructions whoever takes it follows. If you've been asked to act as this role, follow these instructions.","inputSchema":{"type":"object","properties":{"role":{"type":"string","description":"The role's name (from list_roles), e.g. 'manager'."},"project_id":{"type":"integer","description":"Workspace to work in (from list_projects). Leave out for the default one."}},"required":["role"],"additionalProperties":false},"annotations":{"title":"Get role","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"create_role","title":"Create role","description":"Add a role: a named seat with instructions, that an AI assistant can take.","inputSchema":{"type":"object","properties":{"name":{"type":"string","description":"Short name: lowercase letters, numbers, - and _, e.g. 'manager'."},"title":{"type":"string","description":"What it's called, e.g. 'Manager'."},"description":{"type":"string","description":"One line on what it does."},"instructions":{"type":"string","description":"What whoever takes the role should do and how."},"project_id":{"type":"integer","description":"Workspace to work in (from list_projects). Leave out for the default one."}},"required":["name"],"additionalProperties":false},"annotations":{"title":"Create role","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false}},{"name":"update_role","title":"Update role","description":"Change a role's title, description or instructions. Only what you pass changes.","inputSchema":{"type":"object","properties":{"role":{"type":"string","description":"The role's name (from list_roles), e.g. 'manager'."},"title":{"type":"string"},"description":{"type":"string"},"instructions":{"type":"string"},"project_id":{"type":"integer","description":"Workspace to work in (from list_projects). Leave out for the default one."}},"required":["role"],"additionalProperties":false},"annotations":{"title":"Update role","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"archive_role","title":"Archive role","description":"Retire a role. Its messages are kept; its name is free to use again.","inputSchema":{"type":"object","properties":{"role":{"type":"string","description":"The role's name (from list_roles), e.g. 'manager'."},"project_id":{"type":"integer","description":"Workspace to work in (from list_projects). Leave out for the default one."}},"required":["role"],"additionalProperties":false},"annotations":{"title":"Archive role","readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":false}},{"name":"role_from_agent","title":"Create role from agent","description":"Make a role from one of the workspace's Acrium agents: its name, job title and instructions. The agent itself isn't changed.","inputSchema":{"type":"object","properties":{"agent_id":{"type":"integer","description":"The agent's id (from list_agents)."},"name":{"type":"string","description":"The role's name, if not the agent's."},"project_id":{"type":"integer","description":"Workspace to work in (from list_projects). Leave out for the default one."}},"required":["agent_id"],"additionalProperties":false},"annotations":{"title":"Create role from agent","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false}},{"name":"send_message","title":"Send message","description":"Message one or more roles, or 'people' for the people in the workspace (it shows in their dashboard Messages). Pass as_role when you're acting as a role, so they know who it's from. urgent: true also emails the owner, for 'people' only; keep it for what can't wait.","inputSchema":{"type":"object","properties":{"to":{"description":"A role's name, 'people', or a list of them.","anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"text":{"type":"string","description":"The message."},"as_role":{"type":"string","description":"The role you're acting as, if any."},"urgent":{"type":"boolean","description":"For 'people': also email the owner now."},"project_id":{"type":"integer","description":"Workspace to work in (from list_projects). Leave out for the default one."}},"required":["to","text"],"additionalProperties":false},"annotations":{"title":"Send message","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"read_messages","title":"Read role messages","description":"A role's mailbox, oldest first. By default only unread messages; they stay unread until mark_messages_read, so a check-in that stops halfway loses nothing. It also lists the notes changed since this role last called it (notes_changed, newest first; get_note for any you need) and the pinned 'always' notes (always_notes).","inputSchema":{"type":"object","properties":{"role":{"type":"string","description":"The role's name (from list_roles), e.g. 'manager'."},"unread_only":{"type":"boolean","description":"Only unread ones (default true)."},"limit":{"type":"integer","description":"How many (default 50).","minimum":1,"maximum":200},"after_id":{"type":"integer","description":"Only messages after this id."},"peek":{"type":"boolean","description":"Just look: don't move this role's notes cursor and leave notes_changed out. For checking on a role you aren't acting as."},"project_id":{"type":"integer","description":"Workspace to work in (from list_projects). Leave out for the default one."}},"required":["role"],"additionalProperties":false},"annotations":{"title":"Read role messages","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"mark_messages_read","title":"Mark role messages read","description":"Mark a role's messages read once you've dealt with them: message_ids, or up_to_id for everything up to and including that one.","inputSchema":{"type":"object","properties":{"role":{"type":"string","description":"The role's name (from list_roles), e.g. 'manager'."},"message_ids":{"type":"array","items":{"type":"integer"}},"up_to_id":{"type":"integer"},"project_id":{"type":"integer","description":"Workspace to work in (from list_projects). Leave out for the default one."}},"required":["role"],"additionalProperties":false},"annotations":{"title":"Mark role messages read","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"publish_post","title":"Publish social post","description":"Post to the workspace's connected social accounts now. Returns each platform's outcome. Test Mode posts nothing. A platform the owner set to need approval waits for them in the dashboard instead, and goes out when they approve it.","inputSchema":{"type":"object","properties":{"platforms":{"type":"array","items":{"type":"string","enum":["tiktok","youtube","x","instagram","pinterest","facebook","threads","bluesky","linkedin"]},"minItems":1,"description":"Where to post. Each must be connected (list_connections)."},"text":{"type":"string","description":"The post's text (caption, tweet, description). Kept under each platform's limit, or that platform is refused."},"media":{"type":"string","description":"A file from the media library to attach (see list_files): 'Video/promo.mp4', 'Photos/Ads/hero.jpg', or just its name. TikTok and YouTube need a video, Instagram and Pinterest a photo or video. A file you made yourself must be uploaded first (create_upload_url or import_media_from_url)."},"title":{"type":"string","description":"Title, for platforms that have one (YouTube, TikTok, Pinterest)."},"project_id":{"type":"integer","description":"Workspace to work in (from list_projects). Leave out for the default one."}},"required":["platforms","text"],"additionalProperties":false},"annotations":{"title":"Publish social post","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"schedule_post","title":"Schedule social post","description":"Queue a post to go out at publish_at (ISO 8601 with a time zone, up to 60 days ahead). Acrium publishes it on time, so plan a week of posts in one session. A failure shows up in get_attention_items.","inputSchema":{"type":"object","properties":{"platforms":{"type":"array","items":{"type":"string","enum":["tiktok","youtube","x","instagram","pinterest","facebook","threads","bluesky","linkedin"]},"minItems":1,"description":"Where to post. Each must be connected (list_connections)."},"text":{"type":"string","description":"The post's text (caption, tweet, description). Kept under each platform's limit, or that platform is refused."},"media":{"type":"string","description":"A file from the media library to attach (see list_files): 'Video/promo.mp4', 'Photos/Ads/hero.jpg', or just its name. TikTok and YouTube need a video, Instagram and Pinterest a photo or video. A file you made yourself must be uploaded first (create_upload_url or import_media_from_url)."},"title":{"type":"string","description":"Title, for platforms that have one (YouTube, TikTok, Pinterest)."},"publish_at":{"type":"string","description":"When to publish, e.g. 2026-11-03T09:30:00-05:00."},"project_id":{"type":"integer","description":"Workspace to work in (from list_projects). Leave out for the default one."}},"required":["platforms","text","publish_at"],"additionalProperties":false},"annotations":{"title":"Schedule social post","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"list_scheduled_posts","title":"List scheduled posts","description":"Scheduled posts: the upcoming ones by default, or past ones and their outcome.","inputSchema":{"type":"object","properties":{"status":{"type":"string","description":"Which ones (default scheduled).","enum":["scheduled","awaiting_approval","published","failed","partly_failed","cancelled","all"]},"limit":{"type":"integer","description":"How many (default 50).","minimum":1,"maximum":200},"project_id":{"type":"integer","description":"Workspace to work in (from list_projects). Leave out for the default one."}},"required":[],"additionalProperties":false},"annotations":{"title":"List scheduled posts","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"update_scheduled_post","title":"Update scheduled post","description":"Change a post that hasn't gone out yet. Only the fields you pass change.","inputSchema":{"type":"object","properties":{"post_id":{"type":"integer","description":"The scheduled post (from schedule_post or list_scheduled_posts)."},"platforms":{"type":"array","items":{"type":"string","enum":["tiktok","youtube","x","instagram","pinterest","facebook","threads","bluesky","linkedin"]},"minItems":1,"description":"Where to post. Each must be connected (list_connections)."},"text":{"type":"string","description":"The post's text (caption, tweet, description). Kept under each platform's limit, or that platform is refused."},"media":{"type":"string","description":"A file from the media library to attach (see list_files): 'Video/promo.mp4', 'Photos/Ads/hero.jpg', or just its name. TikTok and YouTube need a video, Instagram and Pinterest a photo or video. A file you made yourself must be uploaded first (create_upload_url or import_media_from_url)."},"title":{"type":"string","description":"Title, for platforms that have one (YouTube, TikTok, Pinterest)."},"publish_at":{"type":"string","description":"New time, ISO 8601 with a time zone."},"project_id":{"type":"integer","description":"Workspace to work in (from list_projects). Leave out for the default one."}},"required":["post_id"],"additionalProperties":false},"annotations":{"title":"Update scheduled post","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"cancel_scheduled_post","title":"Cancel scheduled post","description":"Cancel a post that hasn't gone out yet.","inputSchema":{"type":"object","properties":{"post_id":{"type":"integer","description":"The scheduled post (from schedule_post or list_scheduled_posts)."},"project_id":{"type":"integer","description":"Workspace to work in (from list_projects). Leave out for the default one."}},"required":["post_id"],"additionalProperties":false},"annotations":{"title":"Cancel scheduled post","readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":false}},{"name":"create_upload_url","title":"Create upload URL","description":"Get a short-lived URL to upload a file from your own environment into the media library, with the exact curl command. Then call confirm_upload. Files must be in the library before they can be posted or edited.","inputSchema":{"type":"object","properties":{"file_type":{"type":"string","description":"Which library folder: raw_video (footage for make_video), output_video (finished videos to post), audio (music, voiceovers), photo, vfx, document.","enum":["raw_video","output_video","audio","photo","vfx","document"]},"filename":{"type":"string","description":"The file's name in the library, with its extension (e.g. 'promo.mp4'). The same name replaces a file."},"size":{"type":"integer","description":"The file's exact size in bytes.","minimum":1},"folder":{"type":"string","description":"For photos only: a subfolder of Photos to put it in (e.g. 'Ads')."},"project_id":{"type":"integer","description":"Workspace to work in (from list_projects). Leave out for the default one."}},"required":["file_type","filename","size"],"additionalProperties":false},"annotations":{"title":"Create upload URL","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false}},{"name":"confirm_upload","title":"Confirm upload","description":"Finish an upload made with create_upload_url: checks the file arrived and adds it to the library.","inputSchema":{"type":"object","properties":{"file_type":{"type":"string","description":"Which library folder: raw_video (footage for make_video), output_video (finished videos to post), audio (music, voiceovers), photo, vfx, document.","enum":["raw_video","output_video","audio","photo","vfx","document"]},"filename":{"type":"string","description":"The file's name in the library, with its extension (e.g. 'promo.mp4'). The same name replaces a file."},"folder":{"type":"string","description":"For photos only: a subfolder of Photos to put it in (e.g. 'Ads')."},"project_id":{"type":"integer","description":"Workspace to work in (from list_projects). Leave out for the default one."}},"required":["file_type","filename"],"additionalProperties":false},"annotations":{"title":"Confirm upload","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"import_media_from_url","title":"Import media from URL","description":"Have Acrium fetch a file from a public https link straight into the media library.","inputSchema":{"type":"object","properties":{"url":{"type":"string","description":"A public https link to the file itself."},"file_type":{"type":"string","description":"Which library folder: raw_video (footage for make_video), output_video (finished videos to post), audio (music, voiceovers), photo, vfx, document.","enum":["raw_video","output_video","audio","photo","vfx","document"]},"filename":{"type":"string","description":"Name to save it as, with its extension. Leave out to use the link's."},"folder":{"type":"string","description":"For photos only: a subfolder of Photos to put it in (e.g. 'Ads')."},"project_id":{"type":"integer","description":"Workspace to work in (from list_projects). Leave out for the default one."}},"required":["url","file_type"],"additionalProperties":false},"annotations":{"title":"Import media from URL","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"get_download_url","title":"Get download URL","description":"A short-lived link to download a library file into your own environment, with the curl command.","inputSchema":{"type":"object","properties":{"path":{"type":"string","description":"The file, e.g. 'Video/promo.mp4' (see list_files)."},"project_id":{"type":"integer","description":"Workspace to work in (from list_projects). Leave out for the default one."}},"required":["path"],"additionalProperties":false},"annotations":{"title":"Get download URL","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"make_video","title":"Make video","description":"Edit raw footage from the Raw_Video folder into a video in the Video folder: the named clips (or a random pick) cut together over background music from Audio, or over a voiceover. Rendering runs in the background and counts against the plan's monthly render time; check get_render_status.","inputSchema":{"type":"object","properties":{"output":{"type":"string","description":"Name of the finished video, e.g. 'spring-promo'."},"clips":{"type":"array","items":{"type":"string"},"description":"Clip names from Raw_Video, in order. Leave out for a random pick."},"music":{"type":"boolean","description":"Background music from the Audio folder (default true). False keeps the footage's own sound."},"voiceover":{"type":"string","description":"An Audio file to narrate with (e.g. from generate_voiceover). Music is then optional."},"text_overlay":{"type":"string","description":"Short text to show on the video, exactly as it should read."},"aspect_ratio":{"type":"string","description":"Shape: 9:16 for TikTok, Reels and Shorts.","enum":["9:16","16:9","1:1","4:5"]},"max_seconds":{"type":"integer","description":"Longest it should run, 5-600 seconds.","minimum":5,"maximum":600},"note":{"type":"string","description":"A note to yourself, returned with the finished render."},"project_id":{"type":"integer","description":"Workspace to work in (from list_projects). Leave out for the default one."}},"required":["output"],"additionalProperties":false},"annotations":{"title":"Make video","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false}},{"name":"get_render_status","title":"Get render status","description":"A render's progress, or the workspace's recent renders when job_id is left out.","inputSchema":{"type":"object","properties":{"job_id":{"type":"string","description":"From make_video."},"project_id":{"type":"integer","description":"Workspace to work in (from list_projects). Leave out for the default one."}},"required":[],"additionalProperties":false},"annotations":{"title":"Get render status","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"generate_voiceover","title":"Generate voiceover","description":"Read a script out loud into a WAV file in the Audio folder, for make_video or to post. Uses the workspace's AI credits.","inputSchema":{"type":"object","properties":{"text":{"type":"string","description":"The script, up to 5000 characters."},"voice":{"type":"string","description":"Voice (default Aoede).","enum":["Achernar","Achird","Algenib","Algieba","Alnilam","Aoede","Autonoe","Callirrhoe","Charon","Despina","Enceladus","Erinome","Fenrir","Gacrux","Iapetus","Kore","Laomedeia","Leda","Orus","Puck","Pulcherrima","Rasalgethi","Sadachbia","Sadaltager","Schedar","Sulafat","Umbriel","Vindemiatrix","Zephyr","Zubenelgenubi"]},"name":{"type":"string","description":"File name to save it as (it's saved as <name>_voiceover.wav)."},"project_id":{"type":"integer","description":"Workspace to work in (from list_projects). Leave out for the default one."}},"required":["text"],"additionalProperties":false},"annotations":{"title":"Generate voiceover","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false}},{"name":"shopify_list_orders","title":"List Shopify orders","description":"The store's 20 most recent paid Shopify orders: status, totals and line items (customer details are left out).","inputSchema":{"type":"object","properties":{"project_id":{"type":"integer","description":"Workspace to work in (from list_projects). Leave out for the default one."}},"required":[],"additionalProperties":false},"annotations":{"title":"List Shopify orders","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"shopify_list_products","title":"List Shopify products","description":"The store's Shopify products (up to 50): name and id.","inputSchema":{"type":"object","properties":{"project_id":{"type":"integer","description":"Workspace to work in (from list_projects). Leave out for the default one."}},"required":[],"additionalProperties":false},"annotations":{"title":"List Shopify products","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"shopify_get_report","title":"Get Shopify reports","description":"Shopify's saved reports, where the store's plan allows them.","inputSchema":{"type":"object","properties":{"project_id":{"type":"integer","description":"Workspace to work in (from list_projects). Leave out for the default one."}},"required":[],"additionalProperties":false},"annotations":{"title":"Get Shopify reports","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"shopify_list_product_listings","title":"List Shopify product listings","description":"The products published to the store's sales channel.","inputSchema":{"type":"object","properties":{"project_id":{"type":"integer","description":"Workspace to work in (from list_projects). Leave out for the default one."}},"required":[],"additionalProperties":false},"annotations":{"title":"List Shopify product listings","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"shopify_list_product_images","title":"List Shopify product images","description":"A product's images: id, URL and alt text.","inputSchema":{"type":"object","properties":{"product_id":{"type":"integer","description":"The Shopify product id (from shopify_list_products)."},"project_id":{"type":"integer","description":"Workspace to work in (from list_projects). Leave out for the default one."}},"required":["product_id"],"additionalProperties":false},"annotations":{"title":"List Shopify product images","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"shopify_list_price_rules","title":"List Shopify price rules","description":"The store's price rules: what each discount takes off.","inputSchema":{"type":"object","properties":{"project_id":{"type":"integer","description":"Workspace to work in (from list_projects). Leave out for the default one."}},"required":[],"additionalProperties":false},"annotations":{"title":"List Shopify price rules","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"shopify_list_discounts","title":"List Shopify discounts","description":"Every discount code in the store, with the price rule it belongs to.","inputSchema":{"type":"object","properties":{"project_id":{"type":"integer","description":"Workspace to work in (from list_projects). Leave out for the default one."}},"required":[],"additionalProperties":false},"annotations":{"title":"List Shopify discounts","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"shopify_create_product","title":"Create Shopify product","description":"Add a product to the Shopify store with one variant. Attach photos afterwards with shopify_attach_photo.","inputSchema":{"type":"object","properties":{"title":{"type":"string"},"body_html":{"type":"string","description":"The description, as HTML."},"price":{"type":"string","description":"e.g. '19.99'."},"sku":{"type":"string","description":"The variant's SKU."},"project_id":{"type":"integer","description":"Workspace to work in (from list_projects). Leave out for the default one."}},"required":["title","price"],"additionalProperties":false},"annotations":{"title":"Create Shopify product","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"shopify_update_product","title":"Update Shopify product","description":"Change a Shopify product's title, description and price (the first variant's). Pass all three: what you leave out is cleared.","inputSchema":{"type":"object","properties":{"product_id":{"type":"integer","description":"The Shopify product id (from shopify_list_products)."},"title":{"type":"string"},"body_html":{"type":"string","description":"The description, as HTML."},"price":{"type":"string","description":"e.g. '19.99'."},"project_id":{"type":"integer","description":"Workspace to work in (from list_projects). Leave out for the default one."}},"required":["product_id","title","price"],"additionalProperties":false},"annotations":{"title":"Update Shopify product","readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":true}},{"name":"shopify_publish_product","title":"Publish or unpublish Shopify product","description":"Publish a Shopify product to the online store, or unpublish it.","inputSchema":{"type":"object","properties":{"product_id":{"type":"integer","description":"The Shopify product id (from shopify_list_products)."},"published":{"type":"boolean","description":"true to publish, false to unpublish."},"project_id":{"type":"integer","description":"Workspace to work in (from list_projects). Leave out for the default one."}},"required":["product_id","published"],"additionalProperties":false},"annotations":{"title":"Publish or unpublish Shopify product","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"shopify_set_sales_channel","title":"Set Shopify sales channel listing","description":"List a Shopify product on the store's sales channel, or take it off.","inputSchema":{"type":"object","properties":{"product_id":{"type":"integer","description":"The Shopify product id (from shopify_list_products)."},"listed":{"type":"boolean","description":"true to list it, false to take it off."},"project_id":{"type":"integer","description":"Workspace to work in (from list_projects). Leave out for the default one."}},"required":["product_id","listed"],"additionalProperties":false},"annotations":{"title":"Set Shopify sales channel listing","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"shopify_attach_photo","title":"Attach photo to Shopify product","description":"Add a photo from the workspace's media library (its Photos folder) to a Shopify product.","inputSchema":{"type":"object","properties":{"product_id":{"type":"integer","description":"The Shopify product id (from shopify_list_products)."},"filename":{"type":"string","description":"The photo's name in the Photos folder, e.g. 'mug_front.jpg'."},"alt_text":{"type":"string","description":"Describes the photo, for accessibility and search."},"project_id":{"type":"integer","description":"Workspace to work in (from list_projects). Leave out for the default one."}},"required":["product_id","filename"],"additionalProperties":false},"annotations":{"title":"Attach photo to Shopify product","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"shopify_update_image_alt_text","title":"Update Shopify image alt text","description":"Change a product image's alt text.","inputSchema":{"type":"object","properties":{"product_id":{"type":"integer","description":"The Shopify product id (from shopify_list_products)."},"image_id":{"type":"integer","description":"The image id (from shopify_list_product_images)."},"alt_text":{"type":"string"},"project_id":{"type":"integer","description":"Workspace to work in (from list_projects). Leave out for the default one."}},"required":["product_id","image_id","alt_text"],"additionalProperties":false},"annotations":{"title":"Update Shopify image alt text","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"shopify_delete_product_image","title":"Delete Shopify product image","description":"Permanently delete an image from a Shopify product. Held for the owner's approval unless they've turned that off.","inputSchema":{"type":"object","properties":{"product_id":{"type":"integer","description":"The Shopify product id (from shopify_list_products)."},"image_id":{"type":"integer","description":"The image id (from shopify_list_product_images)."},"project_id":{"type":"integer","description":"Workspace to work in (from list_projects). Leave out for the default one."}},"required":["product_id","image_id"],"additionalProperties":false},"annotations":{"title":"Delete Shopify product image","readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":true}},{"name":"shopify_delete_product","title":"Delete Shopify product","description":"Permanently delete a Shopify product. Held for the owner's approval unless they've turned that off.","inputSchema":{"type":"object","properties":{"product_id":{"type":"integer","description":"The Shopify product id (from shopify_list_products)."},"project_id":{"type":"integer","description":"Workspace to work in (from list_projects). Leave out for the default one."}},"required":["product_id"],"additionalProperties":false},"annotations":{"title":"Delete Shopify product","readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":true}},{"name":"shopify_create_discount","title":"Create Shopify discount","description":"Create a percent-off discount code that applies to every product, starting today. Held for the owner's approval unless they've turned that off.","inputSchema":{"type":"object","properties":{"title":{"type":"string","description":"The discount's name, e.g. 'Spring sale'."},"percentage":{"type":"number","description":"Percent off, above 0. At most 25: anything higher is cut to 25."},"code":{"type":"string","description":"What customers type at checkout, e.g. 'SPRING15'."},"project_id":{"type":"integer","description":"Workspace to work in (from list_projects). Leave out for the default one."}},"required":["title","percentage","code"],"additionalProperties":false},"annotations":{"title":"Create Shopify discount","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"shopify_update_price_rule","title":"Update Shopify price rule","description":"Change a price rule's name and percent off. Held for the owner's approval unless they've turned that off.","inputSchema":{"type":"object","properties":{"price_rule_id":{"type":"integer","description":"The price rule id (from shopify_list_price_rules)."},"title":{"type":"string"},"percentage":{"type":"number","description":"Percent off, above 0. At most 25: anything higher is cut to 25."},"project_id":{"type":"integer","description":"Workspace to work in (from list_projects). Leave out for the default one."}},"required":["price_rule_id","title","percentage"],"additionalProperties":false},"annotations":{"title":"Update Shopify price rule","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"shopify_delete_price_rule","title":"Delete Shopify price rule","description":"Permanently delete a price rule and every discount code on it. Held for the owner's approval unless they've turned that off.","inputSchema":{"type":"object","properties":{"price_rule_id":{"type":"integer","description":"The price rule id (from shopify_list_price_rules)."},"project_id":{"type":"integer","description":"Workspace to work in (from list_projects). Leave out for the default one."}},"required":["price_rule_id"],"additionalProperties":false},"annotations":{"title":"Delete Shopify price rule","readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":true}},{"name":"shopify_update_discount","title":"Update Shopify discount code","description":"Change a discount code's text.","inputSchema":{"type":"object","properties":{"price_rule_id":{"type":"integer","description":"The price rule id (from shopify_list_price_rules)."},"discount_id":{"type":"integer","description":"The discount code id (from shopify_list_discounts)."},"code":{"type":"string"},"project_id":{"type":"integer","description":"Workspace to work in (from list_projects). Leave out for the default one."}},"required":["price_rule_id","discount_id","code"],"additionalProperties":false},"annotations":{"title":"Update Shopify discount code","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"shopify_delete_discount","title":"Delete Shopify discount code","description":"Permanently delete a discount code. Held for the owner's approval unless they've turned that off.","inputSchema":{"type":"object","properties":{"price_rule_id":{"type":"integer","description":"The price rule id (from shopify_list_price_rules)."},"discount_id":{"type":"integer","description":"The discount code id (from shopify_list_discounts)."},"project_id":{"type":"integer","description":"Workspace to work in (from list_projects). Leave out for the default one."}},"required":["price_rule_id","discount_id"],"additionalProperties":false},"annotations":{"title":"Delete Shopify discount code","readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":true}},{"name":"google_ads_list_campaigns","title":"List Google Ads campaigns","description":"The Google Ads campaigns (not removed): status, type and daily budget.","inputSchema":{"type":"object","properties":{"project_id":{"type":"integer","description":"Workspace to work in (from list_projects). Leave out for the default one."}},"required":[],"additionalProperties":false},"annotations":{"title":"List Google Ads campaigns","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"google_ads_campaign_stats","title":"Get Google Ads campaign stats","description":"A campaign's impressions, clicks, spend, conversions and CTR.","inputSchema":{"type":"object","properties":{"campaign_resource":{"type":"string","description":"The campaign's resource name, e.g. 'customers/123/campaigns/456' (from google_ads_list_campaigns)."},"date_range":{"type":"string","description":"Default LAST_30_DAYS.","enum":["TODAY","LAST_7_DAYS","LAST_30_DAYS","THIS_MONTH"]},"project_id":{"type":"integer","description":"Workspace to work in (from list_projects). Leave out for the default one."}},"required":["campaign_resource"],"additionalProperties":false},"annotations":{"title":"Get Google Ads campaign stats","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"google_ads_create_campaign","title":"Create Google Ads campaign","description":"Create a Search or Display campaign with its daily budget. It starts paused. Held for the owner's approval unless they've turned that off.","inputSchema":{"type":"object","properties":{"name":{"type":"string"},"daily_budget_usd":{"type":"number","description":"Daily budget in US dollars."},"campaign_type":{"type":"string","description":"SEARCH or DISPLAY.","enum":["SEARCH","DISPLAY"]},"start_date":{"type":"string","description":"YYYYMMDD."},"end_date":{"type":"string","description":"YYYYMMDD; leave out for no end."},"project_id":{"type":"integer","description":"Workspace to work in (from list_projects). Leave out for the default one."}},"required":["name","daily_budget_usd","campaign_type","start_date"],"additionalProperties":false},"annotations":{"title":"Create Google Ads campaign","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"google_ads_create_ad_group","title":"Create Google Ads ad group","description":"Add an ad group, with its max cost per click, to a campaign. Held for the owner's approval unless they've turned that off.","inputSchema":{"type":"object","properties":{"campaign_resource":{"type":"string","description":"The campaign's resource name, e.g. 'customers/123/campaigns/456' (from google_ads_list_campaigns)."},"name":{"type":"string"},"cpc_bid_usd":{"type":"number","description":"Max cost per click in US dollars."},"ad_group_type":{"type":"string","description":"SEARCH_STANDARD (default) for search campaigns, DISPLAY_STANDARD for display.","enum":["SEARCH_STANDARD","DISPLAY_STANDARD"]},"project_id":{"type":"integer","description":"Workspace to work in (from list_projects). Leave out for the default one."}},"required":["campaign_resource","name","cpc_bid_usd"],"additionalProperties":false},"annotations":{"title":"Create Google Ads ad group","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"google_ads_create_search_ad","title":"Create Google search ad","description":"Add a responsive search ad to an ad group. Held for the owner's approval unless they've turned that off.","inputSchema":{"type":"object","properties":{"ad_group_resource":{"type":"string","description":"The ad group's resource name (from google_ads_create_ad_group)."},"final_url":{"type":"string","description":"The landing page."},"headlines":{"type":"array","items":{"type":"string"},"description":"3 to 15 headlines, each up to 30 characters."},"descriptions":{"type":"array","items":{"type":"string"},"description":"2 to 4 descriptions, each up to 90 characters."},"project_id":{"type":"integer","description":"Workspace to work in (from list_projects). Leave out for the default one."}},"required":["ad_group_resource","final_url","headlines","descriptions"],"additionalProperties":false},"annotations":{"title":"Create Google search ad","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"google_ads_create_display_ad","title":"Create Google display ad","description":"Add a responsive display ad to an ad group, with images from the media library's Photos folder. Held for the owner's approval unless they've turned that off.","inputSchema":{"type":"object","properties":{"ad_group_resource":{"type":"string","description":"The ad group's resource name (from google_ads_create_ad_group)."},"final_url":{"type":"string","description":"The landing page."},"headlines":{"type":"array","items":{"type":"string"},"description":"1 to 5 short headlines."},"long_headline":{"type":"string","description":"Up to 90 characters."},"descriptions":{"type":"array","items":{"type":"string"},"description":"1 to 5 descriptions, each up to 90 characters."},"business_name":{"type":"string"},"marketing_image":{"type":"string","description":"A landscape photo (1.91:1, e.g. 1200x628) by its name in Photos."},"square_marketing_image":{"type":"string","description":"A square photo (1:1, e.g. 1200x1200) by its name in Photos."},"logo_image":{"type":"string","description":"Optional square logo by its name in Photos."},"project_id":{"type":"integer","description":"Workspace to work in (from list_projects). Leave out for the default one."}},"required":["ad_group_resource","final_url","headlines","long_headline","descriptions","business_name","marketing_image","square_marketing_image"],"additionalProperties":false},"annotations":{"title":"Create Google display ad","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"google_ads_add_keywords","title":"Add Google Ads keywords","description":"Add keywords to an ad group. Held for the owner's approval unless they've turned that off.","inputSchema":{"type":"object","properties":{"ad_group_resource":{"type":"string","description":"The ad group's resource name (from google_ads_create_ad_group)."},"keywords":{"type":"array","items":{"type":"string"},"description":"The keywords."},"match_type":{"type":"string","description":"Default BROAD.","enum":["EXACT","PHRASE","BROAD"]},"project_id":{"type":"integer","description":"Workspace to work in (from list_projects). Leave out for the default one."}},"required":["ad_group_resource","keywords"],"additionalProperties":false},"annotations":{"title":"Add Google Ads keywords","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"google_ads_set_geo_targeting","title":"Set Google Ads location targeting","description":"Target a campaign at places by name, e.g. 'United States', 'Austin'. Held for the owner's approval unless they've turned that off.","inputSchema":{"type":"object","properties":{"campaign_resource":{"type":"string","description":"The campaign's resource name, e.g. 'customers/123/campaigns/456' (from google_ads_list_campaigns)."},"location_names":{"type":"array","items":{"type":"string"},"description":"Place names."},"project_id":{"type":"integer","description":"Workspace to work in (from list_projects). Leave out for the default one."}},"required":["campaign_resource","location_names"],"additionalProperties":false},"annotations":{"title":"Set Google Ads location targeting","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"google_ads_pause_campaign","title":"Pause Google Ads campaign","description":"Pause a campaign so it stops spending. Never needs approval.","inputSchema":{"type":"object","properties":{"campaign_resource":{"type":"string","description":"The campaign's resource name, e.g. 'customers/123/campaigns/456' (from google_ads_list_campaigns)."},"project_id":{"type":"integer","description":"Workspace to work in (from list_projects). Leave out for the default one."}},"required":["campaign_resource"],"additionalProperties":false},"annotations":{"title":"Pause Google Ads campaign","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"google_ads_enable_campaign","title":"Enable Google Ads campaign","description":"Switch a paused campaign on, so it starts spending. Held for the owner's approval unless they've turned that off.","inputSchema":{"type":"object","properties":{"campaign_resource":{"type":"string","description":"The campaign's resource name, e.g. 'customers/123/campaigns/456' (from google_ads_list_campaigns)."},"project_id":{"type":"integer","description":"Workspace to work in (from list_projects). Leave out for the default one."}},"required":["campaign_resource"],"additionalProperties":false},"annotations":{"title":"Enable Google Ads campaign","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"google_ads_enable_ads","title":"Enable Google Ads ads","description":"Switch on every paused ad in a campaign. Held for the owner's approval unless they've turned that off.","inputSchema":{"type":"object","properties":{"campaign_resource":{"type":"string","description":"The campaign's resource name, e.g. 'customers/123/campaigns/456' (from google_ads_list_campaigns)."},"project_id":{"type":"integer","description":"Workspace to work in (from list_projects). Leave out for the default one."}},"required":["campaign_resource"],"additionalProperties":false},"annotations":{"title":"Enable Google Ads ads","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"get_phone_setup","title":"Get phone setup","description":"The workspace's phone line: its number, voice, whether inbound calls are answered, what the voice is told when it answers, and the AI credits left for calls.","inputSchema":{"type":"object","properties":{"project_id":{"type":"integer","description":"Workspace to work in (from list_projects). Leave out for the default one."}},"required":[],"additionalProperties":false},"annotations":{"title":"Get phone setup","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"provision_phone_number","title":"Buy phone number","description":"Buy a local phone number for the workspace (US/Canada). Replaces an existing number (at most once every 30 days). Its monthly rental comes out of the AI credits, the first month now; refused when they can't cover it.","inputSchema":{"type":"object","properties":{"area_code":{"type":"string","description":"Three-digit area code, e.g. 415."},"project_id":{"type":"integer","description":"Workspace to work in (from list_projects). Leave out for the default one."}},"required":[],"additionalProperties":false},"annotations":{"title":"Buy phone number","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"release_phone_number","title":"Release phone number","description":"Give the workspace's number back. Calls to it stop being answered and the number can't be recovered.","inputSchema":{"type":"object","properties":{"project_id":{"type":"integer","description":"Workspace to work in (from list_projects). Leave out for the default one."}},"required":[],"additionalProperties":false},"annotations":{"title":"Release phone number","readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":true}},{"name":"place_call","title":"Place phone call","description":"Have Acrium's voice assistant phone someone from the workspace's number and hold the conversation from your brief. Returns right away; the transcript arrives in the attention queue when the call ends (or read it with get_call). Paid from AI credits; refused when they're used up.","inputSchema":{"type":"object","properties":{"to":{"type":"string","description":"Number to call, E.164, e.g. +15551234567."},"purpose":{"type":"string","description":"Why it's calling and what to get done, said at the start of the call. Write it as instructions to the voice, e.g. 'Confirm Tuesday's 3pm delivery and ask whether the side door is open.'"},"context":{"type":"string","description":"Background the voice may use but shouldn't read out: who this is, order details, what it may agree to."},"project_id":{"type":"integer","description":"Workspace to work in (from list_projects). Leave out for the default one."}},"required":["to","purpose"],"additionalProperties":false},"annotations":{"title":"Place phone call","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"list_calls","title":"List phone calls","description":"The workspace's phone calls, newest first, without transcripts.","inputSchema":{"type":"object","properties":{"fields":{"type":"array","items":{"type":"string","enum":["call_id","direction","peer_number","status","purpose","created_at","ended_at","duration_seconds","cost_usd","cost_credits","answered_by"]},"description":"Which fields to return. Leave out for the usual ones: call_id, direction, peer_number, status, created_at, duration_seconds, cost_credits."},"limit":{"type":"integer","description":"How many to return, newest first where there's an order (default 20).","minimum":1,"maximum":500},"project_id":{"type":"integer","description":"Workspace to work in (from list_projects). Leave out for the default one."}},"required":[],"additionalProperties":false},"annotations":{"title":"List phone calls","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"get_call","title":"Get phone call","description":"One call's status, transcript and cost. Leave out call_id for the latest call.","inputSchema":{"type":"object","properties":{"call_id":{"type":"string","description":"From list_calls, place_call or an attention item."},"project_id":{"type":"integer","description":"Workspace to work in (from list_projects). Leave out for the default one."}},"required":[],"additionalProperties":false},"annotations":{"title":"Get phone call","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"set_inbound_instructions","title":"Set inbound call instructions","description":"What the voice assistant should say and know when it answers the workspace's number: greeting details, hours, what to tell callers, what to take down for a follow-up. Replaces what was there; empty clears it. It also has the company description.","inputSchema":{"type":"object","properties":{"instructions":{"type":"string","description":"Plain instructions, up to 4,000 characters."},"project_id":{"type":"integer","description":"Workspace to work in (from list_projects). Leave out for the default one."}},"required":["instructions"],"additionalProperties":false},"annotations":{"title":"Set inbound call instructions","readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":false}}],"resources":[],"prompts":[]}