I Connected My Salesforce Org to Claude

Hosted MCP Servers turn your org into an endpoint an AI assistant can call — over OAuth, with your permissions enforced on every request. A hands-on AI Projects Lab build.

The scenario

For years, "Salesforce integration" meant getting other systems into Salesforce. Headless 360 points the other way: it exposes platform capability as an API, an MCP tool, or a CLI command, so an assistant can reach your data without anyone opening a browser.

I put that to the test. I connected my org to Claude and asked it questions about my Accounts in plain English. It answered from live org data, through OAuth, with my permissions enforced on every call. Here's exactly how.

For beginners: MCP (Model Context Protocol) is an open standard that lets an AI assistant discover and call tools. A Hosted MCP Server is one that Salesforce runs for you: your org itself becomes the endpoint, so there is nothing to install and nothing to host.

First: two different things are both called "Salesforce MCP"

This tripped me up, so let me save you the confusion.

Rule of thumb: if the AI is helping you build Salesforce, that's DX MCP — covered in our DX MCP Server build. If the AI is helping someone use Salesforce, that's Hosted MCP. This walkthrough is the second one.

Step 1 — Enable MCP and activate a server

  1. Setup → Quick Find → User Interface — confirm Enable Salesforce MCP is checked. In many orgs it already is.
  2. Setup → Quick Find → MCP ServersSalesforce Servers tab.
  3. The standard servers are inactive by default. Click into the one you want and hit Activate. Give it up to two minutes.
  4. Copy two things: the server's API Name (without the platform. prefix) and the Server URL.

The standard servers are deliberately graduated, so the server you pick is the first control you set:

ServerWhat it allowsGood for
SObject ReadsQuery and read only — no writes of any kindYour first connection. Start here.
SObject MutationsCreate and update, plus read and query; no deleteAssisted data entry and cleanup
SObject DeletesDeletion operations onlyNarrow, deliberate cleanup work
SObject AllFull CRUD plus query and searchOnly once you trust the workflow
Data 360Querying unified customer data in Data 360Cross-source customer questions
Headless 360Broad Setup and platform access via Discover / Describe / Dispatch toolsAdmin and platform automation
Tableau NextSemantic model discovery, KPI queries, analytics executionAnalytics questions in natural language

I started with SObject Reads, and I'd repeat that. It's read-only, risk-free, and immediately useful. There's no reason to hand an assistant write access before you've confirmed the pipe works.

Step 2 — Create an External Client App

This is the trust relationship between the client and your org. Note that classic Connected Apps do not work for this flow — it has to be an External Client App.

Setup → External Client App ManagerNew External Client App.

Click Create. Then:

  1. Policies → OAuth Policies: Permitted Users → All users may self-authorize; IP Relaxation → Relax IP restrictions.
  2. Settings → OAuth Settings → Consumer Key and Secret → complete the verification dialog → copy both.
Give the app time before you connect. An External Client App can take up to 30 minutes to become fully operational — much like a DNS propagation delay. Finish the configuration, then come back to it.

Step 3 — Add the connector in the client

In claude.ai: left sidebar → CustomizeConnectors+Add custom connector.

You're redirected to Salesforce to log in. If you're already logged into that org, it may skip the challenge entirely — that's the OAuth session doing its job, not a step being missed.

Step 4 — Verify it properly

Two prompts, and the second one matters more than the first.

Prompt 1 — does the pipe work?

List the first 10 Account records you can access in Salesforce.
Show the name, type, industry, and annual revenue when available.

I got my ten Accounts back with a tool call visible in the response. Three had no Annual Revenue populated, and the assistant said so rather than filling in a number — which is itself a good sign.

Prompt 2 — is the answer actually grounded?

Which two accounts look most important based on the fields available?
Explain your reasoning from Salesforce data only.

This is the real test. If the model reasons from the numbers that came back, you're grounded. If it starts describing those companies from general knowledge, it isn't using your data at all. If it answers without calling the connector, tell it to use the connector explicitly.

Common mistake: declaring victory after prompt 1. A plausible-looking answer proves nothing on its own — a model can produce one about well-known sample accounts with no org access whatsoever. Prompt 2 is what separates a working connection from a convincing guess.

The part I'd actually demo to a security team

Here's what makes this different from bolting an API key onto a chatbot.

The assistant never connects to your data directly. It calls the Hosted MCP server, and the request carries the authenticated user's OAuth token. Salesforce validates identity, then checks object permissions, field-level security, and sharing rules on every single tool call. The assistant only ever receives what that user could already see in Lightning.

The permissions and compliance controls your security team already approved don't get rebuilt — the guardrails your org relies on are the same guardrails the assistant operates within.

The five-minute demo: connect as a user whose profile hides a field, ask the same question, and watch the column disappear. Not because the model was told to hide it — because Salesforce never sent it.

Worth knowing before you scale this up

What this actually changes

The technical achievement here is modest. It's OAuth and a protocol.

What's interesting is the shift in where the work happens. My flows, my data model, my sharing rules, my validation — all of it stays exactly where it is. It just became reachable from somewhere else. Configure once, use anywhere.

The standard servers are only the first half. The next step is publishing your own logic as tools — an autolaunched Flow on a custom MCP server, then invocable Apex with real guardrails.

Sources: Hosted MCP Servers: Get Started · Create an External Client App · Connect MCP Clients · Standard Servers Reference · Salesforce Hosted MCP Servers Are Now Generally Available