Skip to content

Stacksync × Supabase Miami: AI-Native OperationsOct 13Reserve your spot

Self-Hosted vs Hosted Salesforce MCP: How to Migrate Either Way

Salesforce's DX MCP server reaches end of life on November 2, 2026. Compare self-hosted and hosted Salesforce MCP, and migrate in either direction.

Author
Ignacio Malpartida · GTM Engineer
Published
Read time
6 min read
Self-Hosted vs Hosted Salesforce MCP: How to Migrate Either Way
DATA ENGINEERING

Should you run a self-hosted or a hosted Salesforce MCP server?

Short answer: For business data, move to Salesforce's hosted MCP servers. They have been generally available for Enterprise Edition orgs and above since April 29, 2026. Salesforce runs them, and every call runs under the signed-in user's permissions. Keep a self-hosted server only where the hosted servers can't go, such as unattended agents, because the hosted servers support no service accounts. Self-hosting doesn't avoid the new meter: Salesforce bills registered agent calls over MCP and direct APIs alike.

Timing matters: Salesforce's own DX MCP server reaches end of life on November 2, 2026. Facts checked October 24, 2026.

Self-hosted Salesforce MCP compared with Salesforce's hosted MCP servers on hosting, auth, permissions and support

What are the options?

OptionWho runs itStatus
Salesforce hosted MCP servers (sobject-reads, sobject-all, Data 360, and others)SalesforceGA since April 29, 2026 for Enterprise Edition and above
Salesforce DX MCP server (@salesforce/mcp)You, on a laptop or serverEnd of life November 2, 2026
Community servers, such as smn2gnt/MCP-Salesforce and tsmztech/mcp-server-salesforceYouOpen source (MIT), maintained by individuals

The DX server was built for developers: deploying metadata, running Apex tests, managing scratch orgs. Its data toolset also includes run_soql_query, which is why some teams pointed it at production data. The endpoint guide covers what the hosted servers expose.

How do self-hosted and hosted servers compare?

Self-hostedSalesforce hosted
Hosting and updatesYou run, patch, and secure itSalesforce runs it
AuthenticationVaries: CLI-authorized orgs, username and password, or OAuth client credentialsOAuth authorization code flow with PKCE through an External Client App
IdentityOften one shared integration identityThe signed-in user, later a registered agent
PermissionsWhatever the connecting identity can doField-level security, object permissions, and sharing rules on every call
Unattended agentsPossible with stored credentialsNot supported: no service accounts or machine-to-machine flows
ToolsWhatever the server's code exposesFixed standard tools plus Flows, Apex, and API Catalog entries you publish
HPI meteringRegistered agent calls over the API are meteredRegistered agent calls are metered
Comparison of a self-hosted Salesforce MCP server and Salesforce's hosted MCP servers
Self-hosted vs hosted

What changes on November 2 for the DX MCP server?

Salesforce posted the end-of-life notice on October 5, 2026. After November 2:

  • Salesforce stops maintaining it and ships no new releases.
  • The GitHub repositories become read-only archives.
  • The npm package is marked deprecated but stays installable, so pinned setups (version 0.30.15) keep working.
  • Salesforce delivers its developer tooling as skills instead, in the forcedotcom/sf-skills repository.

If you use it for metadata and testing, move to the skills on your own schedule. If you use it to query production records, move that work to the hosted servers. An unpatched local server holding production credentials is a liability.

How do you migrate from self-hosted to hosted?

  • 01Find every self-hosted server. Check developer laptops and reps' AI clients for @salesforce/mcp and community packages, and check which orgs and users they authenticate as.
  • 02Map the tools. run_soql_query becomes soqlQuery on sobject-reads. Record writes move to sobject-mutations. Custom logic becomes a Flow or Apex tool you publish.
  • 03Enable the servers. Standard servers ship disabled. An admin turns each one on in Setup.
  • 04Create the External Client App with the mcp_api and refresh_token scopes and PKCE. Allow up to 30 minutes before it becomes available.
  • 05Reconnect each client to the server URL and sign in as the user. Test in a sandbox first, at the /sandbox/ endpoint.
  • 06Remove the old credentials. Delete stored passwords and tokens from config files, and revoke the old app's access.
  • 07Confirm the switch. In event logs, hosted MCP traffic shows API_CLIENT_CATEGORY = SALESFORCE_HOSTED_MCP.
Sequence showing an MCP client connecting to Salesforce's hosted MCP server through an External Client App with OAuth and PKCE
Connecting a client to the hosted server

When should you go the other way?

Moving from hosted to self-hosted makes sense in one main case: an agent that runs with no user present, such as a nightly account-scoring job. The hosted servers need a signed-in user, so they can't serve it.

Before you build one, check two things. First, Salesforce's security guidance warns against building a custom proxy around its REST APIs in place of the hosted server. Second, if a model drives the job, it is still an agent: register it under Agentic Identity, and expect its API calls to be metered. See the Agentic Identity checklist.

Often the better fix is to take the agent off Salesforce for reads. A scheduled agent that scans thousands of accounts can query a synced database copy instead, and write back through a single Flow tool. Our guide to moving agent reads to a synced database walks through it.

Book a Stacksync demo to serve Salesforce agent reads from a synced database

Does either option cost less?

Neither changes the HPI rate. Salesforce meters every successful call from a registered agent, over MCP or the API. Salesforce's docs also say the hosted servers are intended for customers with Flex Credits and that usage may be billed. What changes the bill is the number of calls per task. Start with how to cut Salesforce agent costs and what stays off the HPI meter.

Sources

Start syncing with Stacksync

FAQ

Frequently asked questions

Is the Salesforce DX MCP server being discontinued?
Yes. Salesforce says the DX MCP server (@salesforce/mcp) reaches end of life on November 2, 2026. After that it gets no fixes or releases, but the npm package stays installable, so pinned setups keep working.
What replaces the DX MCP server?
For developer tooling, Salesforce points to skills in the forcedotcom/sf-skills repository. For business data, use the hosted MCP servers, which have been generally available for Enterprise Edition orgs and above since April 29, 2026.
Does a self-hosted MCP server avoid Headless Platform Interaction charges?
Not for a registered agent. Salesforce meters every successful call a registered agent makes, whether it arrives over MCP or a direct API. A self-hosted server calls Salesforce through its APIs.
Can a background agent use the hosted MCP servers?
Only with a signed-in user. The hosted servers accept only the OAuth authorization code flow with PKCE for a signed-in user. Salesforce's docs say there are no service accounts and no machine-to-machine flows.
How do I connect a client to the hosted MCP servers?
An admin enables the server in Setup, creates an External Client App with the mcp_api and refresh_token scopes, and gives the client the server URL. Each user then signs in with OAuth.
Are community Salesforce MCP servers safe to use?
Review each one. Several authenticate with a username and password or an OAuth client credentials flow, which means a stored secret and a shared identity. The hosted servers run every call under the signed-in user's permissions.

About the author

Ignacio Malpartida
Ignacio Malpartida
GTM Engineer

Ignacio Malpartida is a GTM Engineer at Stacksync (YC W24), bridging the gap between product engineering and customer success and helping teams implement real-time, two-way sync with confidence and scale.

All posts by Ignacio Malpartida

About Stacksync

Stacksync powers real-time, two-way sync between CRMs, ERPs, and databases. Engineers sync data at scale and automate workflows, not dirty API plumbing.

Coworkers laughing in front of a laptop in a casual office setting

You just read how it should work.
See it run on your own data.