MCP, référence des tools

Le serveur MCP expose 196 tools pour Claude Desktop / Code / web. Tu connectes le serveur en une commande depuis /settings/mcp dans l'app. Token au niveau workspace ou accès plateforme pour les super-admins. Voir aussi les recettes MCP.

Plateforme (36) Workspace (160)

Tools plateforme

Opérations cross-workspace. Super-admin uniquement.

agent.*

  • agent.provision_client_complete WRITE-safe AGENT

    Provision a complete Kernel client workspace: workspace + admin user + Stripe Connect onboarding link + seed data + onboarding email. Returns the new workspace details. Idempotent on slug.

    scope: *
  • agent.archive_workspace DESTRUCTIVE AGENT

    Archive workspace cleanly: dry-run export, cancel Stripe subscription, soft-archive in DB, notify owner. Multi-step with partial-failure surfacing.

    scope: *

platform.*

  • list_workspaces READ

    List all workspaces with billing + member count + last activity. Filter by status (active/archived/past_due/comped/all), plan, or text query on name/slug.

    scope: *
  • get_workspace READ

    Get full workspace detail by slug: owner, billing, Stripe Connect, domains, theme, member count.

    scope: *
  • list_members READ

    List workspace members. If workspace_id is provided, scoped to that workspace; otherwise returns all members across workspaces.

    scope: *
  • get_member READ

    Get a member by user_id + workspace_id, with profile data joined.

    scope: *
  • list_audit READ

    List recent kernel_activity entries across or within a workspace. since: ISO date (default last 24h).

    scope: *
  • get_billing_overview READ

    Aggregate billing metrics across all workspaces: MRR, ARR, active subscriptions count, past_due count, comped count.

    scope: *
  • list_domains READ

    List custom domains across workspaces.

    scope: *
  • list_themes READ

    List active workspace themes.

    scope: *
  • list_integrations READ

    List per-workspace integrations (Stripe Connect, Google, Meta, LinkedIn, TikTok).

    scope: *
  • get_system_health READ

    Aggregate system health: pending Apify, failed studio publish, pending JIT approvals, recent error count.

    scope: *
  • list_plans READ

    List all billing plans (id, name, monthly_price_cents, currency).

    scope: *
  • list_billing_accounts READ

    List Billing Accounts (1 user → 1 BA → N workspaces). Each BA owns one Stripe customer + card and may pay for multiple workspaces. Filter by has_card (BAs with a Stripe customer attached) or text query on owner email.

    scope: *
  • get_billing_account READ

    Get a Billing Account by id or by owner_user_id. Returns the BA row + the Stripe payment method (brand/last4/exp) + every workspace billed by this BA with plan + subscription status.

    scope: *
  • list_waitlist READ

    List signups in the waitlist (status, source, created_at).

    scope: *
  • search_global READ

    Cross-workspace text search across workspaces, members, contacts (top 5 of each).

    scope: *
  • create_workspace WRITE-safe

    Create a new workspace via create_workspace_for_owner_v2_with_domains RPC. Requires existing owner user_id.

    scope: *
  • update_workspace_identity WRITE-safe

    Update workspace name, brand_color, icon_url, logo_url.

    scope: *
  • set_workspace_plan WRITE-safe

    Change the billing plan for a workspace (updates workspaces.plan only; Stripe subscription change is separate).

    scope: *
  • add_member WRITE-safe

    Invite an existing user as a member of a workspace.

    scope: *
  • update_member_role WRITE-safe

    Change a member role within a workspace.

    scope: *
  • set_platform_flag WRITE-safe

    Set a global platform feature flag (Hypervisor-scoped). Affects ALL workspaces.

    scope: *
  • connect_integration WRITE-safe

    Mark a workspace integration as connected (stores credentials elsewhere — this only flips status).

    scope: *
  • add_domain WRITE-safe

    Add a custom domain to a workspace (unverified until DNS check passes).

    scope: *
  • archive_workspace DESTRUCTIVE

    Soft-archive a workspace (sets archived_at). Reversible. Stripe subscription stays active until manually cancelled.

    scope: *
  • delete_workspace DESTRUCTIVE

    HARD delete a workspace via cascade. Irreversible. Use archive_workspace first.

    scope: *
  • delete_member DESTRUCTIVE

    Remove a member from a workspace. Their auth.user row is preserved.

    scope: *
  • purge_audit_older_than DESTRUCTIVE

    Hard-delete kernel_activity rows older than the given ISO date. Cannot be undone.

    scope: *
  • force_billing_cancel DESTRUCTIVE

    Force-mark a workspace billing as cancelled (workspace_billing.stripe_subscription_status = canceled). Stripe must be cancelled separately.

    scope: *
  • revoke_token DESTRUCTIVE

    Revoke an MCP token by id. Sets revoked_at. Subsequent calls return 401.

    scope: *
  • replay_webhook DESTRUCTIVE

    Enqueue a webhook replay for a workspace + provider (Stripe/Meta/...).

    scope: *
  • platform.media.workspace_stats READ

    Cross-workspace media library usage (count, archived, bytes, AI generated, quota, last upload).

    scope: *
  • platform.media.orphans READ

    List media items with zero recorded usage older than N days. Sorted by size desc.

    scope: *
  • platform.media.set_quota WRITE-safe

    Set storage_quota_bytes on a workspace. Pass null to remove the quota (unlimited).

    scope: *
  • platform.media.purge_workspace DESTRUCTIVE

    Hard-delete all media_items + storage objects archived more than N days ago for a given workspace. Irreversible.

    scope: *

