# Connect Your AI App with MCP

> Use the Proferex MCP server to connect Claude, ChatGPT, Codex, Claude Code or Grok to your tracker, ask about your performance, and approve the changes it proposes.

Proferex has an MCP server. Connect Claude, ChatGPT, Codex, Claude Code, Grok or Grok Build to it, and your AI app can work with your Proferex account. Then ask it which campaigns made money, or have it set up an offer, without opening Proferex. Every change it wants to make waits for your approval in Proferex.

MCP (Model Context Protocol) is the standard way AI apps connect to other tools. Any AI app that lets you add a custom MCP server can connect, not only the ones on this page.

---

## Before you start

- You need an active Proferex plan.
- You need an AI app that lets you add a custom MCP server. In ChatGPT and Grok this may need a paid plan.

Connecting doesn't use your Proferex AI credits. The AI app's own plan covers the chat.

---

## Connect your app to the Proferex MCP server

Follow the MCP setup for your app, then come back here:

| App | Guide |
|---|---|
| Claude and Claude Code | [Claude and Claude Code MCP](/docs/ai-assistant/claude/index.md) |
| ChatGPT and Codex | [ChatGPT and Codex MCP](/docs/ai-assistant/chatgpt/index.md) |
| Grok and Grok Build | [Grok and Grok Build MCP](/docs/ai-assistant/grok/index.md) |

The Proferex MCP server address is always:

```text
https://www.proferex.com/api/mcp
```

Copy it exactly, including `www`. The address without `www` doesn't connect.

---

## Other AI apps

Any AI app that lets you add a custom MCP server connects the same way: use the address `https://www.proferex.com/api/mcp`, choose OAuth sign-in if it asks, and allow access on the Proferex page.

