1. Review your workspace and access
Open Integrations → MCP. If workspace access needs activation, follow the dashboard’s subscription options first. Existing subscribers use Manage Subscription for billing and cancellation. A checkout redirect alone does not prove payment; setup unlocks after the backend verifies access. On your first visit, choose your client from the visible app/developer list. On return visits, select the client beside your connection activity. Choose Claude (web & mobile) or ChatGPT (web) and check the workspace name.- Read and Write is preselected for new connections and when starting another connection.
- Read Only remains available before creation.
- Review the exact permissions in the panel. Current workspace permissions and plan restrictions still apply.
Click Create Connection. This creates a URL and stored permission selection; it does not authorize the assistant or count as first use. Selecting another client does not create a connection automatically.
2. Configure the assistant
Copy the connection’s MCP Server URL and Public Client ID from the setup panel.https://mcp.sendpilot.ai API-key endpoint for this OAuth flow. Keep the supplied URL exactly as stored; older /mcp/connections/... URLs remain valid and are not rewritten.
Claude
- On Claude’s website, open Settings → Connectors → Add custom connector.
- Name it SendPilot and paste the MCP Server URL.
- Choose Sign in now → Use your own OAuth client where shown.
- Paste Public Client ID into OAuth Client ID. Leave the client secret empty.
- Add/connect the connector and continue to sign-in and consent.
ChatGPT
- Open Settings → Apps → Advanced settings and enable developer mode where available.
- Create a custom MCP app and paste the MCP Server URL.
- Choose OAuth, supply the Public Client ID, and leave the client secret empty.
- Connect the app and continue to sign-in and consent.
3. Sign in and authorize
Sign in using the same SendPilot account that created the connection. The grant is fixed to its creator, workspace, registered client and resource URL; another member cannot borrow it merely because they belong to the same workspace. The SendPilot-branded consent page uses Clerk’s native authorization controls:- Desktop: workspace details/permissions and approval sit side by side.
- Mobile: approval comes first; Workspace details & permissions is collapsed underneath and can be expanded before deciding.
openid establishes identity and does not itself grant workspace access.
4. Verify actual use
Return to setup and choose I’ve Finished Setup. Enable SendPilot in a chat and ask:Show my SendPilot workspace and campaigns. Don’t change anything.Use Check Recorded Use or Refresh Connection Records. These refresh historical records; they do not continuously ping the assistant or prove that every tool succeeds.
Read and Write does not bypass outreach and credit-spend approvals. Read Only forbids those writes regardless of a prompt requesting them.
Refresh, recovery, and disconnection
The assistant obtains and refreshes tokens through Clerk. Tokens must remain valid for the configured issuer, registered client, creator, and exact connection URL as their sole resource audience. Refresh does not switch workspaces or recover a revoked grant. Resume Setup reuses the stored URL and permissions; it does not upgrade an existing Read Only connection. Create a new connection for a different workspace, client, or permission selection. Disconnect revokes the connection. It does not disconnect your LinkedIn sender, sign you out of SendPilot, or recall an already-started provider action. Reconnecting requires a new connection. During locked access, expand Manage existing access to inspect or revoke previous connections; history is hidden by default.Troubleshooting
- “This connection requires OAuth support”: use Retry OAuth Setup. Operators should verify that
MCP_OAUTH_ENABLEDis not explicitlyfalseand that issuer/client configuration is valid. A new image preserves existing environment overrides. - Wrong account or workspace: sign in as the creator. Create another connection for another workspace rather than editing the URL.
- 401: check the exact resource URL and client ID, then restart authorization. An API key is not an OAuth client secret.
- No recorded use: creation and sign-in alone are not a tool request. Run the workspace prompt, then refresh records.
- Upgrade/payment required: the workspace owner manages the add-on. Restoring paid access re-enables unrevoked connections.
- Consent stays on Clerk’s hosted domain: custom consent routing is a separate Clerk instance setting. Deploying the branded page or changing the backend issuer does not change that path by itself.
WWW-Authenticate with its matching protected-resource metadata URL. An invented or revoked connection ID is not a valid discovery test.