← Salesforce AI Agent MCP Server
1.0.0npm · salesforce-ai-agent-mcp · current release
Observed 2026-08-22T12:53:02.172Z using mcpSecurity-inventory. Status: succeeded. Negotiated protocol: 2025-06-18.
{
"tools": {
"listChanged": true
}
}| Tool | Category | Annotations | Risk |
|---|---|---|---|
jira_get_storyFetch a Jira story by issue key. Returns summary, description, acceptance criteria, status, labels, assignee, and all custom fields.Input schema{
"type": "object",
"properties": {
"issueKey": {
"type": "string",
"minLength": 1,
"description": "Jira issue key in the format PROJECT-NNN (e.g. SFDC-123)"
}
},
"required": [
"issueKey"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
} | — | — · — | — |
jira_post_commentPost a comment to a Jira story. Used by the AI agent to document deployment results, ask for clarification, or provide status updates. Supports plain text with paragraphs separated by blank lines.Input schema{
"type": "object",
"properties": {
"issueKey": {
"type": "string",
"minLength": 1,
"description": "Jira issue key (e.g. SFDC-123)"
},
"body": {
"type": "string",
"minLength": 1,
"description": "Comment text. Use double newlines to separate paragraphs. Supports plain text — rich formatting will be preserved as ADF."
}
},
"required": [
"issueKey",
"body"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
} | — | — · — | — |
jira_search_storiesSearch Jira stories using JQL (Jira Query Language). Returns matching issues with full details. Example JQL: 'label = "sf-config" AND status = "To Do" AND project = SFDC ORDER BY created DESC'Input schema{
"type": "object",
"properties": {
"jql": {
"type": "string",
"minLength": 1,
"description": "JQL query string. Examples: 'project = SFDC AND status = \"To Do\"', 'label = \"sf-config\" AND assignee = currentUser()', 'issuetype = Story AND sprint in openSprints()'"
},
"maxResults": {
"type": "integer",
"minimum": 1,
"maximum": 100,
"default": 50,
"description": "Maximum number of results to return (1–100, default 50)"
},
"startAt": {
"type": "integer",
"minimum": 0,
"default": 0,
"description": "Zero-based offset for pagination (default 0)"
}
},
"required": [
"jql"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
} | — | — · — | — |
jira_update_story_statusTransition a Jira story to a new status. The available transitions depend on the current workflow configuration. Common statuses: 'To Do', 'In Progress', 'In Review', 'Done', 'Blocked'.Input schema{
"type": "object",
"properties": {
"issueKey": {
"type": "string",
"minLength": 1,
"description": "Jira issue key (e.g. SFDC-123)"
},
"targetStatus": {
"type": "string",
"minLength": 1,
"description": "The target workflow status name (e.g. 'In Progress', 'Done', 'Blocked'). Must match an available transition exactly."
}
},
"required": [
"issueKey",
"targetStatus"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
} | — | — · — | — |
n8n_get_execution_statusRetrieve the current status and output data of an n8n workflow execution by its execution ID. Use this to poll whether a triggered workflow has completed successfully.Input schema{
"type": "object",
"properties": {
"executionId": {
"type": "string",
"minLength": 1,
"description": "The n8n execution ID returned by n8n_trigger_workflow or found in the n8n Executions panel"
}
},
"required": [
"executionId"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
} | — | — · — | — |
n8n_trigger_workflowTrigger a specific n8n workflow by its webhook URL, passing a JSON payload. This enables Claude to kick off the full Salesforce automation pipeline — for example, by sending a Jira issue key to start the analysis and deployment workflow.Input schema{
"type": "object",
"properties": {
"webhookUrl": {
"type": "string",
"format": "uri",
"description": "The full n8n webhook URL for the workflow (e.g. https://your-n8n.com/webhook/abc123). Obtain this from the Webhook trigger node in your n8n workflow."
},
"payload": {
"type": "object",
"additionalProperties": {},
"description": "JSON payload to send to the webhook. Structure depends on what the n8n workflow expects. For the Salesforce AI Agent pipeline, include fields like: { issueKey, projectKey, environment, triggeredBy }"
},
"waitForResponse": {
"type": "boolean",
"default": false,
"description": "If true, the tool waits for a synchronous response from the webhook. If false (default), it fires-and-forgets and returns immediately. Set to true only for workflows configured with 'Respond to Webhook' node."
}
},
"required": [
"webhookUrl",
"payload"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
} | — | — · — | — |
salesforce_create_custom_fieldCreate a custom field on a Salesforce object using the Tooling API. Supports all standard field types including Text, Number, Picklist, Checkbox, Date, Lookup, and more.Input schema{
"type": "object",
"properties": {
"objectName": {
"type": "string",
"minLength": 1,
"description": "Salesforce object API name (e.g. 'Account', 'My_Object__c')"
},
"fieldLabel": {
"type": "string",
"minLength": 1,
"description": "Human-readable field label (e.g. 'Customer Tier')"
},
"fieldApiName": {
"type": "string",
"minLength": 1,
"description": "Field API name without the __c suffix (e.g. 'Customer_Tier'). The __c suffix will be added automatically."
},
"fieldType": {
"type": "string",
"enum": [
"Text",
"Number",
"Currency",
"Picklist",
"MultiSelectPicklist",
"Checkbox",
"Date",
"DateTime",
"Email",
"Phone",
"URL",
"TextArea",
"LongTextArea",
"RichTextArea",
"Lookup",
"MasterDetail",
"Percent",
"AutoNumber",
"Formula"
],
"description": "Salesforce field type. One of: Text, Number, Currency, Picklist, MultiSelectPicklist, Checkbox, Date, DateTime, Email, Phone, URL, TextArea, LongTextArea, RichTextArea, Lookup, MasterDetail, Percent, AutoNumber, Formula"
},
"length": {
"type": "integer",
"minimum": 1,
"maximum": 131072,
"description": "Field length. For Text: 1–255 (default 255). For LongTextArea/RichTextArea: up to 131072 (default 32768). Not used for Date, Checkbox, etc."
},
"precision": {
"type": "integer",
"minimum": 1,
"maximum": 18,
"description": "Total number of digits for Number/Currency/Percent fields (default 18)"
},
"scale": {
"type": "integer",
"minimum": 0,
"maximum": 17,
"description": "Number of decimal places for Number/Currency/Percent fields (default 0)"
},
"required": {
"type": "boolean",
"description": "Whether the field is required (default false)"
},
"unique": {
"type": "boolean",
"description": "Whether the field value must be unique (default false)"
},
"description": {
"type": "string",
"description": "Internal description of the field's purpose"
},
"inlineHelpText": {
"type": "string",
"description": "Help text shown to users in the UI"
},
"defaultValue": {
"type": "string",
"description": "Default value for the field. For AutoNumber fields, this sets the display format (e.g. 'CASE-{000000}')"
},
"referenceTo": {
"type": "string",
"description": "Target object API name for Lookup or MasterDetail fields (e.g. 'Account', 'My_Object__c'). Required for Lookup/MasterDetail types."
},
"relationshipName": {
"type": "string",
"description": "Relationship name for Lookup/MasterDetail fields. Auto-generated if not provided."
},
"picklistValues": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of picklist values for Picklist or MultiSelectPicklist fields (e.g. ['High', 'Medium', 'Low'])"
},
"formula": {
"type": "string",
"description": "Formula expression for Formula fields"
},
"visibleLines": {
"type": "integer",
"minimum": 2,
"maximum": 50,
"description": "Number of visible lines for LongTextArea/RichTextArea fields (default 5)"
}
},
"required": [
"objectName",
"fieldLabel",
"fieldApiName",
"fieldType"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
} | — | — · — | — |
salesforce_create_validation_ruleCreate a validation rule on a Salesforce object using the Tooling API. The rule evaluates an error condition formula and displays an error message when the formula returns true.Input schema{
"type": "object",
"properties": {
"objectName": {
"type": "string",
"minLength": 1,
"description": "Salesforce object API name (e.g. 'Account', 'My_Object__c')"
},
"ruleName": {
"type": "string",
"minLength": 1,
"pattern": "^[A-Za-z][A-Za-z0-9_]*$",
"description": "API name for the validation rule (no spaces, e.g. 'Require_Phone_For_Hot_Leads')"
},
"errorConditionFormula": {
"type": "string",
"minLength": 1,
"description": "Salesforce formula that evaluates to TRUE when the record should be invalid. Example: 'AND(Rating = \"Hot\", ISBLANK(Phone))'"
},
"errorMessage": {
"type": "string",
"minLength": 1,
"description": "Error message shown to users when validation fails (e.g. 'Phone is required for Hot leads')"
},
"description": {
"type": "string",
"description": "Internal description of the rule's purpose"
},
"errorDisplayField": {
"type": "string",
"description": "API name of the field where the error should appear. If omitted, the error appears at the top of the page."
},
"active": {
"type": "boolean",
"default": true,
"description": "Whether the rule should be active after creation (default true)"
}
},
"required": [
"objectName",
"ruleName",
"errorConditionFormula",
"errorMessage"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
} | — | — · — | — |
salesforce_deploy_metadataTrigger a Salesforce metadata deployment using the Metadata API. The metadata must be provided as a base64-encoded ZIP file containing a standard Salesforce metadata package.Input schema{
"type": "object",
"properties": {
"zipFile": {
"type": "string",
"minLength": 1,
"description": "Base64-encoded ZIP file containing the Salesforce metadata package. Must include package.xml and the appropriate metadata folders."
},
"checkOnly": {
"type": "boolean",
"default": false,
"description": "If true, validates the deployment without making changes (dry run). Default false."
},
"testLevel": {
"type": "string",
"enum": [
"NoTestRun",
"RunSpecifiedTests",
"RunLocalTests",
"RunAllTestsInOrg"
],
"default": "NoTestRun",
"description": "Test execution level. Use 'RunLocalTests' or 'RunAllTestsInOrg' for production deployments."
},
"runTests": {
"type": "array",
"items": {
"type": "string"
},
"description": "Specific test class names to run when testLevel is 'RunSpecifiedTests'"
},
"rollbackOnError": {
"type": "boolean",
"default": true,
"description": "Roll back all changes if any component fails (default true)"
},
"ignoreWarnings": {
"type": "boolean",
"default": false,
"description": "Allow deployment to succeed with warnings (default false)"
}
},
"required": [
"zipFile"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
} | — | — · — | — |
salesforce_get_deployment_statusPoll the status of a Salesforce metadata deployment by its deployment ID. Returns component counts, errors, and test results.Input schema{
"type": "object",
"properties": {
"deploymentId": {
"type": "string",
"minLength": 1,
"description": "The deployment ID returned by salesforce_deploy_metadata (18-character Salesforce ID)"
}
},
"required": [
"deploymentId"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
} | — | — · — | — |
salesforce_get_object_fieldsQuery all existing fields on a Salesforce object using the REST API describe endpoint. Returns field names, labels, types, lengths, and picklist values.Input schema{
"type": "object",
"properties": {
"objectName": {
"type": "string",
"minLength": 1,
"description": "Salesforce object API name (e.g. 'Account', 'Contact', 'Opportunity', 'My_Custom_Object__c')"
}
},
"required": [
"objectName"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
} | — | — · — | — |
salesforce_queryExecute a SOQL query against Salesforce and return the results. Use this to verify field values after deployment, check existing records, or validate configuration.Input schema{
"type": "object",
"properties": {
"soql": {
"type": "string",
"minLength": 1,
"description": "SOQL query string. Example: 'SELECT Id, Name, Rating, Phone FROM Account WHERE Rating = \\'Hot\\' LIMIT 10'"
},
"maxRecords": {
"type": "integer",
"minimum": 1,
"maximum": 2000,
"description": "Maximum records to return (1–2000). Use LIMIT in your SOQL for precise control. Default: returns whatever SOQL specifies."
}
},
"required": [
"soql"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
} | — | — · — | — |