Skip to main content
Glama
ampcome-mcps

MCP Salesforce Connector

by ampcome-mcps

restful

Make direct REST API calls to Salesforce to retrieve, create, update, or delete data using HTTP methods like GET, POST, PATCH, and DELETE.

Instructions

Makes a direct REST API call to Salesforce

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
pathYesThe path of the REST API endpoint (e.g., 'sobjects/Account/describe')
methodNoThe HTTP method (default: 'GET')GET
paramsNoQuery parameters for the request
dataNoData for POST/PATCH requests

Implementation Reference

  • The main handler function for the 'restful' tool. It extracts parameters from arguments, validates them, calls the Salesforce client's restful method, and returns the formatted JSON response.
    elif name == "restful": path = arguments.get("path") method = arguments.get("method", "GET") params = arguments.get("params") data = arguments.get("data") if not path: raise ValueError("Missing 'path' argument") if not sf_client.sf: raise ValueError("Salesforce connection not established.") results = sf_client.sf.restful(path, method=method, params=params, json=data) return [ types.TextContent( type="text", text=f"RESTful API Call Result (JSON):\n{json.dumps(results, indent=2)}", ) ]
  • JSON Schema definition for the 'restful' tool inputs, including path (required), optional method, params, and data.
    types.Tool( name="restful", description="Makes a direct REST API call to Salesforce", inputSchema={ "type": "object", "properties": { "path": { "type": "string", "description": "The path of the REST API endpoint (e.g., 'sobjects/Account/describe')", }, "method": { "type": "string", "description": "The HTTP method (default: 'GET')", "enum": ["GET", "POST", "PATCH", "DELETE"], "default": "GET", }, "params": { "type": "object", "description": "Query parameters for the request", "properties": {}, "additionalProperties": True, }, "data": { "type": "object", "description": "Data for POST/PATCH requests", "properties": {}, "additionalProperties": True, }, }, "required": ["path"], }, ),
  • The tool is registered via the @server.list_tools() decorator on handle_list_tools(), which returns a list of all available tools including 'restful'.
    return [ types.Tool( name="run_soql_query", description="Executes a SOQL query against Salesforce", inputSchema={ "type": "object", "properties": { "query": { "type": "string", "description": "The SOQL query to execute", }, }, "required": ["query"], }, ), types.Tool( name="run_sosl_search", description="Executes a SOSL search against Salesforce", inputSchema={ "type": "object", "properties": { "search": { "type": "string", "description": "The SOSL search to execute (e.g., 'FIND {John Smith} IN ALL FIELDS')", }, }, "required": ["search"], }, ), types.Tool( name="get_object_fields", description="Retrieves field Names, labels and types for a specific Salesforce object", inputSchema={ "type": "object", "properties": { "object_name": { "type": "string", "description": "The name of the Salesforce object (e.g., 'Account', 'Contact')", }, }, "required": ["object_name"], }, ), types.Tool( name="get_record", description="Retrieves a specific record by ID", inputSchema={ "type": "object", "properties": { "object_name": { "type": "string", "description": "The name of the Salesforce object (e.g., 'Account', 'Contact')", }, "record_id": { "type": "string", "description": "The ID of the record to retrieve", }, }, "required": ["object_name", "record_id"], }, ), types.Tool( name="create_record", description="Creates a new record", inputSchema={ "type": "object", "properties": { "object_name": { "type": "string", "description": "The name of the Salesforce object (e.g., 'Account', 'Contact')", }, "data": { "type": "object", "description": "The data for the new record", "properties": {}, "additionalProperties": True, }, }, "required": ["object_name", "data"], }, ), types.Tool( name="update_record", description="Updates an existing record", inputSchema={ "type": "object", "properties": { "object_name": { "type": "string", "description": "The name of the Salesforce object (e.g., 'Account', 'Contact')", }, "record_id": { "type": "string", "description": "The ID of the record to update", }, "data": { "type": "object", "description": "The updated data for the record", "properties": {}, "additionalProperties": True, }, }, "required": ["object_name", "record_id", "data"], }, ), types.Tool( name="delete_record", description="Deletes a record", inputSchema={ "type": "object", "properties": { "object_name": { "type": "string", "description": "The name of the Salesforce object (e.g., 'Account', 'Contact')", }, "record_id": { "type": "string", "description": "The ID of the record to delete", }, }, "required": ["object_name", "record_id"], }, ), types.Tool( name="tooling_execute", description="Executes a Tooling API request", inputSchema={ "type": "object", "properties": { "action": { "type": "string", "description": "The Tooling API endpoint to call (e.g., 'sobjects/ApexClass')", }, "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"], }, ), 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"], }, ), types.Tool( name="restful", description="Makes a direct REST API call to Salesforce", inputSchema={ "type": "object", "properties": { "path": { "type": "string", "description": "The path of the REST API endpoint (e.g., 'sobjects/Account/describe')", }, "method": { "type": "string", "description": "The HTTP method (default: 'GET')", "enum": ["GET", "POST", "PATCH", "DELETE"], "default": "GET", }, "params": { "type": "object", "description": "Query parameters for the request", "properties": {}, "additionalProperties": True, }, "data": { "type": "object", "description": "Data for POST/PATCH requests", "properties": {}, "additionalProperties": True, }, }, "required": ["path"], }, ), ]

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/ampcome-mcps/salesforce-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server