By Ira Bodnar, Ryze AI · Updated
Quick answer
To connect Windsurf to Google Business Profile, connect the profile in a Ryze AI workspace with the Google account that manages the listing, then add https://connector.get-ryze.ai/mcp under mcpServers in the Devin Desktop MCP config file and click Authenticate. Windsurf now opens as Devin Desktop.
- In Ryze AI open Integrations, find Google Business Profile and click Connect
- Sign in with the Google account that manages the listing, allow access and pick the Location
- In Devin Desktop open Customize, MCPs and add the ryze server with the MCP URL
- Click Authenticate (or run devin mcp login ryze), click Allow connection, start a new chat
Before you start
- Windsurf, now Devin Desktop, or the Devin CLI. Cognition's MCP documentation for Devin Desktop names no plan for MCP servers. On Enterprise, an admin can manage MCP registries and the MCP allowlist in team settings under MCP & ACP, so a server you add may need to be on that list.
- A Google account that owns or manages the listing. Use the account that manages the Business Profile. A verified listing is needed for full data: for an unverified one Google shares only part of it, and performance and search keywords are not served.
- A Ryze AI workspace on a plan or free trial. Local SEO is part of the SEO plans: SEO Starter is $129 per month with a 3-day free trial. The 14 Business Profile tools also work through the connector on any active plan or trial, including Paid Ads at $89 per month with a 7-day free trial. Connecting is free; without a plan or trial the connector can only list workspaces and connect platforms.
How to connect Windsurf to Google Business Profile
Three steps happen in Ryze AI and Google, three in Devin Desktop. The connector URL is the same for every user.
Connect Google Business Profile in Ryze AI
Create a Ryze AI account or sign in, open Integrations in the left sidebar and find Google Business Profile with the Search integrations box or the Analytics filter. Click Connect.
Sign in with Google and allow access
Sign in with the Google account that manages the listing and allow access. The Google screen may show the name of the connection partner instead of Ryze AI.
Pick the Location and save
Back in Ryze AI, pick the Location this workspace works on and click Save. Until a Location is saved the card shows Require setup. One connection is one location.
Add the Ryze AI server in Devin Desktop
In Devin Desktop open the Customize page from the Agents window and click MCPs. Pick the scope with Install MCPs for, for example This computer. Open the config file and add under mcpServers an entry named ryze 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.
Authenticate and allow the workspace
Refresh the list. If the ryze server shows Needs authentication, click Authenticate; otherwise run devin mcp login ryze in a terminal. On the Ryze AI page, sign in if asked, choose the workspace that holds your Business Profile and click Allow connection.
Start a new chat and ask your first question
Open a new agent chat and ask: List my Google reviews that have no reply yet, with rating and text. Devin Desktop asks for approval before calling an MCP tool by default, so approve the first call.
The Ryze AI help article for Google Business Profile covers the Google side of the connection. There is no Ryze AI help page for Windsurf, and Ryze AI was not tested in it for this page.
Devin Desktop config file
The Devin documentation lists three config scopes: a project file at .devin/mcp_config.json that is version controlled, a local override at .devin/mcp_config.local.json that is gitignored, and a user file at ~/.config/devin/mcp_config.json that is not shared. A listing belongs to one business, so the user file is the usual choice. The entry for the Ryze AI server looks like this:
{
"mcpServers": {
"ryze": {
"url": "https://connector.get-ryze.ai/mcp"
}
}
}Cognition's documentation says Devin Local supports stdio, Streamable HTTP and SSE with OAuth for each, and tries Streamable HTTP first. OAuth uses dynamic client registration by default, so there is no client ID or secret to enter for the Ryze AI URL. Older Windsurf guides use the key serverUrl and a file under ~/.codeium. Current Devin docs use url, so use that, and the Devin CLI still imports servers from the old Windsurf file.
Devin CLI
The Devin CLI adds MCP servers from the command line. Two commands register the connector and sign in:
devin mcp add -s user ryze https://connector.get-ryze.ai/mcp
devin mcp login ryzeThe first command registers the server in the user scope. The second opens the Ryze AI sign-in page: click Allow connection there and pick the workspace. Run devin mcp list to see the servers and devin mcp get ryze for one server. The -s flag takes local (the default, a gitignored project file), project and user.
Each MCP client keeps its own OAuth session, so a Ryze AI sign-in you made in another tool does not carry over to Devin. For scripts and your own agents, Ryze AI also offers API keys (Workspace Settings, Profile, API keys) sent as a Bearer token.
Sources: Cognition's Devin Desktop customizations, Devin CLI MCP configuration and the Windsurf MCP page, which redirects to the Devin docs. Checked November 13, 2026.
Other AI clients
The same URL works in other MCP clients. The profile is connected once in Ryze AI, so nothing changes on the Google side.
Claude and Claude Code
Claude uses a custom connector with the same URL. See How to connect Claude to Google Business Profile and Claude Code.
ChatGPT, Gemini and Perplexity
Each has its own steps and plan limits. See the guides for ChatGPT, Gemini and Perplexity.
Google access and permissions
The Google side of the connection is a Google sign-in through a connection partner. Three things decide what Windsurf can see and change.
- Who can connect
- A Google account that owns or manages the listing. Google's own Business Profile APIs sit behind an access request for developers, but you do not make one here: you sign in to the Ryze AI connection with your Google account.
- Which location
- One connection is one location, and Local SEO in a workspace works on one location. Another location needs its own workspace, which gets its own Google sign-in and Location choice.
- Verified or not
- For an unverified listing Google shares only part of the data: no map coordinates, reviews may not load, and performance and search keywords are not served.
Google limits that shape the answers
Google sets limits that show up in prompts. These come from Ryze AI's documentation of the connection.
| Area | Limit |
|---|---|
| Performance delay | Performance data arrives 2 to 3 days late, and Google drops search keywords below an impression threshold it does not publish. |
| Posts | A post has at most 1,500 characters and one image. Posts can take 24 to 48 hours to appear and stay visible about 7 days. |
| Photos | JPG or PNG between 10 KB and 5 MB and at least 250x250 px. Google reviews new photos and listing edits before they show. |
| Review replies | Google keeps one owner reply per review, so a new reply replaces the old one. |
| Map rankings | Map rank scanning (up to 5 keywords from 49 spots around the office) is a Ryze AI app feature, not a connector tool, so Windsurf cannot run it. |
Source: Google Business Profile APIs basic setup and the Ryze AI Google Business Profile guide.
Removing access
To remove access, disconnect Google Business Profile on its card in Ryze AI, or remove the Google access in your Google account. In Devin, run devin mcp logout ryze to drop the stored credentials, or devin mcp remove ryze to delete the server entry.
What Windsurf can do in Google Business Profile
The Ryze AI connector exposes 14 Google Business Profile tools. Each runs against the one location you picked.
| Tool (google_business_profile__ prefix) | Type | What it does |
|---|---|---|
| searchCategories | Read | Searches Google's business category list by name and returns the category IDs that updateLocationDetails accepts. |
| getLocationDetails | Read | Reads title, hours, special hours, description, website, phone, categories, address and open status, plus place ID, review link, Maps link and verification status. |
| updateLocationDetails | Write | Updates fields such as hours, special hours, description, website, phone, categories and open status. Each named field is replaced and the change is public on Search and Maps. |
| listReviews | Read | Lists Google reviews with rating, text and reply status, plus total reviews and average rating, with filters by rating and reply status. |
| replyToReview | Write | Publishes the public owner reply to a review. A new reply replaces the existing one. |
| getPerformance | Read | Returns daily Search and Maps performance such as impressions, calls, direction requests, website clicks, conversations and bookings, up to 18 months back. |
| getSearchKeywords | Read | Returns the search keywords that showed the location, with impressions per keyword by month. |
| createPost | Write | Publishes or schedules a standard, event or offer post, with up to one image and an optional call-to-action button. |
| listPosts | Read | Lists the posts on the profile, newest first, including posts made directly on Google. |
| deletePost | Write | Removes a published post. The removal is immediate and cannot be undone. |
| listMedia | Read | Lists the location's photos and videos on Google. |
| uploadMedia | Write | Adds a photo from a public URL in a category such as cover, logo, exterior, interior or product. |
| getAttributes | Read | Reads attributes such as amenities, services and payment types. |
| updateAttributes | Write | Updates the location's attributes on Google. |
Windsurf in its Devin Desktop form asks for approval before calling any MCP tool by default, according to Cognition's documentation. Keep that on for the write tools, because replies, posts, photo uploads and listing edits are public. In the Ryze AI chat, changes follow the chat's Tool approvals setting, which starts on Skip all approvals. The Local SEO page buttons always show a draft first, and the weekly agent proposals are applied only after approval.
First 3 prompts to run
1. Reply to reviews that wait
List my Google reviews with 3 stars or fewer that have no reply. For each, draft a short public reply in a plain tone and wait for my go-ahead before you publish any of them.
Tools used: listReviews with rating and reply filters, then replyToReview after you confirm
What comes back: The unanswered low-rated reviews with rating and text, a draft reply under each, and a published reply only for the ones you approve.
2. See which searches show the business
Show the search keywords that displayed my listing, with impressions per keyword by month, and the daily calls, direction requests and website clicks for the last 90 days.
Tools used: getSearchKeywords, getPerformance
What comes back: A keyword table by month and the daily action counts, limited by the 2 to 3 day delay and by the keywords Google chooses to report.
3. Schedule an offer post
Check my listing hours and categories, then schedule an offer post for next week with a Learn more button linking to my website. Show me the text first.
Tools used: getLocationDetails, createPost
What comes back: The listing facts it used, the proposed post text and button, and a scheduled post once you confirm.
Each answer comes from your own listing, so this page describes what comes back instead of showing sample numbers. Posts and replies are public once published.
Ryze AI vs calling Google's APIs yourself
There are a few ways to give Windsurf access to a Business Profile. They differ in who sets up the Google side.
| Option | Setup | Business Profile coverage | Works in |
|---|---|---|---|
| Ryze AI connector | Google sign-in inside Ryze AI, then one MCP URL in Devin Desktop or the Devin CLI | 14 tools: listing, reviews and replies, posts, photos, attributes, performance and search keywords. One location per workspace | Devin Desktop, Devin CLI, Claude, ChatGPT, Cursor and other MCP clients |
| Google Business Profile APIs directly | Your own Google Cloud project, an approved access request, the business.manage OAuth scope and your own code or a server you run | Whatever you build on the APIs. Google lists no sandbox for them | Anything you write |
If you already run your own integration against Google's APIs, keep it. The Ryze AI connector suits the case where you want Windsurf to work with the profile today, without a Google Cloud project, and to share one MCP URL with the rest of your Ryze AI platforms. Google Business Profile in the Ryze AI app also adds the Local SEO page.
Sources: Google Business Profile APIs basic setup, Ryze AI Google Business Profile guide. Checked November 13, 2026.
Errors and fixes
- The ryze server shows Needs authentication
- The OAuth credential is missing or expired. Click Authenticate in the MCPs list, or run devin mcp login ryze, and click Allow connection on the Ryze AI page.
- The server does not start from the config file
- Check that the entry uses the key url, not serverUrl, and that the file is valid JSON in ~/.config/devin/mcp_config.json or .devin/mcp_config.json. Refresh the list afterwards.
- The Google Business Profile tools do not appear
- The tool list can be cached from before you connected the profile. Remove and re-add the ryze server, then start a new chat.
- The card in Ryze AI shows Require setup
- No Location is saved yet. Open the card, pick the Location and click Save.
- Reviews, performance or keywords come back empty
- The listing may be unverified, so Google shares only part of the data. Performance also arrives 2 to 3 days late.
- A new photo or edit is not visible on Google
- Google reviews new photos and listing edits before they show, and posts can take 24 to 48 hours to appear.
- The wrong location is connected
- One connection is one location. Connect the right location in its own workspace and allow that workspace on the Ryze AI sign-in page.
- The tools say a subscription is required
- The Business Profile tools need an active Ryze AI plan or free trial. Start the trial, then retry.
- Your Enterprise admin blocks the server
- Enterprise admins manage an MCP allowlist in team settings under MCP & ACP. Ask the admin to allow the Ryze AI URL.
Frequently asked questions
How do I connect Windsurf to Google Business Profile?
Connect the profile in a Ryze AI workspace: open Integrations, click Connect on Google Business Profile, sign in with the Google account that manages the listing and pick the Location. Then in Devin Desktop, the current Windsurf, add the ryze server with the url https://connector.get-ryze.ai/mcp under mcpServers, click Authenticate and allow the workspace.
Is Windsurf now called Devin Desktop?
The Windsurf documentation address now redirects to Devin Desktop documentation from Cognition, and windsurf.com redirects to devin.ai/desktop. No rename announcement was read for this page, so this guide uses the current Devin docs for setup and says Windsurf where readers search for it.
Which Windsurf plan do I need for MCP?
The Devin Desktop MCP documentation names no plan. On Enterprise, admins manage MCP registries and an MCP allowlist in team settings under MCP & ACP, so an admin may need to allow the server.
What config key does Windsurf use for a remote MCP server?
The current Devin docs use url inside mcpServers, in ~/.config/devin/mcp_config.json or .devin/mcp_config.json. Older Windsurf guides use serverUrl in a file under ~/.codeium. Whether serverUrl still works was not verified.
Which option should I use to give Windsurf access to Google Business Profile?
Ryze AI is the best way to give Windsurf Google Business Profile tools without building your own integration, though it covers one location per workspace. Calling Google's APIs yourself needs a Google Cloud project and an approved access request.
Can Windsurf reply to reviews and publish posts?
Yes. Through the connector it can reply to reviews, publish or schedule posts, delete posts, upload photos from a public URL and edit listing fields and attributes. These are public changes, so keep Devin's default approval before MCP tool calls on.
Can I connect more than one location?
One connection is one location, and each workspace works on one location. To work on another location, connect it in its own workspace. One connection from a client can cover up to 20 workspaces.
Why is performance data or keyword data missing?
For an unverified listing Google serves neither performance nor search keywords. For a verified one, performance arrives 2 to 3 days late and Google drops keywords below an impression threshold it does not publish.
Can Windsurf show my Google Maps rankings?
No. Map rank tracking is a Ryze AI app feature that checks up to 5 keywords from 49 spots around the office. It is not a connector tool, so ask for it on the Local page of the app.
Do the tools work in the Devin CLI too?
Yes. Run devin mcp add -s user ryze https://connector.get-ryze.ai/mcp, then devin mcp login ryze and click Allow connection. Each MCP client keeps its own sign-in, so the CLI needs its own login.
How much does it cost?
Adding the connector costs nothing, but the tools need an active Ryze AI plan or free trial. SEO Starter, which includes Local SEO, is $129 per month with a 3-day free trial. Paid Ads is $89 per month with a 7-day free trial. Annual billing takes 30% off the first year.
How do I disconnect?
Run devin mcp logout ryze or devin mcp remove ryze in Devin, disconnect Google Business Profile on its card in Ryze AI, or remove the Google access in your Google account.