MCP server: which one to wire, and on what terms
MCP server: the two ways to run one, where to find the ones that already exist, and the five questions worth asking before wiring one to your own data.

An MCP server, and the two ways to run one
An MCP server is a program that exposes capabilities to an AI application. The official documentation puts it plainly: the word server refers to the program serving context, regardless of where it runs. So it is not necessarily a remote machine, and that is the first source of confusion.
It exposes three things. Tools, functions the model can call. Resources, data to read. Prompts, conversation templates. On the client side one capability remains in the current version: elicitation, which lets the server ask the user for information or a confirmation.
The choice that shapes everything else is the transport, and there are only two.
| Transport | Where the server runs | For whom |
|---|---|---|
stdio | locally, on your machine, launched as a process | one client at a time, no network latency |
| Streamable HTTP | remotely, on a server | many clients, token authentication, OAuth recommended |
A filesystem server launched by your desktop client runs over stdio on your machine. An observability server operated by the product vendor runs over HTTP on theirs. Both are called MCP servers, they do not share a threat model, and conflating them is the first scoping mistake.
Where to find the ones that exist, and what that guarantees
An official registry exists, with a moderation policy and third-party aggregators relaying it. Alongside it, the modelcontextprotocol/servers repository hosts reference implementations, including the filesystem server the documentation uses as its example. And most serious vendors now publish their own.
That covers availability. On trust, let us be clear: being listed in a registry is not a security audit. A moderated registry filters out the crude cases, it does not verify what the code does with your data once running.
The official documentation goes further, and this is the sentence to keep from this whole article: descriptions of tool behaviour, annotations included, should be considered untrusted unless they come from a trusted server. In other words, what a server says about itself proves nothing. The only model that holds is the software dependency model: you install it because you trust who publishes it, not because its description reads well.
The five questions to ask before wiring one
These five points come from the risks the official security documentation describes itself. They are not precautionary principles, they are documented attacks with their countermeasures.
- Does the server run locally? A local server is a binary downloaded and executed on your machine, with your client's privileges. The documentation explicitly lists data exfiltration and privilege escalation through a malicious startup command. A correct client must show you the exact command, untruncated, before running it.
- What is the real scope of the exposed tools? A tool is arbitrary code execution. The list is discovered through
tools/list, and it can change mid-flight, since the server may notify a change. What was safe yesterday is not guaranteed safe tomorrow. - Who issued the token? The specification is categorical: an MCP server must not accept any token that was not explicitly issued to it. A server that forwards your token to a downstream API without validating its audience is a problem, not an integration.
- How is state bound to the user? The protocol is stateless, so a server that must remember something mints a handle the client sends back. The rule: possession of a handle is not authentication. Without server-side binding to the account, anyone guessing a handle acts as you.
- Does the server act as a proxy to a third party? This is the trickiest case, the confused deputy: a badly built proxy lets an attacker collect an authorization code with no consent, by exploiting a cookie set during a legitimate session.
These five questions take ten minutes and rule out most bad surprises. What they do not rule out is the need for a written action policy: what goes out automatically, what needs human confirmation, what stays forbidden. A well-chosen server wired without that policy is still a system that can act alone on real data.
Which servers are worth wiring
Rather than a ranking that will be stale in three months, here are the families that earn their place and the risk specific to each.
| Family | What it unlocks | The risk to watch |
|---|---|---|
| Filesystem | reading and writing in a working directory | scope too broad, paths outside the project |
| Database | querying a real schema rather than describing it | writes enabled by default, no read-only mode |
| Observability and tickets | pulling an error or a ticket into the conversation | broad-scoped token across the whole workspace |
| Browser | checking a rendered page, not just the code | arbitrary code execution depending on the page visited |
| Internal documents | wiring house knowledge into the agent | access rights not carried through, everything becomes readable |
So the best MCP server is the one whose publisher you know, whose code you can read, or whose product you already pay for. Those three criteria eliminate most of the catalogue, and that is fine: value does not come from the number of servers wired. Every extra tool takes up context window, widens the attack surface and adds one more path for an answer to go wrong.
In practice, on the projects we ship, three to five well-chosen servers cover everything that matters. Beyond that we mostly see agents hesitating between redundant tools.
What changed on 28 July 2026
The current specification version is dated 28 July 2026, and it moves enough for earlier tutorials to mislead.
The protocol is now stateless. Every request carries its version and the capabilities relevant to it, so the server infers nothing from earlier exchanges. A mandatory server/discover request lets the client learn the accepted versions and capabilities before anything else, with responses that can be cached.
Two client-side capabilities are deprecated: sampling, which let a server request a completion from the client, and logging. The documentation points to direct integration with provider APIs for the first, and to stderr or OpenTelemetry for the second. A server still relying on them is a server that has not kept up.
Change notifications are now explicitly requested: the client opens a stream and names the event types it wants. Nothing arrives by default any more.
So if you are evaluating a server today, the first technical question is simply which version it advertises. It shows from the discovery step, and it says a lot about how well the project is maintained.
FAQ
- What is an MCP server?
- A program that exposes tools, data or prompt templates to an AI application through the Model Context Protocol. It can run locally on your machine over
stdio, or remotely at a vendor over Streamable HTTP. The word server refers to the program, not necessarily to a remote machine. - What is the best MCP server?
- That is not the question to ask. The right server is the one whose publisher you know, whose code you can read, or whose product you already pay for. A generic ranking ages in three months and says nothing about the only criterion that matters, trust in who publishes it.
- What is the difference between an MCP server and an API?
- An API exposes endpoints to programs that already know how to call them. An MCP server exposes its capabilities in a discoverable way, with a schema the model reads at runtime to decide what to call. Most MCP servers are in fact a layer over an existing API.
- Is a local MCP server dangerous?
- It is a binary running on your machine with your client's privileges, so yes, as much as a dependency you would install without looking. The official documentation lists data exfiltration and privilege escalation through a startup command. A correct client shows the exact command before running it, and the
stdiotransport limits access to that client alone. - How many servers should you wire?
- Three to five well-chosen ones cover the essentials on the projects we ship. Every extra tool consumes context window, widens the attack surface, and makes the agent hesitate between redundant capabilities. Count is not a maturity indicator.
- Should you host your own MCP servers?
- For anything touching your internal data, yes, it is the only way to keep access rights and traces on your side. For a third-party tool you are already a customer of, their operated server is often better maintained than what you would rewrite, provided you check the scope of the token requested.
- How do you know a server is up to date?
- Look at the protocol version it advertises at discovery. The current version is dated 28 July 2026, with a stateless protocol and the deprecation of client-side sampling and logging. A server still relying on those capabilities has not kept up.
Sources and references
- Architecture overview
The definition of the `stdio` and Streamable HTTP transports, of the primitives, and of what "server" exactly means.
- Specification 2026-07-28
The stateless protocol, mandatory discovery, and the line on tool descriptions being untrusted.
- Security Best Practices
Confused deputy, token passthrough, state handle hijacking, local server compromise: the attacks and their normative countermeasures.
- The MCP Registry
The official registry, its moderation policy and its aggregators. Useful for finding, not sufficient for trusting.
- Reference server implementations
The reference implementations, including the filesystem server the documentation uses as its example.
Scope your first AI agent
20 minutes to review your tools, data and the first useful case. No jargon, no commitment.