Tools workspace

Scopés à un seul workspace via token OAuth.

ads.*

  • ads.campaigns.list READ

    List Ads campaigns.

    scope: ads:read
  • ads.campaigns.get_perf READ

    Get performance metrics for an Ads campaign (spend, impressions, clicks, leads).

    scope: ads:read
  • ads.lead_funnel READ

    End-to-end lead-quality funnel for the workspace ads over a configurable window. Returns the aggregated counts at each step: leads submitted, calls booked, contacts who paid, and total revenue in cents. Lets an agent answer "what's my ads ROI" without poking at each table.

    scope: ads:read
  • ads.launches.list READ

    List multi-platform launch groups. Each launch fanned a single brief into 2-4 platform campaigns. Returns the launch_group_id, top-level name, abstract objective, platform count, and total daily budget across platforms.

    scope: ads:read
  • ads.launches.get READ

    Get a single multi-platform launch group with its sub-campaigns + 7-day aggregated metrics (impressions, clicks, spend, conversions) across all platforms.

    scope: ads:read
  • ads.campaign.update WRITE-safe

    Update Ads campaign fields.

    scope: ads:write
  • ads.campaign.pause WRITE-safe

    Pause an Ads campaign.

    scope: ads:write
  • ads.campaign.resume WRITE-safe

    Resume a paused Ads campaign.

    scope: ads:write
  • ads.campaign.delete DESTRUCTIVE

    Delete an Ads campaign.

    scope: ads:delete

