Deploy from Windsurf

4 min read Updated 1 day ago

Deploy from Windsurf

Windsurf is Codeium's AI-first editor, and Cascade is its agent surface. With Ploi Cloud connected as a Model Context Protocol (MCP) server, Cascade can create applications, attach managed services like Postgres or Redis, deploy from Git, watch deployments as they run, and read application and build logs from inside the chat panel. The connection takes a small JSON file and a single OAuth approval. After that, every Cascade session has Ploi Cloud at its fingertips, and you can ship a full-stack app from the same conversation where you wrote the code, without switching tabs to a separate console.

Add Ploi Cloud to Windsurf

Windsurf reads its MCP servers from ~/.codeium/windsurf/mcp_config.json. Create the file if it does not exist and add:

{
  "mcpServers": {
    "ploi-cloud": {
      "serverUrl": "https://ploi.cloud/mcp"
    }
  }
}

Note that Windsurf uses serverUrl (with a capital U) rather than url. Save the file and either restart Windsurf or click the refresh button in the Cascade MCP panel.

Authorize

The first time Cascade calls a Ploi Cloud tool, it shows a confirmation prompt in the chat with the tool name and the arguments it plans to send. Approve the call, and Cascade opens your browser to the Ploi Cloud OAuth consent screen. Sign in, approve the requested scopes, and Cascade stores the token locally. The browser tab closes itself and you return to chat. Subsequent calls use the cached token until it expires.

Deploy your first app

Three example prompts.

You: Deploy my Laravel app from github.com/myorg/checkout-service to Ploi Cloud.

Cascade: Creating checkout-service on Ploi Cloud. PHP 8.3 with extensions detected from composer.json. MySQL and Redis added based on dependencies. Build configured, deploying. Live at https://checkout-service.ams.preview.ploi.it.

You: Deploy this Next.js app from github.com/myorg/dashboard.

Cascade: Creating dashboard. Next.js 15 detected, Postgres attached. Deploying. Live at https://dashboard.ams.preview.ploi.it.

You: Deploy github.com/myorg/agency-blog as a WordPress site.

Cascade: Creating agency-blog. WordPress detected, MySQL added, persistent volume mounted on wp-content/uploads. Deploying. Live at https://agency-blog.ams.preview.ploi.it.

Where Cascade tool calls show up

Tool calls appear inline in the Cascade chat as collapsible blocks. Each block shows the tool name (for example applications_store) at the top and the request payload below. Click to expand and see the full JSON. The response from Ploi Cloud appears in the next block as the assistant's reply.

If you have approval mode enabled (Settings, Cascade, Tool approvals), every write call (create, update, delete) waits for a click before executing. Read calls (list, show, status) run immediately. This is useful when you want to keep tight control over what the agent changes in production.

Common prompts

Prompt What Cascade does
Deploy my app from github.com/org/repo Creates the application and triggers a deploy
List my apps on Ploi Cloud Calls applications_index
Add Postgres to my-app Calls v1_applications_services_store
Set the secret OPENAI_API_KEY Calls applications_secrets_store
Tail the logs for my-app Calls applications_logs
Roll back the last deploy Calls applications_rollback
Add api.example.com to my-app Calls applications_domains_store
Check SSL on api.example.com Calls applications_domains_ssl-status
Increase memory to 2Gi Calls applications_resources_update
Suspend the staging app Calls applications_suspend

Troubleshooting

Windsurf does not pick up the config

Confirm the path is exactly ~/.codeium/windsurf/mcp_config.json. Windsurf does not look anywhere else. If the file is correct, open the Cascade MCP panel and click refresh. If ploi-cloud still does not appear, validate the JSON (a trailing comma is enough to break it) and restart Windsurf.

OAuth stuck on consent screen

This usually means a popup blocker swallowed the redirect. Open Windsurf's MCP logs, find the OAuth callback URL, and paste it into a browser tab manually. Cascade picks up the resulting token from the redirect.

ploi-cloud tools greyed out

Greyed-out tools mean the connection registered but the OAuth handshake never completed. Hover over the entry to see the error, then click "Reauthorize" to retry.

How to check the connection from Cascade

Ask Cascade: "Are you connected to Ploi Cloud? Show me my user info." Cascade will call user_show and either return your account details or report the connection error in plain English. You can do the same thing for the active team with "Which Ploi Cloud team am I in right now?", which calls teams_show and confirms the team your tools currently target.

Next steps