← Back to kobel.app Kobel — local permission layer for AI agents · Windows and macOS
Kobel

Local vs remote MCP servers

The architectural choice underneath every product in this category. What each one actually risks, what the specification requires, and what neither of them fixes.

Last reviewed:

Short answer

A local MCP server runs as a process on your own machine with your own user permissions. A remote MCP server runs on someone else's infrastructure and is reached over HTTP with OAuth.

The trade is straightforward. Local keeps data on the device and needs no third-party trust, but the server runs with everything you can reach — so a poorly written or malicious one is a serious problem, and there is no central place to revoke it. Remote gives you real identity, revocable tokens and central audit, but your data crosses a network into infrastructure you do not control. Most real setups end up with both, which is why the interesting question is not "which is safer" but "what enforces the boundary in each case".

Side by side

Local MCP serverRemote MCP server
Where it runsA process on your computerA vendor's or your company's server
Transportstdio (usually)Streamable HTTP — the only standard HTTP binding in the 2026-07-28 revision; older servers may still use the legacy HTTP+SSE transport
AuthenticationNone — it inherits your user accountOAuth 2.1 where authorization is implemented; the specification makes authorization optional but says HTTP-based servers should follow its OAuth 2.1 profile
Effective permissionsEverything your user can reachWhatever the token's scopes allow
Data locationStays on the deviceCrosses the network
RevocationUninstall it, or block it at a local gatewayRevoke the token centrally
Central auditOnly if something local logs itYes, at the gateway or server
Works offlineYesNo
Main riskArbitrary code running with your rightsThird-party trust, token theft, confused deputy
Right controlA host-side permission layer or sandboxA network gateway with IdP-backed RBAC

The specific risk of local MCP servers

This is not theoretical, and the specification itself says so. The MCP security guidance for the 2026-07-28 revision states that a client supporting one-click local server configuration must display the exact, untruncated command it is about to run, flag it as dangerous and require explicit approval — and should sandbox the server, restrict its filesystem and network access, and warn on patterns such as sudo, rm -rf or access to ~/.ssh.

The reason is simple: installing a local MCP server is installing software. It runs as you. Nothing in the protocol confines it to the folder you had in mind.

What has actually gone wrong

Anthropic states directly that it reviews connectors against listing criteria but does not security-audit or manage MCP servers. Nobody is checking these for you.

The specific risk of remote MCP servers

Remote servers trade code-execution risk for trust and protocol risk. The specification's security document is mostly about exactly these problems:

Neither transport protects you from prompt injection

Worth stating clearly, because it is the most misunderstood point in the category: local versus remote makes no difference to indirect prompt injection, tool poisoning, rug pulls or cross-server shadowing. Those attacks travel in content — a tool description, a document, an issue comment, an error message — and the transport is irrelevant.

What limits the damage is not the transport either. It is the blast radius: what the agent could reach if it were successfully manipulated. That is a permissions question, which is why a graded permission model is a mitigation for prompt injection even though it does nothing to detect it.

Where the standard is heading

A draft proposal, SEP-1708 "MCP Client-Brokered Filesystem Access", would move filesystem access out of a local filesystem server and into the client, with per-path user approval and revocation when the connection ends. It has been in draft since late 2025 and remains unsponsored, so treat it as direction of travel rather than something you can rely on. The direction is telling: the ecosystem agrees that the client — the thing on your machine — is the right place to make the access decision.

Practical guidance

  1. For local servers, constrain what they can see. Either sandbox them (Docker MCP Toolkit, ToolHive) or put a permission layer in front so the server only ever receives access to folders you explicitly exposed.
  2. For remote servers, use a gateway with real identity. Pomerium, MintMCP, TrueFoundry, Obot and the API-gateway incumbents all do this properly.
  3. Assume every tool description is untrusted input. It reaches the model, so it is part of the prompt.
  4. Grade permissions rather than toggling them. Read-only is not the only alternative to full access; "write only to copies" and "back up before every write" cover most real work.
  5. Log everything locally. If you cannot answer "what did the AI touch last Tuesday", you have no incident response.

Kobel implements the first, fourth and fifth of these for Windows and Mac: a local gateway with five permission levels per resource and one timestamped activity log covering files, business apps and connected accounts — and the log is not exposed to the AI through the gateway, so a connected assistant can neither read it nor alter it.

Kobel's five permission levels

Every folder, app and account gets exactly one of these five levels. You set it by dragging a folder in and picking a colour — there is no configuration file.

Keep reading

Sources

  1. Model Context Protocol — Security best practices (2026-07-28)
  2. Model Context Protocol — Connect to local MCP servers
  3. SEP-1708 — MCP client-brokered filesystem access (draft)
  4. OWASP — MCP Security Cheat Sheet
  5. OWASP — MCP tool poisoning
  6. Invariant Labs — Tool poisoning attacks
  7. CVE-2025-53110 — Filesystem MCP server path bypass
  8. NSA — Model Context Protocol (MCP): Security Design Considerations for AI-Driven Automation (May 2026)
  9. Koi Security — backdoored postmark-mcp npm package (September 2025)

Try it on one folder

Install Kobel, drag in a single folder, set it to read-only, connect your assistant. Two minutes. Free Basis tier, no account needed.

Download KobelSee features
Kobel ships for both desktop platforms:Microsoft Store Windows 10/11Mac App Store macOS

Frequently asked questions

What is the difference between a local and a remote MCP server?

A local MCP server runs as a process on your own machine, usually over stdio, with your own user permissions and no authentication. A remote MCP server runs on someone else's infrastructure and is reached over HTTP, normally with OAuth 2.1, so access is scoped to a token that can be revoked centrally. The specification makes authorization optional, but says HTTP-based servers should follow its OAuth 2.1 profile.

Is local MCP safer than remote MCP?

Not automatically. Local keeps data on the device and needs no third-party trust, but the server runs with everything your user account can reach and there is no central revocation. Remote gives you real identity and audit but sends your data to infrastructure you do not control. The safer setup is whichever one has an enforced boundary in front of it.

Does using a local MCP server protect me from prompt injection?

No. Prompt injection, tool poisoning and rug pulls travel in content — tool descriptions, documents, error messages — and are unaffected by transport. What limits the damage is how little the agent was allowed to reach in the first place.

Do I need OAuth for a local MCP server?

No. Local servers over stdio inherit your user account and have no authentication layer, which is precisely why the specification recommends sandboxing them and restricting their filesystem and network access.

How do I stop a local MCP server from accessing my whole home directory?

Either run it in a sandbox or container that restricts the filesystem, or put a permission layer in front of it that only exposes the folders you have added. Passing allowed directories as command-line arguments works too, but has historically been fragile — CVE-2025-53110 was exactly a bypass of that mechanism.