Got more than one Proferex account? Each account also has an address of its own, shown under **Account → Connected AI Apps**. Add one connector per account with that address, and the app keeps them apart. See [Connect more than one Proferex account](/docs/ai-assistant/claude/index.md#connect-more-than-one-proferex-account).

![The Connector addresses panel under Connected AI Apps with the usual address and the address for this account only, each with a Copy button](/images/docs/mcp-connector-addresses.jpg "Every account has its own address next to the usual one")

---

## What your AI app can read

For example:

- **Performance.** Visits, clicks, conversions, cost, tracked revenue run through Proferex, and profit, broken down by campaign, offer, lander, traffic source, country, device, day, and anything else you can group a report by.
- **Your setup.** Your campaigns, offers, landers, combinations, traffic sources, offer sources, and custom tokens, and how each one is configured.
- **Your logs.** Individual clicks, conversions and postbacks, so "why is this conversion missing?" gets a real answer.
- **Your settings.** Tracking domains, page domains, the postback URL, the default campaign and the rest of Tracker Settings.
- **Your pages.** Your Published Pages, the files in your lander uploads, and the list of your blog articles.
- **This manual.** It can look up how Proferex works, so it explains things the way Proferex actually does them.

Stats reach your AI app within a minute, the same as your reports.

```text
Which campaigns made the most profit in the last 7 days?
```

![Claude listing the three most profitable campaigns of the last 7 days with profit and ROI, plus total profit and the biggest spender](/images/docs/mcp-claude-answer.jpg "Claude answers from your Proferex stats")

```text
Which campaigns lost money in the last 7 days, and which lander did each one use?
```

```text
Compare my offers in the US on mobile, last 7 days vs last 30 days, in a table.
```

---

## What your AI app can change

Your AI app can propose the same Tracker changes as the [Tracker Agent](/docs/ai-assistant/agent-chat/index.md#what-the-tracker-agent-can-change):

| Item | What it can do |
|---|---|
| Offers | Create, update, duplicate, delete |
| Landers | Create, update (including the URL, the published page, the domain and the URL parameters), duplicate, delete |
| Lander uploads | Read the files, rename, change the slug or default page, refresh the cache, delete |
| Published Pages | Publish a page from a lander upload, rename, set as default, move between groups, delete |
| Combinations | Create, update rotation paths and rules, duplicate, delete |
| Campaigns | Create, update (including the URL slug and the cost model), duplicate, archive, delete |
| Offer sources | Create, rename, duplicate, delete |
| Traffic sources | Create from the TrafficJunky, TrafficStars or ExoClick template, update (including the API adapter, timezone, currency and which upsells and rebills it hears about), duplicate, delete |
| Tracker Settings | Tracking domains, page domains, display currency, default campaign, piggyback postbacks, table columns, manual costs |
| Logs | Re-fire a postback, add conversions that never arrived |
| Custom tokens | Add, edit and delete token definitions and value transformations |
| Blog | Draft, edit, schedule, publish, unpublish and delete articles and pages; add, rename and delete categories; upload images to the Media Library; blog settings, domains and your author profile; create or delete a blog |

```text
Create an offer called "Summer CPA" with URL https://network.example/track?o=123 and a $15 payout.
```

Most AI apps ask before they send a change. The change then goes to Proferex for your approval. Nothing is created yet.

---

## Approve changes in Proferex

Out of the box, your AI app never changes anything on its own. When it wants to make a change, it sends the change to Proferex and gives you a link to review it. Nothing happens until you approve it. (You can let an app you trust skip this trip for small changes. See [Approve changes in your AI app instead](#approve-changes-in-your-ai-app-instead).)

1. Open the link from your AI app. You can also find every waiting change under **Account → Connected AI Apps → Proposed changes**. A red number shows how many are waiting.

![Account, Connected AI Apps, Proposed changes tab listing Create offer: Spring CPA proposed by Claude and waiting for you, a change from Grok that did not go through, and a declined change](/images/docs/mcp-proposed-changes.jpg "Every change your AI apps propose, newest first")

2. Read the **Proposed change**. It shows which app proposed it and exactly what will be created or changed.
3. Click **Approve** to make the change, or **Decline** to drop it.

![The Create offer approval page, proposed by Claude, showing the name, offer URL, payout and defaults, with Approve and Decline buttons](/images/docs/mcp-approval.jpg "The approval page shows every value that will be saved")

Your AI app can check whether you approved, so you can go back to the chat and carry on.

- A change waits 7 days. After that it expires and can't be approved. Ask your AI app to propose it again.
- Up to 20 changes can wait at once. Approve or decline some before your AI app proposes more.

To open **Account**, click your name at the bottom of the sidebar.

---

## Approve changes in your AI app instead

Approving every small change twice gets old. If you trust an app, let it skip the trip to Proferex:

1. Go to **Account → Connected AI Apps → Connections**.
2. Under that app's connection, turn on **Approve changes in Claude** (or ChatGPT, or whichever app it is).

![The Claude connection under Connected AI Apps with the Approve changes in Claude switch turned on](/images/docs/mcp-approve-in-app.jpg "Turn the switch on under the app you trust")

From then on, a single change you allow in that app, say a new offer or a renamed lander, happens right away. You'll find it under **Account → Connected AI Apps → Changes made by AI**, with the app, the time, and whether it went through.

![The Changes made by AI tab listing offer and blog draft changes made by Claude, marked Done or Failed](/images/docs/mcp-changes-made-by-ai.jpg "Every change the app made on its own, newest first")

Some changes still come to Proferex no matter what: deleting anything, bulk changes, publishing a page and sending an email. They wait under **Proposed changes** as before.

One thing to watch. The switch trusts the app's own confirmation. If you set the app to use Proferex tools without asking, for example **Always allow** for write tools in Claude, those changes run without any click from you. Keep write tools on **Needs approval** in the app, or leave this switch off.

The switch is per app and off by default. Turn it off again any time, and changes go back to waiting for your approval in Proferex.

---

## Disconnect an app

1. Go to **Account → Connected AI Apps → Connections**. Each connected app shows when it connected and when it was last used.
2. Click **Disconnect** next to the app, then confirm. With more than one app connected, you can also click **Disconnect all**.

If you see the same app twice, it was connected twice. The one with the latest **Last used** is the one in use; you can disconnect the other.

![Account, Connected AI Apps, Connections tab listing Claude and Claude Code, each with Disconnect, and a Disconnect all link](/images/docs/mcp-connections.jpg "Each connected app shows what it can do and when it was last used")

The app loses access immediately. To use it again, connect it again.

---

## Limits

- **Deleting.** It deletes one item at a time, only when you ask, and always after your approval in Proferex. An item that is still in use is refused with the reason.
- **Ad spend.** It can't pause or resume campaigns at your traffic source, because that spends real money. Do that in Proferex.
- **API keys.** It can't set traffic source API keys. Add them in the Traffic Sources screen.
- **Lander type.** It can't change a lander's type. Create a new lander of the other type instead.
- **Lander files.** It can read the files in your lander uploads, but it can't edit or upload them.
- **Speed.** A connection can make up to 60 requests a minute. If your AI app says it hit a limit, wait a minute and ask again.

---

## If something goes wrong

- **The app connects but can't propose changes.** It was connected with read access only. Disconnect it under **Account → Connected AI Apps → Connections**, then connect it again. In ChatGPT, check that **write** is ticked under **Default scopes**.
- **The app can't connect at all.** Check the address is `https://www.proferex.com/api/mcp`, with `www`.
- **The wrong Proferex account appears.** Click **Deny**, sign out of Proferex in your browser, sign in to the right account, then connect again.
- **You want two Proferex accounts in the same app.** Use each account's own address from **Account → Connected AI Apps**, one connector per account. If you connect with the address of one account while signed in to another, the page tells you and lets you switch.
- **A change didn't go through.** The approval page shows the reason, for example an offer with the same name already exists. Ask your AI app to fix it and propose it again.
