# Easypromos MCP connector

The Easypromos connector lets Claude, ChatGPT, Cursor, and the Elaichi Agent read your promotions, participants, participations, and prizes, so your team can ask who entered a giveaway and which prizes remain, with every request logged.

Source: https://elaichi.ai/connectors/easypromos/

## Facts

| | |
| --- | --- |
| Application | Easypromos |
| Category | Marketing Automation |
| AI tools | 31 |
| Authentication | Connects with an API key |
| Bring your own OAuth app | No |
| MCP endpoint | https://api.elaichi.ai/mcp |
| Works with | Claude, ChatGPT, Cursor, any MCP client, and the Elaichi Agent |
| Tools advertised by name | No. Connected tools are never listed one by one, however few there are. The endpoint advertises `search_tools` and `execute_tool` instead |

## What you can ask once Easypromos is connected

- How many participations does the spring giveaway have so far?
- Which prizes in the Black Friday promotion still have inventory left?
- List everyone who entered the photo contest more than once.

## Connect Easypromos in Elaichi

This happens once for the organization, before any client is involved.

1. Open Connections, choose Add connection, and pick Easypromos.
2. Optionally set Share with, then press Connect.
3. Paste an Easypromos API key. One person generates a token in Easypromos and pastes it once. Everyone else works through Share with, and never sees it.

Credentials are vaulted and nobody, including the AI, reads them back. The connection becomes a toolbox immediately, so you can curate which Easypromos tools are exposed, rename them, or freeze arguments before anyone points a client at it.

## Easypromos MCP connector for Claude

Endpoint: https://api.elaichi.ai/mcp

1. Open Customize, then Connectors.
2. Press Add.
3. Name it, paste the MCP server URL, then Continue.
4. Sign in and approve.

On Team and Enterprise, an Owner adds it once. Everyone else turns it on for themselves.

## Easypromos MCP connector for ChatGPT

Endpoint: https://api.elaichi.ai/mcp

1. Open Plugins, then press the + button.
2. Name it and paste the endpoint into Server URL.
3. Leave Authentication on OAuth, then tick the risk acknowledgement.
4. Press Create, then sign in and approve.

Works on the web today. The plugin directory lives at chatgpt.com/plugins.

## Easypromos MCP connector for Cursor

Endpoint: https://api.elaichi.ai/mcp

1. Open `~/.cursor/mcp.json`.
2. Add the endpoint under `mcpServers`.
3. Reload Cursor, then sign in and approve.

Set up per machine, so repeat it on each computer you work from.

## Connect Easypromos to any MCP client

Endpoint: https://api.elaichi.ai/mcp

1. Add the endpoint as a remote MCP server.
2. Sign in and approve.

The Elaichi Agent already has these tools, with nothing to set up.

## What the consent screen decides

Only Read is granted by default, which is not enough to call a Easypromos tool. Over MCP there is no trusted place to confirm a write in the moment, so the consent screen is the standing approval rather than a formality. Grant Read and Run tools. Think hard before granting Delete, which reaches into connected apps and cannot be undone.

## What teams do with Easypromos through Elaichi

### Check how a giveaway is doing mid-flight

Marketing. Ask how many participations a promotion has so far and which stage it is in, without opening the Easypromos dashboard. Compare it with last month's contest in the same conversation.

### See who entered the photo contest

Social media. Pull the participants for a promotion and spot people who entered more than once before the draw. Check whether a specific entry met the requirements.

### Answer a participant asking about their prize

Support. Look up a participant, see their participations, and confirm which prize they were assigned. Check how many entries they have remaining when they say the form stopped them.

### Report across every client brand

Agency accounts. List promotions by organizing brand and summarize what is live, scheduled, or closed for each client before the weekly call.

### Move winners and entrants into segments

CRM. Assign participants to a segment once a promotion closes, or take them out again, so the follow-up campaign reaches the right people.

### Know how many prizes are left to ship

