← Salesforce AI Agent MCP Server

Salesforce AI Agent MCP Server 1.0.0

npm · salesforce-ai-agent-mcp · current release

12
Tools
0
Resources
0
Templates
0
Prompts

Observation

Observed 2026-08-22T12:53:02.172Z using mcpSecurity-inventory. Status: succeeded. Negotiated protocol: 2025-06-18.

Server capabilities
{
  "tools": {
    "listChanged": true
  }
}

Tools 12

ToolCategoryAnnotationsRisk
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#"
}
— · —

Resources 0

Resource templates 0

Prompts 0

Let’s talk about MCP security.

Share your details and our security team will contact you.