agent.*

  • agent.weekly_studio_publish WRITE-safe AGENT

    Publish all approved Studio drafts to the requested channels (LinkedIn / TikTok / Instagram / YouTube). Limits per channel. Continues on partial failure and returns per-channel breakdown.

    scope: *
  • agent.process_inbound_lead WRITE-safe AGENT

    Process an inbound lead (LinkedIn URL or email): enrich via Apollo + Apify, upsert contact, create opportunity deal, run strategic audit, enroll in welcome sequence. Continues on best-effort failures (e.g., Apify timeout).

    scope: *
  • agent.monthly_invoice_run WRITE-safe AGENT

    Generate + send recurring monthly invoices for all active retainer clients in a workspace. Idempotent on (workspace_id, billing_month). dry_run=true returns the list without creating invoices.

    scope: *
  • agent.send_audit_recap WRITE-safe AGENT

    Send the audit results summary to a contact via email + log in 360 timeline.

    scope: *
  • agent.relance_impayes WRITE-safe AGENT

    For each overdue invoice : classify severity (1=light, 2=medium, 3=collections), pick template, send relance email.

    scope: *
  • agent.bulk_enrich_contacts WRITE-safe AGENT

    Enrich contacts in bulk (Apify queue + Apollo). Filter by lifecycle_stage or list of ids.

    scope: *
  • agent.replay_failed_dms WRITE-safe AGENT

    Re-enqueue failed inbox_outbound_messages for retry (with exponential backoff schedule).

    scope: *
  • agent.daily_briefing READ AGENT

    Aggregate yesterday : new contacts/deals/publications/payments/inbox. Returns markdown briefing.

    scope: *
  • agent.send_dm_in_voice WRITE-safe AGENT

    Draft a DM in the user's voice profile (from voice_corpus) and send via inbox.

    scope: *

analytics.*

  • analytics.summary READ

    Cross-channel business summary over a window: ads spend + lead funnel (leads → calls → revenue) + booking outcomes + total revenue. Returns derived ratios (CPL, CAC, close rate, ROAS, blended ROI). The one-call tool to answer 'comment tourne le business ce mois'.

    scope: analytics:read

api_keys.*

  • api_keys.list READ

    List API keys (fos_sk_live_...) for the current workspace. Returns metadata only — plaintext tokens are never readable after creation.

    scope: api_keys:read
  • api_keys.create WRITE-safe

    Create a long-lived API key for the current workspace. The plaintext token is returned ONCE in this response — store it immediately. Scopes default to ["read:*"]; pass ["*"] for full access.

    scope: api_keys:write
  • api_keys.revoke DESTRUCTIVE

    Revoke an API key by id. Sets revoked_at = now. Subsequent calls with the revoked token return 401. Idempotent.

    scope: api_keys:write

billing.*

  • billing.get_subscription READ

    Get the current Kernel SaaS subscription state for this workspace: plan, status, trial_end, period end, cancel_at_period_end.

    scope: billing:read
  • billing.get_usage READ

    Get current-period usage summary (service, included quota, used, estimated overage cost) for this workspace.

    scope: billing:read
  • billing.get_account READ

    Get the Billing Account paying for this workspace (1 user → 1 BA → N workspaces). Returns owner, Stripe customer, payment method (brand/last4/exp). The cross-workspace list of workspaces billed by the same BA is only returned to the BA owner (viewer_is_owner=true); guests see only the current workspace.

    scope: billing:read
  • billing.upgrade_checkout WRITE-safe

    Create a Stripe Checkout session to upgrade this workspace to Pro (14-day trial, CB required). Returns the hosted Checkout URL — open it in a browser to complete the payment.

    scope: billing:write
  • billing.open_portal WRITE-safe

    Open a Stripe Customer Portal session for this workspace (update card, change plan, cancel). Returns the portal URL.

    scope: billing:write
  • billing.open_user_portal WRITE-safe

    Open a Stripe Customer Portal session for the current user's Billing Account (cross-workspace : every subscription paid by the same card is manageable from one portal). Use this when the user wants to update their card once for all workspaces they own.

    scope: billing:write

booking.*

  • booking.revenue_attribution READ

    Returns revenue attribution for bookings over a period: total bookings, completed, cancelled, no-show, attributed revenue from contacts who had a booking + a succeeded transaction in the window. The killer business metric for a freelance dev who lives on calls → sales.

    scope: booking:read
  • booking.event_types.list READ

    List bookable event types in the workspace.

    scope: booking:read
  • booking.bookings.list READ

    List bookings (filterable by status, since).

    scope: booking:read
  • booking.bookings.list_detailed READ

    Paginated detailed list of bookings with invitee name / email / timezone / linked event type / host. Use this when the simple list does not give enough context.

    scope: booking:read
  • booking.event_type.update WRITE-safe

    Update a booking event type (name, duration, active state).

    scope: booking:write

