AI assistants (MCP)
Connect Claude, Claude Code, Cursor or any MCP client to Evendeals to read analytics and manage deals, discounts, banners, campaigns and your team in plain language.
Evendeals runs a remote Model Context Protocol (MCP) server. Connect your AI assistant once, then ask things like:
- "Which countries send traffic but have no discount yet?"
- "How did my deals do in the last 30 days, by country?"
- "Set India and Brazil to 60% on my course deal."
- "Create a Black Friday campaign: 40% everywhere, Nov 28 to Dec 1, New York time."
- "Why isn't my banner showing for visitors from Germany?"
It's available on every plan.
Server URL
https://www.evendeals.com/api/mcpStreamable HTTP. You sign in with your Evendeals account (OAuth), pick the organization, and approve access. No API key to copy.
The same steps, with one-click install buttons, are in your dashboard under Settings → AI assistants.
Connect
claude.ai and the Claude desktop app
- Open Settings → Connectors and choose Add custom connector.
- Name it Evendeals and paste https://www.evendeals.com/api/mcp as the URL.
- Click Connect, sign in to Evendeals, pick your organization and click Allow.
Anthropic's coding agent in your terminal
- Run the command below.
- In Claude Code, run /mcp, choose evendeals and sign in to Evendeals in the browser.
claude mcp add --transport http evendeals https://www.evendeals.com/api/mcpAI code editor
- Click Add to Cursor, or add the config below to ~/.cursor/mcp.json.
- In Cursor Settings → MCP, click Connect next to evendeals and sign in.
Add to Cursor (opens the app)
{
"mcpServers": {
"evendeals": {
"url": "https://www.evendeals.com/api/mcp"
}
}
}GitHub Copilot agent mode
- Click Add to VS Code, or add the config below to .vscode/mcp.json.
- Start the evendeals server from the MCP view and sign in when asked.
Add to VS Code (opens the app)
{
"servers": {
"evendeals": {
"type": "http",
"url": "https://www.evendeals.com/api/mcp"
}
}
}Custom connectors (developer mode)
- In ChatGPT settings, turn on developer mode for apps and connectors (menu names vary by plan).
- Create a connector with https://www.evendeals.com/api/mcp as the MCP server URL and OAuth as authentication.
- Sign in to Evendeals and click Allow.
OpenAI's coding agent CLI
- Run the command below; Codex opens the Evendeals sign-in.
codex mcp add evendeals --url https://www.evendeals.com/api/mcpAI code editor
- Add the config below to ~/.codeium/windsurf/mcp_config.json.
- Refresh MCP servers in Windsurf and sign in when asked.
{
"mcpServers": {
"evendeals": {
"serverUrl": "https://www.evendeals.com/api/mcp"
}
}
}Any MCP client with remote servers
- Add a remote MCP server with https://www.evendeals.com/api/mcp (Streamable HTTP).
- Sign in with OAuth when the client asks. For read-only scripts, send your organization API key in an x-api-key header instead.
{
"mcpServers": {
"evendeals": {
"url": "https://www.evendeals.com/api/mcp",
"headers": {
"x-api-key": "YOUR_API_KEY"
}
}
}
}Discovery follows the MCP spec: GET /.well-known/oauth-protected-resource/api/mcp points to the authorization server, which supports dynamic client registration, PKCE and refresh tokens.
Permissions
| Who connects | Can read | Can change things |
|---|---|---|
| Owner or admin (OAuth) | ✓ | ✓ (if approved on the consent screen) |
| Member (OAuth) | ✓ | – |
| Organization API key | ✓ | – |
Access is tied to the organization you pick when connecting. To use another organization, connect again and switch on the consent screen. Removing someone from the team cuts their access on the next request.
Read-only with your API key
For scripts or clients without OAuth, send your organization API key (Dashboard → Developers). API-key access is always read-only.
claude mcp add --transport http evendeals https://www.evendeals.com/api/mcp \
--header "x-api-key: YOUR_API_KEY"Tools
Read
| Tool | What it does |
|---|---|
get_account | Organization, plan, your role, banner lookups used vs limit, counts |
list_products | Products (sites or stores) with currency and provider |
list_deals | Deals with type, active/paused, provider health, banner last seen |
get_deal | One deal's settings: VPN blocking, coupon duration and rotation, display modes, timer, allowed URLs |
list_country_discounts | Discount per parity group and per-country overrides, with coupon codes, views and redemptions |
get_analytics | Lookups, visitors, coverage, top countries and pages, coupon and campaign results, uncovered countries |
list_campaigns | Campaigns with status, schedule, discounts and sync status |
preview_offer | What a visitor from a given country sees right now |
get_display_settings | Top banner, bottom banner and popup with their full style, the countdown timer, allowed URLs and the install script |
list_integrations | Payment provider connections and which products use them |
list_provider_products | Products in a payment provider account, to pick for a new deal |
list_team | Members, roles, pending invitations and seats |
Write
| Tool | What it does |
|---|---|
update_country_discounts | Set or remove discounts for parity groups or countries; creates the checkout coupons on connected providers |
set_deal_active | Pause or resume a deal |
update_deal_settings | Turn VPN blocking on or off, set automatic coupon rotation, coupon duration, the Powered by badge and your affiliate link |
upsert_campaign | Create or edit a campaign (new ones start as drafts) |
set_campaign_status | Put a campaign live or pause it |
rotate_coupons | Replace a deal's coupon codes with fresh ones |
delete_campaign | Delete a campaign and its provider coupons |
Banner, popup and timer
| Tool | What it does |
|---|---|
update_banner | Turn the top or bottom banner on or off; change its text and translations, colors, font size, close button, sticky, mount point, custom CSS and countdown style |
update_popup | Turn the popup on or off; change its headline, text and translations, colors, button, when it opens, how long it stays dismissed, backdrop and countdown style |
update_timer | Turn the countdown on or off: a fixed deadline, or evergreen per visitor |
add_allowed_url | Show the deal on a page or site (* wildcards work) |
remove_allowed_url | Stop showing it on a URL |
Banner and popup changes merge: say "make the banner dark blue" and only the color changes. Text can use {country}, {country_flag}, {coupon_code}, {discount_amount} and {timer}.
Translations work the same way: say "translate my banner into every language" and the assistant writes and saves all 33. Campaign banner text takes translations too (upsert_campaign).
Deals, products and team
| Tool | What it does |
|---|---|
create_deal | Create a PPP or campaign deal on a product, using its payment connection or manual codes |
update_deal | Rename a deal or change its description |
delete_deal | Delete a deal and remove its coupons from the payment provider |
create_product | Add a product (site or store) |
update_product | Change a product's name, website, currency, category or payment connection |
invite_team_member | Email an invitation as member or admin |
cancel_invitation | Cancel a pending invitation |
update_member_role | Make someone an admin or a member (owner only) |
remove_team_member | Remove someone from the organization (owner only) |
update_organization | Rename the organization |
Write tools change live checkout coupons and your site, so your assistant should confirm with you first, especially before deleting or inviting. Plan limits still apply: campaigns need Pro; the popup, countdown timer, custom CSS, VPN blocking and coupon rotation need a paid plan.
These stay in the dashboard: connecting or disconnecting payment providers (credentials never pass through an AI assistant), billing and plan changes, API keys, white-label domains, deleting a product, leaving or deleting the organization, and account settings.
Limits
About 120 requests per minute per organization. Over the limit, the server answers 429 with Retry-After.
Manage connections
Settings → AI assistants in the dashboard lists every connected app with who connected it, its access and when it was last active. Revoke one there and it stops working on its next request. Members can revoke their own connections; owners and admins can revoke any.
Owners can turn AI assistant access off for the whole organization from the same page. While it's off, every connection and the API key are refused; turning it back on restores them.
Access tokens expire after an hour. Removing the app in your AI client, or leaving the organization, also ends access.