MCP server setup in Cursor, Claude Code, and VS Code: a safe configuration path
A safe MCP server setup starts with one read-only tool, then separates local stdio from remote HTTP, project scope from user scope, and discovery from approval. This guide covers Cursor, Claude Code, and VS Code with logs and rollback checks.
The safest MCP server setup for Cursor, Claude Code, and VS Code starts with one read-only capability. Confirm discovery, scope, approval, and logs before adding a tool that can write files or call an external system. The MCP architecture describes an AI application as a host, a client for each connection, and a server that exposes tools, resources, or prompts. It supports local stdio and remote Streamable HTTP, and that transport choice changes the credential, network, and failure boundary. This guide was checked on November 10, 2026; client menus and protocol versions can change.
Start with the official MCP architecture, then compare the Cursor MCP docs and Claude Code MCP reference.
Start with a read-only acceptance test
Do not begin by asking an unreviewed server to modify a production database. Pick a task with an observable result and no external side effect, such as reading a test directory, listing documentation, or querying a sandbox issue tracker. The official MCP architecture says a server can expose tools, resources, and prompts. A read-only resource lets you verify discovery, the response shape, and the identity boundary without creating cleanup work.
Write three acceptance results before you connect. The host must discover the server, the chat interface must show the tool description, and one call must return data that matches the source system. If one result is missing, stop and inspect configuration instead of clicking retry. Record the server name, launch command, working directory, and runtime version so you can separate a startup failure from authentication or tool rejection later.
Choose local stdio or remote HTTP by boundary
Local stdio starts a process on the workstation. It fits a server that needs direct access to a project directory or a local script and keeps the network boundary small. Remote HTTP fits a shared service. Authentication may use OAuth, a bearer token, or another HTTP header. The MCP documentation places both choices in the transport layer while keeping the JSON-RPC message semantics consistent.
Use stdio first when the server belongs to one developer and one repository. Restrict the process to the directories it needs. For a team system, ask who can call it, who owns the credential, where requests are logged, and how revocation works. Convenience is not a reason to put a personal token in a project file. Keep variable names and non-sensitive options in configuration, and use environment variables or the provider’s sign-in flow for the secret.
Configure and disable a server in Cursor
Cursor’s official MCP page supports installation from Customize and custom configuration through mcp.json. It lists stdio, SSE, and Streamable HTTP transports and provides MCP Logs for initialization, authentication, and crash errors. Put the first server inside a workflow you can safely stop. If possible, expose only read tools until the result and permission story are clear.
