@advanced-communities/salesforce-mcp-server
npm
v1.6.6
Published by @advanced-communities — no publish provenance, so origin is unverified, but the source is public: the repository link below is self-declared yet readable, so you can inspect the code before adopting it.
MCP server enabling AI assistants to interact with Salesforce orgs through the Salesforce CLI
The grade answers one question — how safe is this server for you to adopt — so it is computed in two auditable stages. Nothing below is an opinion or an LLM's guess; every line is a real term the deterministic engine applied, and the same input always yields the same number.
1. Threat score — 100 − 0 = 100. What the published surface and source actually contain:
The deterministic scan raised no scored threat in the surface it inspected — the threat score stayed at 100. Capability observations and advisory notes are recorded but never lower it.
2. Client adoption risk — 100 − 7 = 93. Three small, subtract-only factors that reflect your risk in adopting it — a clean scan proves less on a powerful, unverified or barely-inspectable package, so the grade says so plainly:
| Points | Adoption-risk factor |
|---|---|
| −6 | capability blast radius (high) — client exposure if the model is manipulated |
| −1 | publisher verification (public source) — no provenance, but the source is public and inspectable |
Capability observations and info notes are shown under Findings but never scored.
Open any row's finding below for the file, line and evidence behind a deduction.
Tool "run_code_analyzer" appears to run shell commands or evaluate code (keyword "run_code" in tool name). Arbitrary execution driven by model input is one of the most dangerous MCP capabilities; combined with any untrusted input it becomes RCE.
Fix: Sandbox execution, allowlist commands/arguments, and never pass model output to a shell unescaped.
Location: tool run_code_analyzer
In the server's implementation (`build/tools/records.js:5`): Spawning a shell/process is command-execution capability; with unsanitized tool input it is command injection / RCE. This is read from the code itself — not from the tool description — so a poisoned server cannot hide it behind honest-looking metadata.
Evidence: ort { exec } from "node:child_process"; import { platform } from "node:os"; import z from "zod"; /** * Wraps a Zod obje
Fix: Review this call path: confirm it never receives unsanitized tool input, constrain it, or remove it. Treat a server whose code reaches these sinks as high-capability regardless of what its tools claim.
Location: server build/tools/records.js
In the server's implementation (`build/utils/sfCommand.js:1`): Spawning a shell/process is command-execution capability; with unsanitized tool input it is command injection / RCE. This is read from the code itself — not from the tool description — so a poisoned server cannot hide it behind honest-looking metadata.
Evidence: ort { exec } from "node:child_process"; import { platform } from "node:os"; import { existsSync } from "node:fs"; import
Fix: Review this call path: confirm it never receives unsanitized tool input, constrain it, or remove it. Treat a server whose code reaches these sinks as high-capability regardless of what its tools claim.
Location: server build/utils/sfCommand.js
Untrusted-input tools ([apex_log_list, apex_get_log]) co-exist with external-action tools ([run_code_analyzer]). A prompt injection could cause unwanted external actions, though no direct sensitive-data leak path was found.
Evidence: untrusted [apex_log_list, apex_get_log] → sinks [run_code_analyzer]
Fix: Require confirmation for state-changing/egress actions triggered after processing untrusted content.
Location: flow apex_log_list → run_code_analyzer
Tool "run_code_analyzer" can mutate/egress but declares no destructiveHint. Clients that don't default to spec-safe behavior may not prompt before running it.
Fix: Declare accurate annotations, and gate destructive tools on user confirmation regardless.
Location: tool run_code_analyzer
Each tool and what it can reach — statically extracted from the published source.
apex_get_logingests untrusted inputapex_log_listingests untrusted inputrun_code_analyzerruns code / shellassign_permission_setno sensitive capabilityassign_permission_set_licenseno sensitive capabilityclear_default_orgno sensitive capabilitycreate_recordno sensitive capabilitydelete_recordno sensitive capabilitydeploy_startno sensitive capabilitydisplay_userno sensitive capabilityexecute_anonymous_apexno sensitive capabilitygenerate_classno sensitive capabilitygenerate_componentno sensitive capabilitygenerate_frontdoor_urlno sensitive capabilitygenerate_triggerno sensitive capabilityget_apex_code_coverageno sensitive capabilityget_apex_test_resultsno sensitive capabilityget_default_orgno sensitive capabilityget_server_permissionsno sensitive capabilityinstall_skillno sensitive capabilitylist_code_analyzer_rulesno sensitive capabilitylist_connected_salesforce_orgsno sensitive capabilitylist_metadatano sensitive capabilitylist_metadata_typesno sensitive capabilitylogin_into_orgno sensitive capabilitylogoutno sensitive capabilityopenno sensitive capabilityopen_recordno sensitive capabilitypackage_installno sensitive capabilitypackage_uninstallno sensitive capabilityquery_recordsno sensitive capabilityquery_records_to_fileno sensitive capabilityrun_apex_testsno sensitive capabilityscanner_runno sensitive capabilityscanner_run_dfano sensitive capabilityschema_generate_tabno sensitive capabilitysearch_recordsno sensitive capabilityset_default_orgno sensitive capabilitysobject_describeno sensitive capabilitysobject_listno sensitive capabilityupdate_recordno sensitive capabilityCross-tool combinations that form a data-exfiltration primitive (untrusted input → sensitive source → external sink).
Scan history per published version. The engine is deterministic — the same version always yields the same score, so a changed score means the package itself changed.
| Version | Score | Findings | Engine | Scanned |
|---|---|---|---|---|
v1.6.6 latest |
A 93/100 | 5 | 1.13.0 | 2026-09-07 |
Show this server's live Trust Score in your README, docs or website. The badge is served straight from the registry and updates automatically after every rescan — no API key needed. It links back to this page, so anyone who sees the grade can also read the findings behind it instead of taking a number on faith.
The score above is reproducible: the same package version always yields the same result. Run it locally or over the free API — no account, no LLM, fully deterministic.
npx mcptrustchecker scan @advanced-communities/salesforce-mcp-server --online
Independent packages implementing the same tool, scanned with the same engine. Compare all 27 side by side →
MCP server for Salesforce CRM integration with Claude Code
A comprehensive Model Context Protocol (MCP) server that provides seamless Salesforce integration for AI development tools.
Comprehensive Salesforce MCP Server with 61+ specialized tools for complete Salesforce ecosystem management - from data operations to advanced DevOps workflows. Supports stdio + HTTP modes for AI assistants and orchestration platforms.
Salesforce CRM integration for the Model Context Protocol (MCP). Autonomous AI access to accounts, contacts, and SOQL queries.
Open-source MCP server that makes any AI assistant a Salesforce expert
MCP Server for Salesforce CRM - Leads, Contacts, Opportunities, Cases
Free public tax reference data — GST/VAT, income, company and capital-gains tax rules for 50+ countries.
The approval gate for unattended UCP buying agents — a policy/approval MCP proxy in front of a merchant's UCP checkout endpoint.
Autotask PSA MCP server. Generic entity query/get/create/update across the full REST API plus convenience tools for tickets, companies, contacts, projects, tasks and time entries. AI-safe with readonly mode and destructive-action confirmation. stdio + opt
MCP server for B2C Commerce developer experience tools
Search, compare and contact real-world companies through a public MCP business directory.
Norwegian business register (Brønnøysundregistrene) as an MCP server — companies, roles, subunits and annual accounts, with the register's silent traps encoded as guards.