Skip to content

Sales Platform MCP ​

One MCP server for your whole Sales Platform, also called the Sales-Management MCP. You can attach a single area (leads only, knowledge base only, …) to keep the tool list focused, or attach the combined server that exposes every area at once — the same tools an agent gets from the Sales Platform tools toggle and the From your sales platform connectors.

If you use Claude Code or Codex, the MyChatBot plugin gives you the same Sales tools through one browser sign-in, with no key to copy. This page is for connecting the server directly.

In the app

Open Agents → Connectors — app.mychatbot.app/agents/connectors. In the From your sales platform section, click the small i (Connect AI tools) on any area card to get its server address, access key, and client setup. The examples below cover Claude Code, Codex, and Cursor.

Address and access key ​

The server address carries your account and the chosen area:

https://api.mychatbot.app/api/mcp/sales-management?account_id=<account_id>&domain=<area>

Every external request also carries the per-account access key from the Connect AI tools dialog:

text
Authorization: Bearer mcp_YOUR_ACCESS_KEY

The full key is shown only when you create it. If the dialog shows only a masked existing key and you no longer have the secret, create a new key and update your MCP client. Creating a new key does not revoke existing keys.

Only the account owner or an Admin can create access keys and see them listed, and a key reaches the whole account. To revoke a key, contact support. The account_id in the address selects the account and is checked against the key; it never authorizes a request on its own.

The 12 areas ​

Every tool each area exposes is documented with full parameters in the Sales tools reference; Sales tools by domain maps tasks to areas. The areas map to the Sales Platform sidebar (Testing & evals is tool-only — it has no Sales Platform page):

Area (domain)Sidebar labelWhat it exposes
sales_assistantsConfigurationsCreate and edit assistants and their skills; view, patch, and restore long instructions and skills; behaviour and hand-off settings, Work Hours, Flight Control, control numbers, live notes; the assistant's model; test chats
sales_clientsLeadsContacts — notes, tasks, attachment records, labels, pipelines and stages; the team, custom lead fields, duplicate merge, and bulk changes
sales_conversationsChatsChat history and message context
sales_channelsChannelsMessaging channels, their setup links, reply delay, and reaction handling
sales_outreachFollowUpFollow-up campaigns and attaching them to assistants, one-off and scheduled messages, outbound calls
sales_knowledgeKnowledgeBaseFAQs, documents, product catalogs and feeds, indexing status, and knowledge search tests
sales_integrationsIntegrationsYour integrations and their config links, automation triggers, and API Actions
sales_accountDashboardAccount summary, subscription, and usage stats
sales_ordersOrdersOrders and order stats
sales_calendarCalendarCalendar events, staff, and services
sales_automationsAutomationsLead Forms routing, pausing automations, Trigger Outreach triggers, Keyword Responder, Lead Form Instant Outreach (writes preview first and need confirm)
sales_evals—Testing & evals: save conversations as eval scenarios, replay them against current or candidate instructions, score answer stability

Connect a client ​

Add one area to Claude Code:

bash
claude mcp add mychatbot-sales \
  "https://api.mychatbot.app/api/mcp/sales-management?account_id=<account_id>&domain=sales_knowledge" \
  --transport http \
  --header "Authorization: Bearer mcp_YOUR_ACCESS_KEY"

Codex (~/.codex/config.toml):

toml
[mcp_servers.mychatbot-sales]
url = "https://api.mychatbot.app/api/mcp/sales-management?account_id=<account_id>&domain=sales_knowledge"
http_headers = { Authorization = "Bearer mcp_YOUR_ACCESS_KEY" }
default_tools_approval_mode = "writes"

The writes approval mode lets Codex perform Sales reads while asking before write tools. Read calls still touch real account data; message, call, delete, and live-record effects need deliberate review regardless of client configuration.

When configuring campaigns, connect sales_outreach, sales_channels, and—when targeting needs account data—sales_clients, then follow Build and operate outreach with Claude or Codex.

Cursor:

json
{
  "mcpServers": {
    "mychatbot-sales": {
      "url": "https://api.mychatbot.app/api/mcp/sales-management?account_id=<account_id>&domain=sales_knowledge",
      "headers": {
        "Authorization": "Bearer mcp_YOUR_ACCESS_KEY"
      }
    }
  }
}

One area vs the combined server

Attach one server per area to keep each client's tool list small and focused, or drop &domain=… for a single server that exposes every area at once. The combined server is broader but noisier for the model.

Client notes and attachments ​

The sales_clients area exposes complete note operations:

  • client_list_notes, client_get_note, client_create_note, client_update_note, client_delete_note

It also exposes complete attachment-record operations:

  • client_list_attachments, client_get_attachment, client_create_attachment, client_update_attachment, client_delete_attachment

client_create_attachment registers metadata for an already-hosted HTTP(S) file URL. It does not upload bytes. Required inputs are client_id, file_name, and file_url. Optional metadata fields are file_size in bytes, file_type as a MIME type, description, and folders such as internal, sent, or received. On update, an empty description or file_type clears that field, an empty folders array clears document sections, and file_size: 0 resets the recorded size. Deleting an attachment record does not delete the remote file.

Test it ​

Verify a connection from your client:

bash
claude mcp list

Or list the tools an area exposes (any MCP client works; here with curl):

bash
curl -sS -X POST \
  "https://api.mychatbot.app/api/mcp/sales-management?account_id=<account_id>&domain=sales_knowledge" \
  -H "Authorization: Bearer mcp_YOUR_ACCESS_KEY" \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'

A healthy response returns a list of tools. An empty list, or an authorization error, means a missing or invalid key or an unknown area.

Best practices ​

  • Do attach one area per server so each client sees a small, focused tool list.
  • Do keep the access key in the Authorization header and treat it as an API key; if it leaks, create a new one and ask support to revoke the old one.
  • Don't put the access key in the URL or assume an account id grants access; only the Bearer header authorizes the call.
  • Do read before you write: the reference says which tools preview first (dry_run or confirm) and which act at once.

See also ​