Skip to main content
Clientell MCP / Benchmark

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.

Last updated 110 questions3 repeats

Contents · 10 sections
  1. Results
  2. Methodology
  3. Question categories
  4. Why a text index added nothing
  5. Why the graph wins
  6. Salesforce call costs
  7. What it measures
  8. Compared to other MCPs
  9. FAQ
  10. Try it
Results

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.

0255075100Graphgraph only86.5%Graph + textgraph + text hybrid86.0%No graphsame model, same questions44.2%

Mean graded score, 0 to 100

  1. Graphgraph only86.5%
  2. Graph + textgraph + text hybrid86.0%
  3. No graphsame model, same questions44.2%
Mean graded score over 110 questions, 3 repeats each, graded by Claude Opus. Same model and questions in every run.
  • 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%.

Methodology

How the benchmark was run.

110 questions, three setups, 3 runs of each question per setup, and one grader for every answer.

01110 questionsthe publishedquestion set023 repeats eachevery questionasked 3 times033 configurationsgraphgraph + textno graph04Graded byClaude Opusevery answerscored05Mean gradedscoreperconfiguration

How the benchmark was run

  1. 01110 questionsthe published question set
  2. 023 repeats eachevery question asked 3 times
  3. 033 configurationsgraph, graph + text, no graph
  4. 04Graded by Claude Opusevery answer scored
  5. 05Mean graded scoreper configuration
How the benchmark was run.
Questions

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.

Setups

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.

Grading

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.

What “mean graded score” means

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.

01Field usage &dependencies02Flowrelationships03Apex classdependencies04Object &relationshipstructure05Profile &permission setaccess06Validationrules07Reports &report types08Layouts &record types09Triggers &automation10Sharing,security & miscmetadata

Kinds of questions tested

  1. 01Field usage & dependencies
  2. 02Flow relationships
  3. 03Apex class dependencies
  4. 04Object & relationship structure
  5. 05Profile & permission set access
  6. 06Validation rules
  7. 07Reports & report types
  8. 08Layouts & record types
  9. 09Triggers & automation
  10. 10Sharing, security & misc metadata
The kinds of questions tested, drawn from the published question set.
Question categories

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.

  1. Field usage and dependencies

    • Which flows reference the Opportunity.Amount field?
    • What is Lead.Rating referenced by, across all metadata types?
  2. 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)?
  3. Apex class dependencies

    • Which Apex classes are called by the trigger on Account?
    • Which Apex classes call an external HTTP callout?
  4. Object and relationship structure

    • Which custom objects have a master-detail relationship to Account?
    • What junction objects exist between Opportunity and Contact?
  5. 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?
  6. Validation rules

    • What validation rules reference the Account.Industry field?
    • Are there duplicate/overlapping validation rules on the same object checking the same field?
  7. Reports and report types

    • Which reports use the Opportunity.Amount field as a summary/aggregate?
    • What dashboards include a report referencing Opportunity.StageName?
  8. 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?
  9. 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?
  10. 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.

The hybrid finding

A text index added nothing.

Graph plus text scored 86.0%. Graph only scored 86.5%. Adding the index did not raise the score.

GraphContext Graph only86.5%0100Graph + text indexsame graph, text index added86.0%0100text index: no gainWHYA graph node holdsstructure, not prose.So there is no prose to index.nameAccount.Industryid00N…relationshipsflows, layoutsprosenone

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
Adding a text index on top of the graph did not improve answers.

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.

Why the graph wins

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.

metadataindexlive reads, read-onlyon your own connectionapproved deploysYour AI clientClaude Code, Cursor, VS CodeClientell MCPanswers your questionsContext Graphyour org's metadata mapYour sf CLIruns on your machineSalesforce orgyour records live here

Asking a question

  1. Your AI clientClaude Code, Cursor, VS Code
  2. Clientell MCPanswers your questions
  3. Context Graphyour org's metadata map
  4. Salesforce orgyour records live here

Reading live records

  1. Your AI clientClaude Code, Cursor, VS Code
  2. Clientell MCPread-only, nothing stored
  3. Salesforce orgyour records live here

Deploying a change

  1. Your AI clientClaude Code, Cursor, VS Code
  2. Your sf CLIruns on your machine
  3. Salesforce orgyour records live here
Your AI client asks Clientell. Clientell answers from the Context Graph and reads live records on your own Salesforce connection. Approved changes deploy through your own sf CLI.

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.

reads itchecks or shows itruns on itAccount.Industrypicklist fieldFlowsSet_Account_TierApex classesAccountService.clsValidation rulesIndustry_RequiredPage layoutsAccount LayoutReportsPipeline by IndustryReportsAccounts by Industry
  • 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
Illustrative example. Before you change a field, see everything it touches.

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%.

1You ask inplain English“What uses Industry?”2Clientell traversesthe graphfollows every link3Answer with sourcesand its build timegraph built 2h ago4Optional one-linelive checkruns via your sf CLI
  1. You ask in plain English“What uses Industry?”
  2. Clientell traverses the graphfollows every link
  3. Answer with sources and its build timegraph built 2h ago
  4. Optional one-line live checkruns via your sf CLI
Illustrative example. Answers come from the graph, so they're fast and show exactly where they came from.
Salesforce call costs

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.

SAME QUESTIONWhat depends on Account.Industry?IllustrativeGraph-backed (Clientell)QuestionstructuralContext Graphgraph traversalAnswerdependency listSalesforce orgno Salesforce callfor this answerA live-API MCP serverQuestionstructuralLive-API MCP servercalls while answeringAnswerdependency listSalesforce APIseveral calls toanswer one questionmetered call

What depends on Account.Industry?Illustrative

Graph-backed (Clientell)

  1. Questionstructural
  2. Context Graphgraph traversal
  3. Answerdependency list

Salesforce org: idleno Salesforce call for this answer

A live-API MCP server

  1. Questionstructural
  2. Live-API MCP servercalls while answering
  3. Salesforce APIeach call is a metered call
  4. Answerdependency list
Salesforce has announced per-call metering for agent calls over MCP or API (price not yet published). Answering structural questions from the graph avoids those calls. Live record reads still call Salesforce.

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.

No savings figure, on purpose

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.

Scope

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 SCOPE05What this measuresmetricanswer qualityquestionsorg-metadata questionscomparisonsame model, with vs without graphgraderClaude Opusrepeats3OUT OF SCOPE04What it does not measurevendorshead-to-head vs other MCP serversrecordsrecord-level data questionsspeedhow fast answers arrivecostwhat an answer costs to run

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
Exactly what the numbers cover.

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.
Compared to other MCPs

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.

FAQ

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.

Try it

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.