Use it from an AI assistant. The API as an MCP server.
The API is also a Model Context Protocol server, so Claude Code, Cursor, VS Code, Windsurf or an agent of your own can ask your chatbots, work conversations, sync leads and update knowledge with a token's permissions.
Updated
What it is
The MCP server lives at https://get-api.simplyboost.io/api/v1/mcp. It speaks the Streamable HTTP transport and uses the same API token as the REST API (Authorization: Bearer sb_live_…), the same plans (Growth, Pro and Enterprise), the same permissions and the same limits. Each tool does what the matching REST endpoint does and needs the same scope; the assistant sees a tool it may not use as a clear refusal, not an error.
It is stateless: every call is one request and one answer, with no session to keep, so you can connect from any machine. The server never starts a stream of its own.
Connect a client
Two ways in. Sign in (OAuth): add the server's address, and when the client asks, approve it in a SimplyBoost tab as a team owner, choosing the team, the permissions and the chatbots. This is how the claude.ai and ChatGPT connectors, Cursor, Codex and Claude Code connect, with nothing to paste. A token: for a client you configure by hand or a script of your own, create a token in Settings → API with only the permissions the assistant needs, and send it as a header.
claude mcp add --transport http simplyboost https://get-api.simplyboost.io/api/v1/mcpcodex mcp add simplyboost --url https://get-api.simplyboost.io/api/v1/mcp
codex mcp login simplyboost{
"mcpServers": {
"simplyboost": { "url": "https://get-api.simplyboost.io/api/v1/mcp" }
}
}{
"mcpServers": {
"simplyboost": {
"url": "https://get-api.simplyboost.io/api/v1/mcp",
"headers": { "Authorization": "Bearer sb_live_…" }
}
}
}A connection made by signing in lasts 90 days, gets only the permissions the owner left ticked (deleting is off unless ticked), and is listed in Settings → API → Connected apps, where the owner can disconnect it at any time. Only a team owner can approve a connection, the same rule as for creating a token. The app's name on the approval screen is what the app declared about itself; SimplyBoost does not verify it.
A token in a client's configuration is a password to your account. Keep it on your own computer, give it an expiry, and rotate it if the configuration file is shared. Signing in avoids the problem: nothing secret is written to a file.
For client developers: the server follows the MCP authorization specification. A request without credentials answers 401 with a WWW-Authenticate header naming the protected resource metadata (https://get-api.simplyboost.io/.well-known/oauth-protected-resource/api/v1/mcp), which names the authorization server (https://get-api.simplyboost.io/.well-known/oauth-authorization-server). Clients register themselves (Dynamic Client Registration), use the authorization code flow with PKCE (S256 only), may name the resource, and get rotating refresh tokens. Access tokens last an hour and work on the MCP endpoint only; the REST endpoints take API tokens.
The tools
Arguments and results use the same names as the REST API (chatbotId, threadId, camelCase fields), so the endpoint pages describe both. Start with list_chatbots to find a chatbot's id.
| Tool | Needs | Does |
|---|---|---|
get_account | nothing | The account, plan and the token's own permissions. |
get_usage | account:read | Messages used this billing period. |
list_chatbots, get_chatbot | chatbots:read | The chatbots the token may use. |
send_message | conversations:write | Ask a chatbot as a visitor would; counts toward the plan's messages. Pass threadId to continue. |
list_conversations, get_conversation, list_messages | conversations:read | Conversations on every channel and their messages. |
take_over_conversation, reply_to_conversation, hand_back_to_chatbot, resolve_conversation | conversations:write | Work a conversation as a person: take it, reply, hand it back, resolve or reopen. |
list_leads, get_lead | leads:read | The leads a chatbot captured. |
update_lead | leads:write | Change a lead's details or mark it converted. |
delete_lead | leads:delete | Delete a lead. |
list_knowledge_sources, get_knowledge_source | knowledge:read | What a chatbot knows, with each source's status and text. |
add_text_knowledge, add_website_knowledge, update_knowledge_source, refresh_knowledge_source | knowledge:write | Teach the chatbot text or a website, edit a source, read a website again. |
delete_knowledge_source | knowledge:delete | Remove a source. |
File uploads and webhooks are not offered as tools; use the REST endpoints for those. Deleting tools are marked destructive, and the server's instructions tell the assistant to ask you first.
Errors and limits
A refused tool call (a missing permission, a chatbot the token may not see, an invalid argument, a plan limit) comes back as a tool result marked as an error, with the same code and message the REST API would give, so the assistant can tell you what to change. A missing or invalid token answers 401, a plan without the API or a lapsed subscription 403, and the per-token rate limit 429, exactly as on the REST API.
A message that is not JSON-RPC 2.0 gets a JSON-RPC error. GET and DELETE on the endpoint answer 405, because there is no session and no server stream.