Home Glossary
HomeGlossaryMCP Client
MCP Glossary

MCP Client

TL;DR

An MCP client is the component inside an AI application that connects to one or more MCP servers, discovers their capabilities, and relays tool calls between the LLM and the servers. Clients live inside hosts like Claude Desktop, Cursor, or Windsurf.

In depth

An MCP client is the side of the protocol that consumes capabilities. It maintains a 1:1 connection with a single MCP server and handles the protocol lifecycle: initialization, capability negotiation, tool invocation, resource fetching, and graceful shutdown.

In practice, MCP clients are embedded inside MCP hosts. A host can contain many clients — one per connected server. For example, Claude Desktop is a host that spawns multiple clients, one for each MCP server configured in `claude_desktop_config.json`.

The client's job is to abstract the server: it presents tool calls to the LLM in a unified format, regardless of whether the underlying server is a local subprocess or a remote HTTP endpoint. It also handles authorization flows (OAuth), progress notifications, and sampling requests from the server back to the host's LLM.

Client implementations exist in all official MCP SDKs. If you're building a custom AI product and want MCP support, you embed a client library into your app.

Code example

import { Client } from "@modelcontextprotocol/sdk/client/index.js";
import { StdioClientTransport } from "@modelcontextprotocol/sdk/client/stdio.js";

const transport = new StdioClientTransport({
  command: "npx",
  args: ["-y", "@modelcontextprotocol/server-github"],
});

const client = new Client({ name: "my-app", version: "1.0.0" });
await client.connect(transport);

const tools = await client.listTools();
const result = await client.callTool({ name: "get_issue", arguments: { id: 123 } });

Examples

  • 1
    The MCP client inside Claude Code's binary
  • 2
    Cursor's built-in MCP client managing per-workspace servers
  • 3
    A custom agent using the `@modelcontextprotocol/sdk` client module
  • 4
    mcp-inspector — a debugging client that connects to any server
  • 5
    A Python client using the `mcp` package's `ClientSession`

What it's NOT

  • ✗An MCP client is NOT the same as an MCP host — the host contains clients.
  • ✗A client does NOT run the LLM — it sits between the LLM and the server.
  • ✗One client connects to ONE server — hosts spawn multiple clients for multiple servers.
  • ✗A client is NOT only for end-user apps — CI scripts, serverless functions, and test harnesses can all be MCP clients.

Related terms

Model Context Protocol (MCP)MCP ServerMCP HostMCP SessionMCP SDK

See also

  • MCP Client Quickstart
  • Client Architecture

Frequently asked questions

How many servers can a client talk to?

Each client talks to exactly one server. Hosts typically spawn many clients — Claude Desktop users often have 5-10 MCP servers connected simultaneously.

Can I use MCP client in my own app?

Yes. Embed an MCP client SDK, connect to any MCP server, and your app can now use tools from the entire MCP ecosystem.

Does the client cache tools?

Yes — after initialization, the client caches the tool list. Servers can emit `tools/list_changed` notifications to invalidate.

Build with MCP

Browse 300+ MCP servers, explore recipes, or continue learning the MCP vocabulary.

Browse MarketplaceAll terms