apex_execute
Executes Apex REST requests in Salesforce MCP, enabling integration with custom endpoints using specified HTTP methods (GET, POST, PATCH, DELETE). Input action and optional data for streamlined automation.
Instructions
Executes an Apex REST request
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | The Apex REST endpoint to call (e.g., '/MyApexClass') | |
| data | No | Data for POST/PATCH requests | |
| method | No | The HTTP method (default: 'GET') | GET |
Implementation Reference
- src/salesforce/server.py:422-438 (handler)Handler for the apex_execute tool. Extracts action, method, and data from arguments, performs validation, executes the Apex REST request using sf_client.sf.apexecute, and returns the JSON-formatted result as TextContent.elif name == "apex_execute": action = arguments.get("action") method = arguments.get("method", "GET") data = arguments.get("data") if not action: raise ValueError("Missing 'action' argument") if not sf_client.sf: raise ValueError("Salesforce connection not established.") results = sf_client.sf.apexecute(action, method=method, data=data) return [ types.TextContent( type="text", text=f"Apex Execute Result (JSON):\n{json.dumps(results, indent=2)}", ) ]
- src/salesforce/server.py:244-269 (registration)Registration of the apex_execute tool in the list_tools handler, including its name, description, and input schema for validation.types.Tool( name="apex_execute", description="Executes an Apex REST request", inputSchema={ "type": "object", "properties": { "action": { "type": "string", "description": "The Apex REST endpoint to call (e.g., '/MyApexClass')", }, "method": { "type": "string", "description": "The HTTP method (default: 'GET')", "enum": ["GET", "POST", "PATCH", "DELETE"], "default": "GET", }, "data": { "type": "object", "description": "Data for POST/PATCH requests", "properties": {}, "additionalProperties": True, }, }, "required": ["action"], }, ),
- src/salesforce/server.py:247-268 (schema)JSON schema defining the input parameters for the apex_execute tool: action (required string), method (optional enum), data (optional object).inputSchema={ "type": "object", "properties": { "action": { "type": "string", "description": "The Apex REST endpoint to call (e.g., '/MyApexClass')", }, "method": { "type": "string", "description": "The HTTP method (default: 'GET')", "enum": ["GET", "POST", "PATCH", "DELETE"], "default": "GET", }, "data": { "type": "object", "description": "Data for POST/PATCH requests", "properties": {}, "additionalProperties": True, }, }, "required": ["action"], },