MCP server
A Model Context Protocol server: a process that exposes tools, resources, and prompts to an LLM agent over a standardized JSON-RPC interface.
A Model Context Protocol (MCP) server is a long-running process that an agent like Claude Code or Cursor connects to over JSON-RPC. The server publishes a manifest of tools the agent can call, resources it can read, and prompts it can request — and the host application (the agent) decides when to invoke them mid-session.
The protocol is an open standard published by Anthropic — the spec lives at modelcontextprotocol.io. An MCP server differs from an editor plugin or extension in one important way: it extends the agent, not the editor. A plugin adds UI and commands for a human to click; an MCP server adds tool surface the model itself can call, with typed inputs and outputs the host validates on every invocation.
A concrete example from our Roslyn .NET MCP server — a tool method the agent calls instead of grepping for call sites:
[McpServerTool(Name = "find_symbol_references")]
public async Task<SymbolReferences> FindReferences(string fullyQualifiedName)
{
var symbol = await _workspace.ResolveSymbolAsync(fullyQualifiedName);
var refs = await SymbolFinder.FindReferencesAsync(symbol, _workspace.CurrentSolution);
return SymbolReferences.From(refs); // file, line, containing member — compiler truth, not text matches
}
The agent receives compiler-resolved references — including overloads and interface implementations a text search would miss — through one audited, deterministic tool boundary.
When to build one
- You have domain knowledge the agent cannot derive from reading files alone.
- The data updates fast enough that re-reading files would burn context.
- You want deterministic, audit-logged tool boundaries between the agent and your system.