brand.*

  • brand.save_theme_wizard WRITE-safe

    Save the workspace's design system in one call: vibe preset + accent color + typography + radius + density. Compiles the full token bundle (color/font/radius/shadow + layout) and writes it to workspace_theme. Mirrors the accent into workspaces.brand_color.

    scope: settings:write

contacts.*

  • contacts.list READ

    List contacts in the current workspace, filterable by lifecycle_stage / source / text query.

    scope: contacts:read
  • contacts.get READ

    Get a contact by id (must belong to current workspace).

    scope: contacts:read
  • contacts.get_360 READ

    Prospect 360 view: contact + recent conversations + bookings + audits + deals + payments.

    scope: contacts:read
  • contacts.search READ

    Search contacts by email/name/linkedin substring.

    scope: contacts:read
  • contacts.paying_customers READ

    Lists contacts who paid in the period, sorted by total amount desc. Joins prospects.email with transactions.email to recover the contact_id when present. Useful for an agent answering 'qui m'a acheté' or for triggering follow-up workflows.

    scope: contacts:read
  • contacts.upsert WRITE-safe

    Create or update a contact (by id, email, or linkedin_url).

    scope: contacts:write
  • contacts.enrich WRITE-safe

    Queue an Apify enrichment for a contact (LinkedIn scrape) + Apollo lookup.

    scope: contacts:write
  • contacts.tag WRITE-safe

    Add a tag to a contact.

    scope: contacts:write
  • contacts.delete DESTRUCTIVE

    Hard-delete a contact and all related data. Irreversible.

    scope: contacts:delete

conversations.*

  • conversations.transcripts.list READ

    List Fathom conversation transcripts.

    scope: conversations:read
  • conversations.transcripts.get READ

    Get full transcript content by id.

    scope: conversations:read
  • conversations.note.create WRITE-safe

    Add a note to a conversation transcript.

    scope: conversations:write

counsel.*

  • counsel.quotes.list READ

    List Counsel quotes (devis).

    scope: counsel:read
  • counsel.invoices.list READ

    List Counsel invoices (factures).

    scope: counsel:read
  • counsel.revenue.summary READ

    Total revenue from succeeded transactions over a window. Breaks down by week and gives the top contributing customers (email + total). Lets an agent answer 'combien j'ai encaissé ce mois' in one call.

    scope: counsel:read
  • counsel.quote.create WRITE-safe

    Create a Counsel quote (devis).

    scope: counsel:write
  • counsel.quote.send WRITE-safe

    Send a Counsel quote to the contact (status → sent).

    scope: counsel:write
  • counsel.invoice.create WRITE-safe

    Create a Counsel invoice (facture).

    scope: counsel:write
  • counsel.invoice.send WRITE-safe

    Send a Counsel invoice (status → sent).

    scope: counsel:write
  • counsel.invoice.cancel DESTRUCTIVE

    Cancel a Counsel invoice (status → cancelled).

    scope: counsel:delete
  • counsel.payment.refund DESTRUCTIVE

    Refund a Counsel invoice payment via Stripe.

    scope: counsel:refund

crm.*

  • crm.segments.list READ

    List CRM segments in the current workspace.

    scope: contacts:read
  • crm.segments.get READ

    Get a CRM segment with its member prospects.

    scope: contacts:read
  • crm.segments.create WRITE-safe

    Create a new CRM segment (manual membership).

    scope: contacts:write
  • crm.segments.add_members WRITE-safe

    Add contacts to a CRM segment (idempotent — duplicates ignored).

    scope: contacts:write
  • crm.segments.remove_members WRITE-safe

    Remove contacts from a CRM segment.

    scope: contacts:write
  • crm.segments.delete WRITE-safe

    Delete a CRM segment (membership rows cascade).

    scope: contacts:write

