Server
| Endpoint | https://wholesalepilot.com/api/mcp |
| Transport | Streamable HTTP (JSON-RPC 2.0 over POST) |
| Protocol version | 2025-06-18 |
| Authentication | OAuth 2.0 authorization code with PKCE and dynamic client registration, or a workspace API key as a Bearer token |
| Scopes | read (browse products, buyers, campaigns, calls) · full (also run analyze_product) |
| Discovery | /.well-known/oauth-authorization-server · /.well-known/oauth-protected-resource |
| Data boundary | Every connection is scoped to one workspace; it can never read another customer’s data |
| Cost | No charge for the server. analyze_product is free; sending outreach is not exposed over MCP |
Connect
Claude Code. Create a key under API & MCP in the dashboard, then:
claude mcp add --transport http wholesalepilot \ https://wholesalepilot.com/api/mcp \ --header "Authorization: Bearer <your-key>"
Claude desktop app. Add a custom connector with the endpoint above and leave the OAuth fields empty. Claude discovers the authorization server, opens a WholesalePilot sign-in, and you approve read or full access. No key needed.
Cursor, Windsurf, VS Code and other clients. Any client that speaks Streamable HTTP takes this mcp.json entry:
{
"mcpServers": {
"wholesalepilot": {
"url": "https://wholesalepilot.com/api/mcp",
"headers": { "Authorization": "Bearer <your-key>" }
}
}
}Plain HTTP. The handshake, for anyone wiring it by hand:
curl -s https://wholesalepilot.com/api/mcp \
-H "Authorization: Bearer <your-key>" \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-06-18","capabilities":{},"clientInfo":{"name":"curl","version":"0"}}}'Step-by-step instructions for the desktop app are on Connect WholesalePilot to Claude.
Tools
| Tool | What it returns | Parameters | Scope |
|---|---|---|---|
| get_credit_balance | Get the workspace Buyer Credits balance, current plan, and monthly allowance. | none | read |
| list_products | List the products analyzed in this workspace (id, name, source, listing link, B2B summary). | none | read |
| get_product | Get one product with its AI analysis and ranked buyer segments. Pass the product id from list_products. |
| read |
| list_campaigns | List outbound campaigns (id, name, status, leads, credits reserved). |
| read |
| get_campaign | Get one campaign by id with status and credit detail. |
| read |
| list_calls | List AI follow-up calls Aria made, with outcome, sentiment, and summary. Optional status filter: all|interested|completed|no_answer|queued|failed. |
| read |
| analyze_product | Analyze a product — Amazon listing URL or ASIN, online-store product URL, any product page, or a plain-text description — and get the B2B angle plus ranked wholesale / distributor / retail buyer segments, saved to the workspace. Free (no credits). Requires a full-access key. |
| full |
Read tools never change anything. analyze_product saves the analysis to the workspace, which is why it needs a full-scope connection; it does not spend credits and it does not send email. Outreach is started from the dashboard, never from an AI client.
What people ask it
- “Analyze this Amazon listing and tell me which buyer segments to go after first.”
- “List my campaigns and which ones have replies waiting.”
- “Which distributors did we find for the cold-brew concentrate, and how did the calls go?”
- “How many Buyer Credits are left this month?”
Keys, revocation, support
Keys and OAuth grants are created and revoked under API & MCP. Data handling is described in the Privacy Policy. Integration questions: hello@wholesalepilot.com.