By Ira Bodnar, Ryze AI · Updated
Quick answer
To connect Windsurf to Thrad, create an API key in the Thrad Platform dashboard and paste it into the Thrad card in Ryze AI, then add https://connector.get-ryze.ai/mcp as a url entry in the Devin Desktop MCP config (the app Windsurf now redirects to) or with the Devin CLI, sign in to Ryze AI and open a new chat.
- In the Thrad Platform dashboard go to Settings, API keys and create a key
- In Ryze AI open Integrations, click Connect on the Thrad card and paste the key
- In Windsurf (Devin Desktop) add the Ryze AI url to mcp_config.json, or run devin mcp add
- Sign in on the Ryze AI page, click Allow connection and ask your first question
Before you start
- Windsurf, which is now Devin Desktop. When this page was checked, docs.windsurf.com redirected to the Devin docs and windsurf.com redirected to devin.ai/desktop. The Devin Desktop MCP documentation names no plan. On Enterprise, admins manage MCP registries and the MCP allowlist in team settings under MCP & ACP, so ask your admin if the server is blocked.
- A Thrad account with access to the Thrad Platform dashboard. You create the API key under Settings, API keys. Thrad keys start with ak_, and Thrad allows one active key per organization.
- A Ryze AI workspace on a plan or free trial. Paid Ads is $89 per month with a 7-day free trial; Agency is $279 per month. Connecting the connector is free, but the Thrad tools need an active plan or trial.
How to connect Windsurf to Thrad
Two steps happen in Thrad and Ryze AI, three in Windsurf, which the Devin docs now call Devin Desktop. The connector URL is the same for every user.
Create a Thrad API key
In the Thrad Platform dashboard go to Settings, API keys, create a new key and copy it. It starts with ak_. Thrad allows one active key per organization, so creating a new key later makes the old one stop working.
Connect Thrad in Ryze AI
Create a Ryze AI account or sign in, open Integrations, click Connect on the Thrad card, paste the key into API key and click Continue. Ryze AI verifies it and the card shows Connected. To add another Thrad account, click View, then Add one more account.
Open the MCP settings in Windsurf
In Devin Desktop (the current Windsurf app) open the Customize page from the Agents window and click MCPs. Pick the scope with Install MCPs for, for example This computer.
Add the Ryze AI server
Open the config file and add a ryze entry under mcpServers with the url https://connector.get-ryze.ai/mcp. The user file is ~/.config/devin/mcp_config.json and the project file is .devin/mcp_config.json. Refresh the list.
Sign in and ask your first question
If the server shows Needs authentication, click Authenticate; otherwise run devin mcp login ryze in a terminal. On the Ryze AI page sign in, choose the workspace and click Allow connection. Then start a new chat and ask: List my Thrad campaigns and show impressions, clicks, spend, CTR, CPC and CPM for each.
The Ryze AI help article for Thrad covers the key and the connection, and the Devin Desktop MCP docs cover the client side. The Ryze AI developers page lists the connector for other clients.
Devin Desktop and Devin CLI
Windsurf now runs on Devin, and the Ryze AI connector goes in through the config file in the app or through the CLI. Both use the same URL.
Devin Desktop config file
{ "mcpServers": { "ryze": { "url": "https://connector.get-ryze.ai/mcp" } } }Save this in ~/.config/devin/mcp_config.json for your user or in .devin/mcp_config.json for one project. Devin's docs also list a gitignored .devin/mcp_config.local.json for local overrides. Sign in on the Ryze AI page and click Allow connection. No client ID or secret goes in the file.
Devin CLI
devin mcp add -s user ryze https://connector.get-ryze.ai/mcp
devin mcp login ryzeThe first command saves the server in your user config. The second opens the sign-in: log in on the Ryze AI page and click Allow connection. Without -s user, the CLI saves to the local scope, which is gitignored; -s project writes the shared project file.
Devin MCP limits
Devin Local supports stdio, Streamable HTTP and SSE, with OAuth for each. It tries Streamable HTTP first and falls back to SSE on non-authentication 4xx errors. OAuth uses dynamic client registration by default; oauthClientId and oauthClientSecret are only for servers without it. Each MCP client keeps its own OAuth session, so a Ryze AI sign-in in another tool does not carry over. Older guides show a serverUrl key for Windsurf; Devin's current docs use url, and this page did not test serverUrl.
Claude and ChatGPT
The same URL works in other MCP clients. Thrad is connected once in Ryze AI, so nothing changes on the Thrad side.
Claude on the web and Desktop
Open Customize, Connectors, click + Add, choose Add custom connector, name it Ryze AI and enter https://connector.get-ryze.ai/mcp. Thrad is connected once in Ryze AI, so the same key serves every client.
ChatGPT
OpenAI says full custom MCP server support is for ChatGPT Business and Enterprise/Edu on the web, and Pro can connect custom MCP servers with read and fetch permissions only. In Plugins choose Add custom MCP server, enter the URL and pick OAuth.
Thrad key and accounts
Three things decide what Windsurf can reach in Thrad.
- Which key
- The Thrad card in Ryze AI holds one API key, and every call from Windsurf goes through it. You make that key in the Thrad Platform dashboard (Settings, API keys); Thrad keeps a single active key per organization.
- Which accounts
- A workspace can hold several Thrad accounts (View, then Add one more account), and a star marks the primary one. Thrad has no Agent default accounts picker, so say which account you mean in the prompt. Each thrads tool also accepts an optional connection_id over MCP.
- Read or write
- Read, write and delete are different tools, which lets Devin's approval prompt treat them one at a time. Devin asks before any MCP tool call by default, and leaving that on is the simplest way to review each write and delete.
Sources: Ryze AI Thrad guide and the Devin Desktop MCP docs.
Removing access
Two ways to cut access: disconnect Thrad from its card in Ryze AI (View), or delete the ryze entry from mcp_config.json. A fresh key made in Thrad also invalidates the old one, and the link stays broken until Reconnect is used with the new key.
What Windsurf can do in Thrad
The Ryze AI connector exposes 5 Thrad tools: 2 read, 2 write and 1 delete. The tool prefix is thrads.
| Tool | Type | What it does |
|---|---|---|
| thrads__read | Read | Fetches Thrad resources: the ad account, campaigns, ad groups, ads and assets. |
| thrads__insights | Read | Aggregated figures that cover Thrad and ChatGPT (OpenAI Ads) supply together: impressions, clicks, spend, CTR, CPC and CPM. |
| thrads__write | Write | Builds or edits campaigns, ad groups and ads, and switches them on or off. Thrad reviews a new campaign before it goes live. |
| thrads__uploadFromUrl | Write | Sends an image from a URL to Thrad to get a file id for an ad creative. Thrad answers this call with a 404 today, so ads use assets that already exist. |
| thrads__delete | Delete | Archives a campaign, ad group or ad. A campaign cannot be unarchived; an ad group or ad can come back through activate. |
Devin's agent prompts for approval before it calls any MCP tool unless you change that. The separate Ryze AI chat behaves differently: its Tool approvals setting begins on Skip all approvals, and you can move it to Approve write & delete or Manual approve in the composer. Scheduled tasks in Ryze AI have no approval step. Per the tool description, targeting stops at country level.
First 3 prompts to run
Each answer comes from your own account, so this page describes what comes back instead of showing sample numbers.
1. Insights by source
Use thrads insights to show impressions, clicks, spend, CTR, CPC and CPM for my Thrad account, split by source.
Tools used: thrads__insights
What comes back: Six metrics across Thrad and ChatGPT (OpenAI Ads) supply, which you can filter by source. The numbers belong to your account.
2. List campaigns and ads
Read my Thrad campaigns with their ad groups and ads, and list which are active and which are paused.
Tools used: thrads__read
What comes back: Campaigns, ad groups and ads with their status, as stored in Thrad.
3. Pause an ad group
Pause the Thrad ad group named in this message and confirm its status afterwards.
Tools used: thrads__write, thrads__read
What comes back: The ad group paused, plus its status read back. With Devin's default approval prompt you confirm each tool call before it runs.
Thrad reviews new campaigns before they go live. Thrad's own write-tool description also mentions a default billing card on the organization for campaign creation; that rule comes from Thrad, not Ryze AI. Name the exact items to archive, because an archived campaign stays archived.
Ryze AI and Thrad's own tools
Thrad's public documentation at docs.thrad.ai describes a publisher side: an auction that returns native ads as JSON for apps to draw in their own UI, with a staging key and then a production key. It did not list an MCP server for advertisers when this page was checked, so the Ryze AI connector is the route this guide covers for managing Thrad campaigns from Windsurf.
| Option | Setup | Coverage |
|---|---|---|
| Ryze AI connector | Thrad API key pasted into Ryze AI, then one remote URL added to Devin Desktop or the Devin CLI with OAuth | 5 Thrad tools: read, insights, write, image upload from a URL and delete. Image upload currently fails with a 404 from Thrad |
| Thrad publisher API | Staging and production keys from the Thrad Platform for apps that show ads | Bid requests and ad rendering for publishers, not campaign management |
If Thrad later publishes its own server, compare its URL, sign-in and tool list against the table above. Ryze AI publishes this page, and its connector needs a Ryze AI plan or trial.
Sources: Thrad documentation, Devin Desktop MCP docs, Devin CLI MCP docs, Ryze AI Thrad guide. Checked November 13, 2026.
Errors and fixes
- Ryze AI rejects the Thrad key
- Valid Thrad keys begin with ak_. A rejection usually means a partial copy or an inactive key. Copy the full key again from the Thrad Platform dashboard and paste it into the card.
- Thrad stopped working after a new key was created
- Only one key per organization is active in Thrad, so creating another disables the old one. Click Reconnect on the card in Ryze AI and paste the new key.
- The ryze server shows Needs authentication
- Click Authenticate in the MCPs list, or run devin mcp login ryze in a terminal. Devin's docs describe this state for expired credentials; the CLI command is the documented first sign-in.
- No Thrad tools appear in Windsurf
- Refresh the MCPs list and check that the ryze entry is in the config file for the scope you picked. Start a new chat after connecting Thrad. If Thrad was connected afterwards, refresh the server or sign in again.
- The server is blocked on a team plan
- Enterprise admins manage MCP registries and the MCP allowlist in team settings under MCP & ACP. Ask your admin to allow the ryze server.
- An old config does not work
- Older guides use serverUrl in the Windsurf file. Devin's current docs use url in ~/.config/devin/mcp_config.json. Devin CLI still imports servers from the old ~/.codeium/<channel>/mcp_config.json file. Switch the entry to url if the server does not load.
- The CLI and the app do not share a sign-in
- Each MCP client keeps its own OAuth session. Sign in again where you use the server, with Authenticate in the app or devin mcp login ryze in the CLI.
- Image upload returns a 404
- The upload call gets a 404 from Thrad today. Point ads at assets that already exist.
- The tools say a subscription is required
- An active Ryze AI plan or free trial is required for the Thrad tools. Start the trial and try again.
- An account is missing
- Name the account in the prompt, or add it through View, Add one more account on the Thrad card. Thrad has no Agent default accounts picker.
Frequently asked questions
How do I connect Windsurf to Thrad?
Make a key in the Thrad Platform dashboard (Settings, API keys) and paste it into the Thrad card in Ryze AI. Then register https://connector.get-ryze.ai/mcp in Devin Desktop's MCP config as a url entry, or run devin mcp add, and finish the Ryze AI sign-in with Allow connection.
Which Thrad connector should I use with Windsurf?
Ryze AI is the best Thrad connector for Windsurf when you want read, insights, write and delete tools behind one OAuth URL, but you need a Ryze AI plan or trial and the tool list is 5 tools. This guide did not find an official Thrad MCP server in Thrad's documentation, whose public pages describe a publisher ad API.
Is Windsurf now called Devin Desktop?
When this page was checked, docs.windsurf.com redirected to docs.devin.ai and windsurf.com redirected to devin.ai/desktop, whose page title is Devin Desktop. Devin's docs also call .windsurf files legacy. No rename announcement was read, so the steps here use the Devin docs.
Does Windsurf need a paid plan for MCP servers?
The Devin Desktop MCP documentation names no plan. Enterprise admins manage MCP registries and the MCP allowlist in team settings under MCP & ACP, so a team install may need admin approval.
Where do I put the MCP config file?
Use ~/.config/devin/mcp_config.json for your user or .devin/mcp_config.json in a project. Open it from the Customize page, MCPs, in the Agents window.
Do I need a Ryze AI API key?
No. OAuth is enough: add the url entry and sign in on the Ryze AI page. No client ID or secret goes in the file, because Devin uses dynamic client registration by default.
Can Windsurf change my Thrad campaigns?
Yes, through the thrads write tool (create, update, activate, pause) and the delete tool (archive). Thrad reviews new campaigns before they go live, and Devin asks before any MCP tool call by default.
What do the Thrad insights include?
One tool, thrads__insights, returns impressions, clicks, spend, CTR, CPC and CPM across Thrad and ChatGPT (OpenAI Ads) supply, with a filter by source.
Can I upload images to Thrad from Windsurf?
Not reliably. The upload tool exists, but Thrad returns a 404 for it today, so ads use existing assets.
Can I connect more than one Thrad account?
Yes. Use View, then Add one more account, on the Thrad card. The primary account gets a star, and you name the account you want in each prompt.
What happens if I create a new key in Thrad?
The old key stops working, because Thrad keeps one active key per organization. Click Reconnect on the Thrad card and paste the new key.
How much does it cost?
Adding the connector costs nothing, while the Thrad tools run on an active Ryze AI plan or trial. Paid Ads is $89 per month with a 7-day free trial, Agency is $279 per month, and annual billing is 30% off the first year.