deals.*

  • deals.list READ

    List deals in the current workspace, filterable by stage.

    scope: deals:read
  • deals.get READ

    Get a deal by id.

    scope: deals:read
  • deals.create WRITE-safe

    Create a new deal for a contact.

    scope: deals:write
  • deals.update WRITE-safe

    Update a deal (any field).

    scope: deals:write
  • deals.move_stage WRITE-safe

    Move a deal to a new pipeline stage.

    scope: deals:write
  • deals.delete DESTRUCTIVE

    Delete a deal.

    scope: deals:delete

email.*

  • email.templates.list READ

    List every system email template (transactional + marketing) merged with this workspace's overrides. Shows key, label, category, whether it is customised, and whether it is enabled.

    scope: email:read
  • email.templates.get READ

    Get one effective email template (subject + HTML body, override or registry default) by key, optionally for a locale (fr/en).

    scope: email:read
  • email.campaigns.list READ

    List the workspace email campaigns with their status and headline stats (enrolled/sent/opened/replied).

    scope: campaigns:read
  • email.campaigns.get READ

    Get one email campaign by id with its full stats and audience rules.

    scope: campaigns:read
  • email.templates.update WRITE-safe

    Create or update this workspace's override of an email template. Subject + bodyHtml may use {{variable}} placeholders (see email.templates.get for the allowed variables). Set enabled=false to stop sending this email entirely.

    scope: email:write
  • email.templates.reset WRITE-safe

    Remove this workspace's override of a template (for a locale), reverting to the registry default.

    scope: email:write
  • email.send_test WRITE-safe

    Render an email template with the provided sample variables and send it to a test address. Uses the workspace verified sender.

    scope: email:write
  • email.campaigns.create WRITE-safe

    Create a DRAFT email campaign (no emails are sent). Pick an existing outbound sequence and optional audience rules. Use email.campaigns.launch to enroll the audience and start sending.

    scope: campaigns:write
  • email.campaigns.pause WRITE-safe

    Pause, resume, or finish a campaign. action='pause' (active→paused), 'resume' (paused→active), 'done' (active|paused→done). The outbound runner checks status before each send.

    scope: campaigns:write
  • email.campaigns.launch DESTRUCTIVE

    Activate a campaign and enroll the matching audience into its outbound sequence. REAL emails will be sent by the outbound runner. Idempotent: re-running enrolls newly matching prospects. Requires approval.

    scope: campaigns:write

entitlements.*

  • entitlements.list READ

    List the resolved entitlements (modules, features, limits) for this workspace based on its current plan + comped state.

    scope: billing:read
  • entitlements.check READ

    Check whether the workspace can access a feature (module.* or feature.*). Returns allowed + reason + required_plan when denied.

    scope: billing:read

inbox.*

  • inbox.threads.list READ

    List Inbox conversation threads (DMs / comments).

    scope: inbox:read
  • inbox.get_agent_modes READ

    Get the per-channel DM agent mode (off | suggested | auto) for Instagram, WhatsApp, LinkedIn, Messenger. LinkedIn 'auto' is forbidden (TOS) and always reported as 'suggested' or 'off'. Also returns the framework, voice prompt, and booking config. Scoped to the calling workspace — returns defaults (all 'off') if no settings row exists for this workspace yet.

    scope: inbox:read
  • inbox.send_dm WRITE-safe

    Send a direct message reply in an Inbox thread.

    scope: inbox:write
  • inbox.set_agent_mode WRITE-safe

    Set the DM agent mode for a single channel (instagram_dm | whatsapp | linkedin | messenger). Modes: off | suggested | auto. LinkedIn 'auto' is rejected (TOS Microsoft — risk of account ban) and clamped to 'suggested'. The legacy global dm_agent_mode is kept in sync as max(IG/WA/Messenger). Scoped to the calling workspace — refuses if no settings row exists for this workspace yet.

    scope: inbox:write

