Integrations

Space MCP tools in the Integrations scope (integrations). Reach these with a wks_live_ key over space-mcp or space-api.

Tools in the integrations scope, callable over space-mcp (tools/call) or space-api (REST) with a wks_live_* key that grants integrations.

list_integrations

Scope: integrations:read

What this space can reach, and how to get more: on_in_this_space (connected accounts — mail, calendar, social, ads, bank — and your APIs with the calls each allows), owner_has_but_not_on_here (accounts that one tap turns on here), wakato_signs_in_to (every connector Wakato signs in to itself → request_connection), and the rule for anything else (→ request_integration with a key). Call it before saying something isn't connected or can't be.

request_connection

Scope: integrations:write

Connect something Wakato signs in to itself — Gmail, Microsoft Outlook, Google Calendar, a social account (Instagram, Facebook, X, LinkedIn, TikTok, YouTube, Pinterest, Threads, Bluesky, Reddit, Telegram, WhatsApp, Google Business…), an ads account (Meta, Google, LinkedIn, TikTok, Pinterest, X Ads) or a bank account. A card appears in this chat: if the person already has that account it is turned on here with one tap, otherwise the sign-in opens right in the chat and the new account is turned on in this space. You get a message when it's done. Use this instead of describing any page or menu. For any other service, use request_integration.

ParameterTypeRequiredDescription
connectorstringyesWhich one — a key from list_integrations → wakato_signs_in_to, e.g. gmail, google_calendar, instagram, metaads, bank.
purposestringyesOne sentence on the card: what you'll do with it. Required.

request_integration

Scope: integrations:write

Connect an API that Wakato does not sign in to itself — GitHub, Stripe, Shopify, Notion, HubSpot, Airtable, an internal service — with a KEY OR TOKEN the person pastes into a card in this chat. Nearly every service issues one even when it also has a 'sign in with' button (GitHub: a personal access token; Shopify: an Admin API access token), so look up what the service uses before saying it can't be done. You write the card: which API (base_url), how it authenticates, the exact calls you will make (actions, REQUIRED — nobody should hand over a key without seeing what it's for), the boxes to fill (credential_fields, one per value, each with a label, a help line saying what it is and where to find it, secret: false for a value that isn't secret such as a store address, an example, and a format the card checks softly as they paste), and a guide — the steps to get the key, with the page's https link. The person pastes into the card, never into the chat, and you never see the value. For something Wakato signs in to itself (list_integrations → wakato_signs_in_to: Gmail, Outlook, Google Calendar, social, ads, bank) use request_connection instead. Never tell anyone to go to a settings page.

ParameterTypeRequiredDescription
namestringyesThe service, as a person would name it — e.g. GitHub.
base_urlstringyesAPI root, https only — e.g. https://api.github.com. When the address depends on the person's account, name a field in braces: https://{store_domain}/admin/api/2025-07 — that field must be in credential_fields with secret: false; the typed value is filled in and checked at approval.
auth_typeapi_key | bearer_token | custom_header | basic_authHow the key is sent. bearer_token = 'Authorization: Bearer <token>' (GitHub, Notion, HubSpot, Airtable…). api_key / custom_header = in a named header (set auth_header). basic_auth = username + password (Stripe: the secret key as username, empty password → prefer bearer_token for Stripe). Default api_key.
auth_headerstringFor api_key / custom_header: the header that carries the key, e.g. X-Shopify-Access-Token. Default X-API-Key.
actionsobject[]yesREQUIRED. The calls you intend to make: [{ name, method, path, description }]. Ask for the narrowest set that does the job — a reviewer seeing 'everything' will decline.
credential_fieldsobject[]One box per value the person must paste — LABELS AND HINTS ONLY, never a value: [{ key, label, help, secret?, example?, format?: { starts_with?: string[], min_length?, max_length?, kind?: 'text'|'domain'|'email'|'url'|'digits', mistakes?: [{ starts_with, say }] }, optional? }]. help = what it is and where it appears ('Starts with shpat_. Shown once, right after you install the app.'). mistakes names a look-alike they might paste by accident and the sentence that says so ({ starts_with: 'shpss_', say: "That's the app's secret key, not the access token." }). The key/token field may use any key — it is filed under the name the auth type needs. Omit for a single default box.
guideobjectHow to get the key(s), shown on the card above the boxes: { steps: string[] (≤8 short steps, in the order they click, naming the permissions to tick — the narrowest that works), url: 'https://…' (the exact page where the key is made), minutes?: number }. Write it from the service's current docs; check them if unsure.
descriptionstringWhat this integration is for.
categorystringGrouping, e.g. development, crm, payments.
instructionsstringNotes stored with the integration (rate limits, quirks).
purposestringWhy you need it — shown on the card. Be specific; it's how they decide.

On this page