> ## Documentation Index
> Fetch the complete documentation index at: https://redo-44af351d-docs-return-item-identifiers-endpoint.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Redo MCP Server

> Connect AI assistants to your Redo account using the Model Context Protocol (MCP)

## Server Description

The Redo MCP Server lets AI assistants interact with your Redo merchant account through the [Model Context Protocol](https://modelcontextprotocol.io/). You can manage returns, look up order details, update statuses, process items, and message the Redo support AI — all from your preferred AI assistant.

The server works with any MCP-compatible client, including Claude, ChatGPT, Manus, Cursor, VS Code (GitHub Copilot), Windsurf, and Codex.

**Server URL:**

```
https://mcp.getredo.com/mcp
```

## Features

The Redo MCP Server provides tools across orders, returns, discounts, customers, and marketing.

### Orders

| Tool             | Description                                                                                                             |
| ---------------- | ----------------------------------------------------------------------------------------------------------------------- |
| **list\_orders** | Search and list orders by order name, customer email, provider order ID, or date range. Supports pagination.            |
| **get\_order**   | Get detailed information about a specific order including customer, items, totals, discounts, shipping cost, and taxes. |

### Returns

| Tool                        | Description                                                                                                                                                                                             |
| --------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **create\_draft\_return**   | Start a merchant-created draft return for an order. Returns returnable items, non-returnable items, and the draft return ID.                                                                            |
| **manage\_draft\_return**   | Configure a draft return step-by-step by selecting items, editing quantities, answering return-flow questions, choosing compensation, setting overrides, selecting shipment, and configuring exchanges. |
| **submit\_draft\_return**   | Submit a fully configured draft return once it reaches the ready step. Creates the actual return and returns the return ID.                                                                             |
| **list\_returns**           | Search returns by order name, customer email, status, or date range. Supports pagination.                                                                                                               |
| **get\_return**             | Get full return details including items, status, compensation totals, and order info.                                                                                                                   |
| **process\_return**         | Accept or reject each item in a return, with options for restocking and grading.                                                                                                                        |
| **update\_return\_status**  | Change a return's status (in\_transit, delivered, needs\_review, in\_review, flagged, pre\_shipment).                                                                                                   |
| **reopen\_return**          | Reopen a completed or rejected return, resetting items back to open.                                                                                                                                    |
| **close\_return**           | Close a return without processing — marks all items as complete with no further action.                                                                                                                 |
| **create\_return\_comment** | Add a comment to a return's timeline.                                                                                                                                                                   |
| **approve\_return**         | Approve a return so the customer can proceed with shipping items back.                                                                                                                                  |
| **list\_return\_tags**      | List every return tag defined for the authenticated team. Read-only, no input.                                                                                                                          |
| **upsert\_return\_tag**     | Create a new tag, recolor an existing tag, or rename a tag (rename cascades to returns and saved view filters).                                                                                         |
| **delete\_return\_tag**     | Permanently delete a tag and strip it from every return and saved view filter that referenced it. Destructive.                                                                                          |

### Discounts

| Tool                               | Description                                                                                                                                                                                                                 |
| ---------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **get\_discount\_config**          | Get the reusable discount configuration — offer, code/prefix, provider, expiration, eligibility, usage limits, and stacking rules — for a discount ID returned by a campaign, automation, template, or generated-code tool. |
| **get\_generated\_discount\_code** | Look up an issued discount code and its usage records: whether it was used, by which customer or order, when it expires, and what configuration it came from. Accepts a code ID or the code itself.                         |

### Customers

| Tool                | Description                                                                                                                                                                |
| ------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **list\_customers** | Search and list customer records by name, email, phone, or segment membership. Supports pagination. Use to find customer IDs before calling get\_customer.                 |
| **get\_customer**   | Get detailed customer information including contact methods, marketing consent, linked accounts, tags, segment memberships, addresses, custom fields, and loyalty details. |

### Marketing

<Note>
  The marketing tools are only available when Redo Marketing is enabled for your account.
</Note>

| Tool                                     | Description                                                                                                                                                                     |
| ---------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **list\_campaigns**                      | List marketing campaigns, filtered by channel (email/SMS), status, name, or scheduled-date range. Returns a summary per campaign. Supports pagination.                          |
| **get\_campaign**                        | Get full details for a campaign including its templates (email subject lines or SMS variants), audiences, status, and schedule.                                                 |
| **get\_campaign\_performance**           | Get per-campaign performance metrics plus period totals with a prior-period comparison: revenue, spend, ROI, revenue per recipient, and order/click/open/send counts.           |
| **list\_segments**                       | List marketing segments/audiences for the team. Use to discover segment IDs or inspect the audiences included or excluded on a campaign.                                        |
| **get\_segment**                         | Get full configuration for a segment/audience, including counts and the dynamic condition tree when applicable.                                                                 |
| **list\_automations**                    | List automations with IDs, names, enabled state, category, step count, and step types. Filter by step type to find automations for a feature, such as Recover.                  |
| **get\_automation**                      | Get full automation details including enabled state, category, timestamps, and step configuration.                                                                              |
| **get\_automation\_performance**         | Get per-automation performance metrics plus period totals with a prior-period comparison: revenue, spend, ROI, revenue per recipient, and order/click/open/send counts.         |
| **get\_automation\_step\_configuration** | Resolve the linked configuration for a specific automation step — Recover scenarios and messaging, email subject and builder sections, or SMS content, prefix, and attachments. |
| **get\_automation\_step\_performance**   | Get step-level automation performance for a metric family, such as Recover recovered revenue, reply rate, and conversion rate.                                                  |
| **get\_template**                        | Get an email or SMS marketing template by ID — subject lines, email builder sections, SMS content, prefix, attachments, and AI config.                                          |

### Support

| Tool          | Description                                                                                        |
| ------------- | -------------------------------------------------------------------------------------------------- |
| **ask\_redo** | Ask the Redo support AI any question about your account, settings, policies, or platform features. |

## Setup Instructions

### Authentication

Authentication is handled via OAuth. On first connection, you will be redirected to the Redo merchant app to authorize access. No API keys or manual token management is required.

* Your AI assistant initiates the OAuth flow automatically when it first calls a Redo tool
* You authorize the connection in your browser through the Redo merchant app
* The session persists until you revoke access or the token expires

The MCP server only has access to data within your Redo merchant account. Each user authenticates individually.

### ChatGPT

1. Open `Apps` in ChatGPT
2. Search for `Redo`
3. Click `Install`

To use it in a conversation, click the `+` button in the message composer, select `More`, and choose the Redo connector.

### Claude

#### Claude Code

```bash theme={null}
claude mcp add --transport http redo https://mcp.getredo.com/mcp
```

#### Claude Desktop

Open the Claude Desktop app and go to `Settings` > `Developer` > `Edit Config` to open `claude_desktop_config.json`. You can also open the file directly:

* **macOS:** `~/Library/Application Support/Claude/claude_desktop_config.json`
* **Windows:** `%APPDATA%\Claude\claude_desktop_config.json`

Add the `redo` server to the `mcpServers` object:

```json theme={null}
{
  "mcpServers": {
    "redo": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "https://mcp.getredo.com/mcp"]
    }
  }
}
```

Restart Claude Desktop after saving.

### Codex

```bash theme={null}
codex mcp add redo -- npx -y mcp-remote https://mcp.getredo.com/mcp
```

### Cursor

[![Install in Cursor](https://cursor.com/deeplink/mcp-install-dark.svg)](https://cursor.com/en/install-mcp?name=redo\&config=eyJjb21tYW5kIjoibnB4IiwiYXJncyI6WyIteSIsIm1jcC1yZW1vdGUiLCJodHRwczovL21jcC5nZXRyZWRvLmNvbS9tY3AiXX0%3D)

Or install manually: go to `Cursor Settings` > `Tools & MCP` > `New MCP Server`. You can also add to `.cursor/mcp.json` in your project root for project-specific config.

```json theme={null}
{
  "mcpServers": {
    "redo": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "https://mcp.getredo.com/mcp"]
    }
  }
}
```

Restart Cursor after saving.

### Manus

1. Go to `Settings` > `My Plugins`
2. Click `Add Connectors`
3. Click `Create`
4. Click `Custom MCP`
5. Set Server Name to `Redo`
6. Leave Transport Type as `HTTP`
7. Set Server URL to `https://mcp.getredo.com/mcp`
8. Save the connector and complete the Redo OAuth login flow when prompted

### VS Code (GitHub Copilot)

[![Install in VS Code](https://img.shields.io/badge/VS_Code-VS_Code?style=flat-square\&label=Install%20Server\&color=0098FF)](https://vscode.dev/redirect/mcp/install?name=redo\&config=%7B%22command%22%3A%20%22npx%22%2C%20%22args%22%3A%20%5B%22-y%22%2C%20%22mcp-remote%22%2C%20%22https%3A//mcp.getredo.com/mcp%22%5D%2C%20%22env%22%3A%20%7B%7D%7D)

Or install manually: open the command palette (`Cmd+Shift+P` / `Ctrl+Shift+P`) and search for `MCP: Add Server`. Select `User Settings` for global config, or add to `.vscode/mcp.json` in your project root.

```json theme={null}
{
  "servers": {
    "redo": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "mcp-remote", "https://mcp.getredo.com/mcp"]
    }
  }
}
```

Reload VS Code after saving.

### Windsurf

Follow the <a href="https://docs.windsurf.com/windsurf/cascade/mcp#mcp-config-json">configure MCP guide</a> using the config below.

```json theme={null}
{
  "mcpServers": {
    "redo": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "https://mcp.getredo.com/mcp"]
    }
  }
}
```

## Usage Examples

### Look up orders for a customer

**Prompt:**

> Show me all orders for customer [jane@example.com](mailto:jane@example.com).

The AI will call `list_orders` with an email filter to find all orders for that customer and display a summary of each.

### Get details about an order

**Prompt:**

> Get me the full details for order #1234.

The AI will call `list_orders` to find the order by name, then call `get_order` with the order ID to fetch full details including items, totals, discounts, shipping, and taxes.

### Create a return for an order

**Prompt:**

> Create a return for order #1234. Return the blue hoodie, refund to the original payment method, and use the available prepaid shipping option.

The AI will call `list_orders` if it needs to resolve the order, then call `create_draft_return` to start the return. It will use `manage_draft_return` repeatedly to select items, answer any return-flow questions, choose compensation, set shipment details, and follow the draft's `availableActions`. Once the draft reaches the `ready` step and you confirm the details, the AI will call `submit_draft_return` to create the return.

### Search for returns by status

**Prompt:**

> Show me all open returns.

The AI will call `list_returns` with a status filter to find all open returns and display a summary of each.

### Get details about a return

**Prompt:**

> Get me the details about the return for order #1234.

The AI will call `get_return` to fetch full details including item statuses, compensation amounts, and order information.

### Process a return

**Prompt:**

> Process the return for order #5678 — accept all items.

The AI will call `get_return` to retrieve the return's items and their IDs, confirm the details with you, then call `process_return` to accept each item.

### List return tags

**Prompt:**

> What return tags do we have?

The AI will call `list_return_tags` to fetch every tag defined for your team. Use this to discover the exact stored name — names are case-sensitive — before calling `upsert_return_tag` or `delete_return_tag`.

### Create, recolor, or rename a return tag

**Prompt:**

> Rename the "Damaged" tag to "Damaged in transit".

The AI will call `upsert_return_tag` with the current name, a `pillTheme`, and (for a rename) a `newName`. Renames cascade to every return and saved view filter that referenced the old name, so the AI should confirm with you before creating or renaming a tag.

### Delete a return tag

**Prompt:**

> Delete the "Fraud review" tag.

The AI will call `delete_return_tag` with the tag's name. This permanently deletes the tag and strips it from every return and saved view filter that referenced it, so the AI should always confirm with you before calling it.

### Ask a question about your Redo account

**Prompt:**

> Ask Redo what my return flow is configured to do. What eligibility checks, return options, and fees are set up?

The AI will call `ask_redo` to ask the Redo support AI, which has access to your account's configuration and can describe your specific return flow steps, conditions, and settings.

### Find a customer

**Prompt:**

> Find the customer with email [jane@example.com](mailto:jane@example.com).

The AI will call `list_customers` with an email filter to locate the customer and return a summary including their customer ID, name, and contact details.

### Get details about a customer

**Prompt:**

> Show me everything about customer [jane@example.com](mailto:jane@example.com).

The AI will call `list_customers` to resolve the customer ID if needed, then call `get_customer` to return contact methods, marketing consent, linked accounts, tags, segment memberships, addresses, custom fields, and loyalty details.

### Look up a discount's configuration

**Prompt:**

> What are the rules on the discount tied to our welcome automation?

The AI will call `get_discount_config` with the discount ID to return the offer, code or prefix, provider, expiration, eligibility, usage limits, and stacking rules.

### Check whether a discount code was used

**Prompt:**

> Was the code SAVE20-A1B2 ever redeemed, and by whom?

The AI will call `get_generated_discount_code` with the code to return its usage records — whether it was used, which customer or order used it, when it expires, and the base discount configuration it came from. It can follow up with `get_discount_config` to describe the underlying offer.

### List marketing campaigns

**Prompt:**

> Show me all email campaigns we sent in the last 30 days.

The AI will call `list_campaigns` with a channel filter and scheduled-date range to return a summary of each campaign — name, channel, status, schedule, and audience counts.

### Get details about a campaign

**Prompt:**

> What templates and audiences are in our "Spring Sale" campaign?

The AI will call `list_campaigns` to resolve the campaign ID if needed, then call `get_campaign` to return its templates (email subject lines or SMS variants), audiences, status, and schedule.

### Review campaign performance

**Prompt:**

> How did our email campaigns perform last month? Which one drove the most revenue?

The AI will call `list_campaigns` to find the relevant campaigns, then call `get_campaign_performance` for the date range to return per-campaign revenue, spend, ROI, and order/click/open/send counts, plus period totals compared to the prior period.

### List customer segments

**Prompt:**

> What segments do we have set up?

The AI will call `list_segments` to return each segment/audience for your team along with its ID and counts.

### Inspect a segment

**Prompt:**

> What conditions define our "VIP customers" segment, and how many people are in it?

The AI will call `list_segments` to resolve the segment ID, then call `get_segment` to return the audience counts and the dynamic condition tree.

### List automations

**Prompt:**

> What automations do we have running, and which ones use Recover?

The AI will call `list_automations` to return each automation's ID, name, enabled state, category, step count, and step types. Use the step-type filter to surface automations for a feature such as Recover.

### Get details about an automation

**Prompt:**

> Walk me through the steps in our abandoned-cart automation.

The AI will call `list_automations` to resolve the automation ID if needed, then call `get_automation` to return its enabled state, category, timestamps, and step configuration. For a step with an opaque template or config ID, it will call `get_automation_step_configuration` to resolve the scenarios, messaging, and settings behind that step.

### Review automation performance

**Prompt:**

> How are our automations performing this quarter compared to last?

The AI will call `get_automation_performance` for the date range to return per-automation revenue, spend, ROI, revenue per recipient, and order/click/open/send counts, plus period totals compared to the prior period.

### Analyze Recover step performance

**Prompt:**

> How is our Recover abandoned-cart automation doing? What's the recovered revenue and reply rate?

The AI will call `list_automations` (filtering by step type `recover`) to find the automation, then call `get_automation_step_performance` with `metricType='recover_conversation'` and `stepTypes=['recover']` for Recover-specific metrics like recovered revenue, reply rate, and conversion rate.

### Inspect a marketing template

**Prompt:**

> Show me the email content for the template used in our welcome automation.

The AI will call `get_automation` to find the step's template ID, then call `get_template` to return the subject line, email builder sections (or SMS content), attachments, and AI config.

## Rate Limits

The server enforces a rate limit of **500 requests per minute** per authenticated user. If you exceed this limit, requests will receive a `429 Too Many Requests` response with a `Retry-After` header indicating when you can retry.

## Privacy Policy

Redo's privacy policy is available at [https://www.getredo.com/en/privacy-policy](https://www.getredo.com/en/privacy-policy).

The MCP server accesses your Redo merchant data on your behalf using your authenticated session. Data is transmitted securely over HTTPS and is not stored beyond what is needed to fulfill each request.

## Support

For help or to report an issue, email [support@getredo.com](mailto:support@getredo.com).