mcp.*

  • mcp.tools.list READ

    Self-introspection : returns the catalog of all MCP tools this workspace can call, optionally filtered by module prefix or tier. Useful when an agent needs to discover what actions are available before planning a multi-step workflow.

    scope: mcp:read

media.*

  • media.list READ

    List media items in the current workspace with optional filters (kind, collection, tags, source). Paginated by created_at cursor.

    scope: media:read
  • media.search READ

    Full-text search across alt_text, caption, and generation_prompt. Same filters as media.list.

    scope: media:read
  • media.get READ

    Get a single media item with a fresh signed URL (TTL 1h) or public URL for public assets.

    scope: media:read
  • media.lineage READ

    Return parents (refs used to generate this image) and children (images generated from it).

    scope: media:read
  • media.usages READ

    List entities (pages, drafts, ad creatives, etc.) that reference this media item.

    scope: media:read
  • media.upload WRITE-safe

    Upload a media item to the workspace library from base64 data. Auto-dedup on checksum. Returns the persisted row.

    scope: media:write
  • media.tag WRITE-safe

    Add/remove tags, change collection, update alt-text or caption on a media item.

    scope: media:write
  • media.record_usage WRITE-safe

    Record that an entity (page, draft, creative, …) references this media item. Idempotent on (media, entity, field).

    scope: media:write
  • media.archive WRITE-safe

    Soft-archive a media item (sets archived_at). Reversible.

    scope: media:write
  • media.delete DESTRUCTIVE

    Hard-delete a media item (DB row + storage bytes). Irreversible. Requires JIT approval.

    scope: media:delete

members_app.*

  • members_app.overview READ

    Snapshot of the current members-app config for the workspace: active domain (kind=members), count of enabled features, count of menu items.

    scope: members_app:read
  • members_app.features.list READ

    Full list of member-app feature toggles (registry + workspace override). Each entry: key, label, href, default_enabled, enabled.

    scope: members_app:read
  • members_app.menu.list READ

    List the custom menu items configured for the member app navigation (handle="members"). Returns id, label, url, position, target.

    scope: members_app:read
  • members_app.features.toggle WRITE-safe

    Enable or disable a member-app feature for the workspace. Stores an override only when it differs from the registry default (otherwise the row is removed).

    scope: members_app:write
  • members_app.menu.add WRITE-safe

    Append a new menu entry to the member-app navigation. Auto-positions at the end.

    scope: members_app:write
  • members_app.menu.remove WRITE-safe

    Delete a menu item by id (must belong to the current workspace).

    scope: members_app:write
  • members_app.appearance.set_mode WRITE-safe

    Set the theme mode used by the member app: light, dark, or auto.

    scope: members_app:write

pages.*

  • pages.list READ

    List CMS pages for this workspace.

    scope: pages:read
  • pages.list_templates READ

    List the curated page templates available for pages.create_from_template (id, name, description, suggested slug/title, block count).

    scope: pages:read
  • pages.create_draft WRITE-safe

    Create a new CMS page in draft status.

    scope: pages:write
  • pages.publish WRITE-safe

    Publish a CMS page (status → published, published_at = now).

    scope: pages:write
  • pages.create_from_template WRITE-safe

    Create a new draft page from one of the 5 curated templates (landing-coaching, about, pricing-3-tiers, contact, blog-post). Returns the new page id + blocks_count. Use pages.list_templates first to see available ids.

    scope: pages:write
  • pages.generate_from_prompt WRITE-safe

    Create a new draft page by asking Claude to generate 6-12 blocks from a natural-language prompt. The same generator the editor Mode IA uses. Returns the new page id + blocks_count.

    scope: pages:write
  • pages.delete DESTRUCTIVE

    Delete a CMS page.

    scope: pages:delete

products.*

  • products.list READ

    List products / offers in the workspace (optionally filter by active state).

    scope: products:read
  • products.get READ

    Get a single product with its detail counters (modules, files, active purchases).

    scope: products:read
  • products.files.list READ

    List downloadable files attached to a product.

    scope: products:read
  • products.set_active WRITE-safe

    Activate or deactivate (archive) a product.

    scope: products:write

