Install @aaronsb/salesforce-cloud-mcp from npm
Install exact version 0.8.2. No verified executable entrypoint is available, so use the package documentation to launch it.
npm install --save-exact @aaronsb/salesforce-cloud-mcp@0.8.2Enables AI-powered interaction with Salesforce, providing opportunity intelligence, engagement analysis, business case generation, and standard CRUD operations through natural language
Detailed security scan evidence is not public for this MCP yet. Public identity, registry metadata, and independently observed protocol inventory remain available.
Installation and connection instructions are shown only when supported by retained package, repository, or endpoint evidence.
Install exact version 0.8.2. No verified executable entrypoint is available, so use the package documentation to launch it.
npm install --save-exact @aaronsb/salesforce-cloud-mcp@0.8.2| Canonical slug | salesforce-mcp-server-79fe34f0 | Deployment | Local Only |
|---|---|---|---|
| Canonical package | npm:@aaronsb/salesforce-cloud-mcp | Repository | aaronsb/salesforce-cloud |
| First published | — | Latest release | — |
| Last security verification | — | Classification confidence | 90% |
| Publication | Draft | Official distribution | Not verified |
| Channel | Identifier | Current version | Versions | Source |
|---|---|---|---|---|
| npm | @aaronsb/salesforce-cloud-mcp | 0.8.2 | 2 | Repository |
| Package | Version | Published / observed | Inventory | Security scan |
|---|---|---|---|---|
| npm@aaronsb/salesforce-cloud-mcp | 0.8.2Current | Sep 5, 2026 | 18 toolsSucceeded · 13 resources · 0 prompts | Evidence restricted |
Independently scan the exact version your agents use, receive alerts when its risk changes, and investigate every finding with retained version evidence.
No public current-version evidence is available yet.
| Tool | Category | Annotations | Risk |
|---|---|---|---|
analyzeRun analytics on any Salesforce object — group by categorical fields, aggregate numeric fields, and compute custom expressions. Uses field-type metadata for validation.Input schema{
"type": "object",
"properties": {
"object": {
"type": "string",
"description": "Salesforce object API name (e.g., Opportunity, Account, Lead)"
},
"filter": {
"type": "string",
"description": "SOQL WHERE clause (e.g., \"StageName = 'Closed Won' AND Amount > 100000\")"
},
"groupBy": {
"type": "string",
"description": "Field to group by (must be picklist, boolean, or similar categorical field)"
},
"compute": {
"type": "array",
"items": {
"type": "string"
},
"description": "Computed expressions (max 5). Format: name = expr. E.g., [\"win_rate = won / total * 100\"]"
},
"maxGroups": {
"type": "number",
"description": "Max groups to return (default: 20)"
}
},
"required": [
"object"
]
} | — | — | |
analyze_conversationAnalyze conversation activity and engagement patterns for an opportunity. Extracts insights from Gong calls, emails, and other activities to provide engagement recommendations.Input schema{
"type": "object",
"properties": {
"opportunityId": {
"type": "string",
"description": "The ID of the Salesforce opportunity to analyze conversation activity for"
}
},
"required": [
"opportunityId"
]
} | — | — | |
batchExecute multiple operations in a single call with result references. Use $N.field to reference prior results (e.g., $0.id for the ID from operation 0). Destructive operations require confirm: true.Input schema{
"type": "object",
"properties": {
"operations": {
"type": "array",
"items": {
"type": "object",
"properties": {
"tool": {
"type": "string",
"description": "Tool name to execute (e.g., create_record, update_record, execute_soql)"
},
"args": {
"type": "object",
"description": "Arguments for the tool. Use $N.field to reference results from earlier operations."
},
"confirm": {
"type": "boolean",
"description": "Required for delete operations. Set to true to confirm destructive action."
}
},
"required": [
"tool",
"args"
]
},
"description": "List of operations to execute sequentially (max 16)"
},
"onError": {
"type": "string",
"enum": [
"bail",
"continue"
],
"description": "Error handling: bail (default) stops on first failure, continue executes remaining"
},
"detail": {
"type": "string",
"enum": [
"summary",
"full"
],
"description": "Response detail level (default: summary)"
}
},
"required": [
"operations"
]
} | — | — | |
create_recordCreate a new record in Salesforce. Supports both standard and custom fields in the data object.Input schema{
"type": "object",
"properties": {
"objectName": {
"type": "string",
"description": "API name of the Salesforce object"
},
"data": {
"type": "object",
"description": "Record data as key-value pairs. For custom fields, use the API name with __c suffix (e.g., { \"Name\": \"Test\", \"Custom_Field__c\": \"Value\" })"
}
},
"required": [
"objectName",
"data"
]
} | — | — | |
delete_recordDelete a record from SalesforceInput schema{
"type": "object",
"properties": {
"objectName": {
"type": "string",
"description": "API name of the Salesforce object"
},
"recordId": {
"type": "string",
"description": "ID of the record to delete"
}
},
"required": [
"objectName",
"recordId"
]
} | — | — | |
describe_objectGet an object's full metadata, including every standard and custom field when includeFields is true. Returns the complete schema — exhaustive but unranked, and large on customised objects. To find out which fields this org actually populates, read `salesforce://field-catalog/{objectName}` instead; it is ranked and far smaller.Input schema{
"type": "object",
"properties": {
"objectName": {
"type": "string",
"description": "API name of the Salesforce object"
},
"includeFields": {
"type": "boolean",
"description": "Whether to include field metadata (default: false). When true, returns all available fields including custom fields, their types, and relationships."
},
"pageSize": {
"type": "number",
"description": "Number of fields per page when includeFields is true (default: 50)"
},
"pageNumber": {
"type": "number",
"description": "Page number to retrieve when includeFields is true (default: 1)"
},
"intent": {
"type": "string",
"enum": [
"pipeline",
"engagement",
"forecasting",
"reporting",
"contact-mapping"
],
"description": "Business intent — filters fields to only those relevant for this use case."
}
},
"required": [
"objectName"
]
} | — | — | |
download_fileDownload a file from Salesforce. Accepts a ContentVersionId (068...) or ContentDocumentId (069...). Saves to a sandboxed workspace directory (default: ~/.local/share/salesforce-cloud-mcp/workspace/, configurable via SF_WORKSPACE_DIR). Text files (CSV, JSON, XML, TXT, etc.) also return content inline. Binary files return the saved path.Input schema{
"type": "object",
"properties": {
"contentId": {
"type": "string",
"description": "ContentVersionId (068...) or ContentDocumentId (069...). Find these by querying ContentDocumentLink: SELECT ContentDocumentId FROM ContentDocumentLink WHERE LinkedEntityId = '<recordId>'"
}
},
"required": [
"contentId"
]
} | — | — | |
enrich_opportunityEnrich an opportunity with market intelligence, industry insights, and strategic recommendations based on similar deal patterns and best practices.Input schema{
"type": "object",
"properties": {
"opportunityId": {
"type": "string",
"description": "The ID of the Salesforce opportunity to enrich with intelligence"
},
"includeCompetitiveIntel": {
"type": "boolean",
"description": "Whether to include competitive intelligence analysis (default: false)"
},
"includeBestPractices": {
"type": "boolean",
"description": "Whether to include industry-specific best practices (default: true)"
}
},
"required": [
"opportunityId"
]
} | — | — | |
execute_soqlExecute a SOQL query. Supports both standard and custom fields (custom fields end with __c in their API names). To see which fields this org actually populates on an object, read the `salesforce://field-catalog/{objectName}` resource — it is ranked, far smaller than a full schema, and works for any object. That catalog is a usage filter rather than a field list: standard fields remain queryable whether or not they appear in it. Use describe_object when you want an object's complete schema.Input schema{
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "SOQL query to execute. For custom fields, use the API name (e.g., Project_Status__c)"
},
"pageSize": {
"type": "number",
"description": "Number of records per page (default: 25)"
},
"pageNumber": {
"type": "number",
"description": "Page number to retrieve (default: 1)"
},
"detail": {
"type": "string",
"enum": [
"summary",
"full"
],
"description": "Response detail level (default: summary)"
}
},
"required": [
"query"
]
} | — | — | |
find_similar_opportunitiesFind opportunities similar to a reference opportunity or based on specific criteria. Includes pattern analysis and similarity scoring to identify market trends and success patterns.Input schema{
"type": "object",
"properties": {
"referenceOpportunityId": {
"type": "string",
"description": "Optional reference opportunity ID to find similar deals based on its characteristics"
},
"industry": {
"type": "string",
"description": "Filter by industry (e.g., \"Information Technology & Services\")"
},
"minAmount": {
"type": "number",
"description": "Minimum opportunity amount"
},
"maxAmount": {
"type": "number",
"description": "Maximum opportunity amount"
},
"stage": {
"type": "string",
"description": "Filter by opportunity stage (e.g., \"Closed Won\", \"Proposal\")"
},
"isWon": {
"type": "boolean",
"description": "Filter by won/lost status"
},
"closeDateStart": {
"type": "string",
"description": "Start date for close date range (YYYY-MM-DD)"
},
"closeDateEnd": {
"type": "string",
"description": "End date for close date range (YYYY-MM-DD)"
},
"includeAnalysis": {
"type": "boolean",
"description": "Whether to include pattern analysis and insights (default: true)"
},
"limit": {
"type": "number",
"description": "Maximum number of results to return (default: 50)"
}
}
} | — | — | |
generate_business_caseGenerate a markdown business case report for an opportunity. Fetches opportunity details, contacts, conversation insights, and similar won deals to produce a complete report.Input schema{
"type": "object",
"properties": {
"opportunityId": {
"type": "string",
"description": "The ID of the Salesforce opportunity to generate a business case for"
},
"clientName": {
"type": "string",
"description": "Optional client name to override the account name in the report title"
}
},
"required": [
"opportunityId"
]
} | — | — | |
get_opportunity_detailsGet detailed information about a Salesforce opportunity including all available fields (both standard and custom), related records, and metadataInput schema{
"type": "object",
"properties": {
"opportunityId": {
"type": "string",
"description": "The ID of the Salesforce opportunity to retrieve details for"
},
"detail": {
"type": "string",
"enum": [
"summary",
"full"
],
"description": "Response detail level (default: full)"
},
"intent": {
"type": "string",
"enum": [
"pipeline",
"engagement",
"forecasting",
"reporting",
"contact-mapping"
],
"description": "Business intent — selects relevant fields automatically. Omit for all fields."
},
"fields": {
"type": "array",
"items": {
"type": "string"
},
"description": "Explicit field names to return. Overrides intent if both provided."
}
},
"required": [
"opportunityId"
]
} | — | — | |
get_user_infoGet information about the current userInput schema{
"type": "object",
"properties": {}
} | — | — | |
list_objectsList all available Salesforce objects, including both standard and custom objectsInput schema{
"type": "object",
"properties": {
"pageSize": {
"type": "number",
"description": "Number of objects per page (default: 25)"
},
"pageNumber": {
"type": "number",
"description": "Page number to retrieve (default: 1)"
}
}
} | — | — | |
opportunity_insightsGenerate detailed insights and analytics from opportunity data including pipeline health, performance metrics, industry trends, and strategic recommendations.Input schema{
"type": "object",
"properties": {
"timeframe": {
"type": "string",
"description": "Time period for analysis",
"enum": [
"current_quarter",
"last_quarter",
"current_year",
"last_year",
"all_time"
]
},
"includeStageAnalysis": {
"type": "boolean",
"description": "Include stage distribution and conversion analysis (default: true)"
},
"includeOwnerPerformance": {
"type": "boolean",
"description": "Include individual owner performance metrics (default: true)"
},
"includeIndustryTrends": {
"type": "boolean",
"description": "Include industry-specific performance trends (default: true)"
},
"includePipelineHealth": {
"type": "boolean",
"description": "Include pipeline health and timing analysis (default: true)"
},
"includeConversionRates": {
"type": "boolean",
"description": "Include stage conversion rate analysis (default: true)"
},
"minAmount": {
"type": "number",
"description": "Minimum opportunity amount for analysis"
},
"maxAmount": {
"type": "number",
"description": "Maximum opportunity amount for analysis"
},
"industry": {
"type": "string",
"description": "Filter analysis to specific industry"
},
"owner": {
"type": "string",
"description": "Filter analysis to specific owner"
}
}
} | — | — | |
search_fieldsFind the field(s) that carry a concept, when you know what you want to query but not the API name. Searches every scored field on the discovered objects — not just the promoted ones — across API names, labels, and help text, ranked by match strength. Searches the core objects by default; pass objectName to scope to one, which discovers it on demand. Set includeValues to get the value set for matched picklists, so you can write the WHERE clause without a second lookup. The match is lexical, not semantic: it finds fields whose name, label or help text contains the term, so a concept this org names differently will not surface, and an object that has not been discovered is not searched. Read `salesforce://field-catalog/{objectName}/all` to browse everything on an object.Input schema{
"type": "object",
"properties": {
"term": {
"type": "string",
"description": "What to look for, matched against field API names, labels, and help text (e.g. \"ai\", \"renewal date\", \"region\")"
},
"objectName": {
"type": "string",
"description": "Restrict the search to one object (e.g. Opportunity). Omit to search all discovered core objects."
},
"includeValues": {
"type": "boolean",
"description": "Include the active value set for matched picklist fields (default: false). Free — the values come from metadata already discovered."
},
"minPopulationPct": {
"type": "number",
"description": "Drop fields populated on fewer than this percent of records (0-100). Omit to include sparsely-populated fields, which is often where custom flags live."
},
"limit": {
"type": "number",
"description": "Maximum matches to return (default: 25, max: 100)"
}
},
"required": [
"term"
]
} | — | — | |
search_opportunitiesSearch for Salesforce opportunities by name, account, and stage. Returns matching opportunities ordered by close date. Results include both standard and custom fields.Input schema{
"type": "object",
"properties": {
"namePattern": {
"type": "string",
"description": "Pattern to match in Opportunity Name. Example: \"Github\" will match \"Github Migration\" or \"My Github Project\"."
},
"accountNamePattern": {
"type": "string",
"description": "Pattern to match in Account Name. Example: \"Ford\" will match opportunities for \"Ford\" or \"Ford Motor Company\"."
},
"stage": {
"type": "string",
"description": "Exact match for opportunity stage. Common values: \"Proposal\", \"Qualification\", \"Negotiation\", \"Closed Won\", \"Closed Lost\"."
},
"pageSize": {
"type": "number",
"description": "Number of records per page (default: 25)"
},
"pageNumber": {
"type": "number",
"description": "Page number to retrieve (default: 1)"
},
"detail": {
"type": "string",
"enum": [
"summary",
"full"
],
"description": "Response detail level (default: summary)"
}
}
} | — | — | |
update_recordUpdate an existing record in Salesforce. Supports updating both standard and custom fields.Input schema{
"type": "object",
"properties": {
"objectName": {
"type": "string",
"description": "API name of the Salesforce object"
},
"recordId": {
"type": "string",
"description": "ID of the record to update"
},
"data": {
"type": "object",
"description": "Record data to update as key-value pairs. For custom fields, use the API name with __c suffix (e.g., { \"Custom_Field__c\": \"New Value\" })"
}
},
"required": [
"objectName",
"recordId",
"data"
]
} | — | — |
salesforce://field-catalog/AccountRanked fields for Account (discovery in progress)
salesforce://field-catalog/Account/allAll scored fields for Account, including non-promoted, with scoring rationale
salesforce://field-catalog/ContactRanked fields for Contact (discovery in progress)
salesforce://field-catalog/Contact/allAll scored fields for Contact, including non-promoted, with scoring rationale
salesforce://field-catalog/ContentVersionRanked fields for ContentVersion (discovery in progress)
salesforce://field-catalog/ContentVersion/allAll scored fields for ContentVersion, including non-promoted, with scoring rationale
salesforce://field-catalog/ContractRanked fields for Contract (discovery in progress)
salesforce://field-catalog/Contract/allAll scored fields for Contract, including non-promoted, with scoring rationale
salesforce://field-catalog/_statsDiscovery status: in progress — 0/6 objects
salesforce://field-catalog/LeadRanked fields for Lead (discovery in progress)
salesforce://field-catalog/Lead/allAll scored fields for Lead, including non-promoted, with scoring rationale
salesforce://field-catalog/OpportunityRanked fields for Opportunity (discovery in progress)
salesforce://field-catalog/Opportunity/allAll scored fields for Opportunity, including non-promoted, with scoring rationale
salesforce://field-catalog/{objectName}Fields this org actually populates on an object, ranked by observed usage and quality. Not an exhaustive field list — standard fields stay queryable whether or not they appear here.
salesforce://field-catalog/{objectName}/allAll scored fields for a Salesforce object, including non-promoted, with scoring rationale
| Endpoint | Transport | Authentication | Health | Observed |
|---|---|---|---|---|
| No verified remote endpoint is linked. | ||||
Install the selected package version with: npm install --save-exact @aaronsb/salesforce-cloud-mcp@0.8.2
Salesforce MCP Server exposed 18 tools during independent protocol observation, including analyze, analyze_conversation, batch, create_record, delete_record, describe_object, download_file, enrich_opportunity, and others.
The selected current version does not yet have completed public verification. Unknown does not mean clean or vulnerable.
These internal links are derived from strong identity fields such as the implementation name, package, repository, vendor, and listing name—not generic description prose.
Association is based on retained identity fields; it does not by itself prove first-party publication.
Curated product and capability guides containing this catalog record.