AgentStack
MCP verified MIT Self-run

Salesforce Cloud

mcp-aaronsb-salesforce-cloud · by aaronsb

MCP server providing AI-powered Salesforce tools for opportunity intelligence, conversation analysis, business case generation, and CRUD operations with natural language interaction.

No reviews yet
0 installs
14 views
0.0% view→install

Install

$ agentstack add mcp-aaronsb-salesforce-cloud

✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets Used
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

Are you the author of Salesforce Cloud? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

🌩️ Salesforce MCP Server

This MCP (Model Context Protocol) server provides AI-powered tools for interacting with Salesforce, featuring opportunity intelligence, conversation analysis, business case generation, and standard CRUD operations. Built with pagination support and optimized response structures for AI workflows.

🎯 What This Means for You

Imagine having a sales expert that instantly knows everything about your deals and can give you winning strategies. That's what this AI does with your Salesforce data.

💬 Just Chat Naturally - No Technical Skills Needed

You say: "Show me all Microsoft deals over $100K in the proposal stage" AI does: Searches your entire Salesforce database and returns matching opportunities

You say: "How's the engagement on the Acme deal? Are we talking to the right people?" AI does: Analyzes all your calls, emails, and activities to give engagement insights

You say: "Find me deals similar to this opportunity that we won" AI does: Scans your database for similar successful deals and success patterns

You say: "Create a business case document for this opportunity" AI does: Generates a professional PDF ready for executives

🚀 Real Conversation Examples

Scenario: "I'm struggling with the Acme Corp deal. It's been stuck in negotiation for 2 months."

AI Response: "Let me analyze the Acme opportunity... I see limited engagement in the past 3 weeks. You've had 2 calls with procurement but haven't connected with the decision maker yet. Similar deals that got unstuck had executive sponsor engagement. I found 3 comparable deals where scheduling an executive briefing moved things forward. Here's a business case document you can use..."


Scenario: "My manager wants to know why our cloud migration deals are taking so long to close."

AI Response: "Analyzing your cloud migration opportunities... The average sales cycle is 40% longer than industry standard. The pattern shows deals stall in the technical evaluation stage. Successful cloud deals had solution architects engaged 2 weeks earlier on average. I recommend involving technical resources sooner..."

✨ What You Get

  • 🔍 Smart Search: Find any opportunity with natural language
  • 💬 Engagement Analysis: Know who you're talking to and who you're missing
  • 🧠 Strategic Insights: Get recommendations based on similar successful deals
  • 📊 Pipeline Intelligence: Understand your pipeline health and conversion patterns
  • 📋 Professional Documents: Generate business cases and executive summaries
  • 📈 Performance Analytics: See what's working and what needs attention

The Magic: You just chat naturally. The AI automatically connects to your Salesforce, analyzes millions of data points, finds patterns, and gives you actionable recommendations. It's like having a sales intelligence team, data analyst, and business consultant all rolled into one AI that knows your Salesforce inside and out.

💬 Live Chat Example

| | | |---|---| | 👤 You | Can you look for any open salesforce opportunities where the solution engineer includes Aaron Rochelle? | | 🤖 AI Assistant | Let me help you search for Salesforce opportunities where Aaron Rochelle is involved as a Solution Engineer. I'll run a query in your Salesforce database to find opportunities matching that criteria...📊 Found 3 opportunities:• Cloud Migration - Acme Corp ($250K, Proposal)• Digital Transformation - TechFlow ($180K, Qualification)• Infrastructure Upgrade - GlobalTech ($320K, Negotiation) |


| | | |---|---| | 👤 You | Tell me more about the Acme Corp opportunity | | 🤖 AI Assistant | Here are the key details for the Acme Corp Cloud Migration opportunity:💼 Opportunity Details:Account: Acme Corp• Amount: $250,000• Stage: Proposal• Close Date: 2024-03-15• Decision Maker: Sarah Johnson (IT Director)🔍 Intelligence Insights:• Similar cloud deals average 45 days in proposal stage• 73% win rate when executive sponsor engaged early• Competitor: AWS (primary threat)• Next action: Schedule technical deep-dive |


| | | |---|---| | 👤 You | What similar deals have we won? Show me the patterns | | 🤖 AI Assistant | I found 8 similar cloud migration deals you've won in the past 12 months. Here are the key patterns:🎯 Success Patterns:Average deal size: $275K (vs $250K current)• 67% had solution architect engaged by day 14• 89% included a pilot/POC phase• Executive sponsors attended 78% of demos📋 Recommendation: Schedule Aaron for a technical deep-dive with their DevOps team this week. Based on similar wins, proposing a 2-week pilot will increase close probability by 34%.📄 Would you like me to generate a business case document for this opportunity? |

🤔 What is MCP?

The Model Context Protocol (MCP) is a standardized way for AI models to interact with external tools and resources. MCP servers provide specific capabilities that can be used by AI models through a consistent interface. This Salesforce MCP server allows AI models to interact with Salesforce data and operations in a structured way.

🚀 Installation

