How to Set Up the Claude Salesforce Connector: Powerful Tutorial

Claude Salesforce Connector

Table of Contents

Claude Salesforce Connector setup can become confusing when you’re connecting Claude Desktop to multiple Salesforce organizations. If you see the error “A server with this URL already exists,” the problem is usually the connector URL—not your OAuth configuration. This guide explains the correct Salesforce Hosted MCP Server URL format for production, sandbox, and trial orgs.

 

The fix is simple: build a unique Salesforce Hosted MCP Server URL that includes the org’s My Domain and, where needed, its environment type. This gives each Salesforce org its own distinct connector endpoint, even when both connections use the same MCP server such as sobject-all.

Why the Duplicate Server URL Error Happens

The problem shows up when you create a second custom connector in Claude that points to the same hosted MCP server name, such as sobject-all, but from a different Salesforce org.

At first glance, it feels like each org should count as a separate connection anyway. But Claude is keying off the connector URL. If that URL is identical, Claude sees it as the same server and blocks the duplicate.

So if your goal is simply to establish a basic connection between Salesforce and Claude across multiple orgs, the real key is making each connector URL org-specific.

What needs to be set up first?

Before the URL fix matters, you still need the standard Salesforce hosted MCP setup in each org.

    • Activate the MCP server inside Salesforce
    • Create an External Client App
    • Configure the recommended OAuth settings and callback URL
    • Capture the consumer key and consumer secret
    • Create a custom connector in Claude Desktop

That foundational setup is what allows Claude to authenticate and talk to the Salesforce hosted MCP server in the first place

That process is enough to connect Claude Desktop to one Salesforce org. The issue appears when a second org uses the same generic remote MCP server URL. Claude treats that URL as an existing connector rather than a separate Salesforce environment. The result is the duplicate URL error. Instead of paying for a third party solution before knowing whether it is necessary, use the built-in URL structure that identifies the specific Salesforce org.

That process is enough to connect Claude Desktop to one Salesforce org. The issue appears when a second org uses the same generic remote MCP server URL. Claude treats that URL as an existing connector rather than a separate Salesforce environment.

The result is the duplicate URL error. Instead of paying for a third party solution before knowing whether it is necessary, use the built-in URL structure that identifies the specific Salesforce org.

The free workaround that solved it

While troubleshooting, I came across a paid third-party option that looked promising. But if you are still figuring out your exact setup, there is no reason to spend money before understanding the native URL structure.

The solution is to include the Salesforce org domain in the connector URL. That makes the URL unique per org, even when the hosted MCP server name stays the same.

The Claude Salesforce Connector URL Format

The key is adding the Salesforce My Domain to the URL. The general Claude Salesforce Connector URL format is:

The important pieces are:

  • /d/ followed by your Salesforce org domain information
  • {my_domain} as the full domain identifier for the org
  • {environment-if-needed} only when the org type requires it
  • {full-server-name} as the MCP server you want to connect to, such as platform/sobject-all

This is the core Claude Salesforce Connector URL pattern that lets Claude treat each org connection as distinct.

How the environment segment works

The environment portion depends on the type of Salesforce org you are connecting:

  • Production or trial orgs: no extra environment segment is needed
  • Sandbox orgs: include /sandbox/
  • Other supported environment types: use the environment segment that matches the org type, such as /develop/ or /scratch/ where applicable

That small difference is what keeps your Claude Salesforce Connector URL accurate across org types.

Production and Trial Org example

If you are connecting to a production org whose My Domain is salesforcemasterclass and the server you want is platform/sobject-all, the URL is:

Because it is production, there is no separate environment segment inserted between the domain and the server path. 

This URL is specific to the production or trial org through the My Domain portion. It is not merely a generic reference to the sobject-all server.

Use the Salesforce MCP URL reference

Grab the official URL format reference for connecting Claude to Salesforce hosted MCP servers across different org types.

Sandbox example

If your production My Domain is salesforcemasterclass and your sandbox name is uat, the sandbox domain becomes salesforcemasterclass–uat. If you are connecting to the same platform/sobject-all server, the URL is:

