TL;DR
- We asked Claude the same three Salesforce admin questions through three routes: OrgPulse (a purpose-built MCP server), the Salesforce DX MCP Server, and the sf CLI through a shell.
- Over 27 runs on Haiku 4.5, Sonnet 5.5 and Opus 5.5, OrgPulse cost $1.10 against $1.70 (DX MCP) and $1.87 (CLI), and produced 13.9k output tokens against 32.1k and 43.5k.
- OrgPulse answered 9 of 9 correctly. The other two routes answered 6 of 9; every miss was on Haiku, including one confidently wrong answer.
- Disclosure: OrgPulse is our product. The method, the confounds and the raw numbers are below so you can judge for yourself.
What You'll Learn
- How many tokens and dollars a Salesforce question costs in Claude through three common routes
- Why a cheaper model works with a purpose-built tool but struggles with raw queries
- What a broad MCP toolset costs before you ask anything
- Where each route is the right tool
The Problem
Admins are starting to ask AI assistants about their orgs: what is about to expire, how close are we to limits, why can this user edit that field. There are three ways to wire that up today, and they behave very differently.
Common Questions This Article Answers:
- Does connecting Salesforce to Claude through MCP cost more than letting it run the sf CLI?
- Can I use a cheaper model like Haiku for Salesforce admin questions?
- How much context does an MCP server's tool list use?
Quick Answer
A tool that does the Salesforce work on the server is cheaper, faster and more reliable than handing the model raw query tools. In our runs the purpose-built route used 57 to 68% fewer output tokens and 35 to 41% less money than the DX MCP Server or the CLI, and it was the only route where Haiku answered all three questions correctly. Raw query tools work well with Sonnet and Opus, but they push the Salesforce knowledge (which object holds which expiry date, how field access resolves) onto the model, and smaller models guess.
The Setup
The three routes
| Route | What Claude gets | Runs as |
|---|---|---|
| OrgPulse | 9 tools that each answer an admin question (expiring items, limits, licences, access explanations) | A read-only integration user with a minimal permission set |
| Salesforce DX MCP Server 0.30.15 | The orgs, data and users toolsets: SOQL queries, org list, username lookup |
The local sf CLI login (an admin) |
| sf CLI | A shell allowed to run sf data query, sf limits api display, sf org display and sf org list |
The local sf CLI login (an admin) |
The three questions, asked word for word on each route:
- What is expiring in the next 90 days (certificates, passwords, time-limited permission set assignments, licences, anything that could break logins or integrations)?
- How close is the org to its limits, including storage and licences? List anything at or above 50%.
- Can a named user edit the Rating field on Account, and why?
The org was a synthetic demo org. We established the true answers first with direct queries: three permission set assignments expire on 17 October, 1 November and 21 November; there are no certificates; three user licences and one permission set licence are at or above 50%; and the user can edit Account.Rating through her profile, Standard Platform User.
The runs used Claude Code in print mode (claude -p) with --output-format json, which reports tokens and an API-equivalent cost per run. Each route got only its own tools, write tools were blocked (including the DX MCP assign_permission_set tool), and each run was capped at $2. That is 3 routes, 3 models and 3 questions: 27 runs, one each.
Results
Totals across all nine runs per route
| OrgPulse | DX MCP Server | sf CLI | |
|---|---|---|---|
| Cost | $1.10 | $1.70 | $1.87 |
| Output tokens | 13,870 | 32,097 | 43,520 |
| Model turns | 60 | 93 | 99 |
| Wall time | 3.6 min | 4.8 min | 13.9 min |
| Correct answers | 9 of 9 | 6 of 9 | 6 of 9 |
Cost per model, all three questions together
| Model | OrgPulse | DX MCP Server | sf CLI |
|---|---|---|---|
| Haiku 4.5 | $0.11 | $0.16 | $0.26 |
| Sonnet 5.5 | $0.33 | $0.52 | $0.42 |
| Opus 5.5 | $0.67 | $1.02 | $1.20 |
The expiry question shows the gap most clearly. OrgPulse answered it in 6 to 8 turns and under 45 seconds on every model. The CLI took 15 to 27 turns and up to 230 seconds, because the model had to find each expiry source itself: permission set assignments in one object, certificates in the Tooling API, password expiry worked out from the policy and each user's last change.
The Haiku Result
With Sonnet and Opus, all three routes got the facts right. With Haiku they did not:
- OrgPulse: all three correct.
- sf CLI: found the three expiry dates but reported raw IDs instead of names and said certificates were "not supported"; on the limits question it never ran a command; on the access question it reached the right answer with the wrong reasoning, saying a read-only permission set "restricts" access.
- DX MCP Server: on the expiry question it asked for approval instead of querying; on limits it missed one licence; on access it answered wrongly, concluding the user "likely cannot edit" the field from a permission set's name.
The pattern is the point. When the tool does the Salesforce work, a small model only has to read a clear result. When the tool is SOQL, the model has to know Salesforce well enough to plan the queries and interpret them, and a small model fills the gaps with guesses.
That makes the cheapest reliable combination in this test Haiku with OrgPulse at $0.11 for all three questions, against $0.42 for the cheapest reliable raw-query route (Sonnet with the CLI).
What a Tool List Costs Before You Ask
Every connected MCP server sends its tool definitions to the model on every turn. We listed the tools and measured the part the model sees (names, descriptions and input schemas):
| Server | Tools | Approximate tokens per turn |
|---|---|---|
| OrgPulse | 9 | 2,000 |
DX MCP Server, orgs,data,users |
5 | 2,100 |
| DX MCP Server, all toolsets | 74 | 27,000 |
Turning on every DX MCP toolset costs about 27,000 tokens of context on each turn before any work happens. Prompt caching makes repeated turns cheaper, but the context window is still spent. Enable only the toolsets you need.
What Did Not Favour OrgPulse
A fair reading needs the confounds:
- Different permissions. The CLI and DX MCP runs used an admin login; OrgPulse used its read-only integration user. The admin routes could read storage totals that OrgPulse's user could not, and OrgPulse said so. In other orgs the gap could cut either way.
- One run per combination. Model output varies between runs. Treat single differences as indicative, and the consistent patterns (turn counts, the Haiku result) as the finding.
- Harness overhead. Claude Code adds its own system prompt to every run. A run with no tools used 41k input tokens on Haiku, so absolute input numbers include that overhead for every route equally; cost and output tokens are the cleaner comparison.
- A small, synthetic org. Larger orgs mean bigger query results for the raw routes, which would likely widen the gap, but we did not measure that.
- Our product. We built OrgPulse. We chose questions it is designed for; a question about deploying metadata would favour the DX MCP Server.
When Each Route Fits
- OrgPulse for admin questions about org health, expiries, limits and access, in Claude or ChatGPT, with daily checks and alerts behind them.
- The DX MCP Server for developer work: deploying and retrieving metadata, running tests, ad-hoc data queries. Keep the toolsets narrow.
- The sf CLI when you are already in a terminal and want full control, and you are using a model strong enough to plan its own queries.
Frequently Asked Questions
Is MCP more expensive than the CLI? Not inherently. In this test the DX MCP Server cost slightly less than the CLI overall. What drives cost is how much work the model has to plan: purpose-built tools need fewer turns than raw query tools, whichever protocol carries them.
Can I use Haiku for Salesforce questions? With purpose-built tools, yes: it answered all three correctly here. With raw SOQL tools it made mistakes, including one wrong answer, so use Sonnet or Opus for that route.
How were costs measured? From Claude Code's JSON output, which reports token usage and an API-equivalent cost per run. Subscription plans bill differently, but the relative differences hold.
Did any run change the org? No. Write tools were blocked, and we checked afterwards that no permission set assignment had been created or changed during the test.
Key Takeaways
- Purpose-built tools cut output tokens by 57 to 68% and cost by 35 to 41% against raw query tools in this test.
- A smaller model is reliable when the tool does the domain work, and unreliable when it has to plan raw queries.
- A broad MCP toolset can cost tens of thousands of tokens per turn before any work; enable only what you need.
- Raw query routes remain the right tool for development work and for questions a purpose-built tool does not cover.
What's Next?
- Govern which MCP servers can reach your orgs: Third-party MCP server governance for Salesforce
- For fixed questions like "which queue?" or "yes or no?", I measured decision models separately: Jev vs Clef vs Laya, tested on 600 business decisions and Salesforce case triage with Jev and Laya against an LLM
- Try the admin questions yourself on a free OrgPulse org at orgpulse.cloudcounsel.co.nz
Responses
Checking your session.
Loading responses.