A complete guide to MCP architecture — from your question to Brave Search results and back, explained simply.
You type a question into Claude Desktop, e.g., "What are the latest AI trends in ITSM for 2026?"
This is just a normal chat message — nothing special yet.
Claude's language model reads your question and decides: "I need to search the web to give a current answer."
It knows it has access to tools like Brave Search because the MCP config told it so at startup.
Think of this like the AI checking its toolkit and picking the right tool for the job.
The MCP (Model Context Protocol) acts as a universal translator between the AI and external tools.
Claude sends a structured request: "search for: AI trends ITSM 2026" using a standard format called JSON-RPC.
The MCP server (running locally on your machine via uvx) receives this and translates it into the right format for the external service.
The MCP server for Brave Search knows exactly how to talk to Brave's API. It takes Claude's generic search request and converts it into Brave Search's specific API format, attaches your API key for authentication, and sends the HTTPS request to Brave's servers.
Brave Search processes the query on its servers, searches the web, and returns results as structured data (JSON) — titles, URLs, snippets.
This is the same as what happens when you search on Brave's website, but done programmatically.
The search results travel back: Brave → MCP Server → Claude.
Claude reads the raw results, synthesizes them into a clear, natural language answer, and presents it to you in the chat — with sources, summaries, and context.
The entire round-trip takes just a few seconds.
A universal standard created by Anthropic. Instead of every AI building custom integrations for every tool, MCP gives one common language that all tools can speak.
Lightweight runners that download and execute MCP servers without permanent installation. uvx runs Python servers, npx runs Node.js servers.
The messaging format MCP uses — a structured way to say "call this function with these parameters." It's like a standardised ticket format between systems.
Authentication tokens stored in your config. The MCP server attaches these when calling external services — like a badge that proves you're authorised to use the service.
MCP servers run on YOUR machine, not in the cloud. Your API keys and data stay local. The AI model in the cloud only sees the final results the MCP server sends back.
Data flows both ways — AI sends requests out, and receives results back. Each MCP server is a two-way bridge between the AI and one specific external tool.
Imagine you're a guest at a 5-star hotel. You don't speak the local language, but the hotel has a concierge desk that handles everything for you.
Since you work in IT service management, here's how MCP maps to ITSM concepts:
Here's what your claude_desktop_config.json actually looks like, and what each part does:
On launch, Claude Desktop reads the JSON config file to discover which MCP servers are available.
For each server in the config, it runs the command (e.g., uvx mcp-server-brave-search). This starts a local process on your machine that listens for requests.
Each MCP server tells Claude: "Here are the tools I offer" (e.g., web_search, local_search). Claude now knows what it can do in this session.
Claude Desktop shows you the chat interface. Behind the scenes, all MCP servers are running and waiting. When you ask something that needs web search, Claude already knows how to reach it.
"spawn uvx ENOENT" happened at Boot Step 2. Claude Desktop tried to run uvx mcp-server-brave-search but couldn't find the uvx executable. It's like trying to call an employee who doesn't exist yet — the process couldn't even start, so it immediately disconnected.
Click on any question to see a polished interview-ready answer.
npx tavily-mcp, it fetches the Tavily MCP server package (written in JS) and runs it.
uvx is for the Python ecosystem — it comes with uv (a fast Python package manager). When you run uvx mcp-server-brave-search, it fetches the Brave Search MCP server (written in Python) and runs it.