Fulfillment. Check prize inventory and who has been awarded each prize before ordering more stock or closing a promotion early.

## Elaichi vs Zapier MCP vs Composio for Easypromos

All three can connect Easypromos to an AI assistant, and all three have admin controls. They differ in where access lives and how you pay.

| What to check | Elaichi | Zapier MCP | Composio |
| --- | --- | --- | --- |
| Where the AI connects | One address for the whole organization. Endpoint: https://api.elaichi.ai/mcp | A server per member, created at sign-in. | An MCP endpoint per team, or an SDK. |
| Control over Easypromos tools | Allow or restrict single Easypromos tools, per role or user. | App and action restrictions on the account. | Role permissions, down to the action. |
| Record of calls | One audit entry per Easypromos call. | A History tab of tool calls. | A log of every tool call. |
| Single sign-on | SAML or OIDC, plus SCIM, on Gold. | SAML on Enterprise. | SAML and OIDC on Enterprise. |
| Price | $15 per user per month. | 2 tasks per successful call. | Billed per tool call. |

Sources: Zapier MCP [docs](https://docs.zapier.com/mcp/get-started/quickstart), [security](https://docs.zapier.com/mcp/manage/security), [usage](https://docs.zapier.com/mcp/features/usage); Composio [docs](https://docs.composio.dev/docs/composio-connect), [gateway](https://composio.dev/mcp-gateway), [enterprise](https://composio.dev/enterprise), [pricing](https://composio.dev/pricing). Checked September 2026.

Longer take: [Zapier MCP alternative](/blog/zapier-mcp-alternative/) and [when you don't need an MCP gateway](/blog/when-you-dont-need-an-mcp-gateway/).

## Frequently asked questions

### How do I connect Easypromos to Claude?

Connect Easypromos in Elaichi by pasting the API key from your Easypromos account, which takes about a minute. Then open Claude, go to Customize, then Connectors, then Add, and paste https://api.elaichi.ai/mcp. There is no OAuth application to register and no client ID or secret to generate.

### Does Easypromos work with ChatGPT and Cursor as well as Claude?

Yes. Once Easypromos is connected in Elaichi, the same endpoint, https://api.elaichi.ai/mcp, works in Claude, ChatGPT, Cursor, any other MCP client, and the Elaichi Agent. You connect Easypromos once and every client picks it up.

### What can an AI agent actually do with my Easypromos data?

It can list your Easypromos promotions and their stages, see who participated and how often, check which prizes exist and how much inventory is left, and look up a single participant or winner. It can also assign participants to segments, validate a code, and check whether someone still meets the entry requirements. Short, concrete asks like "who won the April giveaway" work better than long sentences.

### Does connecting Easypromos give the AI access to everything in my account?

An agent can only reach what the connected Easypromos API key can reach, and each person signs in to Elaichi as themselves, so every request is tied to a named person. Elaichi can narrow that access further by team or by action. It never widens what Easypromos itself would allow.

### Can my team share one Easypromos connection?

Yes. One person connects Easypromos in Elaichi and shares it with a team, and nobody else ever sees or handles the API key. Each teammate still signs in as themselves, so the audit log names who asked for which promotion or participant.

### Can I stop an agent from deleting or changing things in Easypromos?

Yes. Restrictions in Elaichi apply per action, so you can allow reading Easypromos promotions and prizes while blocking segment changes or removals. A restricted action is never shown to Claude, ChatGPT, or any other client, so no prompt can reach it.

### What happens to an Easypromos connection when someone leaves?

Offboarding that person in Elaichi ends their access to Easypromos through every client at once. A connection they shared keeps working for everyone else on the team. If you want Easypromos gone entirely, disconnecting it once in Elaichi removes it from every client.

### Does the Easypromos MCP connector work with Gemini, Codex, Claude Code or other MCP clients?

Yes. Easypromos is reached over the same MCP endpoint every client uses, so anything that speaks MCP can call it — Gemini, Codex, Claude Code, Windsurf, Cline, Zed and OpenCode among them — alongside Claude, ChatGPT, Cursor, and the Elaichi Agent. The tools on offer and the access behind them are identical whichever client asks. Only the setup screen differs.

### Is Elaichi an alternative to Zapier MCP for Easypromos?

Yes. Both let Claude, ChatGPT or Cursor use Easypromos. Zapier MCP fits a team that already automates in Zapier, since each person signs in and acts as themselves in that account. Elaichi fits when IT wants one address for the whole company, per-tool rules by role, and a record of every Easypromos call.

### How is Elaichi different from Composio for Easypromos?

Composio gives AI agents tools and sign-in handling across 1,000+ apps, for developers building agents or people using an assistant, billed per tool call. Elaichi gives a company's own people governed access to Easypromos: one address, restrictions per role or user, and $15 per user per month. Both have role permissions and a log of every call.

## All 31 Easypromos tools

Every tool below is callable through https://api.elaichi.ai/mcp once Easypromos is connected, subject to the toolbox it is in and the restrictions on the caller.

- **List all Easypromos promotions** (List). List the promotions of the Easypromos account. Returns each promotion's id and attributes (the promotion's basic information fields). Supports optional status and order filters.
- **Get single Easypromos promotion by ID** (Get). Get the basic information of a single Easypromos promotion by id. Returns the promotion's id and attributes (the promotion fields as defined in the Easypromos Promotion schema). Required: id.
- **List all Easypromos organizing brands** (List). List the organizing brands of the Easypromos account. Returns the collection of organizing brand records, each including its id.
- **Get single Easypromos organizing brand by ID** (Get). Get the basic information of a single organizing brand in Easypromos by id. Returns the organizing brand object, including its id. Required: id.
- **List all Easypromos organizing brand promotions** (List). List the promotions of a specific organizing brand in Easypromos. Returns promotion records including id, status, created_at, and updated_at. Required: organizing_brand_id.
- **Get single Easypromos stage by ID** (Get). Get all data of a single participation stage in an Easypromos promotion. Returns the stage record including its id and type-specific attributes defined upstream. Required: id, promotion_id.
- **List all Easypromos stages** (List). List all participation stages in an Easypromos promotion. Returns stage records including their id and type-specific attributes defined upstream. Required: promotion_id.
- **Get single Easypromos user by ID** (Get). Get all data of a single user registered in an Easypromos promotion. Returns the user record with its id and an attributes object whose field set is defined by the upstream UserFull schema. Required: id, promotion_id.
- **List all Easypromos users** (List). List the users registered in an Easypromos promotion. Returns each user's id, first_name, last_name, email, and segments. Required: promotion_id.
- **Get single Easypromos users logintoken by ID** (Get). Get the login token of a user registered in an Easypromos promotion by promotion and user id. Returns the login token object with lt, the unique access code for the participant (Login Token). Required: id, promotion_id.
- **Easypromos users segments assign** (Assign). Assign one or multiple segments to an easypromos user. Returns: status. Segments must already exist in the promotion, organizing brand, or account. Required: promotion_id, lt, segments.
- **Delete a Easypromos users segment by ID** (Delete). Remove one or multiple segments from an easypromos user. Returns: status. Segments must already exist in the promotion, organizing brand, or account. Required: id, lt, segments.
- **Create a Easypromos users autologin** (Create). Log in or register a user in an Easypromos promotion via the server-side autologin flow. Returns the user Login Token (lt), whether the user was already registered (registered), and the Easypromos user_id. Required: promotion_id, external_id.
- **Get single Easypromos participation by ID** (Get). Get a single Easypromos participation by id within a promotion. Returns the participation record including its id, the user who participated, and the prize if the participation won one. Required: id, promotion_id.
- **List all Easypromos participations** (List). List Easypromos participations of a promotion, ordered by creation date descending. Returns each participation's id, user, and prize if won. Required: promotion_id.
- **List all Easypromos participation users** (List). List all participations of a single user in an Easypromos promotion. Returns a paginated list of participation records including id, promotion_id, stage_id, user_id, created, points, and the data key-field array. Required: promotion_id, user_id.
- **List all Easypromos participation remainings** (List). Get the remaining participations a user has left in a specific stage of an easypromos promotion, based on the stage's configured limits (per promotion, day, week, or hour). Returns: remaining, can_participate, next_participation. Required: promotion_id, stage_id, user_id.
- **List all Easypromos participation check requirements** (List). Check whether a user is eligible to meet a participation stage's requirement in Easypromos; currently only the Virtual Coin requirement is supported. Returns the url to complete the participation when the user has sufficient balance; the call errors when the balance is insufficient. Required: promotion_id, stage_id, lt.
- **List all Easypromos participation validate codes** (List). Submit a code for validation so a participant can enter an Easypromos participation stage. The stage must have the code validation requirement enabled. Returns the ticket_id of the valid requirement and the url to complete the participation (with the login token included for autologin). Required: promotion_id, stage_id, lt, code.
- **List all Easypromos participation participates** (List). Submit a new participation for a registered user in an Easypromos participation stage, consuming one of the user's available participations; supported for direct participation, spin the wheel, scratch & win, and reveal & win stages, and recommended for Instant Win promotions. Returns: participation_id, available_participations, prize. Required: promotion_id, stage_id, lt.
- **Get single Easypromos prize by ID** (Get). List all prizes assigned in an Easypromos promotion together with the information of the user who won each one. Returns: paging. Required: promotion_id, id.
- **List all Easypromos prizes** (List). List all prizes assigned in an Easypromos promotion together with the user who won each one. Returns: id, prize_type, user_id, stage_id, participation_id, created, code, download_url, redeem_url, claim_url, claim, user, attributes. Required: promotion_id.
- **List all Easypromos prize users** (List). List all prizes awarded to a single user in an easypromos promotion. Returns prize records with their id and prize attributes. Required: promotion_id, user_id.
- **Get single Easypromos prizes inventory by ID** (Get). Get the prize inventory of an EasyPromos promotion by id. Returns the complete list of prize types defined in the promotion, each with its id and the prize-type fields defined upstream, including the total number of units and the number of units already given. Required: id.
- **List all Easypromos coin users** (List). Get the virtual coin balances of a single user in an Easypromos promotion. Returns each coin's id, name, and balance — one entry per coin, since promotions can be multicurrency. Required: promotion_id, user_id.
- **Update a Easypromos coin by ID** (Update). Update the virtual coin balance of a single user in an Easypromos promotion by id. Returns the current coin balances, each with id, name, and balance. Required: id, lt, balance, reason.
- **List all Easypromos coin transaction users** (List). List all virtual coin transactions of a single user in an Easypromos promotion. Returns: id, user_id, promotion_id, coin_id, coin_name, amount, balance, created, transaction_type, reason, extra. Required: promotion_id, user_id.
- **Create a Easypromos coin transaction** (Create). Create a coin transaction in Easypromos to add or remove virtual coins for a participant in a promotion — a positive amount credits coins, a negative amount spends them. Returns the registered transaction object (id plus transaction attributes; the full field set follows the VirtualCoinTransaction definition in the Easypromos API reference). Required: promotion_id, lt, amount, reason.
- **List all Easypromos coin transactions** (List). List all virtual coin transactions recorded in an Easypromos promotion. Each item returns the transaction (id, amount, reason, created_at) and the user the transaction belongs to. Required: promotion_id.
- **Get single Easypromos ranking by ID** (Get). Get the ranking of an Easypromos promotion by id, ordered by ranking position. Returns ranked user entries with id, points, and the full user record (attributes). Caps the result at 500 entries (25 by default). Required: id.
- **List all Easypromos pos** (List). List all points of sale in an Easypromos promotion, ordered by group and alphabetically. Returns point-of-sale records including their id, name, and group. Required: promotion_id.
