Remote vs local MCP servers: how they differ and which to use
Last verified against the official documentation linked below.
An MCP server either runs on your own computer, started by your AI app, or runs elsewhere as a service you reach over HTTP. The protocol defines two standard transports for this: stdio for local servers and Streamable HTTP for servers reached by URL. Here's what that means in practice, from the MCP specification and client docs.
Steps
Local servers: started by your app over stdio
With stdio, the client launches the server as a subprocess and they exchange messages through standard input and output. The spec says clients should support stdio whenever possible.
Source: modelcontextprotocol.io/specification/2025-06-18/basic/transports
Remote servers: one service, many clients, over HTTP
With Streamable HTTP, the server runs as an independent process that can serve many clients from a single endpoint such as https://example.com/mcp. It replaced the older HTTP+SSE transport from the 2024-11-05 protocol version.
Source: modelcontextprotocol.io/specification/2025-06-18/basic/transports
Who runs and signs in
Cursor's docs sum it up: a stdio server runs locally, is managed by the app, serves one user and takes credentials manually; an HTTP server is deployed as a server, serves multiple users and can use OAuth.
Source: cursor.com/docs/context/mcp
Setup on each device
Local servers need installing and configuring on every device. Remote servers are available from any MCP client with an internet connection, which suits web-based apps and services that need server-side processing.
Source: modelcontextprotocol.io/docs/develop/connect-remote-servers
Sensitive data
For sensitive data, Cursor suggests running servers locally with the stdio transport, limiting key permissions and reviewing the server's code.
Source: cursor.com/docs/context/mcp
If you run an HTTP server on your own machine
The spec says such servers must validate the Origin header, should bind only to localhost (127.0.0.1) rather than all interfaces, and should require authentication, to stop malicious websites reaching them through DNS rebinding.
Source: modelcontextprotocol.io/specification/2025-06-18/basic/transports
Safety notes
- A local server runs with your user account's permissions, so it can do anything you can do with your files. (modelcontextprotocol.io/docs/develop/connect-local-servers)
- Before connecting to a remote server, confirm it comes from a source you trust and review the permissions it requests when you sign in. (modelcontextprotocol.io/docs/develop/connect-remote-servers)
More guides
- MCP server security checklist
- How to add an MCP server to Claude Desktop
- How to add an MCP server to Cursor
- How to add an MCP server to VS Code
Sources: modelcontextprotocol.io/specification/2025-06-18/basic/transports · cursor.com/docs/context/mcp · modelcontextprotocol.io/docs/develop/connect-remote-servers · modelcontextprotocol.io/docs/develop/connect-local-servers. Menus and file paths change between versions: if a step doesn't match what you see, follow the official page linked for that step.