Spoki MCP server
60 operations0 webhooks
WhatsApp Business platform for contacts, message templates, campaigns, tickets and automations.
Try Spoki with your agent
Connect Spoki, then paste this into Claude, ChatGPT or Cursor. For ideas from other apps, see the use cases.
Using Corsair, show me what you can do in Spoki on my account, then run one read-only example and show me the result.
Spoki tools and triggers
Tools are what your agent can do in Spoki through Corsair's MCP server. Triggers are the Spoki events a routine can start from.
Contacts
- Add OperatorWrite
Assign an operator to a contact
contacts.addOperator
- Create Or UpdateWrite
Create or update a contact by phone
contacts.createOrUpdate
- DeleteDestructive
Delete a contact
contacts.delete
- ListRead-only
List contacts
contacts.list
- Remove OperatorWrite
Remove an operator from a contact
contacts.removeOperator
- RetrieveRead-only
Retrieve a contact
contacts.retrieve
- Sync BulkWrite
Bulk sync contacts
contacts.syncBulk
- UpdateWrite
Update a contact
contacts.update
Lists
- CreateWrite
Create a contact list
lists.create
- DeleteDestructive
Delete a contact list
lists.delete
- ListRead-only
List contact lists
lists.list
- Remove All ContactsWrite
Remove all contacts from a list
lists.removeAllContacts
- Remove ContactsWrite
Remove contacts from a list
lists.removeContacts
- RetrieveRead-only
Retrieve a contact list
lists.retrieve
- Sync ContactsWrite
Sync contacts into a list
lists.syncContacts
Roles
- Add Service UserWrite
Add a service user
roles.addServiceUser
- Check Private KeyRead-only
Check whether a role has a private key
roles.checkPrivateKey
- DeleteDestructive
Delete a role
roles.delete
- Generate Private KeyWrite
Generate a role private key
roles.generatePrivateKey
- ListRead-only
List roles
roles.list
- RetrieveRead-only
Retrieve a role
roles.retrieve
- UpdateWrite
Update a role
roles.update
Templates
- CloneWrite
Clone a template
templates.clone
- CreateWrite
Create a WhatsApp template
templates.create
- DeleteDestructive
Delete a WhatsApp template
templates.delete
- ListRead-only
List templates
templates.list
- RetrieveRead-only
Retrieve a template
templates.retrieve
- Revert To DraftWrite
Revert a template to draft
templates.revertToDraft
- UpdateWrite
Update a WhatsApp template
templates.update
Accounts
- Create Onboarding LinkWrite
Create an account onboarding link
accounts.createOnboardingLink
- Get AccountRead-only
Retrieve a Spoki account
accounts.getAccount
- Get Account By PhoneRead-only
Retrieve a Spoki account by phone
accounts.getAccountByPhone
- Get Current ReportRead-only
Get the current account report
accounts.getCurrentReport
- List AccountsRead-only
List Spoki WhatsApp accounts
accounts.listAccounts
Custom Fields
- CreateWrite
Create a custom field
customFields.create
- DeleteDestructive
Delete a custom field
customFields.delete
- ListRead-only
List custom fields
customFields.list
- RetrieveRead-only
Retrieve a custom field
customFields.retrieve
- UpdateWrite
Update a custom field
customFields.update
Media
- CreateWrite
Create a media file
media.create
- DeleteDestructive
Delete a media file
media.delete
- ListRead-only
List media files
media.list
- RetrieveRead-only
Retrieve a media file
media.retrieve
- UpdateWrite
Update a media file
media.update
Tickets
- CreateWrite
Create a ticket
tickets.create
- DeleteDestructive
Delete a ticket
tickets.delete
- ListRead-only
List tickets
tickets.list
Automations
- ListRead-only
List automations
automations.list
- RetrieveRead-only
Retrieve an automation
automations.retrieve
Campaigns
- ListRead-only
List campaigns
campaigns.list
- UpdateWrite
Update a campaign
campaigns.update
Invitations
- ResendWrite
Resend an invitation
invitations.resend
- Update RoleWrite
Update an invitation role
invitations.updateRole
Tags
- ListRead-only
List tags
tags.list
- RetrieveRead-only
Retrieve a tag
tags.retrieve
Agencies
- ListRead-only
List agencies
agencies.list
Automation
- Trigger AutomationWrite
Trigger a Spoki automation
automation.triggerAutomation
Messaging
- Send MessageWrite
Send a WhatsApp message
messaging.sendMessage
Partners
- ListRead-only
List partners
partners.list
Reports
- ListRead-only
List usage reports
reports.list
Connect Spoki to Claude, ChatGPT or Cursor
- 1
Connect Spoki in Corsair
Add your Spoki API key once in Corsair. Corsair stores the credential encrypted and makes the Spoki API calls for your agent, so it never goes into a prompt or a config file. Connect Spoki
If your link lets the agent add apps, you can skip this: it gives you a sign-in link the first time it needs Spoki. On a ChatGPT personal plan, connect Spoki here first.
- 2
Add Corsair's MCP server to your agent
Every client uses the same address:
https://mcp.corsair.dev/mcpOpen Customize → Connectors → Add custom connector, paste the address, then select Connect.Add a custom MCP server with the address and choose OAuth. Personal plans get read tools only.Add to CursorOr add this to~/.cursor/mcp.json. Cursor opens Corsair to sign in the first time it connects.{ "mcpServers": { "corsair": { "url": "https://mcp.corsair.dev/mcp" } } }Run this, then run/mcpin Claude Code to sign in.claude mcp add --transport http corsair https://mcp.corsair.dev/mcpCodex, Gemini CLI, VS Code, Zed and other clients with OAuth sign-in work the same way. Clients without it, such as GitHub Copilot's coding agent, use a link's own address and an API key. Setup for every client
- 3
Sign in and choose what needs your approval
Your client opens Corsair to sign in. Pick a link: the apps your agent can use and a mode that decides what it may do without asking. In the default Cautious mode, Spoki's read and write operations run right away and its 7 destructive operations wait for your approval. Strict mode asks before every write and refuses destructive operations, and Read mode allows reads only.
FAQ
Install corsair and @corsair-dev/spoki, add the Spoki plugin, and connect with an API key. Then call methods like corsair.spoki.api.accounts.createOnboardingLink() from your app. Corsair syncs data per tenant.
Yes. Spoki requires an API key from your Spoki account or developer dashboard. Create credentials with access that matches what you automate, then paste them into Corsair or connect through managed auth in Hub.
Yes. One Corsair client can hit Spoki, GitHub, Notion, Stripe, and the rest. Trigger Spoki from a webhook, push updates to Slack, or chain actions across plugins. Same tenant context across integrations, plain TypeScript.
Teams use Corsair for whatsapp business platform for contacts, message templates, campaigns, tickets and automations. Common builds include sync jobs, admin tooling, and agents that call Spoki APIs from your backend. Local DB entities let you query synced Spoki records without hitting the API on every read.
The SDK is open source. Self-host and you pay Corsair nothing for the integration layer. Hub bills for hosted auth and execution, not per Spoki API call. Hub has a generous free tier. For hobby projects you can probably run the whole thing on free. Paid plans start to matter with more tenants or heavier traffic.
We maintain @corsair-dev/spoki in the open repo. When Spoki ships API changes, upgrade the package. Your call sites stay typed. You should not need to rewrite the integration layer each time.
No. Corsair does not read your Spoki data or hold individual access credentials. Credentials stay in your database. API calls run on your instance. We do not store Spoki data on your behalf.
Yes. Add https://mcp.corsair.dev/mcp as a custom connector or MCP server in Claude, ChatGPT, Cursor, VS Code, Claude Code, Codex or any client that supports remote MCP servers with OAuth sign-in, then sign in to Corsair. On ChatGPT personal plans, custom servers currently get read tools only.
Yes. Put Spoki on a link in Strict mode and every write waits for your approval, while destructive actions are refused. The default Cautious mode asks only before the 7 destructive Spoki operations. You can change a link's mode at hub.corsair.dev/me.