2.9 KiB
2.9 KiB
MXCP Salesforce Python Endpoints Example
This example demonstrates how to use MXCP with Salesforce data using Python endpoints.
Overview
This example provides Python MCP endpoints that allow you to:
- Execute SOQL queries to retrieve Salesforce data
- Execute SOSL searches across multiple objects
- List all available Salesforce objects
- Get detailed object descriptions
- Retrieve specific records by ID
- Perform simple text searches across common objects
Configuration
1. Getting Salesforce Credentials
To use this example, you'll need:
- Salesforce Username: Your Salesforce username (email address)
- Salesforce Password: Your Salesforce password
- Security Token: Your Salesforce security token (get from Setup → My Personal Information → Reset My Security Token)
- Instance URL: Your Salesforce instance URL (e.g., https://your-domain.salesforce.com)
- Client ID: A connected app client ID (you can use any valid client ID)
2. User Configuration
Add the following to your MXCP user config (~/.mxcp/config.yml):
mxcp: 1
projects:
salesforce-demo:
profiles:
dev:
secrets:
salesforce:
instance_url: "https://your-instance.salesforce.com"
username: "your-username@example.com"
password: "your-password"
security_token: "your-security-token"
client_id: "your-client-id"
3. Site Configuration
Create an mxcp-site.yml file:
mxcp: 1
project: salesforce-demo
profile: dev
secrets:
- salesforce
Available Tools
SOQL Query
Execute SOQL queries directly as Python function calls:
mxcp run tool soql --param query="SELECT Id, Name FROM Account LIMIT 10"
SOSL Search
Execute SOSL searches across multiple objects:
mxcp run tool sosl --param query="FIND {Acme} IN ALL FIELDS RETURNING Account(Name, Phone)"
Simple Search
Perform simple text searches across common objects:
mxcp run tool search --param search_term="Acme"
List Objects
List all available Salesforce objects:
mxcp run tool list_sobjects
Describe Object
Get detailed information about a specific object:
mxcp run tool describe_sobject --param sobject_name="Account"
Get Object
Get a specific record by its ID:
mxcp run tool get_sobject --param sobject_name="Account" --param record_id="001xx000003DIloAAG"
Project Structure
salesforce/
├── mxcp-site.yml # Site configuration
├── python/ # Python implementations
│ └── salesforce_endpoints.py # All Salesforce endpoint functions
├── tools/ # Tool definitions
│ ├── soql.yml
│ ├── sosl.yml
│ ├── search.yml
│ ├── list_sobjects.yml
│ ├── describe_sobject.yml
│ └── get_sobject.yml
└── README.md