DEV Community

Cover image for 🤖 Cursor MCP vs. Windsurf MCP using Composio MCP Server 🚀
Shrijal Acharya for Composio

Posted on

9 8 7 8 7

🤖 Cursor MCP vs. Windsurf MCP using Composio MCP Server 🚀

What is MCP?

To define vaguely, MCP is a way for AI (like large language models) to connect and communicate with external data sources and services. It is basically a bridge that lets AI step outside its training data and interact with real-world data in real-time.

Tweet on MCP

What exactly was missing in AI before MCP?

Before MCP, AI was powerful but limited to its training set. MCP servers let AI models fetch real-time data and also take action on it.

For example, if you ask AI, “What’s the stock market price of Meta right now?” it couldn’t tell you because it’s probably stuck with data from 2021. 🥴

What does MCP add to the AI?

By now, you should already have a bit of an idea of what MCP allows an AI model to do. But if not, let me clarify with an example.

It allows AI to connect to external data sources, and be more context aware, and that is super powerful. Think of it as an upgrade that makes the AI go from “I can only tell you from what I have been taught” to “I can fetch live data, book your flights, and maybe even order pizza for you.” 🤯

Shocked GIF

Notice, it not only gives access to real-time data but also allows the AI to perform actions (make changes) to your system.

I’m not sure about you, but “Artificial Intelligence” does not feel “Artificial” to me anymore. 🤷‍♂️

If you want to learn about MCP, check out this blog post by @sunilkumrdash 👇


Setup MCP server in Cursor & Windsurf (Using Composio)

💁 Here, I will show you how you can use Composio to add MCP support in both Cursor and Windsurf using Composio’s Notion integration. Check out all available integrations here.

Add Notion MCP support in Cursor

Follow these steps to install MCP support in Cursor:

  1. Copy the SSE URL from mcp.composio.dev/notion under the Cursor section.

  2. Open Cursor settings, navigate to the MCP section, and add a new MCP server using the copied URL.

Here’s a quick demo if you need help:

That's it! You can now use Notion MCP actions directly within Cursor. 🎉

Okay, now let’s see if we can use the notion MCP integrations like fetching notion pages content within Cursor.

Here’s a quick demo:

Add Notion MCP support in Windsurf

It is fairly simple to set up MCP server in Windsurf as well. First, ensure you have Node.js installed on your machine.

  1. Generate the command from mcp.composio.dev/notion under Windsurf.

  2. Run the generated command in your terminal:

npx @composio/mcp@latest setup "<unique_generated_url>" --client windsurf
Enter fullscreen mode Exit fullscreen mode

If you see an output like this, you're all set:

Adding an MCP integration to Windsurf

Restart Windsurf, and you're all ready to use Notion MCP actions! 🎉

Okay, now let’s see if we can use the notion MCP integrations like fetching list of notion pages.

Here’s a quick demo:


Real-world use case testing

Now that we know how to get MCP working on both IDEs, let's do a quick test on a real-world scenario using their default models.

💁 Prompt: Create a Linear issue under a given project, change the label of the issue to “TODO,” add a sample comment under the issue, and once everything is done, message about the issue creation status on a Slack channel.

First, make sure that, similar to how we set up Notion, you do the same for Slack and Linear.

Linear and Slack MCP Integration in Cursor

Cursor just did everything correctly by triggering the correct MCP actions.

It was able to create a Linear ticket, add the comments, label the issue as I asked to “TODO,” and successfully message the issue creation status on the Slack channel all perfectly. ✅

Linear and Slack Integration in Windsurf

Ugh, really? Windsurf ran into quite a few issues and failed to execute some tools completely, but it did get the overall job done. It was definitely a bit slow and ran the same tool twice, which led to two different issues with no label.

Definitely, not the very best experience and feels a bit more amateur than the Cursor MCP support. 🫤


Comparison

Cursor and Windsurf really got done with what I asked. Cursor was perfect on that, while Windsurf somehow got it working but mistakenly created two different issues on the same topic and couldn’t label them correctly.

Cursor was able to call LINEAR_LIST_LINEAR_STATES MCP actions to fetch the labels for the issue labeled “TODO” correctly.

