Salesforce MCP benchmark: 86.5% with the graph, 44.2% without
With Clientell’s Context Graph, a model scored a mean graded score of 86.5% on 110 questions. The same model on the same questions without the graph scored 44.2%. Each question ran 3 times, and Claude Opus graded every answer.
Three setups. One variable.
Same model, same questions, same grader. What changed was whether the model could query the graph, and whether a text index sat on top of it.
Mean graded score, 0 to 100
- Graphgraph only86.5%
- Graph + textgraph + text hybrid86.0%
- No graphsame model, same questions44.2%
- Graph only86.5%The model answers by querying the Context Graph.
- Graph + text index86.0%The same graph, with a text index added on top.
- No graph (control)44.2%The same model and questions, with no graph to query.
The graph moved the mean graded score from 44.2% to 86.5%. Adding a text index moved it to 86.0%.
How the benchmark was run.
110 questions, three setups, 3 runs of each question per setup, and one grader for every answer.
How the benchmark was run
- 01110 questionsthe published question set
- 023 repeats eachevery question asked 3 times
- 033 configurationsgraph, graph + text, no graph
- 04Graded by Claude Opusevery answer scored
- 05Mean graded scoreper configuration
110 questions, asked 3 times each.
Every setup answered every question 3 times. Repeats smooth out run-to-run variation in the model’s answers.
Graph only, graph plus text, no graph.
The control used the same model and the same questions with no graph to query. The hybrid added a text index over the graph.
Every answer graded by Claude Opus.
One grader across all three setups, so a difference in score comes from the setup, not from who marked it.
Scores are on a 0 to 1 scale. A setup’s score is the mean of its grades across all questions and repeats. So 86.5% is a source value of 0.865, shown as a percentage. It is not the share of answers marked correct, and this page does not call it that.
Kinds of questions tested
- 01Field usage & dependencies
- 02Flow relationships
- 03Apex class dependencies
- 04Object & relationship structure
- 05Profile & permission set access
- 06Validation rules
- 07Reports & report types
- 08Layouts & record types
- 09Triggers & automation
- 10Sharing, security & misc metadata
Ten kinds of question about how an org is built.
These are the kinds of questions tested, drawn from the published question set, with real questions from it. They are about metadata and relationships, never live record data.
Field usage and dependencies
- Which flows reference the Opportunity.Amount field?
- What is Lead.Rating referenced by, across all metadata types?
Flow relationships
- Which flows call the flow "Send Welcome Email" as a subflow?
- Which flows reference the same field as at least one Apex trigger (potential double-processing)?
Apex class dependencies
- Which Apex classes are called by the trigger on Account?
- Which Apex classes call an external HTTP callout?
Object and relationship structure
- Which custom objects have a master-detail relationship to Account?
- What junction objects exist between Opportunity and Contact?
Profile and permission set access
- Which profiles have "Modify All" on Opportunity?
- What field-level security differences exist between "Standard User" and "Sales Rep" profiles on Opportunity?
Validation rules
- What validation rules reference the Account.Industry field?
- Are there duplicate/overlapping validation rules on the same object checking the same field?
Reports and report types
- Which reports use the Opportunity.Amount field as a summary/aggregate?
- What dashboards include a report referencing Opportunity.StageName?
Layouts and record types
- What record types are assigned to which page layouts, per profile, on Case?
- Which page layouts reference a field that no longer exists on the object?
Triggers and automation
- What automation (flow, trigger, or process builder) runs when a Case is closed?
- What's the full automation chain (flows + triggers + Apex) that fires when an Opportunity is marked Closed Won?
Sharing, security and other metadata
- Which custom objects have organization-wide default set to Private?
- Which named credentials exist, and which Apex classes use them for callouts?
The headline result covers 110 questions. These categories show the kinds of questions tested. They are not a breakdown of the 110, and no per-category counts are published. Questions name standard fields such as Opportunity.Amount so they carry across orgs; a tester swaps in any real object or field from the org under test.
A text index added nothing.
Graph plus text scored 86.0%. Graph only scored 86.5%. Adding the index did not raise the score.
Answer quality
- GraphContext Graph only86.5%
- Graph + text indexsame graph, text index added86.0%text index: no gain
Why: a graph node holds structure, not prose
- name
- Account.Industry
- id
- 00N…
- relationships
- flows, layouts
- prose
- none
The graph holds names, IDs and relationships. It holds no content, so there is no prose for a text index to find. Content is read live at question time instead.
That result shaped the product. Clientell does not build a text index over the graph, and it does not bulk-copy content into graph nodes.
Dependency questions are structure questions.
“Which flows reference Opportunity.Amount?” is not a search for similar text. It is a walk along references from one field to everything that points at it.
Asking a question
- Your AI clientClaude Code, Cursor, VS Code
- Clientell MCPanswers your questions
- Context Graphyour org's metadata map
- metadata index
- Salesforce orgyour records live here
Reading live records
- Your AI clientClaude Code, Cursor, VS Code
- Clientell MCPread-only, nothing stored
- via Clientell's auth service, on your own connection
- Salesforce orgyour records live here
Deploying a change
- Your AI clientClaude Code, Cursor, VS Code
- Your sf CLIruns on your machine
- approved deploys
- Salesforce orgyour records live here
The Context Graph stores objects, fields, flows, Apex, validation rules, profiles and permission sets as nodes, and the references between them as edges. A question about what depends on a field becomes a traversal that returns the answer with its sources.
- Account.Industrypicklist field
Ring 1: runs on it
- FlowsSet_Account_Tier
- Apex classesAccountService.cls
Ring 2: checks or shows it
- Validation rulesIndustry_Required
- Page layoutsAccount Layout
Ring 3: reads it
- ReportsPipeline by Industry
- ReportsAccounts by Industry
The benchmark isolates that difference. The control had the same model and the same questions. The only thing it lacked was the graph, and it scored 44.2% against 86.5%.
- You ask in plain English“What uses Industry?”
- Clientell traverses the graphfollows every link
- Answer with sources and its build timegraph built 2h ago
- Optional one-line live checkruns via your sf CLI
Fewer Salesforce calls when calls are billed.
Salesforce has said agent calls to Salesforce will be metered per call. Structural answers from the graph do not call Salesforce at all.
What depends on Account.Industry?Illustrative
Graph-backed (Clientell)
- Questionstructural
- Context Graphgraph traversal
- Answerdependency list
Salesforce org: idleno Salesforce call for this answer
A live-API MCP server
- Questionstructural
- Live-API MCP servercalls while answering
- several calls to the Salesforce API
- Salesforce APIeach call is a metered call
- Answerdependency list
Salesforce Help Knowledge Article 005360285 () says calls by registered agents to Salesforce, over MCP or API, will be metered per call in Flex Credits. The price has not been announced.
Clientell answers structural questions, such as what references a field or which profiles can edit it, from the graph. Those answers make no Salesforce call. Live record reads do call Salesforce, through your own connection, when you ask for them.
Salesforce has not published a per-call price, so any dollar figure would be a guess. We will not publish one until there is a price to work from.
What this benchmark measures, and what it does not.
A result is only as useful as its boundaries are clear. These are the boundaries.
IN SCOPE05
What this measures
- metric
- answer quality
- questions
- org-metadata questions
- comparison
- same model, with vs without graph
- grader
- Claude Opus
- repeats
- 3
OUT OF SCOPE04
What it does not measure
- vendors
- head-to-head vs other MCP servers
- records
- record-level data questions
- speed
- how fast answers arrive
- cost
- what an answer costs to run
What it measures
- Answer quality on 110 questions, with and without the Context Graph.
- Whether a text index over the graph adds anything. It did not.
- The same model, one grader (Claude Opus) and 3 runs per question in every setup.
What it does not measure
- Any other vendor's MCP server. We have not benchmarked one.
- Per-category accuracy. The results give one score per setup, so none is shown here.
- Live record reads, speed, token use or cost.
- Your org. Connect it and ask your own questions.
How Clientell compares to other Salesforce MCP servers.
This benchmark compares Clientell with and without its graph. Our comparisons with other servers are based on their published documentation, not on this test.
Questions about the benchmark.
How accurate is Clientell MCP?
On 110 questions, each asked 3 times and graded by Claude Opus, answers with the Context Graph scored a mean graded score of 86.5%. The same model on the same questions without the graph scored 44.2%.
How was the Clientell MCP benchmark run?
Three setups answered the same 110 questions: graph only, graph plus a text index, and a control with no graph. Each question ran 3 times per setup. Claude Opus graded every answer, and each score is the mean of those grades. See Methodology.
Is 86.5% the share of answers that were correct?
No. It is a mean graded score on a 0 to 1 scale (0.865), shown as a percentage. A mean of grades and a count of correct answers are different measures, so this page never calls it a correctness rate.
Has Clientell MCP been benchmarked against Salesforce's hosted MCP?
No. We have not run this benchmark on any other MCP server. Our comparison with Salesforce’s hosted MCP servers is based on their published documentation, and it says so. See the comparison table and Clientell vs Salesforce Hosted MCP.
Why didn't adding a text index improve the score?
The graph holds names, IDs and relationships, not prose. A text index over it had nothing new to find. Graph plus text scored 86.0% against 86.5% for graph only.
Does the benchmark measure live Salesforce record reads?
No. It compares answers produced with and without the graph. Live record reads go to Salesforce through Clientell’s auth service on your own connection, and this benchmark makes no claim about them.
Will Clientell reduce Salesforce Flex Credit costs?
Salesforce says calls by registered agents, over MCP or API, will be metered per call in Flex Credits, with the price not yet announced. Clientell answers structural questions from the graph without calling Salesforce. Live record reads still call Salesforce. We publish no savings figure because no price exists yet. See Salesforce call costs.
Are per-category scores published?
No. The source results report one score per setup, not per category, so this page shows none. The ten categories show the kinds of questions tested, drawn from the published question set. They are not a breakdown of the 110 questions.
Ask your own org the same questions.
Connect Clientell MCP to your AI client and ask what depends on a field before you change it. Or walk through it with us first.