Notice two things:

  • The sandbox domain includes the sandbox suffix
  • The URL also includes the /sandbox/ segment

That combination makes the Claude Salesforce Connector URL unique and valid for the sandbox org.

Prepare Salesforce Before Adding the Connector

Before creating the connector in Claude Desktop, configure the Salesforce side of the connection for each org you intend to use.

1. Activate the MCP Server

In Salesforce Setup, search for MCP Servers. Activate the server you need, such as sobject-all. The server name selected here is the server portion you will add at the end of the Claude Salesforce Connector URL.

2. Create an External Client App

Return to Setup and open External Client App Manager. Create an app for Claude, then configure its settings according to the Salesforce Hosted MCP Server connection requirements.

Under OAuth settings, use the recommended OAuth scopes and callback URL. Once the app is configured, capture the consumer key and consumer secret. Those values are needed when you add the connector in Claude Desktop.

 

Add the Custom Connector in Claude Desktop

With the Salesforce MCP server active and the External Client App ready, open Claude Desktop and follow this path:

  1. Open the Customize tab.
  2. Select Connectors.
  3. Click Add.
  4. Choose Add custom connector.

Give the connector a clear name that identifies the org. For example, a trial org can be named FSC Trial Org. Clear names become especially useful when Claude has connectors for production, UAT, and other environments.

claude custom connector form

What this looks like in practice

After making this change, I was able to keep multiple Salesforce connections in Claude Desktop at the same time, even when those orgs pointed to the same hosted MCP server name.

That is really the whole point. The issue was never that Claude could not connect to more than one Salesforce org. The issue was that the default URL approach did not uniquely identify each org connection.

By using the correct Claude Salesforce Connector URL, each connector becomes distinct, and the duplicate URL error disappears.

A quick checklist if your connector still fails

  1. Make sure the MCP server is activated in the target Salesforce org
  2. Confirm the External Client App was created in that same org
  3. Verify the OAuth scopes and callback URL are configured correctly
  4. Use the correct consumer key and consumer secret for that org
  5. Check that the My Domain value is correct
  6. For sandboxes, include both the sandbox domain suffix and the /sandbox/ segment
  7. Make sure the full server path matches the hosted MCP server name you activated

The main takeaway

If Claude throws the message a server with this URL already exists, the fix is usually to stop using a generic MCP endpoint and switch to an org-specific Claude Salesforce Connector URL.

Use the domain-based URL format, include the environment segment when needed, and keep each connector tied to the exact Salesforce org it belongs to. Once you do that, Claude Desktop can connect cleanly to multiple Salesforce orgs without treating them as duplicates.

Frequently Asked Questions

What is the Salesforce Hosted MCP URL format for Claude?

The general format is https://api.salesforce.com/platform/mcp/v1/d/{my_domain}/{environment}/{server}. Omit the environment segment for production and trial orgs. Use develop, sandbox, or scratch for those environment types.

Why does Claude say “A server with this URL already exists”?

The error means the new connector uses an MCP server URL already registered in Claude Desktop. Build a unique Claude Salesforce Connector URL with the target org’s My Domain and, if needed, its environment path.

Do production and trial Salesforce orgs use an environment path?

No. For production and trial orgs, the URL goes from /d/{my_domain}/ directly to the full server path, such as platform/sobject-all.

How is a sandbox My Domain written in the connector URL?

Use the production My Domain followed by two hyphens and the sandbox name. For example, a uat sandbox for salesforcemasterclass becomes salesforcemasterclass--uat, followed by /sandbox/ in the URL path.

Do I need separate OAuth credentials for each Salesforce org?

Each Salesforce org needs its own External Client App configuration and the consumer key and consumer secret associated with that org. Use those matching credentials when configuring its connector.

Louisville, Kentucky 40202
United States

SMC Migrations

Our Services

Contact Us

Book a Consultation

Salesforce Masterclass

Discover more from SMC Migrations

Subscribe now to keep reading and get access to the full archive.

Continue reading