programme.*

  • programme.modules.list READ

    List curriculum modules for a product (programme).

    scope: programme:read
  • programme.lessons.list READ

    List lessons inside a curriculum module.

    scope: programme:read
  • programme.module.set_published WRITE-safe

    Publish or unpublish a curriculum module.

    scope: programme:write
  • programme.lesson.set_published WRITE-safe

    Publish or unpublish a curriculum lesson.

    scope: programme:write

studio.*

  • studio.drafts.list READ

    List Studio drafts (content pieces). Filter by status / target_platform.

    scope: studio:read
  • studio.drafts.get READ

    Get a Studio draft by id (full content).

    scope: studio:read
  • studio.publications.list READ

    List Studio publications (drafts that have been scheduled or already pushed to a channel). Each row carries the scheduled_at / published_at / publish_error fields so an agent can audit what is live vs queued vs failed.

    scope: studio:read
  • studio.ideas.list READ

    List Studio ideas (upstream of drafts). Each idea has a title, hook, angle, status and score. Useful when a content agent needs the next batch of inspirations to turn into drafts.

    scope: studio:read
  • studio.seo_briefs.list READ

    List SEO briefs (keyword + search intent + target word count). Used by content agents to plan articles aligned with the workspace SEO strategy.

    scope: studio:read
  • studio.draft.approval_state READ

    Check whether a draft is approved for autopilot publishing, and by whom / when. Returns null if the draft does not exist or is not yet reviewed.

    scope: studio:read
  • studio.draft.lineage READ

    Resolve where a draft comes from : the competitor post, decoded pattern, and / or source draft that inspired it. Helps an agent retrace why a draft was generated before iterating.

    scope: studio:read
  • studio.draft.virality READ

    Latest virality score for a Studio entity (draft, idea, publication). Returns the Gemini-computed predicted score plus the reasoning breakdown.

    scope: studio:read
  • studio.inspiration_packs.list READ

    List inspiration packs (competitor post + decoded structure) available for the workspace to remix into new drafts.

    scope: studio:read
  • studio.draft.create WRITE-safe

    Create a new Studio draft.

    scope: studio:write
  • studio.draft.update WRITE-safe

    Update Studio draft fields.

    scope: studio:write
  • studio.draft.approve WRITE-safe

    Mark a Studio draft as approved-for-publish (publish_approved_at = now).

    scope: studio:write
  • studio.draft.unapprove WRITE-safe

    Revoke the publish approval on a Studio draft. Use this when an agent or the user spots a problem after approval and wants to block the next autopilot cycle.

    scope: studio:write
  • studio.draft.archive WRITE-safe

    Move a Studio draft to the archive (soft-hide from default lists). Reversible : the row stays in DB. Prefer this to delete unless the draft is junk.

    scope: studio:write
  • studio.idea.archive WRITE-safe

    Archive a Studio idea so it stops appearing in the active ideation pipeline. Reversible.

    scope: studio:write
  • studio.draft.delete DESTRUCTIVE

    Delete a Studio draft.

    scope: studio:delete
  • studio.publication.delete DESTRUCTIVE

    Delete a Studio publication record (channel push history). Does not retract anything from the actual channel ; only removes the row from the workspace ledger.

    scope: studio:delete

team.*

  • team.list READ

    List workspace team members (workspace_members + profile join). Each row carries user_id, role (owner / admin / staff / member), status (active / invited / suspended), joined_at.

    scope: team:read
  • team.get READ

    Get a single workspace member with their profile (display name, avatar, email). Returns null if the user is not a member of the workspace.

    scope: team:read
  • team.audit_log READ

    Workspace audit log : who did what (login, role change, integration connect, etc.). Filter by event type or recency.

    scope: team:read
  • team.integrations.list READ

    List third-party integrations connected to the workspace (Stripe, Google, Meta, LinkedIn, TikTok, etc.) with their connection state.

    scope: team:read

