Self-Hosted Pardot MCP
MCP server for Salesforce Account Engagement (Pardot). The MCP endpoint is at /api/mcp.
Connect this server from Claude (web or desktop) or ChatGPT as a custom MCP server — see “Connecting your assistant” below.
Configuration status
- ✓ SetSALESFORCE_CLIENT_ID— Salesforce Connected App client id
- ✓ SetSALESFORCE_CLIENT_SECRET— Salesforce Connected App client secret
- ✓ SetTOKEN_ENC_KEY— Encryption key for the OAuth bridge
- ✓ SetPARDOT_BUSINESS_UNIT_ID— Account Engagement Business Unit id
All required configuration is present.
How to configure it
- Create a Salesforce Connected App with OAuth enabled and scopes
pardot_api,api,refresh_token,offline_access,openid. PKCE must be allowed. - Register this server’s callback on the Connected App:
https://<your-domain>/api/oauth/callback. - Set
SALESFORCE_CLIENT_IDandSALESFORCE_CLIENT_SECRETfrom the Connected App. - Generate an encryption key and set
TOKEN_ENC_KEY:openssl rand -base64 32. - Set
PARDOT_BUSINESS_UNIT_IDto your Account Engagement Business Unit id (Setup → Account Engagement Settings in Salesforce). - Restart the server with the new environment variables set.
Connecting your assistant
ChatGPT
- Turn on Developer mode / custom MCP apps first, if you haven’t — ask your ChatGPT workspace admin if you can’t find it.
- Settings → Apps → Create (workspace admins: Workspace settings → Apps → Create).
- Choose OAuth as the authentication method — never an API-key or bearer-token setup. There is no key to paste in, only sign-in.
- Paste this server’s
/api/mcpaddress, then select Scan Tools. - ChatGPT opens a Salesforce sign-in window. Complete that sign-in and approval yourself, in that window.
- Back in ChatGPT, wait for the scan to finish and select Create.
Claude
- Settings → Connectors → Add custom connector.
- Paste the same address.
Either way, you’ll be asked to sign in to Salesforce the first time it connects, and again any time your assistant later asks you to reauthenticate. That’s what keeps the address alone from granting anyone access. Do that sign-in yourself, in a real browser window — if your assistant tries to complete it automatically in the background, open the link it shows you directly instead.