Client Configuration
MCP clients are configured with a list of servers to connect to. Each server entry specifies the transport (stdio or SSE), the server command or URL, and optional environment variables. In Claude Code, this configuration lives in .claude/mcp.json.
When the client starts, it connects to each configured server, performs capability negotiation, and discovers available tools, resources, and prompts. These are then made available to the model as part of the conversation context.
Tool Discovery and Translation
The MCP client discovers tools from connected servers and translates them into the format Claude expects. Each MCP tool becomes a Claude API tool with the same name, description, and input schema. When Claude decides to call a tool, the client routes the call to the correct MCP server.
This translation layer is transparent — the model does not know or care whether a tool is implemented as an MCP server or a local function. This is the power of the protocol: integration details are abstracted away from the model.
Building a Custom MCP Client
For custom applications, you build an MCP client using the MCP SDK. The client connects to servers, discovers tools, converts them to Claude API format, and handles tool call routing. This is useful when you want MCP server reusability in your own agentic application.
The client handles connection lifecycle: connecting, reconnecting on failure, and graceful shutdown. For production, implement health checks and connection monitoring.
Key Concept
The Client Is the Bridge
The MCP client bridges MCP servers and the Claude API. It discovers tools from servers, translates them into Claude's tool format, routes tool calls to the right server, and returns results. Without this bridge, MCP servers are just standalone services. The client makes them usable by Claude.
Exam Traps
Thinking Claude natively understands MCP
Claude's API does not speak MCP directly. An MCP client translates MCP tools into Claude API tool format. The model sees standard tools, not MCP-specific structures.
Confusing server-side and client-side configuration
Server configuration defines what capabilities are exposed. Client configuration defines which servers to connect to. The exam may test whether you understand which side to configure for a given requirement.
Not handling server connection failures
MCP servers can be unavailable. A robust client handles connection failures gracefully, making tools unavailable without crashing the application.
Check Your Understanding
You have three MCP servers: a database server, a file system server, and a web search server. Your application needs to use tools from all three. How do you integrate them?
Build Exercise
Build a Custom MCP Client
What you'll learn
- Connect to MCP servers programmatically
- Discover and translate tools
- Route tool calls to the correct server
- Handle connection lifecycle
Create an MCP client that connects to a single stdio server. List the available tools after connection.
WHY: Understanding the connection and discovery flow is the foundation of client development.
YOU SHOULD SEE: A list of tools exposed by the server, with names and descriptions.
Convert discovered MCP tools into Claude API tool format. Map name, description, and inputSchema.
WHY: This translation is the core function of an MCP client — making MCP tools available to Claude.
YOU SHOULD SEE: An array of tool definitions in Claude API format, ready to include in a messages call.
Implement tool call routing: when Claude returns a tool_use block, find the right MCP server and forward the call.
WHY: Routing connects Claude's tool decisions to MCP server execution.
YOU SHOULD SEE: Tool calls from Claude are routed to the MCP server and results are returned.
Add a second MCP server and handle multi-server routing. Each tool call should go to the server that owns that tool.
WHY: Production systems typically use multiple MCP servers. Correct routing is essential.
YOU SHOULD SEE: Tools from both servers are available, and calls are routed correctly.
Sources
- MCP Client Development— MCP Documentation
- Claude Code MCP Configuration— Anthropic Documentation