Connectors · CRM & sales
Salesforce Sales Cloud MCP server for AI agents.
actionlake is an MCP gateway: one remote MCP server that connects Claude and other MCP clients to Salesforce Sales Cloud and the rest of your systems. It gives your agent 193 Salesforce Sales Cloud actions (102 reads, 66 writes and 25 that wait for a confirmation) and holds the Salesforce Sales Cloud credential itself, so the agent never does. It paces Salesforce Sales Cloud's limits and records every call. Connecting Salesforce Sales Cloud needs your own Salesforce Sales Cloud OAuth app and one admin sign-in.
100,000 free calls a month. No card, no email, no password: press Start a free sandbox on the next screen and keep the key it shows you.
claude mcp add --transport http actionlake https://connect.actionlake.com/mcpdo { action: "salesforce_sobjects.users.list", intent: "check which Salesforce Sales Cloud account is connected"}# List Salesforce User records · read · 1 upstream call- 193actionsin one signed file
- 102readlook, never change
- 66writecreate and update
- 25wait for a yesdestructive, confirmed first
Set up
Connect Salesforce Sales Cloud in three steps.
- 01
Add actionlake to Claude.
Run the command once in Claude Code; its consent page can create a free sandbox: 100,000 calls a month, no card. In the Claude app, add a custom connector with the URL below and paste your key on the consent page. Creating a new sandbox from the Claude app is not yet tested by us.
https://connect.actionlake.com/mcp - 02
Connect Salesforce Sales Cloud.
OAuth 2.0, authorization code with PKCE. You register your own OAuth app with Salesforce Sales Cloud, an admin signs in once, and you paste the app's client id and secret and the tokens from that sign-in; actionlake renews the access token from then on. actionlake stores what you paste write-only, sealed under your tenant's key.
Before the first sign-in, Salesforce Sales Cloud needs an OAuth app of your own, registered in its developer portal. actionlake has no Salesforce Sales Cloud app to lend you.
access_tokenAccess token from one sign-in with your own OAuth apprefresh_tokenRefresh token from the same sign-in; the access token is renewed from itclient_idSalesforce connected app consumer keyclient_secretSalesforce connected app consumer secretinstance_hostWhere your Salesforce Sales Cloud lives: your instance host
account { op: "connections.requirements", service: "salesforce_sobjects" } # free: exactly what to paste, and what is found for you - 03
Make the first call. Check before a write.
Ask in plain words; Claude picks the action. Before anything changes,
checkvalidates the call and prices it, for free.do { action: "salesforce_sobjects.users.list" }# list salesforce user records · read · 1 upstream callcheck { action: "salesforce_sobjects.contacts.create", input: { … } }# free: inputs, permissions, cost and confirmations, nothing sent
Salesforce Sales Cloud at a glance
- Sign-in
- OAuth 2.0, authorization code with PKCE. You register your own OAuth app with Salesforce Sales Cloud, an admin signs in once, and you paste the app's client id and secret and the tokens from that sign-in; actionlake renews the access token from then on.
- You provide
access_tokenrefresh_tokenclient_idclient_secret- Setup fields
instance_host- Limits we pace to
- 100,000 calls a day, per connection
- API covered
- Salesforce Sales Cloud API 62.0, at your Salesforce Sales Cloud instance's API base URL, which you enter when connecting (path /services/data/v62.0)
- Built from
- Salesforce Sales Cloud's documentation, read 15 September 2026resources.docs.salesforce.com
- Service file
- Version 2.0.0, signed (Ed25519)
- Cached reads
- 101 of 102 reads, for up to an hour; a write clears what it affects
- Ready-made plans
- 8 in the store
- Shared entities
- 12, so ask can line Salesforce Sales Cloud up with your other systems
- Data
- Processed and stored in Sydney, Australia. No US region yet
Capabilities
What an AI agent can do in Salesforce Sales Cloud.
193 actions in 13 areas. Every one carries its effect, so a key can allow the reads and hold the rest.
- 102readlook, never change
- 66writecreate and update
- 25destructivewait for a confirmation
CRM
10262 read · 31 write · 9 destructive
Create a Salesforce Contact · Create a Salesforce Account · Get one Salesforce Contact · Get one Salesforce Account
Catalog
166 read · 7 write · 3 destructive
List Salesforce Product2 records · Create a Salesforce Product2 · Get one Salesforce Product2 · Update a Salesforce Product2
Orders
114 read · 5 write · 2 destructive
List Salesforce Order records · Create a Salesforce Order · Get one Salesforce Order · Update a Salesforce Order
Quoting
104 read · 4 write · 2 destructive
List Salesforce Quote records · Create a Salesforce Quote · Get one Salesforce Quote · Update a Salesforce Quote
Files
95 read · 2 write · 2 destructive
List Salesforce ContentDocument records · Get one Salesforce ContentDocument · Delete a Salesforce ContentDocument
Directory
73 read · 3 write · 1 destructive
List Salesforce User records · Create a Salesforce User · Get one Salesforce User · Update a Salesforce User
Helpdesk
73 read · 3 write · 1 destructive
List Salesforce Case records · Create a Salesforce Case · Get one Salesforce Case · Update a Salesforce Case
Contracts
62 read · 3 write · 1 destructive
List Salesforce Contract records · Create a Salesforce Contract · Get one Salesforce Contract · Update a Salesforce Contract
5 more areas · 25 actions
- Calendar 5
- Notes 5
- Tasks 5
- Assets 5
- Knowledge 5
Top actions
The Salesforce Sales Cloud API, shaped for agents.
The ids your agent types, what each does, and the one name it shares with other systems. 148 of Salesforce Sales Cloud's 151 action names are shared with at least one other connector, so an agent learns them once.
| Action | What it does | Effect | Same name in |
|---|---|---|---|
salesforce_sobjects.users.listList Salesforce User records | Query User records with SOQL, narrowed by an optional WHERE clause. | read | identity.user.list474 connectors |
salesforce_sobjects.products.listList Salesforce Product2 records | Query Product2 records with SOQL, narrowed by an optional WHERE clause. | read | commerce.product.list112 connectors |
salesforce_sobjects.contacts.createCreate a Salesforce Contact | Insert one Contact record. Returns its new id. | write | crm.contact.create161 connectors |
salesforce_sobjects.accounts.createCreate a Salesforce Account | Insert one Account record. Returns its new id. | write | crm.company.create142 connectors |
salesforce_sobjects.tasks.listList Salesforce Task records | Query Task records with SOQL, narrowed by an optional WHERE clause. | read | crm.activity.list21 connectors |
salesforce_sobjects.orders.listList Salesforce Order records | Query Order records with SOQL, narrowed by an optional WHERE clause. | read | commerce.order.list82 connectors |
salesforce_sobjects.contacts.getGet one Salesforce Contact | Fetch a single Contact record by its Salesforce id. | read | crm.contact.get176 connectors |
salesforce_sobjects.accounts.getGet one Salesforce Account | Fetch a single Account record by its Salesforce id. | read | crm.company.get162 connectors |
salesforce_sobjects.opportunities.listList Salesforce Opportunity records | Query Opportunity records with SOQL, narrowed by an optional WHERE clause. | read | crm.deal.query7 connectors |
salesforce_sobjects.opportunities.createCreate a Salesforce Opportunity | Insert one Opportunity record. Returns its new id. | write | crm.deal.create43 connectors |
salesforce_sobjects.contacts.deleteDelete a Salesforce Contact | Delete one Contact record into the Recycle Bin. | destructive | crm.contact.delete147 connectors |
salesforce_sobjects.leads.createCreate a Salesforce Lead | Insert one Lead record. Returns its new id. | write | crm.lead.create24 connectors |
Try it
Prompts to paste into Claude.
Each one names the Salesforce Sales Cloud actions it will call, so you know what it reads and what it changes before you send it.
- Readread
Which Salesforce Sales Cloud tickets have been open the longest? Show me the ten oldest with their status.
calls
salesforce_sobjects.cases.list - Planwrite
Turn a won opportunity into an order in Salesforce Sales Cloud. Ask me before anything is sent or changed.
calls
salesforce_sobjects.opportunities.getsalesforce_sobjects.accounts.getsalesforce_sobjects.orders.createsalesforce_sobjects.order_items.createsalesforce_sobjects.opportunities.update - Planwrite
Create an account with its primary contact and kickoff work in Salesforce Sales Cloud.
calls
salesforce_sobjects.accounts.createsalesforce_sobjects.contacts.createsalesforce_sobjects.opportunities.createsalesforce_sobjects.notes.createsalesforce_sobjects.accounts.get - Writewrite
Create a Salesforce Contact in Salesforce Sales Cloud. Show me exactly what you will send before you save it.
calls
salesforce_sobjects.contacts.create - Across systemsread
For each customer, how many tickets are in Salesforce Sales Cloud and how many invoices in ConnectWise PSA?
calls
salesforce_sobjects.cases.listconnectwise_manage.invoices.list
Across your systems
Salesforce Sales Cloud, joined to the rest of your business.
One ask fetches from Salesforce Sales Cloud and another system, joins the rows on the same customer on our side, and hands your agent the answer, not every row.
For each customer, how many tickets are in Salesforce Sales Cloud and how many invoices in ConnectWise PSA?
salesforce_sobjects.cases.list+connectwise_manage.invoices.list, oncrm.company· ConnectWise PSAFor each customer, how many tickets are in Salesforce Sales Cloud and how many invoices in NetSuite?
salesforce_sobjects.cases.list+netsuite.views.invoices, oncrm.company· NetSuite
identity.user 517crm.company 227crm.contact 192commerce.product 109commerce.order 86service.ticket 62comm.event 47finance.quote 45ask { intent: "for each customer, how many tickets are in Salesforce Sales Cloud and how many invoices in ConnectWise PSA", steps: [ { action: "salesforce_sobjects.cases.list", as: "tix", input: {}, limit: 100, max_pages: 5 }, { action: "connectwise_manage.invoices.list", as: "inv", input: {}, limit: 100, max_pages: 5 }, { join: { left: "tix", right: "inv", on: "crm.company", group_by: "tix.company_name", select: ["tix.company_name", "count(tix.id) as tickets", "count(inv.id) as invoices"] } } ]}The plan store
Ready-made plans for Salesforce Sales Cloud.
8 plans in the store. Install one and your agent runs it by name; the reply says which connections are still missing. A schedule can run a plan on a timetable. There are no triggers or webhooks, by design.
Report on open pipeline and stalled opportunities
Use it when Someone asks for the state of the sales pipeline or which deals have gone stale.
Pull created, updated and deleted records for a window
Use it when A downstream system needs the delta of one Salesforce object since the last sync ran.
Qualify open leads and log a follow-up task
Use it when A rep or manager wants every open lead to end the day with a follow-up task on it.
Escalate support cases that have aged past their threshold
Use it when Support wants old untouched cases pushed up the queue before they breach SLA.
A person decides
Escalate aging count cases open longer than age days days to High priority.
Create an account with its primary contact and kickoff work
Use it when A new customer has been signed and their Salesforce records need standing up in one pass.
Add contacts from a search into a campaign
Use it when Marketing wants a set of existing contacts loaded into a campaign as members.
Turn a won opportunity into an order
Use it when A deal has been agreed and someone wants the matching order raised in Salesforce.
A person decides
Raise an order for Name worth Amount from opportunity Name.
Delete test records matching a marker, after sign-off
Use it when A sandbox or test org is full of seeded records and someone wants them removed safely.
A person decides
Permanently delete match count sobject records whose name starts with marker.
account { op: "plans.install", slug: "salesforce_sobjects-pipeline-health-report" }
# then ask for it by name; a schedule can run it on a timetableGovernance for Salesforce Sales Cloud
Destructive actions wait for a yes.
25 Salesforce Sales Cloud actions are destructive. These are all of them:
- Delete a Salesforce Contact
salesforce_sobjects.contacts.delete - Delete a Salesforce Account
salesforce_sobjects.accounts.delete - Delete a Salesforce Opportunity
salesforce_sobjects.opportunities.delete - Delete a Salesforce Lead
salesforce_sobjects.leads.delete - Delete a Salesforce Product2
salesforce_sobjects.products.delete - Delete a Salesforce Task
salesforce_sobjects.tasks.delete - Delete a Salesforce Order
salesforce_sobjects.orders.delete - Delete a Salesforce Event
salesforce_sobjects.events.delete - Delete a Salesforce Case
salesforce_sobjects.cases.delete - Delete a Salesforce Quote
salesforce_sobjects.quotes.delete - Delete a Salesforce Contract
salesforce_sobjects.contracts.delete - Delete a Salesforce ContentDocument
salesforce_sobjects.content_documents.delete - Delete a Salesforce Pricebook2
salesforce_sobjects.pricebooks.delete - Delete a Salesforce OrderItem
salesforce_sobjects.order_items.delete - Delete a Salesforce Campaign
salesforce_sobjects.campaigns.delete - Delete a Salesforce Note
salesforce_sobjects.notes.delete - Delete a Salesforce Asset
salesforce_sobjects.assets.delete - Delete a Salesforce PricebookEntry
salesforce_sobjects.pricebook_entries.delete - Delete a Salesforce CampaignMember
salesforce_sobjects.campaign_members.delete - Delete a Salesforce QuoteLineItem
salesforce_sobjects.quote_line_items.delete - Delete up to 200 records
salesforce_sobjects.collections.delete - Delete any record
salesforce_sobjects.sobjects.record_delete - Delete a record by external id
salesforce_sobjects.sobjects.record_delete_by_external_id - Delete a Salesforce Attachment
salesforce_sobjects.attachments.delete - Reset a user's password
salesforce_sobjects.sobjects.user_password_reset
A destructive action runs only with confirm: true. Under the human policy the agent cannot confirm for itself: the run stops until a named person approves, in the console or from a signed link in an email. The cap on a key is refused before the call is sent, never after.
Delete a Salesforce Contact?
intent: the user asked me to delete a Salesforce Contact
account { op: "keys.create", name: "salesforce-sobjects-agent", allowed_actions: ["salesforce_sobjects.*"], cap_calls: 2000, confirm_policy: "human_for_writes", approval_rules: [ { match: "salesforce_sobjects.contacts.delete", approver: "[email protected]" }, { match: "salesforce_sobjects.accounts.delete", approver: "[email protected]" }, { match: "salesforce_sobjects.opportunities.delete", approver: "[email protected]" } ]}Cost
What Salesforce Sales Cloud costs on actionlake.
Every Salesforce Sales Cloud action is one upstream call, the only thing actionlake bills. Searching, check, cost, account and any call Salesforce Sales Cloud refused with 401, 403, 429 or a 5xx are free. Paid plans start at US$49 a month for 250,000 calls, with overage from US$0.30 down to US$0.18 per 1,000.
- 1upstream call per actionall 193 Salesforce Sales Cloud actions
- 193actions pageeach page of a long list is one call
- 101reads can be cacheda cache hit costs nothing
- 100,000calls a month, freepaid plans from US$49 a month for 250,000
Action index
Every Salesforce Sales Cloud action.
193 actions by area: the id your agent calls, what it does, and its effect.
CRM102
salesforce_sobjects.accounts.createCreate a Salesforce Accountwritesalesforce_sobjects.accounts.deleteDelete a Salesforce Accountdestructivesalesforce_sobjects.accounts.getGet one Salesforce Accountreadsalesforce_sobjects.accounts.listList Salesforce Account recordsreadsalesforce_sobjects.accounts.updateUpdate a Salesforce Accountwritesalesforce_sobjects.accounts.upsertUpsert a Salesforce Account by external idwritesalesforce_sobjects.actions.custom_listList custom invocable actionsreadsalesforce_sobjects.actions.describeDescribe one invocable actionreadsalesforce_sobjects.actions.invokeInvoke an invocable actionwritesalesforce_sobjects.actions.listList invocable action groupsreadsalesforce_sobjects.actions.standard_listList standard invocable actionsreadsalesforce_sobjects.campaign_members.createCreate a Salesforce CampaignMemberwritesalesforce_sobjects.campaign_members.deleteDelete a Salesforce CampaignMemberdestructivesalesforce_sobjects.campaign_members.getGet one Salesforce CampaignMemberreadsalesforce_sobjects.campaign_members.listList Salesforce CampaignMember recordsreadsalesforce_sobjects.campaign_members.updateUpdate a Salesforce CampaignMemberwritesalesforce_sobjects.campaigns.createCreate a Salesforce Campaignwritesalesforce_sobjects.campaigns.deleteDelete a Salesforce Campaigndestructivesalesforce_sobjects.campaigns.getGet one Salesforce Campaignreadsalesforce_sobjects.campaigns.listList Salesforce Campaign recordsreadsalesforce_sobjects.campaigns.updateUpdate a Salesforce Campaignwritesalesforce_sobjects.collections.createCreate up to 200 recordswritesalesforce_sobjects.collections.deleteDelete up to 200 recordsdestructivesalesforce_sobjects.collections.retrieveRetrieve up to 2000 records by idreadsalesforce_sobjects.collections.updateUpdate up to 200 recordswritesalesforce_sobjects.collections.upsertUpsert up to 200 records by external idwritesalesforce_sobjects.composite.batchRun a composite batchwritesalesforce_sobjects.composite.graphRun a composite graphwritesalesforce_sobjects.composite.runRun a composite requestwritesalesforce_sobjects.composite.treeCreate a record treewritesalesforce_sobjects.contacts.createCreate a Salesforce Contactwritesalesforce_sobjects.contacts.deleteDelete a Salesforce Contactdestructivesalesforce_sobjects.contacts.getGet one Salesforce Contactreadsalesforce_sobjects.contacts.listList Salesforce Contact recordsreadsalesforce_sobjects.contacts.updateUpdate a Salesforce Contactwritesalesforce_sobjects.contacts.upsertUpsert a Salesforce Contact by external idwritesalesforce_sobjects.leads.createCreate a Salesforce Leadwritesalesforce_sobjects.leads.deleteDelete a Salesforce Leaddestructivesalesforce_sobjects.leads.getGet one Salesforce Leadreadsalesforce_sobjects.leads.listList Salesforce Lead recordsreadsalesforce_sobjects.leads.updateUpdate a Salesforce Leadwritesalesforce_sobjects.leads.upsertUpsert a Salesforce Lead by external idwritesalesforce_sobjects.list_views.describeDescribe a list viewreadsalesforce_sobjects.list_views.listList an object's list viewsreadsalesforce_sobjects.list_views.recentList recently used list viewsreadsalesforce_sobjects.list_views.resultsGet a list view's resultsreadsalesforce_sobjects.opportunities.createCreate a Salesforce Opportunitywritesalesforce_sobjects.opportunities.deleteDelete a Salesforce Opportunitydestructivesalesforce_sobjects.opportunities.getGet one Salesforce Opportunityreadsalesforce_sobjects.opportunities.listList Salesforce Opportunity recordsreadsalesforce_sobjects.opportunities.updateUpdate a Salesforce Opportunitywritesalesforce_sobjects.opportunities.upsertUpsert a Salesforce Opportunity by external idwritesalesforce_sobjects.org.app_menuGet an app menureadsalesforce_sobjects.org.consent_readRead consent across the consent modelreadsalesforce_sobjects.org.event_schema_by_idGet a platform event schema by idreadsalesforce_sobjects.org.event_schema_by_nameGet a platform event schema by namereadsalesforce_sobjects.org.foldersList foldersreadsalesforce_sobjects.org.limitsGet org limitsreadsalesforce_sobjects.org.recently_viewedList recently viewed itemsreadsalesforce_sobjects.org.record_countCount records per objectreadsalesforce_sobjects.org.relevant_itemsList relevant itemsreadsalesforce_sobjects.org.resourcesList the resources of this API versionreadsalesforce_sobjects.org.tabsList the org's tabsreadsalesforce_sobjects.org.themesGet the org's themereadsalesforce_sobjects.org.versionsList supported API versionsreadsalesforce_sobjects.process.approvals_listList approval processesreadsalesforce_sobjects.process.approvals_submitSubmit, approve or reject a record for approvalwritesalesforce_sobjects.process.rules_listList approval and workflow rulesreadsalesforce_sobjects.process.rules_triggerTrigger workflow rules on recordswritesalesforce_sobjects.query.explainExplain a SOQL query planreadsalesforce_sobjects.query.moreFetch the next batch of a SOQL queryreadsalesforce_sobjects.query.runRun a SOQL queryreadsalesforce_sobjects.query.run_allRun a SOQL query including deleted recordsreadsalesforce_sobjects.quick_actions.describeDescribe a global quick actionreadsalesforce_sobjects.quick_actions.invokeInvoke a global quick actionwritesalesforce_sobjects.quick_actions.listList global quick actionsreadsalesforce_sobjects.search.parameterizedRun a parameterized searchreadsalesforce_sobjects.search.result_layoutsGet search result layoutsreadsalesforce_sobjects.search.scope_orderGet the user's search scope and orderreadsalesforce_sobjects.search.soslRun a SOSL searchreadsalesforce_sobjects.search.suggested_queriesGet suggested search queriesreadsalesforce_sobjects.sobjects.approval_layoutsGet sObject approval layoutsreadsalesforce_sobjects.sobjects.basic_infoGet sObject basic informationreadsalesforce_sobjects.sobjects.compact_layoutsGet sObject compact layoutsreadsalesforce_sobjects.sobjects.describeDescribe one sObjectreadsalesforce_sobjects.sobjects.describe_globalList every sObject in the orgreadsalesforce_sobjects.sobjects.get_deletedList records deleted in a windowreadsalesforce_sobjects.sobjects.get_updatedList records updated in a windowreadsalesforce_sobjects.sobjects.layoutsGet sObject page layoutsreadsalesforce_sobjects.sobjects.named_layoutGet a named layout on an sObjectreadsalesforce_sobjects.sobjects.quick_action_default_valuesGet a quick action's default valuesreadsalesforce_sobjects.sobjects.quick_action_describeDescribe one quick action on an sObjectreadsalesforce_sobjects.sobjects.quick_action_invokeInvoke a quick action on an sObjectwritesalesforce_sobjects.sobjects.quick_actions_listList an sObject's quick actionsreadsalesforce_sobjects.sobjects.record_createCreate any recordwritesalesforce_sobjects.sobjects.record_deleteDelete any recorddestructivesalesforce_sobjects.sobjects.record_delete_by_external_idDelete a record by external iddestructivesalesforce_sobjects.sobjects.record_getGet any record by idreadsalesforce_sobjects.sobjects.record_get_by_external_idGet a record by external idreadsalesforce_sobjects.sobjects.record_updateUpdate any recordwritesalesforce_sobjects.sobjects.record_upsertUpsert a record by external idwritesalesforce_sobjects.sobjects.relationship_getTraverse a record relationshipread
Catalog16
salesforce_sobjects.pricebook_entries.createCreate a Salesforce PricebookEntrywritesalesforce_sobjects.pricebook_entries.deleteDelete a Salesforce PricebookEntrydestructivesalesforce_sobjects.pricebook_entries.getGet one Salesforce PricebookEntryreadsalesforce_sobjects.pricebook_entries.listList Salesforce PricebookEntry recordsreadsalesforce_sobjects.pricebook_entries.updateUpdate a Salesforce PricebookEntrywritesalesforce_sobjects.pricebooks.createCreate a Salesforce Pricebook2writesalesforce_sobjects.pricebooks.deleteDelete a Salesforce Pricebook2destructivesalesforce_sobjects.pricebooks.getGet one Salesforce Pricebook2readsalesforce_sobjects.pricebooks.listList Salesforce Pricebook2 recordsreadsalesforce_sobjects.pricebooks.updateUpdate a Salesforce Pricebook2writesalesforce_sobjects.products.createCreate a Salesforce Product2writesalesforce_sobjects.products.deleteDelete a Salesforce Product2destructivesalesforce_sobjects.products.getGet one Salesforce Product2readsalesforce_sobjects.products.listList Salesforce Product2 recordsreadsalesforce_sobjects.products.updateUpdate a Salesforce Product2writesalesforce_sobjects.products.upsertUpsert a Salesforce Product2 by external idwrite
Orders11
salesforce_sobjects.order_items.createCreate a Salesforce OrderItemwritesalesforce_sobjects.order_items.deleteDelete a Salesforce OrderItemdestructivesalesforce_sobjects.order_items.getGet one Salesforce OrderItemreadsalesforce_sobjects.order_items.listList Salesforce OrderItem recordsreadsalesforce_sobjects.order_items.updateUpdate a Salesforce OrderItemwritesalesforce_sobjects.orders.createCreate a Salesforce Orderwritesalesforce_sobjects.orders.deleteDelete a Salesforce Orderdestructivesalesforce_sobjects.orders.getGet one Salesforce Orderreadsalesforce_sobjects.orders.listList Salesforce Order recordsreadsalesforce_sobjects.orders.updateUpdate a Salesforce Orderwritesalesforce_sobjects.orders.upsertUpsert a Salesforce Order by external idwrite
Quoting10
salesforce_sobjects.quote_line_items.createCreate a Salesforce QuoteLineItemwritesalesforce_sobjects.quote_line_items.deleteDelete a Salesforce QuoteLineItemdestructivesalesforce_sobjects.quote_line_items.getGet one Salesforce QuoteLineItemreadsalesforce_sobjects.quote_line_items.listList Salesforce QuoteLineItem recordsreadsalesforce_sobjects.quote_line_items.updateUpdate a Salesforce QuoteLineItemwritesalesforce_sobjects.quotes.createCreate a Salesforce Quotewritesalesforce_sobjects.quotes.deleteDelete a Salesforce Quotedestructivesalesforce_sobjects.quotes.getGet one Salesforce Quotereadsalesforce_sobjects.quotes.listList Salesforce Quote recordsreadsalesforce_sobjects.quotes.updateUpdate a Salesforce Quotewrite
Files9
salesforce_sobjects.attachments.createCreate a Salesforce Attachmentwritesalesforce_sobjects.attachments.deleteDelete a Salesforce Attachmentdestructivesalesforce_sobjects.attachments.getGet one Salesforce Attachmentreadsalesforce_sobjects.attachments.listList Salesforce Attachment recordsreadsalesforce_sobjects.attachments.updateUpdate a Salesforce Attachmentwritesalesforce_sobjects.content_documents.deleteDelete a Salesforce ContentDocumentdestructivesalesforce_sobjects.content_documents.getGet one Salesforce ContentDocumentreadsalesforce_sobjects.content_documents.listList Salesforce ContentDocument recordsreadsalesforce_sobjects.sobjects.blob_retrieveRetrieve a record's blob fieldread
Directory7
salesforce_sobjects.sobjects.user_password_getCheck whether a user's password is expiredreadsalesforce_sobjects.sobjects.user_password_resetReset a user's passworddestructivesalesforce_sobjects.sobjects.user_password_setSet a user's passwordwritesalesforce_sobjects.users.createCreate a Salesforce Userwritesalesforce_sobjects.users.getGet one Salesforce Userreadsalesforce_sobjects.users.listList Salesforce User recordsreadsalesforce_sobjects.users.updateUpdate a Salesforce Userwrite
Helpdesk7
salesforce_sobjects.cases.createCreate a Salesforce Casewritesalesforce_sobjects.cases.deleteDelete a Salesforce Casedestructivesalesforce_sobjects.cases.getGet one Salesforce Casereadsalesforce_sobjects.cases.listList Salesforce Case recordsreadsalesforce_sobjects.cases.updateUpdate a Salesforce Casewritesalesforce_sobjects.cases.upsertUpsert a Salesforce Case by external idwritesalesforce_sobjects.org.embedded_service_configGet an Embedded Service deployment's configread
Contracts6
salesforce_sobjects.contracts.createCreate a Salesforce Contractwritesalesforce_sobjects.contracts.deleteDelete a Salesforce Contractdestructivesalesforce_sobjects.contracts.getGet one Salesforce Contractreadsalesforce_sobjects.contracts.listList Salesforce Contract recordsreadsalesforce_sobjects.contracts.updateUpdate a Salesforce Contractwritesalesforce_sobjects.contracts.upsertUpsert a Salesforce Contract by external idwrite
Calendar5
salesforce_sobjects.events.createCreate a Salesforce Eventwritesalesforce_sobjects.events.deleteDelete a Salesforce Eventdestructivesalesforce_sobjects.events.getGet one Salesforce Eventreadsalesforce_sobjects.events.listList Salesforce Event recordsreadsalesforce_sobjects.events.updateUpdate a Salesforce Eventwrite
Notes5
salesforce_sobjects.notes.createCreate a Salesforce Notewritesalesforce_sobjects.notes.deleteDelete a Salesforce Notedestructivesalesforce_sobjects.notes.getGet one Salesforce Notereadsalesforce_sobjects.notes.listList Salesforce Note recordsreadsalesforce_sobjects.notes.updateUpdate a Salesforce Notewrite
Tasks5
salesforce_sobjects.tasks.createCreate a Salesforce Taskwritesalesforce_sobjects.tasks.deleteDelete a Salesforce Taskdestructivesalesforce_sobjects.tasks.getGet one Salesforce Taskreadsalesforce_sobjects.tasks.listList Salesforce Task recordsreadsalesforce_sobjects.tasks.updateUpdate a Salesforce Taskwrite
Assets5
salesforce_sobjects.assets.createCreate a Salesforce Assetwritesalesforce_sobjects.assets.deleteDelete a Salesforce Assetdestructivesalesforce_sobjects.assets.getGet one Salesforce Assetreadsalesforce_sobjects.assets.listList Salesforce Asset recordsreadsalesforce_sobjects.assets.updateUpdate a Salesforce Assetwrite
Knowledge5
salesforce_sobjects.knowledge.data_category_detailGet a data category's detailreadsalesforce_sobjects.knowledge.data_category_groupsList data category groupsreadsalesforce_sobjects.knowledge.settings_getGet Knowledge settingsreadsalesforce_sobjects.search.suggested_article_titlesGet suggested knowledge article titlesreadsalesforce_sobjects.sobjects.suggested_articlesSuggest knowledge articles for a caseread
Questions
The Salesforce Sales Cloud MCP server, answered.
Is there a Salesforce Sales Cloud MCP server for Claude?
Yes. actionlake is an MCP gateway: a remote MCP server that gives Claude, or another MCP client, 193 Salesforce Sales Cloud actions across CRM, catalog, orders and quoting, through the same eight tools it uses for every other connector. actionlake is independent; it is not made or endorsed by Salesforce Sales Cloud.
What do I need to connect Salesforce Sales Cloud?
Your own Salesforce Sales Cloud OAuth app, registered with Salesforce Sales Cloud (its client id and client secret), and the access and refresh tokens from one admin sign-in. actionlake has no Salesforce Sales Cloud app of its own, so this is not a one-step consent. actionlake renews the access token as it expires. Plus your instance host. The free call account { op: "connections.requirements", service: "salesforce_sobjects" } lists exactly what to paste.
Can an AI agent delete or change things in Salesforce Sales Cloud?
Only if its key allows it, and only with an explicit confirmation. 25 Salesforce Sales Cloud actions are destructive, including delete a Salesforce Contact, delete a Salesforce Account and delete a Salesforce Opportunity. Each runs only with confirm: true. Under the human confirm policy, or an approval rule on the key, the run waits until a named person approves it.
Will an AI agent use up my Salesforce Sales Cloud API limit?
actionlake paces every call to the limits in the Salesforce Sales Cloud service file: 100,000 calls a day per connection. Repeated reads are answered from cache (101 Salesforce Sales Cloud actions can be), which never reaches Salesforce Sales Cloud.
What does a Salesforce Sales Cloud action cost?
One upstream call, the only unit actionlake bills. A list that pages bills one call per page (193 Salesforce Sales Cloud actions page). Cache hits, searches, dry runs and calls Salesforce Sales Cloud refused with 401, 403, 429 or a 5xx are free. The Free plan includes 100,000 calls a month with no card. Paid plans start at US$49 a month for 250,000 calls, with overage from US$0.30 down to US$0.18 per 1,000.
Which Salesforce Sales Cloud API does it cover?
The Salesforce Sales Cloud API 62.0 at your Salesforce Sales Cloud instance's API base URL, which you enter when connecting (path /services/data/v62.0). It is built from Salesforce Sales Cloud's documentation as read on 15 September 2026. 193 actions in 13 areas, each one in the signed service file (version 2.0.0).
Can I combine Salesforce Sales Cloud with my other systems?
Yes. ask joins Salesforce Sales Cloud to ConnectWise PSA or NetSuite on the same customer and returns the answer rather than every row. Salesforce Sales Cloud maps crm.company, which 227 other connectors also map.
Does actionlake keep my Salesforce Sales Cloud data, and where?
actionlake processes and stores data in Sydney, Australia; there is no US region yet. Reads may be cached for up to an hour, and a write clears the reads it affects. Each run's request and response is kept, sealed, for your plan's trace window: 1 day on Free, 3 days on Starter, 7 days on Pro, 14 days on Team, 30 days on Business and 30 days on Enterprise. Your Salesforce Sales Cloud credential is sealed under your tenant's key, never logged and never returned. Your traffic is not used to train models.
Which AI clients can use it?
Claude Code, tested by us end to end, and the Claude app as a custom connector, tested by us with an existing key. Other MCP clients that support remote servers over Streamable HTTP (MCP revisions 2025-06-18 and 2025-11-25) and OAuth dynamic client registration, or a bearer header, should connect the same way; we have not tested them. Or plain REST, under the same action names.
Give your agent Salesforce Sales Cloud today.
Start free - 100,000 calls/month, no card. No signup. Hard caps on every key. Cached answers are free.