npm (recommended)

# Run directly with npx
npx salesforce-cloud

# Or install globally
npm install -g salesforce-cloud

From Source

git clone https://github.com/aaronsb/salesforce-cloud.git
cd salesforce-cloud
npm install
npm run build
node build/index.js

⚙️ Configuration

The server requires configuration in your Claude desktop app's configuration file. On Linux, this is located at ~/.config/Claude/claude_desktop_config.json. On macOS, it's at ~/Library/Application Support/Claude/claude_desktop_config.json.

Add the following configuration to the mcpServers object in your config file:

{
  "mcpServers": {
    "salesforce-cloud": {
      "command": "node",
      "args": ["/path/to/salesforce-cloud/build/index.js"],
      "env": {
        "SF_CLIENT_ID": "your_client_id",
        "SF_CLIENT_SECRET": "your_client_secret",
        "SF_USERNAME": "your_salesforce_username",
        "SF_PASSWORD": "your_salesforce_password",
        "SF_LOGIN_URL": "https://login.salesforce.com"
      }
    }
  }
}

Required Environment Variables

  • SF_CLIENT_ID: Your Salesforce OAuth client ID
  • SF_CLIENT_SECRET: Your Salesforce OAuth client secret
  • SF_USERNAME: Your Salesforce username
  • SF_PASSWORD: Your Salesforce password
  • SF_LOGIN_URL: Salesforce login URL (optional, defaults to https://login.salesforce.com)

To obtain these credentials:

  1. Go to Setup in your Salesforce org
  2. Navigate to App Manager
  3. Create a new Connected App
  4. Enable OAuth settings
  5. Add necessary OAuth scopes
  6. Save and wait for activation
  7. Copy the generated Consumer Key (Client ID) and Consumer Secret (Client Secret)

🎯 Working with Custom Fields

When constructing queries or working with Salesforce data, it's important to understand that many fields referenced may be custom fields specific to your Salesforce instance. Here's what you need to know:

Understanding Custom Fields

  • Custom fields in Salesforce end with __c in their API names
  • What appears as "Implementation Status" in the UI might be stored as "ImplementationStatus_c"
  • Custom fields can represent organization-specific business concepts

Best Practices

  1. Object Metadata Analysis:
  • Use the describe_object tool with includeFields: true to examine both standard and custom fields
  • Look for fields that match your intent in both standard and custom field lists
  • Map user-friendly field names to their actual API names
  1. Field Type Consideration:
  • Custom fields can be various types (text, picklist, lookup, etc.)
  • Understanding field types helps construct appropriate queries
  • Custom fields might reference other custom objects through lookup relationships
  1. Query Construction:
  • Build queries that can handle both standard and custom fields
  • Use field metadata to validate field existence before querying
  • Consider relationships between objects, especially with custom lookup fields

Example

If searching for "Project Status":

  1. First, examine the object's fields to find the actual field name:
{
  "objectName": "Opportunity",
  "includeFields": true
}
  1. Look for fields like "ProjectStatus_c" or similar custom fields that match your intent
  2. Use the discovered field name in your queries:
{
  "query": "SELECT Id, Name, Project_Status__c FROM Opportunity"
}

🛠️ Tools

Core Salesforce Operations

execute_soql

Execute a SOQL query with pagination support.

{
  query: string;      // Required: SOQL query to execute
  pageSize?: number;  // Optional: Number of records per page (default: 25)
  pageNumber?: number; // Optional: Page number to retrieve (default: 1)
}

Example:

{
  "query": "SELECT Id, Name FROM Account",
  "pageSize": 10,
  "pageNumber": 1
}
describe_object

Get metadata about a Salesforce object with optional field information.

{
  objectName: string;    // Required: API name of the Salesforce object
  includeFields?: boolean; // Optional: Whether to include field metadata (default: false)
  pageSize?: number;     // Optional: Number of fields per page (default: 50)
  pageNumber?: number;   // Optional: Page number to retrieve (default: 1)
}

Example:

{
  "objectName": "Account",
  "includeFields": true
}
create_record

Create a new record in Salesforce.

{
  objectName: string;           // Required: API name of the Salesforce object
  data: Record;    // Required: Record data as key-value pairs
}

Example:

{
  "objectName": "Account",
  "data": {
    "Name": "Test Account",
    "Industry": "Technology"
  }
}
update_record

Update an existing record in Salesforce.

{
  objectName: string;           // Required: API name of the Salesforce object
  recordId: string;            // Required: ID of the record to update
  data: Record;    // Required: Record data to update
}

Example:

{
  "objectName": "Account",
  "recordId": "001XXXXXXXXXXXXXXX",
  "data": {
    "Name": "Updated Account Name"
  }
}
delete_record

Delete a record from Salesforce.

{
  objectName: string;    // Required: API name of the Salesforce object
  recordId: string;     // Required: ID of the record to delete
}

Example:

{
  "objectName": "Account",
  "recordId": "001XXXXXXXXXXXXXXX"
}
getuserinfo

Get information about the current user. No parameters required.

{}
list_objects

List all available Salesforce objects with pagination support.

{
  pageSize?: number;   // Optional: Number of objects per page (default: 25)
  pageNumber?: number; // Optional: Page number to retrieve (default: 1)
}

Opportunity Management

search_opportunities

Search for Salesforce opportunities using flexible criteria and pattern matching.

{
  namePattern?: string;         // Optional: Pattern to match in Opportunity Name
  accountNamePattern?: string;  // Optional: Pattern to match in Account Name
  stage?: string;              // Optional: Exact match for opportunity stage
  pageSize?: number;           // Optional: Number of records per page (default: 25)
  pageNumber?: number;         // Optional: Page number to retrieve (default: 1)
}
getopportunitydetails

Get detailed information about a specific opportunity including all available fields and related records.

{
  opportunityId: string;   // Required: The ID of the Salesforce opportunity
}

🧠 Opportunity Intelligence

analyze_conversation

Analyze conversation activity and engagement patterns for an opportunity. Extracts insights from calls, emails, and other activities to provide engagement recommendations.

{
  opportunityId: string;   // Required: The ID of the Salesforce opportunity
}

Example:

{
  "opportunityId": "006XXXXXXXXXX"
}
enrich_opportunity

Enrich an opportunity with market intelligence, industry insights, and strategic recommendations based on similar deal patterns and best practices.

{
  opportunityId: string;              // Required: The ID of the Salesforce opportunity
  includeCompetitiveIntel?: boolean; // Optional: Include competitive analysis (default: false)
  includeBestPractices?: boolean;    // Optional: Include best practices (default: true)
}

Example:

{
  "opportunityId": "006XXXXXXXXXX",
  "includeCompetitiveIntel": true,
  "includeBestPractices": true
}
findsimilaropportunities

Find opportunities similar to a reference opportunity or based on specific criteria. Includes pattern analysis and similarity scoring.

{
  referenceOpportunityId?: string; // Optional: Reference opportunity for similarity matching
  industry?: string;               // Optional: Filter by industry
  minAmount?: number;             // Optional: Minimum opportunity amount
  maxAmount?: number;             // Optional: Maximum opportunity amount
  stage?: string;                 // Optional: Filter by opportunity stage
  isWon?: boolean;               // Optional: Filter by won/lost status
  closeDateStart?: string;       // Optional: Start date (YYYY-MM-DD)
  closeDateEnd?: string;         // Optional: End date (YYYY-MM-DD)
  includeAnalysis?: boolean;     // Optional: Include pattern analysis (default: true)
  limit?: number;                // Optional: Max results (default: 50)
}

Examples:

  1. Find similar to a reference opportunity:
{
  "referenceOpportunityId": "006XXXXXXXXXX",
  "includeAnalysis": true
}
  1. Find by criteria:
{
  "industry": "Information Technology & Services",
  "minAmount": 100000,
  "stage": "Closed Won",
  "limit": 20
}
opportunity_insights

Generate detailed insights and analytics from opportunity data including pipeline health, performance metrics, and trends.

{
  timeframe?: string;              // Optional: 'current_quarter', 'last_quarter', etc.
  includeStageAnalysis?: boolean;  // Optional: Stage distribution analysis (default: true)
  includeOwnerPerformance?: boolean; // Optional: Owner performance metrics (default: true)
  includeIndustryTrends?: boolean; // Optional: Industry trends (default: true)
  includePipelineHealth?: boolean; // Optional: Pipeline health analysis (default: true)
  includeConversionRates?: boolean; // Optional: Conversion rates (default: true)
  minAmount?: number;             // Optional: Minimum amount filter
  maxAmount?: number;             // Optional: Maximum amount filter
  industry?: string;              // Optional: Industry filter
  owner?: string;                 // Optional: Owner filter
}

Example:

{
  "timeframe": "current_quarter",
  "includeStageAnalysis": true,
  "includeOwnerPerformance": true,
  "minAmount": 50000
}
generatebusinesscase

Generate a professional business case document for an opportunity. Returns step-by-step instructions for creating a formatted business case using TeXFlow.

{
  opportunityId: string;    // Required: The ID of the Salesforce opportunity
  clientName?: string;      // Optional: Client name for the document title
  outputFormat?: string;    // Optional: 'pdf', 'docx', or 'markdown' (default: 'pdf')
}

Example:

{
  "opportunityId": "006XXXXXXXXXX",
  "clientName": "Acme Corporation",
  "outputFormat": "pdf"
}

📦 Response Formats

Paginated Response

Operations that return multiple records use this format:

{
  records: T[];           // Array of records for the current page
  totalSize: number;

…

## Source & license

This open-source MCP server is cataloged on AgentStack and links to its original source — we do not rehost the code.

- **Author:** [aaronsb](https://github.com/aaronsb)
- **Source:** [aaronsb/salesforce-cloud](https://github.com/aaronsb/salesforce-cloud)
- **License:** MIT

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet — be the first.

Versions

  • v0.1.0 Imported from the upstream source.