Introduction to Claude Desktop
Learn what Claude Desktop is and how it connects to MCP servers.
What is Claude Desktop?
Claude Desktop is Anthropic's official desktop application for interacting with Claude. Unlike the web interface, Claude Desktop can connect to local MCP servers, giving Claude access to your local files, databases, APIs, and custom tools.
This lesson brings everything together. The MCP servers you've built throughout this course can now be connected to a real AI assistant, making your tools available to Claude.
How Claude Desktop Uses MCP
Claude Desktop acts as an MCP client. When you configure it to use your server, it will:
┌──────────────────────────────────────────────────────────────┐
│ CLAUDE DESKTOP │
│ │
│ ┌─────────────┐ ┌─────────────────────────────────┐ │
│ │ Claude │ │ MCP Client Manager │ │
│ │ (LLM) │◄───►│ │ │
│ └─────────────┘ │ - Reads config file │ │
│ │ - Launches servers │ │
│ │ - Manages connections │ │
│ └────────────┬────────────────────┘ │
│ │ │
└────────────────────────────────────│─────────────────────────┘
│ STDIO
┌────────────────┼────────────────┐
│ │ │
▼ ▼ ▼
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ MCP Server │ │ MCP Server │ │ MCP Server │
│ (Tools) │ │ (Files) │ │ (Prompts) │
└─────────────┘ └─────────────┘ └─────────────┘
The Connection Process
When Claude Desktop starts, it reads a configuration file that lists your MCP servers. For each configured server:
- Launch: Claude Desktop spawns the server process
- Connect: It establishes STDIO communication
- Handshake: The MCP initialization handshake occurs
- Discovery: Claude learns what tools, resources, and prompts are available
- Ready: Claude can now use your server's capabilities
Claude Desktop Startup Sequence:
1. Read ~/.config/claude/claude_desktop_config.json (Linux)
or ~/Library/Application Support/Claude/claude_desktop_config.json (macOS)
or %APPDATA%\Claude\claude_desktop_config.json (Windows)
2. For each server in "mcpServers":
└─► Spawn process with specified command and args
└─► Connect via STDIO (stdin/stdout)
└─► Send: initialize request
└─► Receive: initialize response
└─► Send: initialized notification
└─► Send: tools/list, resources/list, prompts/list
└─► Server is ready for use
Why STDIO?
Claude Desktop uses the STDIO transport (not HTTP) for local servers because:
- Security: No network ports to expose or secure
- Simplicity: No need for authentication or certificates
- Lifecycle: Claude Desktop manages the server process directly
- Isolation: Each server runs in its own process
If you followed Lesson 7 (STDIO Transport), your server already supports the transport that Claude Desktop uses. You just need to configure Claude Desktop to find and run it.
What Claude Sees
Once connected, Claude can see and use your server's capabilities naturally in conversation:
User: "What's 42 plus 17?"
Claude's internal process:
1. Recognizes this is a calculation
2. Sees "add_numbers" tool from your MCP server
3. Calls: tools/call with {"name": "add_numbers", "arguments": {"a": 42, "b": 17}}
4. Receives result from your server
5. Formulates natural language response
Claude: "42 plus 17 equals 59."
Supported Platforms
Claude Desktop is available for:
| Platform | Config Location |
|---|---|
| macOS | ~/Library/Application Support/Claude/claude_desktop_config.json |
| Windows | %APPDATA%\Claude\claude_desktop_config.json |
| Linux | ~/.config/claude/claude_desktop_config.json |
Before continuing, make sure you have Claude Desktop installed. Download it from claude.ai/download. The MCP integration features require a Claude Pro or Team subscription.
What's Next?
In the next step, we'll explore the configuration file format in detail and learn how to structure your server configurations.