Windsurf iMessage Integration — Use Claude in Windsurf to Send iMessages (2026)
Windsurf's Cascade AI supports MCP (Model Context Protocol) servers, which means you can connect it to Sendblue and send real iMessages using natural language — without leaving your editor. This guide walks through installing the Sendblue MCP server in Windsurf, authenticating with your API keys, and using Cascade to message teammates or customers directly from your IDE.
What is the Sendblue MCP server?
MCP (Model Context Protocol) is an open standard that lets AI coding assistants call external tools. Sendblue's MCP server exposes iMessage sending as a tool that any MCP-compatible client — including Windsurf's Cascade, Cursor, Claude Desktop, and others — can call.
Once configured, you can type something like "Send an iMessage to +14155551234 saying the deploy is live" into Cascade's chat and it will call the Sendblue MCP tool, which POSTs to https://api.sendblue.co/api/send-message and delivers a blue bubble. No terminal, no curl command, no context switching.
This is especially useful for:
- Notifying teammates when a PR is merged or a deploy completes
- Sending test messages to verify your iMessage integration works
- Customer outreach without leaving your development environment
- Quickly messaging contacts while reviewing code that touches messaging logic
Step 1 — Get your Sendblue API keys
Sign up at dashboard.sendblue.com/company-signup — the sandbox is free and no credit card is required. After signup, navigate to API Keys in the dashboard sidebar.
You need two values:
- sb-api-key-id — your API key identifier
- sb-api-secret-key — your API secret key
Keep these values handy. You will paste them into the MCP config in the next step. Never commit them to source control — treat them like passwords.
Step 2 — Install the Sendblue MCP server
The Sendblue MCP server is a Node.js package. Install it globally so Windsurf can find it:
npm install -g @sendblue/mcp-serverAlternatively, if you prefer not to install globally, you can use npx to run it directly — the config below uses npx for maximum compatibility.
Step 3 — Configure Windsurf MCP settings
Open Windsurf settings and navigate to Extensions > MCP Servers (or click the MCP icon in the Cascade panel). Windsurf stores MCP configuration in ~/.windsurf/mcp.json for user-level settings, or .windsurf/mcp.json in your project root for project-scoped settings.
Add the Sendblue server to your config:
{
"mcpServers": {
"sendblue": {
"command": "npx",
"args": ["-y", "@sendblue/mcp-server"],
"env": {
"SENDBLUE_API_KEY_ID": "your_api_key_id_here",
"SENDBLUE_API_SECRET_KEY": "your_api_secret_key_here"
}
}
}
}Replace the placeholder values with your actual API keys from Step 1. After saving the file, restart Windsurf (or reload the MCP servers from the settings panel) to activate the server.
To keep credentials out of source control, reference environment variables instead of hardcoding values:
{
"mcpServers": {
"sendblue": {
"command": "npx",
"args": ["-y", "@sendblue/mcp-server"],
"env": {
"SENDBLUE_API_KEY_ID": "${SENDBLUE_API_KEY_ID}",
"SENDBLUE_API_SECRET_KEY": "${SENDBLUE_API_SECRET_KEY}"
}
}
}
}With this approach, set SENDBLUE_API_KEY_ID and SENDBLUE_API_SECRET_KEY in your shell profile (~/.zshrc or ~/.bashrc) and the MCP server will pick them up at runtime.
Step 4 — Use Cascade to send iMessages
Once the MCP server is running, open the Cascade chat panel in Windsurf and try it out. Cascade will detect the available Sendblue tools and use them when relevant:
You: Send an iMessage to +14155551234 saying "The new feature is live on staging — want to test it?"
Cascade: I'll send that iMessage now using Sendblue.
[Calling tool: sendblue_send_message]
number: "+14155551234"
content: "The new feature is live on staging — want to test it?"
Message sent successfully. Status: QUEUED, handle: msg_abc123xyzYou can also ask Cascade to send messages as part of larger tasks:
You: After you merge this PR, send an iMessage to +14155559876 letting them know the auth bug is fixed.
Cascade: I'll merge the PR and then notify them via iMessage.
[Creating merge commit...]
[Calling tool: sendblue_send_message]
number: "+14155559876"
content: "Hey — just pushed a fix for the auth bug. Should be deployed in the next few minutes."
Done. PR merged and message sent.Windsurf vs. Cursor MCP configuration
The Sendblue MCP server works identically in both Windsurf and Cursor. The only difference is the config file location:
- Windsurf:
~/.windsurf/mcp.json(user-level) or.windsurf/mcp.json(project-level) - Cursor:
~/.cursor/mcp.json(user-level) or.cursor/mcp.json(project-level)
The JSON structure is identical — copy your config between IDEs by changing the directory name. Both IDEs launch MCP server processes on startup and expose their tools to the AI assistant automatically.
If you use both Windsurf and Cursor, the simplest approach is to set your API keys as shell environment variables (in ~/.zshrc) and use the ${ENV_VAR} syntax in both config files. That way you maintain credentials in one place.
See the Cursor iMessage integration guide for Cursor-specific setup instructions.
What the MCP server does under the hood
When Cascade calls the sendblue_send_message tool, the MCP server process makes an HTTPS POST to the Sendblue API:
POST https://api.sendblue.co/api/send-message
Headers:
sb-api-key-id: <your key id>
sb-api-secret-key: <your secret key>
Content-Type: application/json
Body:
{
"number": "+14155551234",
"content": "The new feature is live on staging — want to test it?"
}Sendblue returns a response like:
{
"status": "QUEUED",
"messageHandle": "msg_abc123xyz",
"number": "+14155551234",
"content": "The new feature is live on staging — want to test it?"
}The MCP server passes this response back to Cascade, which summarizes it in the chat. The entire round trip typically takes under 500ms.
You can also send optional fields by asking Cascade naturally: "Send that with the celebration effect" maps to send_style: "celebration", and "Send this image along with the message" maps to the media_url field.
Frequently asked questions
Which Windsurf plans support MCP servers?
MCP server support is available in Windsurf on paid plans as of 2026. The Pro and Team plans include MCP configuration. Check the Windsurf settings panel under Extensions > MCP Servers to confirm availability on your plan. The configuration format is identical to Cursor's mcp.json, so existing MCP configs transfer directly.
Are my Sendblue API keys secure in the Windsurf MCP config?
Your API keys are stored in the local MCP config file on your machine (~/.windsurf/mcp.json or the project-level .windsurf/mcp.json). They are never sent to Windsurf's servers — only to the MCP server process running locally on your machine, which then calls the Sendblue API. For team environments, use environment variable references in the config rather than hardcoded values, and add mcp.json to your .gitignore.
How is Windsurf's MCP integration different from Cursor?
The MCP configuration format is nearly identical — both use a JSON file with a mcpServers key. The main difference is the config file location: Cursor uses ~/.cursor/mcp.json while Windsurf uses ~/.windsurf/mcp.json. The Sendblue MCP server works with both IDEs without modification.
Can Cascade AI in Windsurf both send and receive iMessages?
Cascade can send iMessages via the Sendblue MCP server tools. For receiving replies, you need a separate webhook endpoint that Sendblue can POST to. You can then have Cascade query your webhook database — making it a full two-way iMessage interface from your IDE.
Next steps
- Sendblue MCP server docs — Full tool reference, available commands, and advanced configuration
- Windsurf integration page — Official integration listing with one-click config
- API reference — Direct REST API documentation for custom integrations
- Cursor iMessage integration — The same setup for Cursor IDE users
Ready to send iMessages from Windsurf?
Free sandbox, no credit card required. Get API keys in minutes.