← Writing

What is an MCP context server?

3 min read

An MCP server is a program that exposes tools an AI client can call. The Model Context Protocol defines how they talk, so any client that speaks it can use any server without either side knowing about the other in advance. A context server is the subset whose job is retrieval: it holds information and hands it over when asked.

The practical effect is that the model stops depending on what you remembered to paste. It asks.

What actually happens in a call

When you connect a client to a server, the server advertises its tools — names, descriptions, and the shape of their arguments. The model reads those descriptions and decides when a tool is worth calling. You ask a question, the model recognises it needs context it does not have, and it issues a call.

  • The client sends a tool call with arguments the model chose.
  • The server runs the query against whatever it holds and returns results.
  • The results enter the conversation as context, and the model answers from them.

The tool descriptions matter more than people expect. They are the only thing the model has to decide with, so a vague description produces a server that is technically connected and never actually used.

How this differs from RAG

Retrieval-augmented generation usually means a pipeline you own: chunk the documents, embed them, store the vectors, and inject the top matches into the prompt before the model sees it. Retrieval happens whether or not it was needed, and the application decides what gets pulled.

MCP inverts that. The model decides, mid-conversation, whether to retrieve and what to ask for — and it can ask twice, narrowing the second time. It also decouples the retrieval from the app: the same server serves every client you use, rather than each app carrying its own copy of the pipeline.

They are not exclusive. Plenty of MCP servers run a RAG pipeline behind the tool call. The difference is who controls when it fires.

What separates a useful server from a demo

It covers something not already accessible

A server over your codebase is mostly redundant — the assistant can already read the files. The valuable coverage is what the model has no other route to: the Slack thread where the approach was chosen, the email where the client changed their mind, what was actually said on the call.

It cites its sources

Results should carry a source and a timestamp. Without them you cannot tell a current decision from one superseded three weeks ago, and neither can the model — which is how you get a confident answer built on a thread that everyone involved has since abandoned.

It returns little enough to be useful

A tool that returns an entire channel has moved the problem rather than solved it. Good retrieval tools return ranked, scoped results and offer a second call to widen a specific hit — a thread, or the messages either side of a match.

It stays current on its own

The most common failure is not a bad answer. It is a server that indexed everything once, six weeks ago, and has been quietly answering from a snapshot ever since. Continuous sync is not a nice-to-have here; without it the whole thing degrades into confident staleness.

Where the data lives

A context server over your work conversations is, by construction, an index of your Slack and your inbox. That is worth a moment's thought before you run someone else's. A local server answers queries from your own machine, which removes the question entirely and has the side benefit of resolving in milliseconds and working offline.

Related

Jarvis runs as a local MCP server over Slack, Gmail, and meeting notes, exposing six retrieval tools with cited results. See the MCP page for the tool surface.

Try Jarvis on your Mac

Connect your chats, email and calendar. Jarvis tells you what to do first.

Get started