MCP tool call without state_id Windsurf IDE

And then created the issue with the proper state_id added.

MCP tool call Cursor IDE

Windsurf didn’t even call that action to get the state_id for “TODO” and simply created the issue with no state_id which made the issue have the default label.

MCP tool call Windsurf IDE

It’s kind of fair to say that Cursor ✅ was a bit better than Windsurf in this quick test.

Cursor MCP better than Windsurf?

We can simply not tell which one is better than the other just yet. The whole MCP system is still in the beginner stage and is definitely going to be more robust in the coming future. Probably then we can make a final comparison.

Between these two IDEs' MCP features, for now, it’s up to you to decide which one you’d like to go for. 🤷‍♂️


Conclusion

You can see the power that comes with this, right? 😵 This was just a quick test with just two simple applications in one quick example.

Imagine an integration with GitHub and Linear that helps with GH issues, makes AI perform code edits, runs the tests, and, if they pass, opens a PR. Once approved by the maintainers, it gets merged. The possibilities are truly infinite with this thing.

Check out this tweet thread to get some ideas on what to build with MCP. 👇

If learned to use this correctly, this can be a thing you never knew you needed so badly. If you’d like to see something similar done using MCP, do let me know in the comments! ✌️

API Trace View

How I Cut 22.3 Seconds Off an API Call with Sentry 🕒

Struggling with slow API calls? Dan Mindru walks through how he used Sentry's new Trace View feature to shave off 22.3 seconds from an API call.

Get a practical walkthrough of how to identify bottlenecks, split tasks into multiple parallel tasks, identify slow AI model calls, and more.

Read more →

Top comments (11)

Collapse
 
aavash_parajuli_72 profile image
Aavash Parajuli

I'm just so sick of this whole AI thing now! 😣

Collapse
 
shricodev profile image
Shrijal Acharya

I feel you, @aavash_parajuli_72, buddy. Every day, something new pops up. 😂

Collapse
 
warren_dixon_nv profile image
Warren Dixon

I prefer Windsurf more, not just because it's $5 less, but because it's more intuitive to me and feels no different from VS Code. I'm not sure how the default model compares, but both IDEs' best model is Claude 3.5/7, so if the default model can't compete, it doesn't make any difference.

Collapse
 
shricodev profile image
Shrijal Acharya

Yeah, Windsurf is a solid choice @warren_dixon_nv. If you use the paid models, it should not really make much of a difference.

Collapse
 
shricodev profile image
Shrijal Acharya

Guys, please share your experience working with the Cursor MCP or the Windsurf MCP. Do they seem promising to you? 🤔

Collapse
 
bh4skar profile image
Bhaskar Prajapati

I'm kind of confused, Isn't this supposed to be exactly what AI agents are? What's the difference here

Collapse
 
shricodev profile image
Shrijal Acharya

@bh4skar, think of MCP like this: MCP is like the rules for how phones connect to apps and the internet, but an AI Agent is the complete smartphone that uses those connections to help you do what you want.

MCP is a protocol which is used for AI agents to communicate. So can't really confuse between these two.

Collapse
 
mukesh_singhania_1992 profile image
Mukesh Singhania

How do you come up with this ideas? What is Linear then same as Github issues?

Collapse
 
shricodev profile image
Shrijal Acharya

They are somewhat similar, in that they are used for issue tracking.

Collapse
 
nabin_bd01 profile image
Nabin Bhardwaj

Good share! I'm loving MCP. I am currently using Cursor after VScode. Didn't know Windsurf is also available. It also looks similar to VScode. is it also fork?

Collapse
 
shricodev profile image
Shrijal Acharya

Yeah, both Cursor and Windsurf are forks of VS Code. But plain Windsurf looks more like VS Codey than the default Cursor.

nextjs tutorial video

Youtube Tutorial Series 📺

So you built a Next.js app, but you need a clear view of the entire operation flow to be able to identify performance bottlenecks before you launch. But how do you get started? Get the essentials on tracing for Next.js from @nikolovlazar in this video series 👀

Watch the Youtube series

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay