Introduction
Sendoso’s MCP server enables AI assistants—such as Claude and ChatGPT—to manage Sendoso actions on your behalf. You can search the gift marketplace, research recipients, send and track gifts, and analyze gifting data. It utilizes the Model Context Protocol (MCP), an open standard supported across major AI tools.
Server URL: https://app.sendoso.com/mcp
Prerequisites
- Sendoso Account: You must have an active Sendoso login. Authentication occurs via your browser upon initial connection (no API keys required).
- Access: Request your Sendoso account team to enable access for your organization prior to setup.
Capabilities & Workflows
All actions execute under your user permissions, respecting your workspace visibility and spending limits.
- Gift Discovery: Search marketplace inventory by brand or theme, inspect trending products, and retrieve full item metadata.
- Recipient Research: Fetch contacts and accounts from Salesforce, access call transcripts, and enrich recipient profiles using email or LinkedIn URLs (requires active team integrations for Salesforce).
- Gift Dispatch: Employs a mandatory two-step preview-and-confirm flow. No orders are finalized or charged without explicit approval. Track status, retrieve gift links, or cancel unshipped items.
- Management & Tracking (Beta): Filter send history, approve paused orders, resend failed attempts, adjust scheduled dates, and export data to CSV.
- Campaign Control (Beta): Review campaign performance, pull analytics, archive, or reactivate campaigns.
Tip: Execute get_user_context to confirm your active connection, or request get_workflow_guide for an interactive walk-through of sending and analytics flows.
Client Setup Instructions
Claude Desktop
Claude Desktop supports remote MCP servers via Custom Connectors.
Note for Claude Enterprise: Owner-level access is required to install custom connectors. Verify your permission level before starting.
- Go to Settings → Connectors → Add custom connector.
- Set Name to Sendoso and URL to https://app.sendoso.com/mcp.
- Click Add, then complete the browser login with your Sendoso credentials.
- Open a new chat, select the tools icon, and verify the connection by asking Claude to run get_user_context.
Claude Code
- Run the following command in your terminal: claude mcp add --transport http sendoso https://app.sendoso.com/mcp
- Launch Claude Code using claude.
- Authenticate via the browser prompt triggered on the first Sendoso request.
- Confirm active connection using the /mcp command inside a session.
Cursor
- Add the configuration to ~/.cursor/mcp.json (create the file if it does not exist):
{
"mcpServers": {
"sendoso": {
"url": "https://app.sendoso.com/mcp"
}
}
}- Completely quit and relaunch Cursor.
- Navigate to Cursor Settings → MCP, click Sendoso, and sign in.
ChatGPT (Developer Mode)
Available on Plus, Pro, Business, Enterprise, and Edu plans.
Note for Business / Enterprise / Edu: A workspace admin must enable Developer mode and custom connectors prior to setup.
- Navigate to Settings → Apps → Advanced settings and toggle Developer mode ON.
- Select Create app, set the URL to https://app.sendoso.com/mcp, and choose OAuth as the Auth Type.
- Complete authentication in the browser window.
- In chat, open the Developer mode menu, toggle Sendoso ON, and confirm access using get_user_context.
OpenAI Codex
- Add the following to ~/.codex/config.toml:
[mcp_servers.sendoso]
url = "https://app.sendoso.com/mcp" - Run codex MCP login Sendoso and sign in through the browser.
- Start codex and verify available tools using codex MCP list.
Legacy Clients (Stdio standard)
For MCP clients relying on standard input/output (command instead of url), bridge the connection using mcp-remote:
{
"mcpServers": {
"sendoso": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://app.sendoso.com/mcp"]
}
}
}Troubleshooting Guide
| Issue / Symptom | Root Cause | Solution |
|---|---|---|
| Tool calls return 403 | MCP access is not enabled for your organization. | Contact your Sendoso account team to request access. |
| Tools list is empty | MCP access is not enabled for your organization. | Contact your Sendoso account team to request access. |
| 401 Error after inactivity | Session token expired. | Reconnect/restart your client and complete sign-in again. |
| Sign-in page does not load | Browser pop-up blocker interrupted OAuth flow. | Grant pop-up permissions for your AI client and retry. |
Available tools
Once connected, tools are exposed per user: what a client shows depends on the team's feature flags and the signed-in user's permissions. All tools run as the authenticated user and return only data that user is permitted to see.
Core tools — every connected user
| Tool | What it does |
| get_user_context | Returns identity details about the authenticated user: id, name, email, role, organization, and team. Use it to confirm the connection resolved your account. |
| get_workflow_guide | Returns step-by-step instructions for a Sendoso workflow. Topics: sending (research a recipient, pick a product, send) and analytics (answer a gifting data question). Call it when a request starts a multi-step job. |
| marketplace_product_search | Search the gift marketplace for products you can send. semantic matches on interest or theme ("wine lover", "puppy"); text matches a brand or product name ("Starbucks", "Yeti"). The team's maximum send price is enforced automatically. Results include a public product-image link (image_url) when available. |
| marketplace_trending | Returns the currently trending marketplace products, ranked by popularity. Good for popular or in-season gift ideas, optionally bounded by a price range. Results include a public product-image link (image_url) when available. |
| marketplace_categories | Retrieves all categories available in the Sendoso Marketplace. |
| get_product_details | Given a product UUID from search results, returns full details — variant UUIDs, pricing, note support, gift-exchange eligibility, and ship-to countries. Call after the user picks a product, before building a send. |
| salesforce_search_profile | Looks up a contact in Salesforce by email and returns name, title, location, company, account ID, and recent activities — the primary source for deal and relationship context. Returns "Salesforce account not connected" when the team has no integration. |
| salesforce_account_details | Given a Salesforce Account ID, returns the most recent contracts, opportunities, and contacts for the account — deeper deal context. Returns "Salesforce account not connected" when the team has no integration. |
| salesforce_notes | Fetches notes, tasks, and activity history for a Salesforce record by email or record ID — for deal context and gift personalization. Returns "Salesforce account not connected" when the team has no integration. |
| call_transcripts | Returns call transcript lines for a recipient email — the strongest source for gift personalization (personal interests mentioned on calls). |
| enrich_profile | Enriches a person by email: full name, role, seniority, company, industry, location, and social profiles. Pairs with Salesforce for recipient enrichment. |
| pdl_search_profile | Enriches a person from a LinkedIn profile URL via People Data Labs (PDL). |
| query_analytics_table | Queries the secure_send_analytics_wide corporate-gifting analytics table (ClickHouse, one row per send) for patterns and insights. Use for aggregate or multi-send questions (counts, trends, lists). |
| execute_send | Sends a gift via a required two-step confirmation: call once to get a preview plus a confirmation token, then call again with the token to send. |
| get_send | Returns full details of one send: status, recipient, gift, message, timeline, delivery issues, recipient link, and tracking. Use when the user asks about a specific send (e.g. "status of send A1B2C3D4E"). |
| get_recipient_link | Returns the recipient-facing link for a link-delivered send (redeem the gift or add an address). Generated in the background, so retry after a few seconds if it is not ready yet. |
| cancel_send | Cancels a send that has not yet shipped or been delivered; can also cancel a teammate's send when the user's permissions allow. The balance is refunded automatically. Always confirm with the user before calling — cancellation is permanent. |
Send tracker tools
Each tool also respects the user's send permissions (read / create / approve), so some users won't see all of these.
| Tool | What it does |
| list_sends | Lists and filters the user's sends, newest first — by status, issue, send type, date range, or a free-text term (recipient, sender, or send ID). Each row has status, recipient, campaign, and any open issue, plus badge counts for open issues and sends pending approval. Paginated 20 per page. Use get_send for one send's full detail, query_analytics_table for aggregates. |
| approve_send | Approves sends paused for approval or insufficient funds via a required two-step confirmation: the first call returns a preview (each send's recipient, campaign, and any extra charge), the second call confirms. Approving an insufficient-funds send moves real money. Visible only to users who can approve sends. |
| send_again | Resends a failed or cancelled send as a new send, optionally correcting the recipient's email or address (or clearing a stale one) first. Creates and charges a brand-new send — the client confirms with the user before executing. Irreversible. |
| manage_scheduled_send | Reschedules a scheduled send to a new time, or processes it immediately ("send now"). Only works while the send is still in the scheduled state; send-now is irreversible. |
| start_sends_csv_export | Starts a background CSV export of the user's sends using the same filters as list_sends and returns a report ID. For when the user wants a file or more rows than chat can show. |
| get_sends_csv_export | Reports the status of a CSV export by report ID and returns the download link once ready (poll until ready_for_download). The link works only for the authenticated user and expires after about a month. |
FAQs
Which AI tools are supported?
Sendoso MCP works with any AI client that speaks the MCP standard over streamable HTTP. If your client supports MCP, it connects to Sendoso.
Is this the same as OSO, Sendoso's AI assistant?
The Sendoso MCP gives your own AI tools the same capabilities available inside Sendoso. These include everything you would do through the platform. It's those same capabilities, now accessible inside your own AI tools.
Will the AI send gifts without my permission?
No. Every send goes through a two-step process: your AI tool will preview the send, including the recipient, product, and price, and then will explicitly ask for your approval before anything is submitted. Nothing ships without your confirmation.
Do my team's send limits still apply?
Yes. Your team's price limits, settings, and all permissions are enforced as they are in the Sendoso platform.