Urgent.News

What's breaking now, across thousands of outlets.

AI

MCP Clients Compared: Claude Desktop, Cursor, VS Code, Windsurf, Cline, and Zed

The Model Context Protocol solved the server-side fragmentation problem so thoroughly that a client-side one replaced it: six popular AI tools now speak MCP, and each one has its own config file, its own UI path, its own rules about where environment variables may come from, and its own tolerance for remote OAuth flows. If you have ever copied a server config from one editor's docs into another…

Six AI tools now communicate using the Model Context Protocol, each with its own configuration file, user interface, rules for environment variables, and handling of remote OAuth flows. This guide is intended for those who have attempted to copy server configurations from one editor's documentation into another without success. The guide assumes a server that operates through stdio or Streamable HTTP.

The location of the client configuration varies depending on the tool. For Claude Desktop, it is found at ~/Library/Application Support/Claude/claude_desktop_config.json on macOS, with additional options for remote HTTP transport and OAuth authentication within the user interface. Cursor stores its configuration in ~/.cursor/mcp.json (global) or .cursor/mcp.json (project), while VS Code uses .vscode/mcp.json or user settings.json under chat.mcp.servers.

Windsurf configuration is stored in ~/.codeium/windsurf/mcp_config.json, with partial support for OAuth. Cline, a VS Code extension, presents its configuration through the MCP Servers panel within the extension's global storage. Zed utilizes settings.json under context_servers for configuration.

When configuring servers, it is recommended to use project-scoped configuration for servers tied to a specific repository, while global configuration is suitable for personal tools that may be applied across multiple projects. It is important not to commit sensitive information into project configurations; instead, reference environment variables and document them in the README file.

The structure of the stdio configuration is consistent across clients, which demonstrates the effectiveness of the protocol. For instance, Claude Desktop and Cursor use a canonical block to define the server configuration, including the command to execute, its arguments, and environment variables required for the requests. VS Code, on the other hand, expresses the same server declaratively through a command entry and supports stdio through a command entry. Zed uses a similar structure with a slightly different key name but the same fields.

Cline, unlike the other clients, requires configuration through its MCP Servers panel, making it the simplest for non-technical users but also the most challenging to script for others. The remote HTTP configuration, on the other hand, is simpler, requiring only the URL of the server. For servers hosted on the web, the configuration collapses into a URL, and the client handles the OAuth 2.1 flow automatically. The authorization process is described in detail in the MCP authentication guide.

Some common issues that may arise during configuration include issues with the PATH environment variable, caching by npx, and limits on the number of tools that clients can expose to the model. It is recommended to use absolute paths for npx or wrap the launch in a shell script that sources your profile to resolve PATH-related issues. Additionally, clients typically limit the number of tools they expose to the model to maintain performance and avoid confusion.

Written by urgent.news from Dev.to's reporting — not their text. Machine-written — may contain errors; check the original before relying on it.

Read the original at dev.to →

More in AI

I Added a Chatbot to My Movie Discovery App

I recently added a chatbot feature to Galaxy Movies, my movie discovery app. The idea came from a problem I run into all the time: there are too many movies to choose from, and browsing doesn’t always…

More from Saturday 3 October →