01 · Password
Install the CLI and the Python skills
You need Node.js 18+ and Python 3.10+, plus an admin or API-enabled user on the org.
cwd repository root
npm install -g @salesforce/cli
cd agents/operations
pip install -e ".[salesforce]"
Walk password auth or a JWT connected app, then prove it with a query. Checks stay in this browser. Secrets stay in .env.
Fastest path for a person at a laptop. The security token rotates, so this is a poor fit for CI.
01 · Password
You need Node.js 18+ and Python 3.10+, plus an admin or API-enabled user on the org.
cwd repository root
npm install -g @salesforce/cli
cd agents/operations
pip install -e ".[salesforce]"
02 · Password
Password auth appends this token to the password. JWT auth does not use it.
03 · Password
This page never asks for these values. Keep them in .env, which is gitignored.
cwd agents/operations
cp .env.example .env
SF_INSTANCE_URL=https://mrbeast.salesforce.com
SF_USERNAME=your.email@mrbeast.com
SF_PASSWORD=your_password_here
SF_SECURITY_TOKEN=token_from_email
04 · Password
cwd agents/operations
python salesforce/skills/salesforce_auth.py status
python salesforce/skills/salesforce_auth.py login
python salesforce/skills/salesforce_auth.py whoami
05 · Password
The script opens a browser and sets the default target org. Already authenticated? Log out of the alias, then run it again.
cwd agents/operations
cd salesforce/sfdx
bash scripts/setup.sh
No password in the environment. A certificate signs the assertion. Use this for automation.
06 · JWT
Write the key outside the repo. Add server.key to .gitignore. Store a copy in 1Password or AWS Secrets Manager, and rotate the certificate before it expires.
cwd a directory you do not commit
openssl genrsa -out server.key 2048
openssl req -new -x509 -key server.key -out server.crt -days 365 \
-subj "/CN=MrBeast Salesforce API/O=MrBeast/C=US"
07 · JWT
MrBeast API Automation. API name: MrBeast_API_Automation. Contact email: your admin email.https://login.salesforce.com/services/oauth2/callback.server.crt.api, refresh_token, offline_access.08 · JWT
09 · JWT
Setup → App Manager → the app’s dropdown → View → Consumer Key. The JWT skill signs with the private key, so it does not read SF_CONSUMER_SECRET.
10 · JWT
cwd agents/operations
SF_CONSUMER_KEY=consumer_key_from_the_app
SF_PRIVATE_KEY_PATH=/path/to/server.key
SF_USERNAME=your.email@mrbeast.com
11 · JWT
cwd agents/operations
python salesforce/skills/salesforce_auth.py login --method jwt
python salesforce/skills/salesforce_auth.py whoami --method jwt
Reads only. The object skills can create and delete records; this checklist stops before that.
12 · Prove
cwd agents/operations, alias already set
python salesforce/skills/salesforce_query.py "SELECT Id, Name FROM Account LIMIT 5"
sf data query -q "SELECT Id, Name FROM Account LIMIT 5" -o mrbeast
13 · Prove
cwd agents/operations
python salesforce/skills/salesforce_query.py describe Account
python salesforce/skills/salesforce_query.py list-objects --custom-only
14 · Prove
Retrieve pulls metadata into agents/operations/salesforce/sfdx. Deploy writes to the org. Preview before a push with sf project deploy preview -o mrbeast.
sf org open -o mrbeast
sf org display -o mrbeast
sf project retrieve start -o mrbeast
From the operations reference. Queries are read-only examples.
No matching fault in the runbooks.
cwd agents/operations
python salesforce/skills/salesforce_query.py "SELECT Id, Name, Email FROM Contact LIMIT 10" --format table
python salesforce/skills/salesforce_query.py "SELECT Id, Name, (SELECT Id, Name, Email FROM Contacts) FROM Account LIMIT 10"
python salesforce/skills/salesforce_query.py "SELECT Id, Name, Amount, StageName, CloseDate FROM Opportunity WHERE CloseDate >= THIS_MONTH ORDER BY Amount DESC"
python salesforce/skills/salesforce_query.py "SELECT StageName, COUNT(Id), SUM(Amount) FROM Opportunity GROUP BY StageName"
Base https://mrbeast.salesforce.com/services/data/v60.0. Authorization: Bearer token from the auth skill.
| Call | What it does |
|---|---|
| GET /query?q={SOQL} | Run SOQL |
| GET /sobjects | List objects |
| GET /sobjects/Account/describe | Describe Account |
| GET /limits | API usage remaining |
| Prefix | Object |
|---|
| Edition | Calls / 24h |
|---|---|
| Enterprise | 100,000 |
| Unlimited | 500,000 |
| Developer | 15,000 |
Also visible in Setup → Company Information → API Requests, Last 24 Hours.