voice.*

  • voice.list_calls READ

    List recent voice calls in the current workspace. Returns id, direction, status, duration, prospect_id, disposition slug, created_at.

    scope: voice:read
  • voice.get_call_detail READ

    Get the full detail of a single voice call: call row, recording metadata, transcript summary, segments, score (if Tier 3 enabled).

    scope: voice:read
  • voice.list_call_lists READ

    List call lists in the current workspace with progress counts (total / completed / positive).

    scope: voice:read
  • voice.start_call WRITE-safe

    Pre-create a voice_calls row so a client (browser dialer or AI Voice Agent) can initiate a call. Returns the callId + caller-id E.164. Does NOT actually dial — the dialing is done by the client via Twilio Voice JS SDK or by the AI Voice Agent provider.

    scope: voice:write
  • voice.enrich_prospect_phone WRITE-safe

    Enrich a prospect (or arbitrary contact data) with phone numbers via Dropcontact. Optionally writes the best phone back to the prospects row when prospect_id is provided. Costs 1 Dropcontact credit per row enriched.

    scope: voice:write
  • voice.add_to_dnc WRITE-safe

    Add a phone number to the workspace Do-Not-Call list. The number is blocked pre-dial across the queue runner, MCP voice.start_call, and AI Voice Agent campaigns.

    scope: voice:write

webinaires.*

  • webinaires.list READ

    List webinars in the workspace (featured first, then by scheduled date).

    scope: webinars:read
  • webinaires.get READ

    Get a single webinar by id.

    scope: webinars:read
  • webinaires.set_featured WRITE-safe

    Mark a webinar as the featured one (unfeatures the others).

    scope: webinars:write

workbench.*

  • workbench.tasks.list READ

    List Workbench tasks.

    scope: workbench:read
  • workbench.projects.list READ

    List Workbench projects.

    scope: workbench:read
  • workbench.milestones.list READ

    List Workbench milestones with progress + due date. Useful when an agent needs the next deliverables on a project before assigning new tasks.

    scope: workbench:read
  • workbench.kpis READ

    Workbench cockpit KPIs : tasks done in the last 7d (vs prior 7d), currently open / overdue / blocked counts, and the daily completion sparkline.

    scope: workbench:read
  • workbench.focus_tasks.list READ

    List the tasks currently assigned to the caller and still open (todo / in_progress / blocked). The user "focus list" — what the operator should do today.

    scope: workbench:read
  • workbench.active_projects READ

    List active projects with their cockpit data (color, deadline, owner, status). Trimmed to what the dashboard widget shows.

    scope: workbench:read
  • workbench.workload_heatmap READ

    Team workload heatmap : open task count per assignee per day for the next ~14 days. Used to spot overloads before assigning new work.

    scope: workbench:read
  • workbench.recent_activity READ

    Recent task / project / milestone events in the Workbench audit log (creation, status change, assignment, delete) over the last 24 hours.

    scope: workbench:read
  • workbench.task.create WRITE-safe

    Create a new Workbench task.

    scope: workbench:write
  • workbench.task.update WRITE-safe

    Update a Workbench task.

    scope: workbench:write
  • workbench.task.assign WRITE-safe

    Assign a Workbench task to a user.

    scope: workbench:write
  • workbench.task.update_status WRITE-safe

    Quick status change on a Workbench task (todo / in_progress / blocked / done / cancelled). Auto-sets completed_at when status becomes done, clears it otherwise. Cheaper than the full update tool when only the status changes.

    scope: workbench:write
  • workbench.task.follow_up WRITE-safe

    Create a follow-up task linked to another entity (e.g. after a Voice call : a task linked to the prospect with a due date and priority).

    scope: workbench:write
  • workbench.task.delete DESTRUCTIVE

    Delete a Workbench task.

    scope: workbench:delete