← MCP Salesforce Server

MCP Salesforce Server 1.2.5

npm · @aiondadotcom/mcp-salesforce · current release

14
Tools
0
Resources
0
Templates
0
Prompts

Observation

Observed 2026-08-15T15:29:46.134Z using mcpSecurity-inventory. Status: succeeded. Negotiated protocol: 2025-06-18.

Server capabilities
{
  "tools": {}
}

Tools 14

ToolCategoryAnnotationsRisk
salesforce_authAuthenticate with Salesforce. Automatically detects if authentication is needed and handles OAuth flow. Call this tool if any Salesforce operations fail due to authentication issues.
Input schema
{
  "type": "object",
  "properties": {
    "force": {
      "type": "boolean",
      "description": "Force re-authentication even if current tokens appear valid",
      "default": false
    }
  },
  "additionalProperties": false
}
— · —
salesforce_backupStart comprehensive backups of Salesforce data including all file attachments. Runs asynchronously in background - returns immediately with job ID. Check progress with salesforce_backup_status.
Input schema
{
  "type": "object",
  "properties": {
    "backup_type": {
      "type": "string",
      "enum": [
        "full",
        "incremental",
        "files_only"
      ],
      "description": "Type of backup to perform: 'full' backs up everything, 'incremental' backs up changes since a date, 'files_only' backs up just attachments",
      "default": "incremental"
    },
    "include_files": {
      "type": "boolean",
      "description": "Include modern Files (ContentDocument/ContentVersion) in backup",
      "default": true
    },
    "include_attachments": {
      "type": "boolean",
      "description": "Include legacy Attachment files in backup",
      "default": true
    },
    "include_documents": {
      "type": "boolean",
      "description": "Include Document object files in backup",
      "default": true
    },
    "objects_filter": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Specific objects to backup (empty array = all objects). Example: ['Account', 'Contact', 'CustomObject__c']",
      "default": []
    },
    "since_date": {
      "type": "string",
      "description": "ISO date for incremental backup - only backup records modified after this date. Format: YYYY-MM-DDTHH:mm:ss.sssZ",
      "default": null
    },
    "compression": {
      "type": "boolean",
      "description": "Compress backup files with gzip to save space",
      "default": false
    },
    "parallel_downloads": {
      "type": "number",
      "description": "Number of parallel file downloads (1-10). Higher values = faster but more API usage",
      "default": 5,
      "minimum": 1,
      "maximum": 10
    }
  }
}
— · —
salesforce_backup_listList all available Salesforce backups with their details including timestamp, duration, file counts, and sizes
Input schema
{
  "type": "object",
  "properties": {}
}
— · —
salesforce_backup_statusCheck the status of Salesforce backup jobs. Monitor running, completed, or failed backup operations. Use without parameters to see all jobs, or specify a job_id to get detailed status of a specific backup job.
Input schema
{
  "type": "object",
  "properties": {
    "job_id": {
      "type": "string",
      "description": "Optional: Specific backup job ID to check status for. If not provided, shows status of all backup jobs."
    }
  }
}
— · —
salesforce_createCreate a new record in any Salesforce object. Automatically handles required fields validation.
Input schema
{
  "type": "object",
  "properties": {
    "sobject": {
      "type": "string",
      "description": "SObject API name (e.g., 'Contact', 'Account', 'CustomObject__c'). Use exact API names."
    },
    "data": {
      "type": "object",
      "description": "Field values for the new record. Use API field names as keys (e.g., {'FirstName': 'John', 'LastName': 'Doe', 'Email': 'john@example.com'})"
    }
  },
  "required": [
    "sobject",
    "data"
  ]
}
— · —
salesforce_deleteDelete a record from any Salesforce object. This action is permanent and cannot be undone.
Input schema
{
  "type": "object",
  "properties": {
    "sobject": {
      "type": "string",
      "description": "SObject API name (e.g., 'Contact', 'Account', 'CustomObject__c')"
    },
    "id": {
      "type": "string",
      "description": "Salesforce record ID to delete (15 or 18 character ID)"
    }
  },
  "required": [
    "sobject",
    "id"
  ]
}
— · —
salesforce_describeGet detailed schema information for any Salesforce object, including all fields, data types, and permissions.
Input schema
{
  "type": "object",
  "properties": {
    "sobject": {
      "type": "string",
      "description": "SObject API name to describe (e.g., 'Contact', 'Account', 'CustomObject__c'). Leave empty to get list of all available objects."
    }
  },
  "required": []
}
— · —
salesforce_installation_infoReturns comprehensive information about the learned Salesforce installation, including all object details, field specifications, relationships, permissions, and customizations from the learned installation data.
Input schema
{
  "type": "object",
  "properties": {
    "object_name": {
      "type": "string",
      "description": "Specific object for detailed information (optional). Example: 'Account', 'Contact', 'CustomObject__c'"
    },
    "field_search": {
      "type": "string",
      "description": "Search for fields with this name or label (optional)"
    },
    "show_custom_only": {
      "type": "boolean",
      "description": "Show only custom objects and custom fields",
      "default": false
    },
    "include_relationships": {
      "type": "boolean",
      "description": "Include relationship information between objects",
      "default": true
    },
    "detailed_fields": {
      "type": "boolean",
      "description": "Show detailed field information including data types, constraints, and metadata",
      "default": true
    },
    "include_permissions": {
      "type": "boolean",
      "description": "Include detailed permission information for objects and fields",
      "default": true
    },
    "max_fields_per_object": {
      "type": "number",
      "description": "Maximum number of fields to show per object (default: all fields)",
      "default": 0
    }
  }
}
— · —
salesforce_learnAnalyzes the complete Salesforce installation and creates local documentation of all objects, fields, and customizations. This should be run once after initial setup to enable intelligent assistance.
Input schema
{
  "type": "object",
  "properties": {
    "force_refresh": {
      "type": "boolean",
      "description": "Forces a complete re-analysis even if documentation already exists",
      "default": false
    },
    "include_unused": {
      "type": "boolean",
      "description": "Includes unused/inactive fields and objects in the documentation",
      "default": false
    },
    "detailed_relationships": {
      "type": "boolean",
      "description": "Analyzes detailed relationships between objects",
      "default": true
    }
  }
}
— · —
salesforce_learn_contextLearn and store personal/business context about the user and their Salesforce data model relationships. This helps provide better context-aware assistance across sessions. PROACTIVELY CAPTURE AHA MOMENTS: Whenever you discover something important about the user's workflow, business processes, preferences, challenges, or breakthrough insights during conversations, automatically use store_learning to preserve this knowledge. Look for moments when the user reveals key information, expresses frustration, shares successful strategies, or has realizations - these are valuable learnings that should be stored immediately.
Input schema
{
  "type": "object",
  "properties": {
    "action": {
      "type": "string",
      "enum": [
        "start_interview",
        "answer_question",
        "show_context",
        "reset_context",
        "suggest_questions",
        "quick_setup",
        "store_learning"
      ],
      "description": "Action to perform: start_interview (begin learning), answer_question (provide answers), show_context (display stored context), reset_context (clear all), suggest_questions (get intelligent questions based on data model), quick_setup (explain everything in one go), store_learning (AUTOMATICALLY capture breakthrough insights, aha moments, user preferences, workflow patterns, pain points, or any valuable context discovered during conversation)"
    },
    "question_id": {
      "type": "string",
      "description": "ID of the question being answered (when action is 'answer_question')"
    },
    "answer": {
      "type": "string",
      "description": "Answer to the question (when action is 'answer_question')"
    },
    "context_type": {
      "type": "string",
      "description": "Type of context to focus on (for show_context and suggest_questions). Can be any section name like 'personal', 'business', 'data_model', 'technical_preferences', etc., or 'all' for everything",
      "default": "all"
    },
    "full_name": {
      "type": "string",
      "description": "Your full name (for quick_setup)"
    },
    "email": {
      "type": "string",
      "description": "Your email address (for quick_setup)"
    },
    "role": {
      "type": "string",
      "description": "Your professional role/position (for quick_setup)"
    },
    "company_name": {
      "type": "string",
      "description": "Your company name (for quick_setup)"
    },
    "industry": {
      "type": "string",
      "description": "Your company's industry (for quick_setup)"
    },
    "business_process_description": {
      "type": "string",
      "description": "Complete description of your business processes, how you use Salesforce, what you do, etc. (for quick_setup)"
    },
    "section": {
      "type": "string",
      "description": "Context section to store the learning in (for store_learning). Use descriptive names that capture the nature of the insight: 'aha_moments' for breakthrough realizations, 'pain_points' for challenges discovered, 'workflow_insights' for process discoveries, 'preferences' for user likes/dislikes, 'success_patterns' for what works well, 'technical_discoveries' for system insights, etc. Will be created dynamically if it doesn't exist."
    },
    "key": {
      "type": "string",
      "description": "Key name for the learning (for store_learning). Use specific, descriptive names that capture the insight: 'critical_realization_about_X', 'main_frustration_with_Y', 'breakthrough_solution_for_Z', 'preferred_approach_to_A', 'discovered_workflow_pattern_B', etc. Be specific about what was learned."
    },
    "value": {
      "type": "string",
      "description": "Value/content of the learning (for store_learning)"
    },
    "overwrite": {
      "type": "boolean",
      "description": "Whether to overwrite existing values for the same key (for store_learning). Default: false",
      "default": false
    }
  },
  "required": [
    "action"
  ]
}
— · —
salesforce_queryExecute SOQL queries against any Salesforce object. Supports SELECT, WHERE, ORDER BY, LIMIT, and other SOQL features.
Input schema
{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "description": "SOQL query string (e.g., 'SELECT Id, Name FROM Account WHERE Industry = \\'Technology\\' LIMIT 10'). Use proper SOQL syntax with single quotes for string literals."
    }
  },
  "required": [
    "query"
  ]
}
— · —
salesforce_setupConfigure Salesforce credentials (Client ID, Client Secret, Instance URL)
Input schema
{
  "type": "object",
  "properties": {
    "clientId": {
      "type": "string",
      "description": "Salesforce Connected App Client ID (Consumer Key)"
    },
    "clientSecret": {
      "type": "string",
      "description": "Salesforce Connected App Client Secret (Consumer Secret)"
    },
    "instanceUrl": {
      "type": "string",
      "description": "Salesforce Instance URL (e.g., https://mycompany.salesforce.com)"
    }
  },
  "required": [
    "clientId",
    "clientSecret",
    "instanceUrl"
  ]
}
— · —
salesforce_time_machine_queryQuery historical Salesforce data from backups using Time Machine functionality. Supports point-in-time queries, comparisons, and record history tracking.
Input schema
{
  "type": "object",
  "properties": {
    "operation": {
      "type": "string",
      "enum": [
        "query_at_point_in_time",
        "compare_over_time",
        "get_record_history",
        "list_backups"
      ],
      "description": "The Time Machine operation to perform"
    },
    "targetDate": {
      "type": "string",
      "description": "Target date for point-in-time queries (ISO 8601 format)"
    },
    "startDate": {
      "type": "string",
      "description": "Start date for comparison queries (ISO 8601 format)"
    },
    "endDate": {
      "type": "string",
      "description": "End date for comparison queries (ISO 8601 format)"
    },
    "objectType": {
      "type": "string",
      "description": "Salesforce object type to query (e.g., Account, Contact, ContentVersion)"
    },
    "recordId": {
      "type": "string",
      "description": "Specific record ID for history tracking"
    },
    "filters": {
      "type": "object",
      "description": "Optional filters to apply to the query (field-value pairs, supports wildcards with *)"
    },
    "backupDirectory": {
      "type": "string",
      "description": "Path to backup directory (defaults to ./backups)"
    }
  },
  "required": [
    "operation"
  ]
}
— · —
salesforce_updateUpdate an existing record in any Salesforce object. Requires the record ID and field values to update.
Input schema
{
  "type": "object",
  "properties": {
    "sobject": {
      "type": "string",
      "description": "SObject API name (e.g., 'Contact', 'Account', 'CustomObject__c')"
    },
    "id": {
      "type": "string",
      "description": "Salesforce record ID (15 or 18 character ID)"
    },
    "data": {
      "type": "object",
      "description": "Field values to update. Only include fields you want to change (e.g., {'Email': 'newemail@example.com', 'Phone': '555-1234'})"
    }
  },
  "required": [
    "sobject",
    "id",
    "data"
  ]
}
— · —

Resources 0

Resource templates 0

Prompts 0

Let’s talk about MCP security.

Share your details and our security team will contact you.